From ec88049567e231db6186d56727fd24564afef65e Mon Sep 17 00:00:00 2001 From: Raoul Hecky Date: Mon, 25 Feb 2013 21:32:03 +0100 Subject: [PATCH] Initial single tree commit --- AUTHORS | 1 + COPYING | 674 + ChangeLog | 104 + INSTALL | 370 + Makefile.am | 30 + Makefile.in | 791 + NEWS | 0 README | 12 + README.md | 4 - TODO | 0 aclocal.m4 | 9794 ++++++++ autogen.sh | 10 + autom4te.cache/output.0 | 19716 ++++++++++++++++ autom4te.cache/output.1 | 19712 +++++++++++++++ autom4te.cache/requests | 294 + autom4te.cache/traces.0 | 2631 +++ autom4te.cache/traces.1 | 752 + config.guess | 1530 ++ config.h.in | 133 + config.sub | 1773 ++ configure | 19712 +++++++++++++++ configure.ac | 92 + data/Makefile.am | 3 + data/Makefile.in | 584 + data/themes/Makefile.am | 3 + data/themes/Makefile.in | 584 + data/themes/default/Makefile.am | 895 + data/themes/default/Makefile.in | 1320 ++ data/themes/default/calaos_theme.edc | 156 + data/themes/default/elm/elm_actionbutton.edc | 742 + data/themes/default/elm/elm_button.edc | 776 + data/themes/default/elm/elm_calendar.edc | 454 + data/themes/default/elm/elm_ctxpopup.edc | 428 + .../themes/default/elm/elm_entry_keyboard.edc | 278 + .../elm/elm_genlist_item_browser_album.edc | 926 + .../elm/elm_genlist_item_group_room.edc | 133 + .../elm/elm_genlist_item_internalbool.edc | 552 + .../elm/elm_genlist_item_internalint.edc | 317 + .../elm/elm_genlist_item_internalstring.edc | 227 + .../default/elm/elm_genlist_item_playlist.edc | 186 + .../default/elm/elm_genlist_item_scenario.edc | 160 + .../elm_genlist_item_scenario_schedule.edc | 582 + .../default/elm/elm_genlist_item_simple.edc | 833 + .../default/elm/elm_genlist_item_wianalog.edc | 131 + .../default/elm/elm_genlist_item_witemp.edc | 131 + .../default/elm/elm_genlist_item_woanalog.edc | 183 + .../default/elm/elm_genlist_item_wodali.edc | 292 + .../elm/elm_genlist_item_wodalirvb.edc | 559 + .../elm/elm_genlist_item_wodigital.edc | 185 + .../default/elm/elm_genlist_item_wovolet.edc | 211 + .../elm/elm_genlist_item_wovoletsmart.edc | 513 + data/themes/default/elm/elm_list_base.edc | 803 + .../themes/default/elm/elm_list_home_room.edc | 152 + .../themes/default/elm/elm_list_homeboard.edc | 139 + data/themes/default/elm/elm_pager.edc | 247 + data/themes/default/elm/elm_slider_knob.edc | 430 + data/themes/default/elm/elm_spinner.edc | 83 + .../default/fonts/RepetitionScrolling.ttf | Bin 0 -> 42872 bytes data/themes/default/fonts/Ubuntu-B.ttf | Bin 0 -> 333616 bytes data/themes/default/fonts/Ubuntu-L.ttf | Bin 0 -> 415552 bytes data/themes/default/fonts/Ubuntu-M.ttf | Bin 0 -> 341324 bytes .../default/fonts/calaos_content-bold.ttf | Bin 0 -> 444304 bytes .../default/fonts/calaos_content-oblique.ttf | Bin 0 -> 465900 bytes data/themes/default/fonts/calaos_content.ttf | Bin 0 -> 452076 bytes data/themes/default/fonts/calaos_logo.ttf | Bin 0 -> 35440 bytes data/themes/default/fonts/calaos_text.ttf | Bin 0 -> 26708 bytes .../themes/default/fonts/calaos_text_bold.ttf | Bin 0 -> 21460 bytes .../images/adjust_pattern/big_room_bg.png | Bin 0 -> 10367 bytes .../default/images/adjust_pattern/cover.png | Bin 0 -> 51907 bytes .../images/adjust_pattern/elements.png | Bin 0 -> 285 bytes .../images/adjust_pattern/elements_light.png | Bin 0 -> 6161 bytes .../images/adjust_pattern/elements_track.png | Bin 0 -> 18324 bytes .../images/adjust_pattern/normal_room_bg.png | Bin 0 -> 14261 bytes .../default/images/adjust_pattern/player.png | Bin 0 -> 63179 bytes .../images/adjust_pattern/small_room_bg.png | Bin 0 -> 10398 bytes .../animations/bootsplash_logo/0001.png | Bin 0 -> 274 bytes .../animations/bootsplash_logo/0002.png | Bin 0 -> 395 bytes .../animations/bootsplash_logo/0003.png | Bin 0 -> 692 bytes .../animations/bootsplash_logo/0004.png | Bin 0 -> 767 bytes .../animations/bootsplash_logo/0005.png | Bin 0 -> 880 bytes .../animations/bootsplash_logo/0006.png | Bin 0 -> 980 bytes .../animations/bootsplash_logo/0007.png | Bin 0 -> 1169 bytes .../animations/bootsplash_logo/0008.png | Bin 0 -> 1323 bytes .../animations/bootsplash_logo/0009.png | Bin 0 -> 1564 bytes .../animations/bootsplash_logo/0010.png | Bin 0 -> 1859 bytes .../animations/bootsplash_logo/0011.png | Bin 0 -> 1972 bytes .../animations/bootsplash_logo/0012.png | Bin 0 -> 2237 bytes .../animations/bootsplash_logo/0013.png | Bin 0 -> 2359 bytes .../animations/bootsplash_logo/0014.png | Bin 0 -> 2437 bytes .../animations/bootsplash_logo/0015.png | Bin 0 -> 2488 bytes .../animations/bootsplash_logo/0016.png | Bin 0 -> 2705 bytes .../animations/bootsplash_logo/0017.png | Bin 0 -> 2525 bytes .../animations/bootsplash_logo/0018.png | Bin 0 -> 2404 bytes .../animations/bootsplash_logo/0019.png | Bin 0 -> 2171 bytes .../animations/bootsplash_logo/0020.png | Bin 0 -> 2000 bytes .../animations/bootsplash_logo/0021.png | Bin 0 -> 1927 bytes .../animations/bootsplash_logo/0022.png | Bin 0 -> 1871 bytes .../animations/bootsplash_logo/0023.png | Bin 0 -> 1746 bytes .../animations/bootsplash_logo/0024.png | Bin 0 -> 1857 bytes .../animations/bootsplash_logo/0025.png | Bin 0 -> 1913 bytes .../animations/bootsplash_logo/0026.png | Bin 0 -> 1948 bytes .../animations/bootsplash_logo/0027.png | Bin 0 -> 2072 bytes .../animations/bootsplash_logo/0028.png | Bin 0 -> 2081 bytes .../animations/bootsplash_logo/0029.png | Bin 0 -> 2344 bytes .../animations/bootsplash_logo/0030.png | Bin 0 -> 2466 bytes .../animations/bootsplash_logo/0031.png | Bin 0 -> 2584 bytes .../animations/bootsplash_logo/0032.png | Bin 0 -> 2417 bytes .../animations/bootsplash_logo/0033.png | Bin 0 -> 2534 bytes .../animations/bootsplash_logo/0034.png | Bin 0 -> 2279 bytes .../animations/bootsplash_logo/0035.png | Bin 0 -> 2395 bytes .../animations/bootsplash_logo/0036.png | Bin 0 -> 2544 bytes .../animations/bootsplash_logo/0037.png | Bin 0 -> 2592 bytes .../animations/bootsplash_logo/0038.png | Bin 0 -> 2497 bytes .../animations/bootsplash_logo/0039.png | Bin 0 -> 2448 bytes .../animations/bootsplash_logo/0040.png | Bin 0 -> 2111 bytes .../animations/bootsplash_logo/0041.png | Bin 0 -> 2083 bytes .../animations/bootsplash_logo/0042.png | Bin 0 -> 1950 bytes .../animations/bootsplash_logo/0043.png | Bin 0 -> 1891 bytes .../animations/bootsplash_logo/0044.png | Bin 0 -> 1606 bytes .../animations/bootsplash_logo/0045.png | Bin 0 -> 1474 bytes .../animations/bootsplash_logo/0046.png | Bin 0 -> 1290 bytes .../animations/bootsplash_logo/0047.png | Bin 0 -> 1168 bytes .../animations/bootsplash_logo/0048.png | Bin 0 -> 1103 bytes .../animations/bootsplash_logo/0049.png | Bin 0 -> 1040 bytes .../animations/bootsplash_logo/0050.png | Bin 0 -> 984 bytes .../animations/bootsplash_logo/0051.png | Bin 0 -> 904 bytes .../animations/bootsplash_logo/0052.png | Bin 0 -> 883 bytes .../animations/bootsplash_logo/0053.png | Bin 0 -> 806 bytes .../animations/bootsplash_logo/0054.png | Bin 0 -> 812 bytes .../animations/bootsplash_logo/0055.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0056.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0057.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0058.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0059.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0060.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0061.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0062.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0063.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0064.png | Bin 0 -> 734 bytes .../animations/bootsplash_logo/0065.png | Bin 0 -> 734 bytes .../bootsplash_logo_reflect/reflect_001.png | Bin 0 -> 1954 bytes .../bootsplash_logo_reflect/reflect_002.png | Bin 0 -> 3039 bytes .../bootsplash_logo_reflect/reflect_003.png | Bin 0 -> 2722 bytes .../bootsplash_logo_reflect/reflect_004.png | Bin 0 -> 3821 bytes .../bootsplash_logo_reflect/reflect_005.png | Bin 0 -> 3239 bytes .../bootsplash_logo_reflect/reflect_006.png | Bin 0 -> 2487 bytes .../bootsplash_logo_reflect/reflect_007.png | Bin 0 -> 2361 bytes .../loader_icon_0001.png | Bin 0 -> 240 bytes .../loader_icon_0002.png | Bin 0 -> 302 bytes .../loader_icon_0003.png | Bin 0 -> 302 bytes .../loader_icon_0004.png | Bin 0 -> 302 bytes .../loader_icon_0005.png | Bin 0 -> 303 bytes .../loader_icon_0006.png | Bin 0 -> 303 bytes .../loader_icon_0007.png | Bin 0 -> 303 bytes .../loader_icon_0008.png | Bin 0 -> 322 bytes .../loader_icon_0009.png | Bin 0 -> 323 bytes .../loader_icon_0010.png | Bin 0 -> 322 bytes .../loader_icon_0011.png | Bin 0 -> 323 bytes .../loader_icon_0012.png | Bin 0 -> 323 bytes .../loader_icon_0013.png | Bin 0 -> 323 bytes .../loader_icon_0014.png | Bin 0 -> 327 bytes .../loader_icon_0015.png | Bin 0 -> 329 bytes .../loader_icon_0016.png | Bin 0 -> 328 bytes .../loader_icon_0017.png | Bin 0 -> 351 bytes .../loader_icon_0018.png | Bin 0 -> 348 bytes .../loader_icon_0019.png | Bin 0 -> 365 bytes .../loader_icon_0020.png | Bin 0 -> 281 bytes .../loader_icon_0021.png | Bin 0 -> 283 bytes .../loader_icon_0022.png | Bin 0 -> 283 bytes .../loader_icon_0023.png | Bin 0 -> 282 bytes .../loader_icon_0024.png | Bin 0 -> 283 bytes .../loader_icon_0025.png | Bin 0 -> 274 bytes .../loader_icon_bg.png | Bin 0 -> 240 bytes .../animations/cd_player/cd_player_001.png | Bin 0 -> 22369 bytes .../animations/cd_player/cd_player_002.png | Bin 0 -> 22628 bytes .../animations/cd_player/cd_player_003.png | Bin 0 -> 22314 bytes .../animations/cd_player/cd_player_004.png | Bin 0 -> 22701 bytes .../animations/cd_player/cd_player_005.png | Bin 0 -> 22379 bytes .../animations/cd_player/cd_player_006.png | Bin 0 -> 22484 bytes .../animations/cd_player/cd_player_007.png | Bin 0 -> 22715 bytes .../animations/cd_player/cd_player_008.png | Bin 0 -> 22320 bytes .../animations/cd_player/cd_player_009.png | Bin 0 -> 22583 bytes .../cd_player/menu_media_icon_cd_01.png | Bin 0 -> 10756 bytes .../cd_player/menu_media_icon_cd_02.png | Bin 0 -> 11090 bytes .../cd_player/menu_media_icon_cd_03.png | Bin 0 -> 11116 bytes .../cd_player/menu_media_icon_cd_04.png | Bin 0 -> 11218 bytes .../cd_player/menu_media_icon_cd_05.png | Bin 0 -> 11070 bytes .../cd_player/menu_media_icon_cd_06.png | Bin 0 -> 11164 bytes .../cd_player/menu_media_icon_cd_07.png | Bin 0 -> 11224 bytes .../cd_player/menu_media_icon_cd_08.png | Bin 0 -> 11095 bytes .../cd_player/menu_media_icon_cd_09.png | Bin 0 -> 11154 bytes .../cd_player/mini_cd_player_001.png | Bin 0 -> 9733 bytes .../glowed_556_line/glowed_556_line_final.png | Bin 0 -> 349 bytes .../animations/light_icon/icon_light_001.png | Bin 0 -> 208 bytes .../animations/light_icon/icon_light_002.png | Bin 0 -> 280 bytes .../animations/light_icon/icon_light_003.png | Bin 0 -> 298 bytes .../animations/light_icon/icon_light_004.png | Bin 0 -> 359 bytes .../animations/light_icon/icon_light_005.png | Bin 0 -> 379 bytes .../animations/light_icon/icon_light_006.png | Bin 0 -> 423 bytes .../animations/light_icon/icon_light_007.png | Bin 0 -> 424 bytes .../animations/light_icon/icon_light_008.png | Bin 0 -> 473 bytes .../animations/light_icon/icon_light_009.png | Bin 0 -> 504 bytes .../micro_circular_000.png | Bin 0 -> 613 bytes .../micro_circular_001.png | Bin 0 -> 605 bytes .../micro_circular_002.png | Bin 0 -> 607 bytes .../micro_circular_003.png | Bin 0 -> 597 bytes .../micro_circular_004.png | Bin 0 -> 603 bytes .../micro_circular_005.png | Bin 0 -> 585 bytes .../micro_circular_006.png | Bin 0 -> 585 bytes .../micro_circular_007.png | Bin 0 -> 609 bytes .../micro_circular_008.png | Bin 0 -> 591 bytes .../micro_circular_009.png | Bin 0 -> 584 bytes .../micro_circular_010.png | Bin 0 -> 600 bytes .../micro_circular_011.png | Bin 0 -> 593 bytes .../micro_circular_012.png | Bin 0 -> 595 bytes .../micro_circular_013.png | Bin 0 -> 578 bytes .../micro_circular_014.png | Bin 0 -> 600 bytes .../micro_circular_015.png | Bin 0 -> 616 bytes .../micro_circular_016.png | Bin 0 -> 607 bytes .../micro_circular_017.png | Bin 0 -> 621 bytes .../mini_circular_000.png | Bin 0 -> 741 bytes .../mini_circular_001.png | Bin 0 -> 769 bytes .../mini_circular_002.png | Bin 0 -> 757 bytes .../mini_circular_003.png | Bin 0 -> 736 bytes .../mini_circular_004.png | Bin 0 -> 741 bytes .../mini_circular_005.png | Bin 0 -> 725 bytes .../mini_circular_006.png | Bin 0 -> 771 bytes .../mini_circular_007.png | Bin 0 -> 780 bytes .../mini_circular_008.png | Bin 0 -> 754 bytes .../mini_circular_009.png | Bin 0 -> 755 bytes .../mini_circular_010.png | Bin 0 -> 756 bytes .../mini_circular_011.png | Bin 0 -> 748 bytes .../mini_circular_012.png | Bin 0 -> 747 bytes .../mini_circular_013.png | Bin 0 -> 734 bytes .../mini_circular_014.png | Bin 0 -> 743 bytes .../mini_circular_015.png | Bin 0 -> 776 bytes .../mini_circular_016.png | Bin 0 -> 754 bytes .../mini_circular_017.png | Bin 0 -> 756 bytes .../room_touched/medium_room_touched_001.png | Bin 0 -> 3260 bytes .../room_touched/medium_room_touched_002.png | Bin 0 -> 5048 bytes .../room_touched/medium_room_touched_003.png | Bin 0 -> 6366 bytes .../round_button/round_button_001.png | Bin 0 -> 499 bytes .../round_button/round_button_002.png | Bin 0 -> 641 bytes .../round_button/round_button_003.png | Bin 0 -> 829 bytes .../round_button/round_button_004.png | Bin 0 -> 1012 bytes .../round_button/round_button_005.png | Bin 0 -> 1192 bytes .../round_button/round_button_006.png | Bin 0 -> 1436 bytes .../round_button/round_button_007.png | Bin 0 -> 1761 bytes .../round_button/round_button_008.png | Bin 0 -> 2029 bytes .../round_button/round_button_009.png | Bin 0 -> 2213 bytes .../round_button/round_button_010.png | Bin 0 -> 2527 bytes .../scenario_icon/icon_scenario_001.png | Bin 0 -> 186 bytes .../scenario_icon/icon_scenario_002.png | Bin 0 -> 190 bytes .../scenario_icon/icon_scenario_003.png | Bin 0 -> 193 bytes .../scenario_icon/icon_scenario_004.png | Bin 0 -> 193 bytes .../scenario_icon/icon_scenario_005.png | Bin 0 -> 192 bytes .../scenario_icon/icon_scenario_006.png | Bin 0 -> 194 bytes .../scenario_icon/icon_scenario_007.png | Bin 0 -> 193 bytes .../scenario_icon/icon_scenario_008.png | Bin 0 -> 193 bytes .../scenario_icon/icon_scenario_009.png | Bin 0 -> 195 bytes .../scenario_icon/icon_scenario_010.png | Bin 0 -> 205 bytes .../scenario_icon/icon_scenario_011.png | Bin 0 -> 206 bytes .../scenario_icon/icon_scenario_012.png | Bin 0 -> 206 bytes .../scenario_icon/icon_scenario_013.png | Bin 0 -> 206 bytes .../scenario_icon/icon_scenario_014.png | Bin 0 -> 204 bytes .../scenario_icon/icon_scenario_015.png | Bin 0 -> 204 bytes .../scenario_icon/icon_scenario_016.png | Bin 0 -> 204 bytes .../scenario_icon/icon_scenario_017.png | Bin 0 -> 205 bytes .../scenario_icon/icon_scenario_018.png | Bin 0 -> 206 bytes .../scenario_icon/icon_scenario_019.png | Bin 0 -> 206 bytes .../scenario_icon/icon_scenario_020.png | Bin 0 -> 205 bytes .../scenario_icon/icon_scenario_021.png | Bin 0 -> 205 bytes .../scenario_icon/icon_scenario_022.png | Bin 0 -> 213 bytes .../scenario_icon/icon_scenario_023.png | Bin 0 -> 210 bytes .../scenario_icon/icon_scenario_024.png | Bin 0 -> 213 bytes .../scenario_icon/icon_scenario_025.png | Bin 0 -> 214 bytes .../scenario_icon/icon_scenario_026.png | Bin 0 -> 213 bytes .../scenario_icon/icon_scenario_027.png | Bin 0 -> 210 bytes .../scenario_icon/icon_scenario_028.png | Bin 0 -> 207 bytes .../scenario_icon/icon_scenario_029.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_030.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_031.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_032.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_033.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_034.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_035.png | Bin 0 -> 212 bytes .../scenario_icon/icon_scenario_036.png | Bin 0 -> 220 bytes .../scenario_icon/icon_scenario_037.png | Bin 0 -> 220 bytes .../scenario_icon/icon_scenario_038.png | Bin 0 -> 220 bytes .../scenario_icon/icon_scenario_039.png | Bin 0 -> 222 bytes .../scenario_icon/icon_scenario_040.png | Bin 0 -> 220 bytes .../shutter_icon/icon_shutter_000.png | Bin 0 -> 208 bytes .../shutter_icon/icon_shutter_001.png | Bin 0 -> 221 bytes .../shutter_icon/icon_shutter_002.png | Bin 0 -> 220 bytes .../shutter_icon/icon_shutter_003.png | Bin 0 -> 221 bytes .../shutter_icon/icon_shutter_004.png | Bin 0 -> 221 bytes .../shutter_icon/icon_shutter_005.png | Bin 0 -> 216 bytes .../shutter_icon/icon_shutter_006.png | Bin 0 -> 220 bytes .../shutter_icon/icon_shutter_007.png | Bin 0 -> 222 bytes .../shutter_icon/icon_shutter_008.png | Bin 0 -> 221 bytes .../shutter_icon/icon_shutter_009.png | Bin 0 -> 207 bytes .../animations/tor_icon/icon_tor_000.png | Bin 0 -> 189 bytes .../animations/tor_icon/icon_tor_001.png | Bin 0 -> 322 bytes .../animations/tor_icon/icon_tor_002.png | Bin 0 -> 560 bytes .../animations/tor_icon/icon_tor_003.png | Bin 0 -> 534 bytes .../animations/tor_icon/icon_tor_004.png | Bin 0 -> 476 bytes .../animations/tor_icon/icon_tor_005.png | Bin 0 -> 624 bytes .../animations/tor_icon/icon_tor_006.png | Bin 0 -> 640 bytes .../animations/tor_icon/icon_tor_007.png | Bin 0 -> 356 bytes .../animations/tor_icon/icon_tor_008.png | Bin 0 -> 189 bytes .../volume_knob_leds/volume_led_01.png | Bin 0 -> 761 bytes .../volume_knob_leds/volume_led_02.png | Bin 0 -> 757 bytes .../volume_knob_leds/volume_led_03.png | Bin 0 -> 738 bytes .../volume_knob_leds/volume_led_04.png | Bin 0 -> 742 bytes .../volume_knob_leds/volume_led_05.png | Bin 0 -> 700 bytes .../volume_knob_leds/volume_led_06.png | Bin 0 -> 710 bytes .../volume_knob_leds/volume_led_07.png | Bin 0 -> 665 bytes .../volume_knob_leds/volume_led_08.png | Bin 0 -> 585 bytes .../volume_knob_leds/volume_led_09.png | Bin 0 -> 655 bytes .../volume_knob_leds/volume_led_10.png | Bin 0 -> 705 bytes .../volume_knob_leds/volume_led_11.png | Bin 0 -> 743 bytes .../volume_knob_leds/volume_led_12.png | Bin 0 -> 738 bytes .../volume_knob_leds/volume_led_13.png | Bin 0 -> 755 bytes .../volume_knob_leds/volume_led_14.png | Bin 0 -> 755 bytes .../volume_knob_leds/volume_led_15.png | Bin 0 -> 745 bytes .../volume_knob_leds/volume_led_16.png | Bin 0 -> 716 bytes .../volume_knob_leds/volume_led_17.png | Bin 0 -> 753 bytes .../volume_knob_leds/volume_led_18.png | Bin 0 -> 752 bytes .../volume_knob_leds/volume_led_19.png | Bin 0 -> 733 bytes .../volume_knob_leds/volume_led_20.png | Bin 0 -> 716 bytes .../volume_knob_leds/volume_led_21.png | Bin 0 -> 709 bytes .../volume_knob_leds/volume_led_22.png | Bin 0 -> 681 bytes .../volume_knob_leds/volume_led_23.png | Bin 0 -> 605 bytes .../volume_knob_leds/volume_led_24.png | Bin 0 -> 692 bytes .../volume_knob_leds/volume_led_25.png | Bin 0 -> 726 bytes .../volume_knob_leds/volume_led_26.png | Bin 0 -> 699 bytes .../volume_knob_leds/volume_led_27.png | Bin 0 -> 721 bytes .../volume_knob_leds/volume_led_28.png | Bin 0 -> 748 bytes .../volume_knob_leds/volume_led_29.png | Bin 0 -> 764 bytes .../volume_knob_leds/volume_led_30.png | Bin 0 -> 740 bytes .../volume_knob_leds/volume_led_31.png | Bin 0 -> 751 bytes .../volume_knob_leds/volume_led_32.png | Bin 0 -> 761 bytes .../volume_knob_leds/volume_led_33.png | Bin 0 -> 752 bytes .../volume_knob_leds/volume_led_34.png | Bin 0 -> 723 bytes .../volume_knob_leds/volume_led_35.png | Bin 0 -> 715 bytes .../volume_knob_leds/volume_led_36.png | Bin 0 -> 694 bytes .../volume_knob_leds/volume_led_37.png | Bin 0 -> 694 bytes .../volume_knob_leds/volume_led_38.png | Bin 0 -> 600 bytes .../volume_knob_leds/volume_led_39.png | Bin 0 -> 673 bytes .../volume_knob_leds/volume_led_40.png | Bin 0 -> 695 bytes .../volume_knob_leds/volume_led_41.png | Bin 0 -> 702 bytes .../volume_knob_leds/volume_led_42.png | Bin 0 -> 730 bytes .../volume_knob_leds/volume_led_43.png | Bin 0 -> 746 bytes .../volume_knob_leds/volume_led_44.png | Bin 0 -> 751 bytes .../volume_knob_leds/volume_led_45.png | Bin 0 -> 719 bytes .../images/background/background_bottom.png | Bin 0 -> 23818 bytes .../images/background/background_center.png | Bin 0 -> 97190 bytes .../images/background/background_default.png | Bin 0 -> 101014 bytes .../background/background_default_lighted.png | Bin 0 -> 19325 bytes .../images/background/background_quad.png | Bin 0 -> 595 bytes .../images/background/background_top.png | Bin 0 -> 21972 bytes .../default/images/background/bootsplash.png | Bin 0 -> 92824 bytes .../background/menu_footer_background.png | Bin 0 -> 601 bytes .../menu_footer_background_left.png | Bin 0 -> 312 bytes .../menu_footer_background_right.png | Bin 0 -> 311 bytes .../background/menu_header_background.png | Bin 0 -> 609 bytes .../menu_header_background_version.png | Bin 0 -> 212 bytes .../images/background/module_footer.png | Bin 0 -> 470 bytes .../images/background/module_header.png | Bin 0 -> 470 bytes .../default/images/bootsplash/neonlight.png | Bin 0 -> 453 bytes .../buttons/button_action_actionstop.png | Bin 0 -> 1229 bytes .../buttons/button_action_actionstop_off.png | Bin 0 -> 1386 bytes .../images/buttons/button_action_back.png | Bin 0 -> 972 bytes .../images/buttons/button_action_big.png | Bin 0 -> 726 bytes .../images/buttons/button_action_big_glow.png | Bin 0 -> 774 bytes .../images/buttons/button_action_border.png | Bin 0 -> 520 bytes .../images/buttons/button_action_clavier.png | Bin 0 -> 850 bytes .../images/buttons/button_action_clavier2.png | Bin 0 -> 1293 bytes .../buttons/button_action_clavier_off.png | Bin 0 -> 958 bytes .../images/buttons/button_action_del.png | Bin 0 -> 984 bytes .../images/buttons/button_action_del_off.png | Bin 0 -> 1143 bytes .../images/buttons/button_action_delete.png | Bin 0 -> 1076 bytes .../images/buttons/button_action_down.png | Bin 0 -> 1036 bytes .../images/buttons/button_action_downer.png | Bin 0 -> 1022 bytes .../images/buttons/button_action_edit.png | Bin 0 -> 1156 bytes .../images/buttons/button_action_editor.png | Bin 0 -> 502 bytes .../buttons/button_action_editor_glow.png | Bin 0 -> 1266 bytes .../buttons/button_action_fullscreen.png | Bin 0 -> 1713 bytes .../buttons/button_action_fullscreen_glow.png | Bin 0 -> 2713 bytes .../images/buttons/button_action_glow.png | Bin 0 -> 985 bytes .../buttons/button_action_glow_small.png | Bin 0 -> 1217 bytes .../images/buttons/button_action_home.png | Bin 0 -> 1187 bytes .../images/buttons/button_action_impulse.png | Bin 0 -> 1254 bytes .../buttons/button_action_impulse_down.png | Bin 0 -> 1121 bytes .../buttons/button_action_impulse_glow.png | Bin 0 -> 978 bytes .../buttons/button_action_impulse_up.png | Bin 0 -> 1099 bytes .../images/buttons/button_action_labeled.png | Bin 0 -> 1012 bytes .../buttons/button_action_labeled_glow.png | Bin 0 -> 1121 bytes .../buttons/button_action_labeled_small.png | Bin 0 -> 1018 bytes .../images/buttons/button_action_left.png | Bin 0 -> 1140 bytes .../images/buttons/button_action_less.png | Bin 0 -> 934 bytes .../buttons/button_action_less_vertical.png | Bin 0 -> 587 bytes .../buttons/button_action_light_off.png | Bin 0 -> 975 bytes .../images/buttons/button_action_light_on.png | Bin 0 -> 1212 bytes .../images/buttons/button_action_more.png | Bin 0 -> 984 bytes .../buttons/button_action_more_vertical.png | Bin 0 -> 632 bytes .../images/buttons/button_action_neon.png | Bin 0 -> 695 bytes .../images/buttons/button_action_next.png | Bin 0 -> 1089 bytes .../images/buttons/button_action_off.png | Bin 0 -> 1192 bytes .../images/buttons/button_action_on.png | Bin 0 -> 1250 bytes .../images/buttons/button_action_on_glow.png | Bin 0 -> 981 bytes .../buttons/button_action_pager_next.png | Bin 0 -> 719 bytes .../buttons/button_action_pager_previous.png | Bin 0 -> 728 bytes .../images/buttons/button_action_pattern.png | Bin 0 -> 244 bytes .../images/buttons/button_action_pause.png | Bin 0 -> 953 bytes .../images/buttons/button_action_play.png | Bin 0 -> 1056 bytes .../images/buttons/button_action_plus.png | Bin 0 -> 1146 bytes .../images/buttons/button_action_plus_off.png | Bin 0 -> 1258 bytes .../buttons/button_action_popup_back.png | Bin 0 -> 1663 bytes .../buttons/button_action_popup_back_glow.png | Bin 0 -> 2635 bytes .../buttons/button_action_popup_glow.png | Bin 0 -> 1343 bytes .../buttons/button_action_popup_valid.png | Bin 0 -> 1449 bytes .../images/buttons/button_action_previous.png | Bin 0 -> 1091 bytes .../images/buttons/button_action_quit.png | Bin 0 -> 925 bytes .../images/buttons/button_action_quit_off.png | Bin 0 -> 1045 bytes .../images/buttons/button_action_reboot.png | Bin 0 -> 1261 bytes .../buttons/button_action_reboot_off.png | Bin 0 -> 1428 bytes .../images/buttons/button_action_reload.png | Bin 0 -> 1419 bytes .../images/buttons/button_action_right.png | Bin 0 -> 1119 bytes .../buttons/button_action_rolll_down.png | Bin 0 -> 736 bytes .../images/buttons/button_action_rolll_up.png | Bin 0 -> 725 bytes .../buttons/button_action_scenario_play.png | Bin 0 -> 1056 bytes .../button_action_scenario_play_glow.png | Bin 0 -> 1025 bytes .../buttons/button_action_select_selected.png | Bin 0 -> 1096 bytes .../button_action_select_unselected.png | Bin 0 -> 731 bytes .../images/buttons/button_action_small.png | Bin 0 -> 665 bytes .../buttons/button_action_small_glow.png | Bin 0 -> 757 bytes .../images/buttons/button_action_stop.png | Bin 0 -> 949 bytes .../images/buttons/button_action_sync.png | Bin 0 -> 1448 bytes .../images/buttons/button_action_toggle.png | Bin 0 -> 1174 bytes .../images/buttons/button_action_up.png | Bin 0 -> 1033 bytes .../images/buttons/button_action_upper.png | Bin 0 -> 1016 bytes .../images/buttons/button_action_valid.png | Bin 0 -> 1098 bytes .../buttons/button_action_valid_off.png | Bin 0 -> 1209 bytes .../buttons/button_action_vertical_glow.png | Bin 0 -> 997 bytes .../buttons/button_action_warming_down.png | Bin 0 -> 1011 bytes .../buttons/button_action_warming_up.png | Bin 0 -> 1110 bytes .../buttons/button_action_warming_up_glow.png | Bin 0 -> 899 bytes .../default/images/buttons/button_browser.png | Bin 0 -> 715 bytes .../images/buttons/button_browser_glow.png | Bin 0 -> 721 bytes .../images/buttons/button_configuration.png | Bin 0 -> 4595 bytes .../buttons/button_configuration_bloom.png | Bin 0 -> 9060 bytes .../buttons/button_configuration_glow.png | Bin 0 -> 6374 bytes .../buttons/button_configuration_stop.png | Bin 0 -> 4022 bytes .../buttons/button_configuration_stop_on.png | Bin 0 -> 12501 bytes .../default/images/buttons/button_down.png | Bin 0 -> 604 bytes .../default/images/buttons/button_element.png | Bin 0 -> 515 bytes .../images/buttons/button_element_bevel.png | Bin 0 -> 675 bytes .../images/buttons/button_element_cut.png | Bin 0 -> 513 bytes .../buttons/button_element_cut_glow.png | Bin 0 -> 640 bytes .../images/buttons/button_element_glow.png | Bin 0 -> 646 bytes .../images/buttons/button_element_open.png | Bin 0 -> 728 bytes .../images/buttons/button_feature_big.png | Bin 0 -> 983 bytes .../images/buttons/button_feature_small.png | Bin 0 -> 928 bytes .../images/buttons/button_glow_down.png | Bin 0 -> 1983 bytes .../default/images/buttons/button_glow_up.png | Bin 0 -> 1905 bytes .../default/images/buttons/button_home.png | Bin 0 -> 3709 bytes .../images/buttons/button_home_bloom.png | Bin 0 -> 8782 bytes .../images/buttons/button_home_glow.png | Bin 0 -> 5626 bytes .../images/buttons/button_home_stop.png | Bin 0 -> 3987 bytes .../images/buttons/button_home_stop_on.png | Bin 0 -> 12418 bytes .../default/images/buttons/button_info.png | Bin 0 -> 630 bytes .../images/buttons/button_info_glow.png | Bin 0 -> 642 bytes .../default/images/buttons/button_key_del.png | Bin 0 -> 395 bytes .../images/buttons/button_key_return.png | Bin 0 -> 563 bytes .../images/buttons/button_keyboard.png | Bin 0 -> 423 bytes .../images/buttons/button_keyboard_select.png | Bin 0 -> 381 bytes .../images/buttons/button_list_down.png | Bin 0 -> 1774 bytes .../images/buttons/button_list_down_glow.png | Bin 0 -> 3060 bytes .../default/images/buttons/button_list_up.png | Bin 0 -> 1757 bytes .../images/buttons/button_list_up_glow.png | Bin 0 -> 3069 bytes .../default/images/buttons/button_media.png | Bin 0 -> 3183 bytes .../images/buttons/button_media_bloom.png | Bin 0 -> 7509 bytes .../images/buttons/button_media_glow.png | Bin 0 -> 4439 bytes .../images/buttons/button_media_stop.png | Bin 0 -> 3971 bytes .../images/buttons/button_media_stop_on.png | Bin 0 -> 12462 bytes .../default/images/buttons/button_next.png | Bin 0 -> 4466 bytes .../images/buttons/button_next_glow.png | Bin 0 -> 7200 bytes .../images/buttons/button_next_off.png | Bin 0 -> 4610 bytes .../images/buttons/button_previous.png | Bin 0 -> 4408 bytes .../images/buttons/button_previous_glow.png | Bin 0 -> 7202 bytes .../images/buttons/button_previous_off.png | Bin 0 -> 4671 bytes .../images/buttons/button_rot_centre.png | Bin 0 -> 399 bytes .../images/buttons/button_rot_centre_glow.png | Bin 0 -> 402 bytes .../images/buttons/button_rot_down.png | Bin 0 -> 831 bytes .../images/buttons/button_rot_down_glow.png | Bin 0 -> 839 bytes .../images/buttons/button_rot_left.png | Bin 0 -> 800 bytes .../images/buttons/button_rot_left_glow.png | Bin 0 -> 815 bytes .../images/buttons/button_rot_right.png | Bin 0 -> 811 bytes .../images/buttons/button_rot_right_glow.png | Bin 0 -> 831 bytes .../default/images/buttons/button_rot_up.png | Bin 0 -> 787 bytes .../images/buttons/button_rot_up_glow.png | Bin 0 -> 804 bytes .../images/buttons/button_rot_zoomin.png | Bin 0 -> 1237 bytes .../images/buttons/button_rot_zoomin_glow.png | Bin 0 -> 1264 bytes .../images/buttons/button_rot_zoomout.png | Bin 0 -> 1151 bytes .../buttons/button_rot_zoomout_glow.png | Bin 0 -> 1173 bytes .../images/buttons/button_round_stop.png | Bin 0 -> 5545 bytes .../images/buttons/button_scenarios.png | Bin 0 -> 2713 bytes .../images/buttons/button_scenarios_bloom.png | Bin 0 -> 6913 bytes .../images/buttons/button_scenarios_glow.png | Bin 0 -> 4371 bytes .../images/buttons/button_scenarios_stop.png | Bin 0 -> 4022 bytes .../buttons/button_scenarios_stop_on.png | Bin 0 -> 12466 bytes .../default/images/buttons/button_scroll.png | Bin 0 -> 850 bytes .../images/buttons/button_scroll_glow.png | Bin 0 -> 730 bytes .../images/buttons/button_selected_neon.png | Bin 0 -> 383 bytes .../images/buttons/button_slider_less.png | Bin 0 -> 595 bytes .../images/buttons/button_slider_more.png | Bin 0 -> 636 bytes .../default/images/buttons/button_up.png | Bin 0 -> 552 bytes .../buttons/button_widget_list_begin.png | Bin 0 -> 896 bytes .../images/buttons/button_widget_list_end.png | Bin 0 -> 409 bytes .../buttons/button_widget_list_item.png | Bin 0 -> 899 bytes .../buttons/button_widget_move_down.png | Bin 0 -> 277 bytes .../buttons/button_widget_move_down_big.png | Bin 0 -> 446 bytes .../buttons/button_widget_move_left.png | Bin 0 -> 288 bytes .../buttons/button_widget_move_left_big.png | Bin 0 -> 451 bytes .../buttons/button_widget_move_right.png | Bin 0 -> 280 bytes .../buttons/button_widget_move_right_big.png | Bin 0 -> 445 bytes .../images/buttons/button_widget_move_up.png | Bin 0 -> 275 bytes .../buttons/button_widget_move_up_big.png | Bin 0 -> 436 bytes .../images/buttons/button_widget_resize.png | Bin 0 -> 1482 bytes .../default/images/buttons/menu_item.png | Bin 0 -> 845 bytes .../images/buttons/menu_item_select.png | Bin 0 -> 878 bytes .../images/buttons/menu_item_select2.png | Bin 0 -> 241 bytes .../download_manager/download_arrow.png | Bin 0 -> 1386 bytes .../images/download_manager/download_disk.png | Bin 0 -> 3644 bytes .../images/download_manager/download_fond.png | Bin 0 -> 1203 bytes .../download_manager/download_shadow.png | Bin 0 -> 369 bytes .../default/images/icons/icon_action.png | Bin 0 -> 721 bytes .../default/images/icons/icon_action_blue.png | Bin 0 -> 626 bytes .../images/icons/icon_action_simple.png | Bin 0 -> 585 bytes .../default/images/icons/icon_analog.png | Bin 0 -> 582 bytes .../themes/default/images/icons/icon_bool.png | Bin 0 -> 179 bytes .../default/images/icons/icon_bool_on.png | Bin 0 -> 374 bytes .../images/icons/icon_bool_scenario.png | Bin 0 -> 584 bytes .../default/images/icons/icon_camera.png | Bin 0 -> 659 bytes .../default/images/icons/icon_camera_on.png | Bin 0 -> 687 bytes .../images/icons/icon_camera_simple.png | Bin 0 -> 611 bytes .../images/icons/icon_camera_title.png | Bin 0 -> 661 bytes data/themes/default/images/icons/icon_cd.png | Bin 0 -> 675 bytes .../default/images/icons/icon_cd_glow.png | Bin 0 -> 768 bytes .../default/images/icons/icon_clock.png | Bin 0 -> 532 bytes .../images/icons/icon_config_clock.png | Bin 0 -> 5917 bytes .../default/images/icons/icon_config_fw.png | Bin 0 -> 6722 bytes .../default/images/icons/icon_config_info.png | Bin 0 -> 7863 bytes .../default/images/icons/icon_config_l18n.png | Bin 0 -> 5553 bytes .../images/icons/icon_config_network.png | Bin 0 -> 6570 bytes .../images/icons/icon_config_security.png | Bin 0 -> 14487 bytes .../images/icons/icon_config_terminal.png | Bin 0 -> 3135 bytes .../images/icons/icon_config_veille.png | Bin 0 -> 4051 bytes .../images/icons/icon_config_widget.png | Bin 0 -> 7639 bytes .../default/images/icons/icon_disclosure.png | Bin 0 -> 479 bytes .../themes/default/images/icons/icon_edit.png | Bin 0 -> 578 bytes .../default/images/icons/icon_flickr.png | Bin 0 -> 6883 bytes .../default/images/icons/icon_folder.png | Bin 0 -> 336 bytes .../default/images/icons/icon_groom.png | Bin 0 -> 758 bytes data/themes/default/images/icons/icon_int.png | Bin 0 -> 617 bytes .../default/images/icons/icon_item_lock.png | Bin 0 -> 3345 bytes .../default/images/icons/icon_item_reboot.png | Bin 0 -> 3328 bytes .../images/icons/icon_item_screensaver.png | Bin 0 -> 4028 bytes .../default/images/icons/icon_item_widget.png | Bin 0 -> 5863 bytes .../default/images/icons/icon_light.png | Bin 0 -> 469 bytes .../default/images/icons/icon_light_off.png | Bin 0 -> 293 bytes .../default/images/icons/icon_light_on.png | Bin 0 -> 504 bytes .../images/icons/icon_light_simple.png | Bin 0 -> 581 bytes .../default/images/icons/icon_moins.png | Bin 0 -> 195 bytes .../default/images/icons/icon_music.png | Bin 0 -> 385 bytes .../default/images/icons/icon_myhome.png | Bin 0 -> 908 bytes .../themes/default/images/icons/icon_note.png | Bin 0 -> 365 bytes .../default/images/icons/icon_note_on.png | Bin 0 -> 389 bytes .../themes/default/images/icons/icon_play.png | Bin 0 -> 361 bytes .../default/images/icons/icon_play_simple.png | Bin 0 -> 420 bytes .../default/images/icons/icon_player.png | Bin 0 -> 393 bytes .../default/images/icons/icon_playlist.png | Bin 0 -> 541 bytes .../themes/default/images/icons/icon_plus.png | Bin 0 -> 270 bytes .../default/images/icons/icon_radio.png | Bin 0 -> 580 bytes .../themes/default/images/icons/icon_room.png | Bin 0 -> 648 bytes .../default/images/icons/icon_room_on.png | Bin 0 -> 709 bytes .../images/icons/icon_scenario_big.png | Bin 0 -> 270 bytes .../images/icons/icon_scenario_small.png | Bin 0 -> 220 bytes .../default/images/icons/icon_search.png | Bin 0 -> 563 bytes .../images/icons/icon_select_simple.png | Bin 0 -> 526 bytes .../default/images/icons/icon_shutter.png | Bin 0 -> 242 bytes .../default/images/icons/icon_shutter_on.png | Bin 0 -> 207 bytes .../default/images/icons/icon_sound.png | Bin 0 -> 581 bytes .../default/images/icons/icon_stop_simple.png | Bin 0 -> 293 bytes .../default/images/icons/icon_string.png | Bin 0 -> 443 bytes .../themes/default/images/icons/icon_temp.png | Bin 0 -> 394 bytes data/themes/default/images/icons/icon_tor.png | Bin 0 -> 397 bytes .../default/images/icons/icon_tor_on.png | Bin 0 -> 560 bytes .../default/images/icons/icon_trash.png | Bin 0 -> 628 bytes .../default/images/icons/icon_warming.png | Bin 0 -> 251 bytes .../images/icons/icon_warming_down.png | Bin 0 -> 219 bytes .../default/images/icons/icon_warming_up.png | Bin 0 -> 228 bytes .../images/icons/icon_widget_unknown.png | Bin 0 -> 5245 bytes data/themes/default/images/logo/bloom.png | Bin 0 -> 18634 bytes .../default/images/logo/calaos_about_logo.png | Bin 0 -> 3423 bytes data/themes/default/images/logo/final.png | Bin 0 -> 714 bytes .../default/images/logo/logo_mirror.png | Bin 0 -> 736 bytes .../default/images/logo/logo_tittle.png | Bin 0 -> 473 bytes data/themes/default/images/logo/menu_logo.png | Bin 0 -> 348 bytes data/themes/default/images/logo/shadow.png | Bin 0 -> 8518 bytes .../default/images/parts/album_back.png | Bin 0 -> 1054 bytes .../default/images/parts/album_cover.png | Bin 0 -> 23565 bytes .../images/parts/browser_list_decoration.png | Bin 0 -> 3186 bytes .../default/images/parts/calendar_back.png | Bin 0 -> 1067 bytes .../default/images/parts/calendar_header.png | Bin 0 -> 682 bytes .../default/images/parts/calendar_holiday.png | Bin 0 -> 244 bytes .../default/images/parts/calendar_ring.png | Bin 0 -> 552 bytes .../default/images/parts/calendar_select.png | Bin 0 -> 1669 bytes .../images/parts/camera_big_border.png | Bin 0 -> 3954 bytes .../default/images/parts/camera_border.png | Bin 0 -> 2101 bytes .../images/parts/camera_medium_border.png | Bin 0 -> 2788 bytes .../default/images/parts/camera_mire.png | Bin 0 -> 20189 bytes .../default/images/parts/camera_nocam.png | Bin 0 -> 5089 bytes .../default/images/parts/camera_reflect.png | Bin 0 -> 1169 bytes .../default/images/parts/config_item.png | Bin 0 -> 809 bytes .../images/parts/config_item_select.png | Bin 0 -> 829 bytes .../default/images/parts/controls_bg.png | Bin 0 -> 1737 bytes .../default/images/parts/controls_sep.png | Bin 0 -> 171 bytes .../default/images/parts/cover_border.png | Bin 0 -> 184 bytes .../images/parts/cover_loading_border.png | Bin 0 -> 215 bytes data/themes/default/images/parts/cursor.png | Bin 0 -> 600 bytes .../images/parts/dialog_background.png | Bin 0 -> 83753 bytes .../default/images/parts/dialog_lines.png | Bin 0 -> 10797 bytes .../default/images/parts/dialog_neon.png | Bin 0 -> 2784 bytes .../default/images/parts/display_border.png | Bin 0 -> 12471 bytes .../default/images/parts/display_border2.png | Bin 0 -> 392 bytes .../default/images/parts/footer_kevlar.png | Bin 0 -> 2654 bytes .../default/images/parts/footer_shadow.png | Bin 0 -> 380 bytes data/themes/default/images/parts/glow.png | Bin 0 -> 644 bytes .../images/parts/imageviewer_footer.png | Bin 0 -> 4511 bytes .../default/images/parts/indicator_glow.png | Bin 0 -> 466 bytes .../parts/keyboard_agenda_background.png | Bin 0 -> 74129 bytes .../images/parts/keyboard_background.png | Bin 0 -> 76882 bytes .../default/images/parts/keyboard_cursor.png | Bin 0 -> 640 bytes .../images/parts/keyboard_key_glow.png | Bin 0 -> 5701 bytes .../images/parts/keyboard_key_selected.png | Bin 0 -> 1372 bytes .../default/images/parts/keyboard_lines.png | Bin 0 -> 12892 bytes .../parts/keyboard_multiline_background.png | Bin 0 -> 78227 bytes .../images/parts/keyboard_select_bar_left.png | Bin 0 -> 330 bytes .../parts/keyboard_select_bar_right.png | Bin 0 -> 351 bytes .../parts/keyboard_select_separator.png | Bin 0 -> 193 bytes .../images/parts/list_message_border.png | Bin 0 -> 428 bytes .../default/images/parts/loading_bar.png | Bin 0 -> 411 bytes .../default/images/parts/loading_bg.png | Bin 0 -> 14130 bytes .../default/images/parts/loading_top.png | Bin 0 -> 11648 bytes .../parts/medium_list_decoration_camera.png | Bin 0 -> 1674 bytes .../parts/medium_list_decoration_left.png | Bin 0 -> 1716 bytes .../parts/medium_list_decoration_right.png | Bin 0 -> 1493 bytes .../parts/medium_scroll_list_decoration.png | Bin 0 -> 1017 bytes .../themes/default/images/parts/menu_back.png | Bin 0 -> 2607 bytes .../images/parts/menu_buttons_shadow_left.png | Bin 0 -> 192 bytes .../parts/menu_buttons_shadow_right.png | Bin 0 -> 194 bytes .../images/parts/menu_footer_shadow.png | Bin 0 -> 250 bytes .../default/images/parts/menu_glowed_neon.png | Bin 0 -> 466 bytes .../images/parts/menu_header_shadow.png | Bin 0 -> 228 bytes .../parts/menu_media_icon_camera_back.png | Bin 0 -> 14330 bytes .../parts/menu_media_icon_camera_red.png | Bin 0 -> 1779 bytes .../images/parts/menu_media_icon_cd_back.png | Bin 0 -> 4309 bytes .../parts/menu_media_icon_eskiss_back.png | Bin 0 -> 11837 bytes .../images/parts/menu_media_icon_web_back.png | Bin 0 -> 20664 bytes .../default/images/parts/menu_media_item.png | Bin 0 -> 1032 bytes .../images/parts/menu_media_item_glow.png | Bin 0 -> 2214 bytes .../images/parts/menu_media_item_reflect.png | Bin 0 -> 538 bytes .../parts/menu_media_item_separator.png | Bin 0 -> 541 bytes .../images/parts/menu_media_item_shadow.png | Bin 0 -> 1825 bytes .../default/images/parts/middle_skyline.png | Bin 0 -> 562 bytes .../images/parts/middle_skyline_neon.png | Bin 0 -> 396 bytes .../images/parts/module_footer_shadow.png | Bin 0 -> 222 bytes .../images/parts/module_header_shadow.png | Bin 0 -> 227 bytes .../default/images/parts/player_cd_shadow.png | Bin 0 -> 868 bytes .../images/parts/player_cover_back.png | Bin 0 -> 7129 bytes .../images/parts/player_cover_front.png | Bin 0 -> 4650 bytes .../default/images/parts/player_glow.png | Bin 0 -> 19887 bytes .../parts/player_line_decoration_bottom.png | Bin 0 -> 490 bytes .../parts/player_line_decoration_cd.png | Bin 0 -> 569 bytes .../parts/player_line_decoration_left.png | Bin 0 -> 544 bytes .../parts/player_line_decoration_right.png | Bin 0 -> 523 bytes .../parts/player_line_decoration_top.png | Bin 0 -> 493 bytes .../default/images/parts/player_shadow.png | Bin 0 -> 2293 bytes .../images/parts/player_small_cover_back.png | Bin 0 -> 3951 bytes .../images/parts/player_small_cover_front.png | Bin 0 -> 2718 bytes .../images/parts/player_small_shadow.png | Bin 0 -> 1403 bytes .../default/images/parts/popup_arrow_down.png | Bin 0 -> 480 bytes .../default/images/parts/popup_arrow_left.png | Bin 0 -> 522 bytes .../images/parts/popup_arrow_right.png | Bin 0 -> 500 bytes .../default/images/parts/popup_arrow_up.png | Bin 0 -> 462 bytes data/themes/default/images/parts/popup_bg.png | Bin 0 -> 2109 bytes .../default/images/parts/popup_carbon.png | Bin 0 -> 179 bytes .../default/images/parts/rgb_preview.png | Bin 0 -> 650 bytes .../images/parts/scenario_list_decoration.png | Bin 0 -> 570 bytes .../images/parts/scenario_separator.png | Bin 0 -> 1556 bytes .../default/images/parts/selector_off.png | Bin 0 -> 272 bytes .../default/images/parts/selector_on.png | Bin 0 -> 326 bytes .../themes/default/images/parts/separator.png | Bin 0 -> 379 bytes .../default/images/parts/shadow_photo.png | Bin 0 -> 1030 bytes .../images/parts/shutter_arrows_deco.png | Bin 0 -> 470 bytes data/themes/default/images/parts/slider.png | Bin 0 -> 748 bytes .../default/images/parts/slider_blue.png | Bin 0 -> 819 bytes .../default/images/parts/slider_blue_on.png | Bin 0 -> 978 bytes .../default/images/parts/slider_border.png | Bin 0 -> 186 bytes .../images/parts/slider_border_blue.png | Bin 0 -> 185 bytes .../images/parts/slider_border_green.png | Bin 0 -> 185 bytes .../images/parts/slider_border_red.png | Bin 0 -> 185 bytes .../images/parts/slider_border_vertical.png | Bin 0 -> 187 bytes .../default/images/parts/slider_green.png | Bin 0 -> 839 bytes .../default/images/parts/slider_green_on.png | Bin 0 -> 1033 bytes .../themes/default/images/parts/slider_on.png | Bin 0 -> 1294 bytes .../default/images/parts/slider_red.png | Bin 0 -> 840 bytes .../default/images/parts/slider_red_on.png | Bin 0 -> 996 bytes .../default/images/parts/slider_vertical.png | Bin 0 -> 755 bytes .../images/parts/slider_vertical_on.png | Bin 0 -> 1262 bytes .../images/parts/small_list_decoration.png | Bin 0 -> 1301 bytes .../parts/small_list_decoration_left.png | Bin 0 -> 1535 bytes .../parts/small_scroll_list_decoration.png | Bin 0 -> 456 bytes .../images/parts/standard_list_decoration.png | Bin 0 -> 2121 bytes .../parts/standard_list_decoration_bottom.png | Bin 0 -> 1152 bytes .../parts/standard_list_decoration_top.png | Bin 0 -> 1177 bytes .../default/images/parts/top_skyline.png | Bin 0 -> 4003 bytes .../default/images/parts/top_skyline_neon.png | Bin 0 -> 520 bytes .../images/parts/vertical_level_indicator.png | Bin 0 -> 490 bytes .../default/images/parts/volume_knob.png | Bin 0 -> 16375 bytes .../images/parts/volume_knob_ledsoff.png | Bin 0 -> 4066 bytes .../default/images/parts/volume_knob_move.png | Bin 0 -> 28115 bytes .../default/images/parts/window_border.png | Bin 0 -> 1022 bytes .../default/images/parts/window_border2.png | Bin 0 -> 1026 bytes .../default/images/parts/window_shutter.png | Bin 0 -> 301 bytes .../progressbar/progressbar_background.png | Bin 0 -> 1127 bytes .../images/progressbar/progressbar_ligne.png | Bin 0 -> 204 bytes .../images/progressbar/progressbar_niveau.png | Bin 0 -> 374 bytes .../images/rooms/bathroom/bathroom_big.png | Bin 0 -> 65574 bytes .../images/rooms/bathroom/bathroom_medium.png | Bin 0 -> 39224 bytes .../rooms/bathroom/bathroom_medium_bloom.png | Bin 0 -> 29660 bytes .../images/rooms/bathroom/bathroom_small.png | Bin 0 -> 13159 bytes .../default/images/rooms/bathroom_small.png | Bin 0 -> 13159 bytes .../images/rooms/bedroom/bedroom_big.png | Bin 0 -> 65916 bytes .../images/rooms/bedroom/bedroom_medium.png | Bin 0 -> 38380 bytes .../rooms/bedroom/bedroom_medium_bloom.png | Bin 0 -> 33195 bytes .../images/rooms/bedroom/bedroom_small.png | Bin 0 -> 13563 bytes .../default/images/rooms/bedroom_small.png | Bin 0 -> 13563 bytes .../default/images/rooms/big_room_glow.png | Bin 0 -> 22249 bytes .../default/images/rooms/big_room_shadow.png | Bin 0 -> 16489 bytes .../default/images/rooms/big_room_wire.png | Bin 0 -> 4719 bytes .../images/rooms/cellar/cellar_big.png | Bin 0 -> 79478 bytes .../images/rooms/cellar/cellar_medium.png | Bin 0 -> 43840 bytes .../rooms/cellar/cellar_medium_bloom.png | Bin 0 -> 32133 bytes .../images/rooms/cellar/cellar_small.png | Bin 0 -> 14315 bytes .../default/images/rooms/cellar_small.png | Bin 0 -> 14315 bytes .../images/rooms/corridor/corridor_big.png | Bin 0 -> 59365 bytes .../images/rooms/corridor/corridor_medium.png | Bin 0 -> 34903 bytes .../rooms/corridor/corridor_medium_bloom.png | Bin 0 -> 30971 bytes .../images/rooms/corridor/corridor_small.png | Bin 0 -> 12196 bytes .../default/images/rooms/corridor_small.png | Bin 0 -> 12196 bytes .../rooms/diningroom/diningroom_big.png | Bin 0 -> 65460 bytes .../rooms/diningroom/diningroom_medium.png | Bin 0 -> 38263 bytes .../diningroom/diningroom_medium_bloom.png | Bin 0 -> 31915 bytes .../rooms/diningroom/diningroom_small.png | Bin 0 -> 13591 bytes .../default/images/rooms/diningroom_small.png | Bin 0 -> 13591 bytes .../images/rooms/garage/garage_big.png | Bin 0 -> 64575 bytes .../images/rooms/garage/garage_medium.png | Bin 0 -> 38238 bytes .../rooms/garage/garage_medium_bloom.png | Bin 0 -> 32668 bytes .../images/rooms/garage/garage_small.png | Bin 0 -> 13647 bytes .../default/images/rooms/garage_small.png | Bin 0 -> 13647 bytes .../images/rooms/kitchen/kitchen_big.png | Bin 0 -> 66885 bytes .../images/rooms/kitchen/kitchen_medium.png | Bin 0 -> 39069 bytes .../rooms/kitchen/kitchen_medium_bloom.png | Bin 0 -> 32100 bytes .../images/rooms/kitchen/kitchen_small.png | Bin 0 -> 13892 bytes .../images/rooms/lounge/lounge_big.png | Bin 0 -> 66910 bytes .../images/rooms/lounge/lounge_medium.png | Bin 0 -> 39200 bytes .../rooms/lounge/lounge_medium_bloom.png | Bin 0 -> 34972 bytes .../images/rooms/lounge/lounge_small.png | Bin 0 -> 13726 bytes .../default/images/rooms/medium_room_glow.png | Bin 0 -> 3014 bytes .../default/images/rooms/medium_room_neon.png | Bin 0 -> 19200 bytes .../images/rooms/medium_room_shadow.png | Bin 0 -> 2670 bytes .../images/rooms/medium_room_touched.png | Bin 0 -> 6366 bytes .../images/rooms/office/office_big.png | Bin 0 -> 63810 bytes .../images/rooms/office/office_medium.png | Bin 0 -> 37763 bytes .../rooms/office/office_medium_bloom.png | Bin 0 -> 31869 bytes .../images/rooms/office/office_small.png | Bin 0 -> 13500 bytes .../images/rooms/outside/outside_big.png | Bin 0 -> 72070 bytes .../images/rooms/outside/outside_medium.png | Bin 0 -> 40588 bytes .../rooms/outside/outside_medium_bloom.png | Bin 0 -> 31868 bytes .../images/rooms/outside/outside_small.png | Bin 0 -> 13676 bytes .../images/rooms/small_room_shadow.png | Bin 0 -> 1699 bytes .../images/rooms/various/various_big.png | Bin 0 -> 71925 bytes .../images/rooms/various/various_medium.png | Bin 0 -> 41715 bytes .../rooms/various/various_medium_bloom.png | Bin 0 -> 33396 bytes .../images/rooms/various/various_small.png | Bin 0 -> 14420 bytes .../default/images/scenario/wizzard_1.png | Bin 0 -> 495 bytes .../default/images/scenario/wizzard_2.png | Bin 0 -> 957 bytes .../default/images/scenario/wizzard_3.png | Bin 0 -> 1067 bytes .../default/images/scenario/wizzard_4.png | Bin 0 -> 568 bytes .../images/scenario/wizzard_bg_selected.png | Bin 0 -> 393 bytes .../images/scenario/wizzard_header.png | Bin 0 -> 700 bytes .../images/scenario/wizzard_line_selected.png | Bin 0 -> 378 bytes .../default/images/widgets/flake_large.png | Bin 0 -> 361 bytes .../default/images/widgets/flake_medium.png | Bin 0 -> 307 bytes .../default/images/widgets/flake_small.png | Bin 0 -> 243 bytes .../images/widgets/widget_back_edit.png | Bin 0 -> 992 bytes .../images/widgets/widget_container_back.png | Bin 0 -> 4725 bytes .../widgets/widget_container_back_buttons.png | Bin 0 -> 1077 bytes .../images/widgets/xmas_banner_left.png | Bin 0 -> 7943 bytes .../images/widgets/xmas_banner_right.png | Bin 0 -> 8100 bytes .../structure/activity_header_footer.edc | 158 + .../default/structure/activity_loading.edc | 137 + .../default/structure/amplifier_control.edc | 229 + .../default/structure/circular_spinner.edc | 138 + .../structure/element_scenario_home.edc | 246 + data/themes/default/structure/icons.edc | 598 + data/themes/default/structure/images.edc | 713 + .../default/structure/keyboard_macros.edc | 1444 ++ .../default/structure/macro_menu_button.edc | 377 + .../default/structure/macro_round_button.edc | 249 + data/themes/default/structure/main_layout.edc | 187 + data/themes/default/structure/main_menu.edc | 1358 ++ data/themes/default/structure/old_macros.edc | 849 + .../default/structure/page_audio_list.edc | 1760 ++ data/themes/default/structure/page_camera.edc | 1386 ++ .../default/structure/page_config_panel.edc | 34 + .../default/structure/page_edit_scenario.edc | 1070 + data/themes/default/structure/page_home.edc | 1287 + .../default/structure/page_keyboard.edc | 811 + data/themes/default/structure/page_media.edc | 788 + .../default/structure/page_scenarios.edc | 310 + .../default/structure/page_schedule.edc | 172 + data/themes/default/structure/page_web.edc | 557 + .../themes/default/structure/page_widgets.edc | 643 + data/themes/default/structure/paging_view.edc | 107 + data/themes/default/structure/player.edc | 1415 ++ data/themes/default/structure/player_prog.edc | 710 + .../default/structure/popup_actions_pages.edc | 304 + data/themes/default/structure/room_macro.edc | 543 + .../default/structure/room_prog_macro.edc | 454 + data/themes/default/structure/rooms.edc | 161 + .../default/structure/scrolling_text.edc | 449 + data/themes/default/structure/slider.edc | 14 + .../structure/slider_horizontal_macro.edc | 443 + .../structure/slider_vertical_macro.edc | 363 + data/themes/default/structure/styles.edc | 189 + data/themes/default/structure/utils.edc | 77 + depcomp | 688 + install-sh | 527 + ltmain.sh | 9661 ++++++++ m4/libtool.m4 | 8001 +++++++ m4/ltoptions.m4 | 384 + m4/ltsugar.m4 | 123 + m4/ltversion.m4 | 23 + m4/lt~obsolete.m4 | 98 + missing | 331 + src/Makefile.am | 3 + src/Makefile.in | 584 + src/bin/Makefile.am | 3 + src/bin/Makefile.in | 584 + src/bin/calaos_home/ApplicationMain.cpp | 160 + src/bin/calaos_home/ApplicationMain.h | 101 + src/bin/calaos_home/CalaosConnection.cpp | 271 + src/bin/calaos_home/CalaosConnection.h | 110 + src/bin/calaos_home/CalaosDiscover.cpp | 129 + src/bin/calaos_home/CalaosDiscover.h | 65 + src/bin/calaos_home/CalaosListener.cpp | 246 + src/bin/calaos_home/CalaosListener.h | 77 + src/bin/calaos_home/CommonUtils.cpp | 49 + src/bin/calaos_home/CommonUtils.h | 42 + src/bin/calaos_home/EdjeObject.cpp | 263 + src/bin/calaos_home/EdjeObject.h | 133 + src/bin/calaos_home/EvasSmart.cpp | 163 + src/bin/calaos_home/EvasSmart.h | 63 + src/bin/calaos_home/Makefile.am | 199 + src/bin/calaos_home/Makefile.in | 1913 ++ src/bin/calaos_home/Modules.cpp | 207 + src/bin/calaos_home/Modules.h | 107 + .../ActivityAudioListController.cpp | 179 + .../controllers/ActivityAudioListController.h | 62 + .../ActivityCameraListController.cpp | 189 + .../ActivityCameraListController.h | 61 + .../ActivityCameraSelectController.cpp | 66 + .../ActivityCameraSelectController.h | 48 + .../controllers/ActivityConfigController.cpp | 31 + .../controllers/ActivityConfigController.h | 39 + .../controllers/ActivityController.cpp | 74 + .../controllers/ActivityController.h | 66 + .../ActivityEditScenarioController.cpp | 67 + .../ActivityEditScenarioController.h | 48 + .../controllers/ActivityHomeController.cpp | 269 + .../controllers/ActivityHomeController.h | 59 + .../ActivityKeyboardController.cpp | 71 + .../controllers/ActivityKeyboardController.h | 54 + .../controllers/ActivityMediaController.cpp | 124 + .../controllers/ActivityMediaController.h | 55 + .../ActivityMediaMenuController.cpp | 40 + .../controllers/ActivityMediaMenuController.h | 44 + .../ActivityScenariosController.cpp | 101 + .../controllers/ActivityScenariosController.h | 53 + .../ActivityScheduleScenarioController.cpp | 59 + .../ActivityScheduleScenarioController.h | 49 + .../controllers/ActivityWebController.cpp | 40 + .../controllers/ActivityWebController.h | 42 + .../controllers/ActivityWidgetsController.cpp | 65 + .../controllers/ActivityWidgetsController.h | 45 + .../controllers/ApplicationController.cpp | 345 + .../controllers/ApplicationController.h | 106 + src/bin/calaos_home/main.cpp | 43 + src/bin/calaos_home/main_cover.cpp | 243 + src/bin/calaos_home/models/AudioModel.cpp | 963 + src/bin/calaos_home/models/AudioModel.h | 222 + src/bin/calaos_home/models/CalaosModel.cpp | 188 + src/bin/calaos_home/models/CalaosModel.h | 84 + src/bin/calaos_home/models/CameraModel.cpp | 176 + src/bin/calaos_home/models/CameraModel.h | 87 + src/bin/calaos_home/models/RoomModel.cpp | 1577 ++ src/bin/calaos_home/models/RoomModel.h | 289 + src/bin/calaos_home/models/ScenarioModel.cpp | 392 + src/bin/calaos_home/models/ScenarioModel.h | 171 + .../views/ActivityAudioListView.cpp | 801 + .../calaos_home/views/ActivityAudioListView.h | 131 + .../views/ActivityAudioPlayerObject.cpp | 754 + .../views/ActivityAudioPlayerObject.h | 118 + .../views/ActivityCameraListView.cpp | 198 + .../views/ActivityCameraListView.h | 91 + .../views/ActivityCameraSelectView.cpp | 267 + .../views/ActivityCameraSelectView.h | 64 + .../calaos_home/views/ActivityConfigView.cpp | 35 + .../calaos_home/views/ActivityConfigView.h | 39 + .../views/ActivityEditScenarioView.cpp | 691 + .../views/ActivityEditScenarioView.h | 109 + .../calaos_home/views/ActivityHomeView.cpp | 568 + src/bin/calaos_home/views/ActivityHomeView.h | 122 + .../views/ActivityKeyboardView.cpp | 79 + .../calaos_home/views/ActivityKeyboardView.h | 54 + .../views/ActivityMediaMenuView.cpp | 95 + .../calaos_home/views/ActivityMediaMenuView.h | 50 + .../calaos_home/views/ActivityMediaView.cpp | 46 + src/bin/calaos_home/views/ActivityMediaView.h | 51 + .../views/ActivityScenariosView.cpp | 233 + .../calaos_home/views/ActivityScenariosView.h | 61 + .../views/ActivityScheduleScenarioView.cpp | 189 + .../views/ActivityScheduleScenarioView.h | 62 + src/bin/calaos_home/views/ActivityView.cpp | 144 + src/bin/calaos_home/views/ActivityView.h | 71 + src/bin/calaos_home/views/ActivityWebView.cpp | 230 + src/bin/calaos_home/views/ActivityWebView.h | 55 + .../calaos_home/views/ActivityWidgetsView.cpp | 280 + .../calaos_home/views/ActivityWidgetsView.h | 74 + src/bin/calaos_home/views/BaseView.cpp | 41 + src/bin/calaos_home/views/BaseView.h | 61 + .../views/GenlistItems/GenlistItemAlbum.cpp | 143 + .../views/GenlistItems/GenlistItemAlbum.h | 62 + .../GenlistItems/GenlistItemAlbumHeader.cpp | 154 + .../GenlistItems/GenlistItemAlbumHeader.h | 56 + .../views/GenlistItems/GenlistItemArtist.cpp | 115 + .../views/GenlistItems/GenlistItemArtist.h | 58 + .../views/GenlistItems/GenlistItemBase.cpp | 226 + .../views/GenlistItems/GenlistItemBase.h | 92 + .../GenlistItemBrowserPlaylist.cpp | 118 + .../GenlistItems/GenlistItemBrowserPlaylist.h | 56 + .../views/GenlistItems/GenlistItemGenre.cpp | 108 + .../views/GenlistItems/GenlistItemGenre.h | 54 + .../GenlistItems/GenlistItemPlaylist.cpp | 217 + .../views/GenlistItems/GenlistItemPlaylist.h | 53 + .../GenlistItemPlaylistHeader.cpp | 99 + .../GenlistItems/GenlistItemPlaylistHeader.h | 49 + .../views/GenlistItems/GenlistItemRadio.cpp | 96 + .../views/GenlistItems/GenlistItemRadio.h | 51 + .../GenlistItemScenarioAction.cpp | 438 + .../GenlistItems/GenlistItemScenarioAction.h | 89 + .../GenlistItemScenarioHeader.cpp | 52 + .../GenlistItems/GenlistItemScenarioHeader.h | 43 + .../GenlistItemScenarioSchedule.cpp | 263 + .../GenlistItemScenarioSchedule.h | 68 + .../GenlistItemScenarioScheduleTime.cpp | 96 + .../GenlistItemScenarioScheduleTime.h | 45 + .../views/GenlistItems/GenlistItemSimple.cpp | 136 + .../views/GenlistItems/GenlistItemSimple.h | 72 + .../GenlistItems/GenlistItemSimpleHeader.cpp | 37 + .../GenlistItems/GenlistItemSimpleHeader.h | 42 + .../views/GenlistItems/GenlistItemTrack.cpp | 248 + .../views/GenlistItems/GenlistItemTrack.h | 59 + .../views/GenlistItems/GenlistItemYear.cpp | 108 + .../views/GenlistItems/GenlistItemYear.h | 54 + .../views/IO/IOGenlistRoomGroup.cpp | 112 + .../calaos_home/views/IO/IOGenlistRoomGroup.h | 61 + .../views/IO/IOGenlistScenarioHomeView.cpp | 176 + .../views/IO/IOGenlistScenarioHomeView.h | 53 + .../views/IO/IOInternalBoolHomeView.cpp | 136 + .../views/IO/IOInternalBoolHomeView.h | 49 + .../views/IO/IOInternalIntHomeView.cpp | 124 + .../views/IO/IOInternalIntHomeView.h | 49 + .../views/IO/IOInternalStringHomeView.cpp | 111 + .../views/IO/IOInternalStringHomeView.h | 50 + .../views/IO/IOScenarioHomeView.cpp | 91 + .../calaos_home/views/IO/IOScenarioHomeView.h | 46 + .../views/IO/IOWIAnalogHomeView.cpp | 82 + .../calaos_home/views/IO/IOWIAnalogHomeView.h | 46 + .../calaos_home/views/IO/IOWITempHomeView.cpp | 90 + .../calaos_home/views/IO/IOWITempHomeView.h | 46 + .../views/IO/IOWOAnalogHomeView.cpp | 124 + .../calaos_home/views/IO/IOWOAnalogHomeView.h | 49 + .../calaos_home/views/IO/IOWODaliHomeView.cpp | 232 + .../calaos_home/views/IO/IOWODaliHomeView.h | 57 + .../views/IO/IOWODaliRVBHomeView.cpp | 433 + .../views/IO/IOWODaliRVBHomeView.h | 67 + .../views/IO/IOWODigitalHomeView.cpp | 136 + .../views/IO/IOWODigitalHomeView.h | 49 + .../views/IO/IOWOVoletHomeView.cpp | 153 + .../calaos_home/views/IO/IOWOVoletHomeView.h | 50 + .../views/IO/IOWOVoletSmartHomeView.cpp | 265 + .../views/IO/IOWOVoletSmartHomeView.h | 59 + src/bin/calaos_home/views/IOView.cpp | 148 + src/bin/calaos_home/views/IOView.h | 73 + src/bin/calaos_home/views/KeyboardView.cpp | 140 + src/bin/calaos_home/views/KeyboardView.h | 49 + src/bin/calaos_home/views/MainContentView.cpp | 228 + src/bin/calaos_home/views/MainContentView.h | 83 + src/bin/calaos_home/views/MainMenuView.cpp | 222 + src/bin/calaos_home/views/MainMenuView.h | 91 + src/bin/calaos_home/views/PagingView.cpp | 195 + src/bin/calaos_home/views/PagingView.h | 66 + src/bin/calaos_home/views/WebKitError.h | 85 + src/bin/calaos_home/views/Widget.cpp | 404 + src/bin/calaos_home/views/Widget.h | 88 + src/bin/calaos_server/Audio/AVRDenon.cpp | 284 + src/bin/calaos_server/Audio/AVRDenon.h | 53 + src/bin/calaos_server/Audio/AVRManager.cpp | 102 + src/bin/calaos_server/Audio/AVRManager.h | 50 + src/bin/calaos_server/Audio/AVRMarantz.cpp | 291 + src/bin/calaos_server/Audio/AVRMarantz.h | 53 + src/bin/calaos_server/Audio/AVROnkyo.cpp | 378 + src/bin/calaos_server/Audio/AVROnkyo.h | 59 + src/bin/calaos_server/Audio/AVRPioneer.cpp | 370 + src/bin/calaos_server/Audio/AVRPioneer.h | 52 + src/bin/calaos_server/Audio/AVReceiver.cpp | 407 + src/bin/calaos_server/Audio/AVReceiver.h | 175 + src/bin/calaos_server/Audio/AudioDB.cpp | 32 + src/bin/calaos_server/Audio/AudioDB.h | 80 + src/bin/calaos_server/Audio/AudioInput.cpp | 68 + src/bin/calaos_server/Audio/AudioInput.h | 56 + src/bin/calaos_server/Audio/AudioManager.cpp | 69 + src/bin/calaos_server/Audio/AudioManager.h | 56 + src/bin/calaos_server/Audio/AudioOutput.cpp | 128 + src/bin/calaos_server/Audio/AudioOutput.h | 55 + src/bin/calaos_server/Audio/AudioPlayer.cpp | 59 + src/bin/calaos_server/Audio/AudioPlayer.h | 122 + src/bin/calaos_server/Audio/AudioPlayerData.h | 109 + src/bin/calaos_server/Audio/Squeezebox.cpp | 1793 ++ src/bin/calaos_server/Audio/Squeezebox.h | 233 + src/bin/calaos_server/Audio/SqueezeboxDB.cpp | 1077 + src/bin/calaos_server/Audio/SqueezeboxDB.h | 117 + src/bin/calaos_server/Calaos.cpp | 105 + src/bin/calaos_server/Calaos.h | 67 + src/bin/calaos_server/Config.cpp | 374 + src/bin/calaos_server/Config.h | 79 + src/bin/calaos_server/Etage.cpp | 59 + src/bin/calaos_server/Etage.h | 65 + src/bin/calaos_server/IO/IOFactory.cpp | 334 + src/bin/calaos_server/IO/IOFactory.h | 53 + src/bin/calaos_server/IO/InPlageHoraire.cpp | 345 + src/bin/calaos_server/IO/InPlageHoraire.h | 91 + src/bin/calaos_server/IO/InputTime.cpp | 107 + src/bin/calaos_server/IO/InputTime.h | 54 + src/bin/calaos_server/IO/InputTimer.cpp | 162 + src/bin/calaos_server/IO/InputTimer.h | 67 + src/bin/calaos_server/IO/IntValue.cpp | 200 + src/bin/calaos_server/IO/IntValue.h | 81 + src/bin/calaos_server/IO/OWTemp.cpp | 139 + src/bin/calaos_server/IO/OWTemp.h | 54 + src/bin/calaos_server/IO/OutputFake.cpp | 57 + src/bin/calaos_server/IO/OutputFake.h | 46 + src/bin/calaos_server/IO/Scenario.cpp | 78 + src/bin/calaos_server/IO/Scenario.h | 64 + src/bin/calaos_server/IO/WIAnalog.cpp | 153 + src/bin/calaos_server/IO/WIAnalog.h | 67 + src/bin/calaos_server/IO/WIDigitalBP.cpp | 135 + src/bin/calaos_server/IO/WIDigitalBP.h | 62 + src/bin/calaos_server/IO/WIDigitalTriple.cpp | 139 + src/bin/calaos_server/IO/WIDigitalTriple.h | 77 + src/bin/calaos_server/IO/WITemp.cpp | 141 + src/bin/calaos_server/IO/WITemp.h | 62 + src/bin/calaos_server/IO/WOAnalog.cpp | 136 + src/bin/calaos_server/IO/WOAnalog.h | 59 + src/bin/calaos_server/IO/WODali.cpp | 294 + src/bin/calaos_server/IO/WODali.h | 69 + src/bin/calaos_server/IO/WODaliRVB.cpp | 434 + src/bin/calaos_server/IO/WODaliRVB.h | 65 + src/bin/calaos_server/IO/WODigital.cpp | 282 + src/bin/calaos_server/IO/WODigital.h | 78 + src/bin/calaos_server/IO/WOVolet.cpp | 376 + src/bin/calaos_server/IO/WOVolet.h | 75 + src/bin/calaos_server/IO/WOVoletSmart.cpp | 645 + src/bin/calaos_server/IO/WOVoletSmart.h | 86 + src/bin/calaos_server/IO/WagoCtrl.cpp | 243 + src/bin/calaos_server/IO/WagoCtrl.h | 66 + src/bin/calaos_server/IO/WagoMap.cpp | 629 + src/bin/calaos_server/IO/WagoMap.h | 199 + src/bin/calaos_server/IO/X10Output.cpp | 253 + src/bin/calaos_server/IO/X10Output.h | 59 + src/bin/calaos_server/IO/libmbus/mbus.c | 196 + src/bin/calaos_server/IO/libmbus/mbus.h | 133 + src/bin/calaos_server/IO/libmbus/mbus_cmd.c | 529 + src/bin/calaos_server/IO/libmbus/mbus_conf.h | 71 + src/bin/calaos_server/IO/libmbus/mbus_rqst.c | 90 + src/bin/calaos_server/IO/libmbus/mbus_sock.c | 278 + src/bin/calaos_server/IO/sunset.c | 529 + src/bin/calaos_server/IOBase.h | 72 + src/bin/calaos_server/IPCam/Axis.cpp | 218 + src/bin/calaos_server/IPCam/Axis.h | 54 + src/bin/calaos_server/IPCam/CamConnection.cpp | 288 + src/bin/calaos_server/IPCam/CamConnection.h | 68 + src/bin/calaos_server/IPCam/CamInput.cpp | 45 + src/bin/calaos_server/IPCam/CamInput.h | 52 + src/bin/calaos_server/IPCam/CamManager.cpp | 55 + src/bin/calaos_server/IPCam/CamManager.h | 50 + src/bin/calaos_server/IPCam/CamOutput.cpp | 80 + src/bin/calaos_server/IPCam/CamOutput.h | 54 + src/bin/calaos_server/IPCam/CamServer.cpp | 85 + src/bin/calaos_server/IPCam/CamServer.h | 52 + src/bin/calaos_server/IPCam/Gadspot.cpp | 50 + src/bin/calaos_server/IPCam/Gadspot.h | 50 + src/bin/calaos_server/IPCam/IPCam.cpp | 59 + src/bin/calaos_server/IPCam/IPCam.h | 90 + src/bin/calaos_server/IPCam/Planet.cpp | 492 + src/bin/calaos_server/IPCam/Planet.h | 59 + src/bin/calaos_server/IPCam/StandardMjpeg.cpp | 125 + src/bin/calaos_server/IPCam/StandardMjpeg.h | 54 + src/bin/calaos_server/Input.cpp | 60 + src/bin/calaos_server/Input.h | 54 + src/bin/calaos_server/ListeRoom.cpp | 721 + src/bin/calaos_server/ListeRoom.h | 111 + src/bin/calaos_server/ListeRule.cpp | 291 + src/bin/calaos_server/ListeRule.h | 107 + src/bin/calaos_server/Makefile.am | 216 + src/bin/calaos_server/Makefile.in | 1873 ++ src/bin/calaos_server/Output.cpp | 59 + src/bin/calaos_server/Output.h | 56 + src/bin/calaos_server/PollListenner.cpp | 160 + src/bin/calaos_server/PollListenner.h | 87 + src/bin/calaos_server/Room.cpp | 294 + src/bin/calaos_server/Room.h | 77 + src/bin/calaos_server/Rule.cpp | 177 + src/bin/calaos_server/Rule.h | 74 + src/bin/calaos_server/Rules/Action.cpp | 40 + src/bin/calaos_server/Rules/Action.h | 54 + src/bin/calaos_server/Rules/ActionMail.cpp | 170 + src/bin/calaos_server/Rules/ActionMail.h | 55 + src/bin/calaos_server/Rules/ActionScript.cpp | 74 + src/bin/calaos_server/Rules/ActionScript.h | 47 + src/bin/calaos_server/Rules/ActionStd.cpp | 269 + src/bin/calaos_server/Rules/ActionStd.h | 64 + .../calaos_server/Rules/ActionTouchscreen.cpp | 82 + .../calaos_server/Rules/ActionTouchscreen.h | 50 + src/bin/calaos_server/Rules/Condition.cpp | 41 + src/bin/calaos_server/Rules/Condition.h | 54 + .../calaos_server/Rules/ConditionOutput.cpp | 315 + src/bin/calaos_server/Rules/ConditionOutput.h | 66 + .../calaos_server/Rules/ConditionScript.cpp | 96 + src/bin/calaos_server/Rules/ConditionScript.h | 56 + .../calaos_server/Rules/ConditionStart.cpp | 66 + src/bin/calaos_server/Rules/ConditionStart.h | 51 + src/bin/calaos_server/Rules/ConditionStd.cpp | 366 + src/bin/calaos_server/Rules/ConditionStd.h | 72 + src/bin/calaos_server/Rules/RulesFactory.cpp | 102 + src/bin/calaos_server/Rules/RulesFactory.h | 49 + .../calaos_server/Scenario/AutoScenario.cpp | 700 + src/bin/calaos_server/Scenario/AutoScenario.h | 123 + src/bin/calaos_server/Scenario/Scenario.h | 161 + src/bin/calaos_server/Scenario/ScenarioIO.h | 49 + src/bin/calaos_server/Scenario/ScenarioStep.h | 45 + src/bin/calaos_server/Scenario/Scenarios.h | 68 + src/bin/calaos_server/TCPConnection.cpp | 217 + src/bin/calaos_server/TCPConnection.h | 113 + .../TCPProcessor/AudioCommand.cpp | 1202 + .../TCPProcessor/BaseCommand.cpp | 158 + .../TCPProcessor/CameraCommand.cpp | 259 + .../TCPProcessor/HomeCommand.cpp | 481 + .../calaos_server/TCPProcessor/IOCommand.cpp | 974 + .../TCPProcessor/ListenCommand.cpp | 42 + .../TCPProcessor/RulesCommand.cpp | 493 + .../TCPProcessor/ScenarioCommand.cpp | 323 + src/bin/calaos_server/TCPServer.cpp | 180 + src/bin/calaos_server/TCPServer.h | 60 + src/bin/calaos_server/UDPServer.cpp | 218 + src/bin/calaos_server/UDPServer.h | 52 + src/bin/calaos_server/WagoHeartbeat.cpp | 148 + src/bin/calaos_server/WagoHeartbeat.h | 51 + src/bin/calaos_server/config_wago.cpp | 619 + src/bin/calaos_server/main.cpp | 173 + src/bin/calaos_server/test_params.cpp | 43 + src/bin/calaos_server/test_url.cpp | 18 + src/lib/CThread.cpp | 92 + src/lib/CThread.h | 65 + src/lib/CalaosModule.h | 77 + src/lib/CalaosNetwork.cpp | 294 + src/lib/CalaosNetwork.h | 67 + src/lib/Calendar.cpp | 453 + src/lib/Calendar.h | 143 + src/lib/DownloadManager.cpp | 241 + src/lib/DownloadManager.h | 114 + src/lib/EcoreTimer.cpp | 101 + src/lib/EcoreTimer.h | 66 + src/lib/FakeLogging.h | 38 + src/lib/FileDownloader.cpp | 364 + src/lib/FileDownloader.h | 115 + src/lib/Firmwares.cpp | 236 + src/lib/Firmwares.h | 78 + src/lib/IPC.cpp | 237 + src/lib/IPC.h | 123 + src/lib/Jansson_Addition.h | 115 + src/lib/LuaScript/Lunar.h | 214 + src/lib/LuaScript/ScriptBindings.cpp | 300 + src/lib/LuaScript/ScriptBindings.h | 69 + src/lib/LuaScript/ScriptManager.cpp | 196 + src/lib/LuaScript/ScriptManager.h | 86 + src/lib/Makefile.am | 86 + src/lib/Makefile.in | 697 + src/lib/Mutex.cpp | 96 + src/lib/Mutex.h | 60 + src/lib/NTPClock.cpp | 214 + src/lib/NTPClock.h | 124 + src/lib/Params.cpp | 132 + src/lib/Params.h | 57 + src/lib/SendMail.cpp | 224 + src/lib/SendMail.h | 88 + src/lib/SocketListener.cpp | 260 + src/lib/SocketListener.h | 58 + src/lib/SocketManager.cpp | 447 + src/lib/SocketManager.h | 117 + src/lib/TimeRange.cpp | 239 + src/lib/TimeRange.h | 63 + src/lib/TinyXML/tinystr.cpp | 116 + src/lib/TinyXML/tinystr.h | 319 + src/lib/TinyXML/tinyxml.cpp | 1839 ++ src/lib/TinyXML/tinyxml.h | 1796 ++ src/lib/TinyXML/tinyxmlerror.cpp | 52 + src/lib/TinyXML/tinyxmlparser.cpp | 1635 ++ src/lib/Utils.cpp | 625 + src/lib/Utils.h | 398 + src/lib/base64.c | 109 + src/lib/base64.h | 19 + src/lib/kashmir/array.h | 88 + src/lib/kashmir/devrand.h | 45 + src/lib/kashmir/devrandom.h | 45 + src/lib/kashmir/iofwd.h | 68 + src/lib/kashmir/iostate.h | 454 + src/lib/kashmir/randomstream.h | 59 + src/lib/kashmir/unique.h | 39 + src/lib/kashmir/uuid.h | 285 + src/lib/kashmir/winrand.h | 66 + src/lib/kashmir/winrandom.h | 59 + src/lib/sunset.c | 529 + src/lib/tcpsocket.cpp | 603 + src/lib/tcpsocket.h | 111 + src/lib/threadManager.cpp | 79 + src/lib/threadManager.h | 46 + 1262 files changed, 207569 insertions(+), 4 deletions(-) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 Makefile.in create mode 100644 NEWS create mode 100644 README delete mode 100644 README.md create mode 100644 TODO create mode 100644 aclocal.m4 create mode 100755 autogen.sh create mode 100644 autom4te.cache/output.0 create mode 100644 autom4te.cache/output.1 create mode 100644 autom4te.cache/requests create mode 100644 autom4te.cache/traces.0 create mode 100644 autom4te.cache/traces.1 create mode 100755 config.guess create mode 100644 config.h.in create mode 100755 config.sub create mode 100755 configure create mode 100644 configure.ac create mode 100644 data/Makefile.am create mode 100644 data/Makefile.in create mode 100644 data/themes/Makefile.am create mode 100644 data/themes/Makefile.in create mode 100644 data/themes/default/Makefile.am create mode 100644 data/themes/default/Makefile.in create mode 100644 data/themes/default/calaos_theme.edc create mode 100644 data/themes/default/elm/elm_actionbutton.edc create mode 100644 data/themes/default/elm/elm_button.edc create mode 100644 data/themes/default/elm/elm_calendar.edc create mode 100644 data/themes/default/elm/elm_ctxpopup.edc create mode 100644 data/themes/default/elm/elm_entry_keyboard.edc create mode 100644 data/themes/default/elm/elm_genlist_item_browser_album.edc create mode 100644 data/themes/default/elm/elm_genlist_item_group_room.edc create mode 100644 data/themes/default/elm/elm_genlist_item_internalbool.edc create mode 100644 data/themes/default/elm/elm_genlist_item_internalint.edc create mode 100644 data/themes/default/elm/elm_genlist_item_internalstring.edc create mode 100644 data/themes/default/elm/elm_genlist_item_playlist.edc create mode 100644 data/themes/default/elm/elm_genlist_item_scenario.edc create mode 100644 data/themes/default/elm/elm_genlist_item_scenario_schedule.edc create mode 100644 data/themes/default/elm/elm_genlist_item_simple.edc create mode 100644 data/themes/default/elm/elm_genlist_item_wianalog.edc create mode 100644 data/themes/default/elm/elm_genlist_item_witemp.edc create mode 100644 data/themes/default/elm/elm_genlist_item_woanalog.edc create mode 100644 data/themes/default/elm/elm_genlist_item_wodali.edc create mode 100644 data/themes/default/elm/elm_genlist_item_wodalirvb.edc create mode 100644 data/themes/default/elm/elm_genlist_item_wodigital.edc create mode 100644 data/themes/default/elm/elm_genlist_item_wovolet.edc create mode 100644 data/themes/default/elm/elm_genlist_item_wovoletsmart.edc create mode 100644 data/themes/default/elm/elm_list_base.edc create mode 100644 data/themes/default/elm/elm_list_home_room.edc create mode 100644 data/themes/default/elm/elm_list_homeboard.edc create mode 100644 data/themes/default/elm/elm_pager.edc create mode 100644 data/themes/default/elm/elm_slider_knob.edc create mode 100644 data/themes/default/elm/elm_spinner.edc create mode 100644 data/themes/default/fonts/RepetitionScrolling.ttf create mode 100644 data/themes/default/fonts/Ubuntu-B.ttf create mode 100644 data/themes/default/fonts/Ubuntu-L.ttf create mode 100644 data/themes/default/fonts/Ubuntu-M.ttf create mode 100644 data/themes/default/fonts/calaos_content-bold.ttf create mode 100644 data/themes/default/fonts/calaos_content-oblique.ttf create mode 100644 data/themes/default/fonts/calaos_content.ttf create mode 100644 data/themes/default/fonts/calaos_logo.ttf create mode 100644 data/themes/default/fonts/calaos_text.ttf create mode 100644 data/themes/default/fonts/calaos_text_bold.ttf create mode 100644 data/themes/default/images/adjust_pattern/big_room_bg.png create mode 100644 data/themes/default/images/adjust_pattern/cover.png create mode 100644 data/themes/default/images/adjust_pattern/elements.png create mode 100644 data/themes/default/images/adjust_pattern/elements_light.png create mode 100644 data/themes/default/images/adjust_pattern/elements_track.png create mode 100644 data/themes/default/images/adjust_pattern/normal_room_bg.png create mode 100644 data/themes/default/images/adjust_pattern/player.png create mode 100644 data/themes/default/images/adjust_pattern/small_room_bg.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0001.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0002.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0003.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0004.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0005.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0006.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0007.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0008.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0009.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0010.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0011.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0012.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0013.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0014.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0015.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0016.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0017.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0018.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0019.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0020.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0021.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0022.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0023.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0024.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0025.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0026.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0027.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0028.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0029.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0030.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0031.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0032.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0033.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0034.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0035.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0036.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0037.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0038.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0039.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0040.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0041.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0042.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0043.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0044.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0045.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0046.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0047.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0048.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0049.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0050.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0051.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0052.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0053.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0054.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0055.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0056.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0057.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0058.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0059.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0060.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0061.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0062.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0063.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0064.png create mode 100644 data/themes/default/images/animations/bootsplash_logo/0065.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_001.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_002.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_003.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_004.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_005.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_006.png create mode 100644 data/themes/default/images/animations/bootsplash_logo_reflect/reflect_007.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0001.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0002.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0003.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0004.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0005.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0006.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0007.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0008.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0009.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0010.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0011.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0012.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0013.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0014.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0015.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0016.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0017.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0018.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0019.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0020.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0021.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0022.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0023.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0024.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0025.png create mode 100644 data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_bg.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_001.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_002.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_003.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_004.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_005.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_006.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_007.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_008.png create mode 100644 data/themes/default/images/animations/cd_player/cd_player_009.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_01.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_02.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_03.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_04.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_05.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_06.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_07.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_08.png create mode 100644 data/themes/default/images/animations/cd_player/menu_media_icon_cd_09.png create mode 100644 data/themes/default/images/animations/cd_player/mini_cd_player_001.png create mode 100644 data/themes/default/images/animations/glowed_556_line/glowed_556_line_final.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_001.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_002.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_003.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_004.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_005.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_006.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_007.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_008.png create mode 100644 data/themes/default/images/animations/light_icon/icon_light_009.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_000.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_001.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_002.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_003.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_004.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_005.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_006.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_007.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_008.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_009.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_010.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_011.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_012.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_013.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_014.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_015.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_016.png create mode 100644 data/themes/default/images/animations/micro_circular_cooldown/micro_circular_017.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_000.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_001.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_002.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_003.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_004.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_005.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_006.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_007.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_008.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_009.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_010.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_011.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_012.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_013.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_014.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_015.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_016.png create mode 100644 data/themes/default/images/animations/mini_circular_cooldown/mini_circular_017.png create mode 100644 data/themes/default/images/animations/room_touched/medium_room_touched_001.png create mode 100644 data/themes/default/images/animations/room_touched/medium_room_touched_002.png create mode 100644 data/themes/default/images/animations/room_touched/medium_room_touched_003.png create mode 100644 data/themes/default/images/animations/round_button/round_button_001.png create mode 100644 data/themes/default/images/animations/round_button/round_button_002.png create mode 100644 data/themes/default/images/animations/round_button/round_button_003.png create mode 100644 data/themes/default/images/animations/round_button/round_button_004.png create mode 100644 data/themes/default/images/animations/round_button/round_button_005.png create mode 100644 data/themes/default/images/animations/round_button/round_button_006.png create mode 100644 data/themes/default/images/animations/round_button/round_button_007.png create mode 100644 data/themes/default/images/animations/round_button/round_button_008.png create mode 100644 data/themes/default/images/animations/round_button/round_button_009.png create mode 100644 data/themes/default/images/animations/round_button/round_button_010.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_001.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_002.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_003.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_004.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_005.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_006.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_007.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_008.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_009.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_010.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_011.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_012.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_013.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_014.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_015.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_016.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_017.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_018.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_019.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_020.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_021.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_022.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_023.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_024.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_025.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_026.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_027.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_028.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_029.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_030.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_031.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_032.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_033.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_034.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_035.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_036.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_037.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_038.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_039.png create mode 100644 data/themes/default/images/animations/scenario_icon/icon_scenario_040.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_000.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_001.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_002.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_003.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_004.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_005.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_006.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_007.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_008.png create mode 100644 data/themes/default/images/animations/shutter_icon/icon_shutter_009.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_000.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_001.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_002.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_003.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_004.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_005.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_006.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_007.png create mode 100644 data/themes/default/images/animations/tor_icon/icon_tor_008.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_01.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_02.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_03.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_04.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_05.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_06.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_07.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_08.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_09.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_10.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_11.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_12.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_13.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_14.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_15.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_16.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_17.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_18.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_19.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_20.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_21.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_22.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_23.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_24.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_25.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_26.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_27.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_28.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_29.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_30.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_31.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_32.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_33.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_34.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_35.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_36.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_37.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_38.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_39.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_40.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_41.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_42.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_43.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_44.png create mode 100644 data/themes/default/images/animations/volume_knob_leds/volume_led_45.png create mode 100644 data/themes/default/images/background/background_bottom.png create mode 100644 data/themes/default/images/background/background_center.png create mode 100644 data/themes/default/images/background/background_default.png create mode 100644 data/themes/default/images/background/background_default_lighted.png create mode 100644 data/themes/default/images/background/background_quad.png create mode 100644 data/themes/default/images/background/background_top.png create mode 100644 data/themes/default/images/background/bootsplash.png create mode 100644 data/themes/default/images/background/menu_footer_background.png create mode 100644 data/themes/default/images/background/menu_footer_background_left.png create mode 100644 data/themes/default/images/background/menu_footer_background_right.png create mode 100644 data/themes/default/images/background/menu_header_background.png create mode 100644 data/themes/default/images/background/menu_header_background_version.png create mode 100644 data/themes/default/images/background/module_footer.png create mode 100644 data/themes/default/images/background/module_header.png create mode 100644 data/themes/default/images/bootsplash/neonlight.png create mode 100644 data/themes/default/images/buttons/button_action_actionstop.png create mode 100644 data/themes/default/images/buttons/button_action_actionstop_off.png create mode 100644 data/themes/default/images/buttons/button_action_back.png create mode 100644 data/themes/default/images/buttons/button_action_big.png create mode 100644 data/themes/default/images/buttons/button_action_big_glow.png create mode 100644 data/themes/default/images/buttons/button_action_border.png create mode 100644 data/themes/default/images/buttons/button_action_clavier.png create mode 100644 data/themes/default/images/buttons/button_action_clavier2.png create mode 100644 data/themes/default/images/buttons/button_action_clavier_off.png create mode 100644 data/themes/default/images/buttons/button_action_del.png create mode 100644 data/themes/default/images/buttons/button_action_del_off.png create mode 100644 data/themes/default/images/buttons/button_action_delete.png create mode 100644 data/themes/default/images/buttons/button_action_down.png create mode 100644 data/themes/default/images/buttons/button_action_downer.png create mode 100644 data/themes/default/images/buttons/button_action_edit.png create mode 100644 data/themes/default/images/buttons/button_action_editor.png create mode 100644 data/themes/default/images/buttons/button_action_editor_glow.png create mode 100644 data/themes/default/images/buttons/button_action_fullscreen.png create mode 100644 data/themes/default/images/buttons/button_action_fullscreen_glow.png create mode 100644 data/themes/default/images/buttons/button_action_glow.png create mode 100644 data/themes/default/images/buttons/button_action_glow_small.png create mode 100644 data/themes/default/images/buttons/button_action_home.png create mode 100644 data/themes/default/images/buttons/button_action_impulse.png create mode 100644 data/themes/default/images/buttons/button_action_impulse_down.png create mode 100644 data/themes/default/images/buttons/button_action_impulse_glow.png create mode 100644 data/themes/default/images/buttons/button_action_impulse_up.png create mode 100644 data/themes/default/images/buttons/button_action_labeled.png create mode 100644 data/themes/default/images/buttons/button_action_labeled_glow.png create mode 100644 data/themes/default/images/buttons/button_action_labeled_small.png create mode 100644 data/themes/default/images/buttons/button_action_left.png create mode 100644 data/themes/default/images/buttons/button_action_less.png create mode 100644 data/themes/default/images/buttons/button_action_less_vertical.png create mode 100644 data/themes/default/images/buttons/button_action_light_off.png create mode 100644 data/themes/default/images/buttons/button_action_light_on.png create mode 100644 data/themes/default/images/buttons/button_action_more.png create mode 100644 data/themes/default/images/buttons/button_action_more_vertical.png create mode 100644 data/themes/default/images/buttons/button_action_neon.png create mode 100644 data/themes/default/images/buttons/button_action_next.png create mode 100644 data/themes/default/images/buttons/button_action_off.png create mode 100644 data/themes/default/images/buttons/button_action_on.png create mode 100644 data/themes/default/images/buttons/button_action_on_glow.png create mode 100644 data/themes/default/images/buttons/button_action_pager_next.png create mode 100644 data/themes/default/images/buttons/button_action_pager_previous.png create mode 100644 data/themes/default/images/buttons/button_action_pattern.png create mode 100644 data/themes/default/images/buttons/button_action_pause.png create mode 100644 data/themes/default/images/buttons/button_action_play.png create mode 100644 data/themes/default/images/buttons/button_action_plus.png create mode 100644 data/themes/default/images/buttons/button_action_plus_off.png create mode 100644 data/themes/default/images/buttons/button_action_popup_back.png create mode 100644 data/themes/default/images/buttons/button_action_popup_back_glow.png create mode 100644 data/themes/default/images/buttons/button_action_popup_glow.png create mode 100644 data/themes/default/images/buttons/button_action_popup_valid.png create mode 100644 data/themes/default/images/buttons/button_action_previous.png create mode 100644 data/themes/default/images/buttons/button_action_quit.png create mode 100644 data/themes/default/images/buttons/button_action_quit_off.png create mode 100644 data/themes/default/images/buttons/button_action_reboot.png create mode 100644 data/themes/default/images/buttons/button_action_reboot_off.png create mode 100644 data/themes/default/images/buttons/button_action_reload.png create mode 100644 data/themes/default/images/buttons/button_action_right.png create mode 100644 data/themes/default/images/buttons/button_action_rolll_down.png create mode 100644 data/themes/default/images/buttons/button_action_rolll_up.png create mode 100644 data/themes/default/images/buttons/button_action_scenario_play.png create mode 100644 data/themes/default/images/buttons/button_action_scenario_play_glow.png create mode 100644 data/themes/default/images/buttons/button_action_select_selected.png create mode 100644 data/themes/default/images/buttons/button_action_select_unselected.png create mode 100644 data/themes/default/images/buttons/button_action_small.png create mode 100644 data/themes/default/images/buttons/button_action_small_glow.png create mode 100644 data/themes/default/images/buttons/button_action_stop.png create mode 100644 data/themes/default/images/buttons/button_action_sync.png create mode 100644 data/themes/default/images/buttons/button_action_toggle.png create mode 100644 data/themes/default/images/buttons/button_action_up.png create mode 100644 data/themes/default/images/buttons/button_action_upper.png create mode 100644 data/themes/default/images/buttons/button_action_valid.png create mode 100644 data/themes/default/images/buttons/button_action_valid_off.png create mode 100644 data/themes/default/images/buttons/button_action_vertical_glow.png create mode 100644 data/themes/default/images/buttons/button_action_warming_down.png create mode 100644 data/themes/default/images/buttons/button_action_warming_up.png create mode 100644 data/themes/default/images/buttons/button_action_warming_up_glow.png create mode 100644 data/themes/default/images/buttons/button_browser.png create mode 100644 data/themes/default/images/buttons/button_browser_glow.png create mode 100644 data/themes/default/images/buttons/button_configuration.png create mode 100644 data/themes/default/images/buttons/button_configuration_bloom.png create mode 100644 data/themes/default/images/buttons/button_configuration_glow.png create mode 100644 data/themes/default/images/buttons/button_configuration_stop.png create mode 100644 data/themes/default/images/buttons/button_configuration_stop_on.png create mode 100644 data/themes/default/images/buttons/button_down.png create mode 100644 data/themes/default/images/buttons/button_element.png create mode 100644 data/themes/default/images/buttons/button_element_bevel.png create mode 100644 data/themes/default/images/buttons/button_element_cut.png create mode 100644 data/themes/default/images/buttons/button_element_cut_glow.png create mode 100644 data/themes/default/images/buttons/button_element_glow.png create mode 100644 data/themes/default/images/buttons/button_element_open.png create mode 100644 data/themes/default/images/buttons/button_feature_big.png create mode 100644 data/themes/default/images/buttons/button_feature_small.png create mode 100644 data/themes/default/images/buttons/button_glow_down.png create mode 100644 data/themes/default/images/buttons/button_glow_up.png create mode 100644 data/themes/default/images/buttons/button_home.png create mode 100644 data/themes/default/images/buttons/button_home_bloom.png create mode 100644 data/themes/default/images/buttons/button_home_glow.png create mode 100644 data/themes/default/images/buttons/button_home_stop.png create mode 100644 data/themes/default/images/buttons/button_home_stop_on.png create mode 100644 data/themes/default/images/buttons/button_info.png create mode 100644 data/themes/default/images/buttons/button_info_glow.png create mode 100644 data/themes/default/images/buttons/button_key_del.png create mode 100644 data/themes/default/images/buttons/button_key_return.png create mode 100644 data/themes/default/images/buttons/button_keyboard.png create mode 100644 data/themes/default/images/buttons/button_keyboard_select.png create mode 100644 data/themes/default/images/buttons/button_list_down.png create mode 100644 data/themes/default/images/buttons/button_list_down_glow.png create mode 100644 data/themes/default/images/buttons/button_list_up.png create mode 100644 data/themes/default/images/buttons/button_list_up_glow.png create mode 100644 data/themes/default/images/buttons/button_media.png create mode 100644 data/themes/default/images/buttons/button_media_bloom.png create mode 100644 data/themes/default/images/buttons/button_media_glow.png create mode 100644 data/themes/default/images/buttons/button_media_stop.png create mode 100644 data/themes/default/images/buttons/button_media_stop_on.png create mode 100644 data/themes/default/images/buttons/button_next.png create mode 100644 data/themes/default/images/buttons/button_next_glow.png create mode 100644 data/themes/default/images/buttons/button_next_off.png create mode 100644 data/themes/default/images/buttons/button_previous.png create mode 100644 data/themes/default/images/buttons/button_previous_glow.png create mode 100644 data/themes/default/images/buttons/button_previous_off.png create mode 100644 data/themes/default/images/buttons/button_rot_centre.png create mode 100644 data/themes/default/images/buttons/button_rot_centre_glow.png create mode 100644 data/themes/default/images/buttons/button_rot_down.png create mode 100644 data/themes/default/images/buttons/button_rot_down_glow.png create mode 100644 data/themes/default/images/buttons/button_rot_left.png create mode 100644 data/themes/default/images/buttons/button_rot_left_glow.png create mode 100644 data/themes/default/images/buttons/button_rot_right.png create mode 100644 data/themes/default/images/buttons/button_rot_right_glow.png create mode 100644 data/themes/default/images/buttons/button_rot_up.png create mode 100644 data/themes/default/images/buttons/button_rot_up_glow.png create mode 100644 data/themes/default/images/buttons/button_rot_zoomin.png create mode 100644 data/themes/default/images/buttons/button_rot_zoomin_glow.png create mode 100644 data/themes/default/images/buttons/button_rot_zoomout.png create mode 100644 data/themes/default/images/buttons/button_rot_zoomout_glow.png create mode 100644 data/themes/default/images/buttons/button_round_stop.png create mode 100644 data/themes/default/images/buttons/button_scenarios.png create mode 100644 data/themes/default/images/buttons/button_scenarios_bloom.png create mode 100644 data/themes/default/images/buttons/button_scenarios_glow.png create mode 100644 data/themes/default/images/buttons/button_scenarios_stop.png create mode 100644 data/themes/default/images/buttons/button_scenarios_stop_on.png create mode 100644 data/themes/default/images/buttons/button_scroll.png create mode 100644 data/themes/default/images/buttons/button_scroll_glow.png create mode 100644 data/themes/default/images/buttons/button_selected_neon.png create mode 100644 data/themes/default/images/buttons/button_slider_less.png create mode 100644 data/themes/default/images/buttons/button_slider_more.png create mode 100644 data/themes/default/images/buttons/button_up.png create mode 100644 data/themes/default/images/buttons/button_widget_list_begin.png create mode 100644 data/themes/default/images/buttons/button_widget_list_end.png create mode 100644 data/themes/default/images/buttons/button_widget_list_item.png create mode 100644 data/themes/default/images/buttons/button_widget_move_down.png create mode 100644 data/themes/default/images/buttons/button_widget_move_down_big.png create mode 100644 data/themes/default/images/buttons/button_widget_move_left.png create mode 100644 data/themes/default/images/buttons/button_widget_move_left_big.png create mode 100644 data/themes/default/images/buttons/button_widget_move_right.png create mode 100644 data/themes/default/images/buttons/button_widget_move_right_big.png create mode 100644 data/themes/default/images/buttons/button_widget_move_up.png create mode 100644 data/themes/default/images/buttons/button_widget_move_up_big.png create mode 100644 data/themes/default/images/buttons/button_widget_resize.png create mode 100644 data/themes/default/images/buttons/menu_item.png create mode 100644 data/themes/default/images/buttons/menu_item_select.png create mode 100644 data/themes/default/images/buttons/menu_item_select2.png create mode 100644 data/themes/default/images/download_manager/download_arrow.png create mode 100644 data/themes/default/images/download_manager/download_disk.png create mode 100644 data/themes/default/images/download_manager/download_fond.png create mode 100644 data/themes/default/images/download_manager/download_shadow.png create mode 100644 data/themes/default/images/icons/icon_action.png create mode 100644 data/themes/default/images/icons/icon_action_blue.png create mode 100644 data/themes/default/images/icons/icon_action_simple.png create mode 100644 data/themes/default/images/icons/icon_analog.png create mode 100644 data/themes/default/images/icons/icon_bool.png create mode 100644 data/themes/default/images/icons/icon_bool_on.png create mode 100644 data/themes/default/images/icons/icon_bool_scenario.png create mode 100644 data/themes/default/images/icons/icon_camera.png create mode 100644 data/themes/default/images/icons/icon_camera_on.png create mode 100644 data/themes/default/images/icons/icon_camera_simple.png create mode 100644 data/themes/default/images/icons/icon_camera_title.png create mode 100644 data/themes/default/images/icons/icon_cd.png create mode 100644 data/themes/default/images/icons/icon_cd_glow.png create mode 100644 data/themes/default/images/icons/icon_clock.png create mode 100644 data/themes/default/images/icons/icon_config_clock.png create mode 100644 data/themes/default/images/icons/icon_config_fw.png create mode 100644 data/themes/default/images/icons/icon_config_info.png create mode 100644 data/themes/default/images/icons/icon_config_l18n.png create mode 100644 data/themes/default/images/icons/icon_config_network.png create mode 100644 data/themes/default/images/icons/icon_config_security.png create mode 100644 data/themes/default/images/icons/icon_config_terminal.png create mode 100644 data/themes/default/images/icons/icon_config_veille.png create mode 100644 data/themes/default/images/icons/icon_config_widget.png create mode 100644 data/themes/default/images/icons/icon_disclosure.png create mode 100644 data/themes/default/images/icons/icon_edit.png create mode 100644 data/themes/default/images/icons/icon_flickr.png create mode 100644 data/themes/default/images/icons/icon_folder.png create mode 100644 data/themes/default/images/icons/icon_groom.png create mode 100644 data/themes/default/images/icons/icon_int.png create mode 100644 data/themes/default/images/icons/icon_item_lock.png create mode 100644 data/themes/default/images/icons/icon_item_reboot.png create mode 100644 data/themes/default/images/icons/icon_item_screensaver.png create mode 100644 data/themes/default/images/icons/icon_item_widget.png create mode 100644 data/themes/default/images/icons/icon_light.png create mode 100644 data/themes/default/images/icons/icon_light_off.png create mode 100644 data/themes/default/images/icons/icon_light_on.png create mode 100644 data/themes/default/images/icons/icon_light_simple.png create mode 100644 data/themes/default/images/icons/icon_moins.png create mode 100644 data/themes/default/images/icons/icon_music.png create mode 100644 data/themes/default/images/icons/icon_myhome.png create mode 100644 data/themes/default/images/icons/icon_note.png create mode 100644 data/themes/default/images/icons/icon_note_on.png create mode 100644 data/themes/default/images/icons/icon_play.png create mode 100644 data/themes/default/images/icons/icon_play_simple.png create mode 100644 data/themes/default/images/icons/icon_player.png create mode 100644 data/themes/default/images/icons/icon_playlist.png create mode 100644 data/themes/default/images/icons/icon_plus.png create mode 100644 data/themes/default/images/icons/icon_radio.png create mode 100644 data/themes/default/images/icons/icon_room.png create mode 100644 data/themes/default/images/icons/icon_room_on.png create mode 100644 data/themes/default/images/icons/icon_scenario_big.png create mode 100644 data/themes/default/images/icons/icon_scenario_small.png create mode 100644 data/themes/default/images/icons/icon_search.png create mode 100644 data/themes/default/images/icons/icon_select_simple.png create mode 100644 data/themes/default/images/icons/icon_shutter.png create mode 100644 data/themes/default/images/icons/icon_shutter_on.png create mode 100644 data/themes/default/images/icons/icon_sound.png create mode 100644 data/themes/default/images/icons/icon_stop_simple.png create mode 100644 data/themes/default/images/icons/icon_string.png create mode 100644 data/themes/default/images/icons/icon_temp.png create mode 100644 data/themes/default/images/icons/icon_tor.png create mode 100644 data/themes/default/images/icons/icon_tor_on.png create mode 100644 data/themes/default/images/icons/icon_trash.png create mode 100644 data/themes/default/images/icons/icon_warming.png create mode 100644 data/themes/default/images/icons/icon_warming_down.png create mode 100644 data/themes/default/images/icons/icon_warming_up.png create mode 100644 data/themes/default/images/icons/icon_widget_unknown.png create mode 100644 data/themes/default/images/logo/bloom.png create mode 100644 data/themes/default/images/logo/calaos_about_logo.png create mode 100644 data/themes/default/images/logo/final.png create mode 100644 data/themes/default/images/logo/logo_mirror.png create mode 100644 data/themes/default/images/logo/logo_tittle.png create mode 100644 data/themes/default/images/logo/menu_logo.png create mode 100644 data/themes/default/images/logo/shadow.png create mode 100644 data/themes/default/images/parts/album_back.png create mode 100644 data/themes/default/images/parts/album_cover.png create mode 100644 data/themes/default/images/parts/browser_list_decoration.png create mode 100644 data/themes/default/images/parts/calendar_back.png create mode 100644 data/themes/default/images/parts/calendar_header.png create mode 100644 data/themes/default/images/parts/calendar_holiday.png create mode 100644 data/themes/default/images/parts/calendar_ring.png create mode 100644 data/themes/default/images/parts/calendar_select.png create mode 100644 data/themes/default/images/parts/camera_big_border.png create mode 100644 data/themes/default/images/parts/camera_border.png create mode 100644 data/themes/default/images/parts/camera_medium_border.png create mode 100644 data/themes/default/images/parts/camera_mire.png create mode 100644 data/themes/default/images/parts/camera_nocam.png create mode 100644 data/themes/default/images/parts/camera_reflect.png create mode 100644 data/themes/default/images/parts/config_item.png create mode 100644 data/themes/default/images/parts/config_item_select.png create mode 100644 data/themes/default/images/parts/controls_bg.png create mode 100644 data/themes/default/images/parts/controls_sep.png create mode 100644 data/themes/default/images/parts/cover_border.png create mode 100644 data/themes/default/images/parts/cover_loading_border.png create mode 100644 data/themes/default/images/parts/cursor.png create mode 100644 data/themes/default/images/parts/dialog_background.png create mode 100644 data/themes/default/images/parts/dialog_lines.png create mode 100644 data/themes/default/images/parts/dialog_neon.png create mode 100644 data/themes/default/images/parts/display_border.png create mode 100644 data/themes/default/images/parts/display_border2.png create mode 100644 data/themes/default/images/parts/footer_kevlar.png create mode 100644 data/themes/default/images/parts/footer_shadow.png create mode 100644 data/themes/default/images/parts/glow.png create mode 100644 data/themes/default/images/parts/imageviewer_footer.png create mode 100644 data/themes/default/images/parts/indicator_glow.png create mode 100644 data/themes/default/images/parts/keyboard_agenda_background.png create mode 100644 data/themes/default/images/parts/keyboard_background.png create mode 100644 data/themes/default/images/parts/keyboard_cursor.png create mode 100644 data/themes/default/images/parts/keyboard_key_glow.png create mode 100644 data/themes/default/images/parts/keyboard_key_selected.png create mode 100644 data/themes/default/images/parts/keyboard_lines.png create mode 100644 data/themes/default/images/parts/keyboard_multiline_background.png create mode 100644 data/themes/default/images/parts/keyboard_select_bar_left.png create mode 100644 data/themes/default/images/parts/keyboard_select_bar_right.png create mode 100644 data/themes/default/images/parts/keyboard_select_separator.png create mode 100644 data/themes/default/images/parts/list_message_border.png create mode 100644 data/themes/default/images/parts/loading_bar.png create mode 100644 data/themes/default/images/parts/loading_bg.png create mode 100644 data/themes/default/images/parts/loading_top.png create mode 100644 data/themes/default/images/parts/medium_list_decoration_camera.png create mode 100644 data/themes/default/images/parts/medium_list_decoration_left.png create mode 100644 data/themes/default/images/parts/medium_list_decoration_right.png create mode 100644 data/themes/default/images/parts/medium_scroll_list_decoration.png create mode 100644 data/themes/default/images/parts/menu_back.png create mode 100644 data/themes/default/images/parts/menu_buttons_shadow_left.png create mode 100644 data/themes/default/images/parts/menu_buttons_shadow_right.png create mode 100644 data/themes/default/images/parts/menu_footer_shadow.png create mode 100644 data/themes/default/images/parts/menu_glowed_neon.png create mode 100644 data/themes/default/images/parts/menu_header_shadow.png create mode 100644 data/themes/default/images/parts/menu_media_icon_camera_back.png create mode 100644 data/themes/default/images/parts/menu_media_icon_camera_red.png create mode 100644 data/themes/default/images/parts/menu_media_icon_cd_back.png create mode 100644 data/themes/default/images/parts/menu_media_icon_eskiss_back.png create mode 100644 data/themes/default/images/parts/menu_media_icon_web_back.png create mode 100644 data/themes/default/images/parts/menu_media_item.png create mode 100644 data/themes/default/images/parts/menu_media_item_glow.png create mode 100644 data/themes/default/images/parts/menu_media_item_reflect.png create mode 100644 data/themes/default/images/parts/menu_media_item_separator.png create mode 100644 data/themes/default/images/parts/menu_media_item_shadow.png create mode 100644 data/themes/default/images/parts/middle_skyline.png create mode 100644 data/themes/default/images/parts/middle_skyline_neon.png create mode 100644 data/themes/default/images/parts/module_footer_shadow.png create mode 100644 data/themes/default/images/parts/module_header_shadow.png create mode 100644 data/themes/default/images/parts/player_cd_shadow.png create mode 100644 data/themes/default/images/parts/player_cover_back.png create mode 100644 data/themes/default/images/parts/player_cover_front.png create mode 100644 data/themes/default/images/parts/player_glow.png create mode 100644 data/themes/default/images/parts/player_line_decoration_bottom.png create mode 100644 data/themes/default/images/parts/player_line_decoration_cd.png create mode 100644 data/themes/default/images/parts/player_line_decoration_left.png create mode 100644 data/themes/default/images/parts/player_line_decoration_right.png create mode 100644 data/themes/default/images/parts/player_line_decoration_top.png create mode 100644 data/themes/default/images/parts/player_shadow.png create mode 100644 data/themes/default/images/parts/player_small_cover_back.png create mode 100644 data/themes/default/images/parts/player_small_cover_front.png create mode 100644 data/themes/default/images/parts/player_small_shadow.png create mode 100644 data/themes/default/images/parts/popup_arrow_down.png create mode 100644 data/themes/default/images/parts/popup_arrow_left.png create mode 100644 data/themes/default/images/parts/popup_arrow_right.png create mode 100644 data/themes/default/images/parts/popup_arrow_up.png create mode 100644 data/themes/default/images/parts/popup_bg.png create mode 100644 data/themes/default/images/parts/popup_carbon.png create mode 100644 data/themes/default/images/parts/rgb_preview.png create mode 100644 data/themes/default/images/parts/scenario_list_decoration.png create mode 100644 data/themes/default/images/parts/scenario_separator.png create mode 100644 data/themes/default/images/parts/selector_off.png create mode 100644 data/themes/default/images/parts/selector_on.png create mode 100644 data/themes/default/images/parts/separator.png create mode 100644 data/themes/default/images/parts/shadow_photo.png create mode 100644 data/themes/default/images/parts/shutter_arrows_deco.png create mode 100644 data/themes/default/images/parts/slider.png create mode 100644 data/themes/default/images/parts/slider_blue.png create mode 100644 data/themes/default/images/parts/slider_blue_on.png create mode 100644 data/themes/default/images/parts/slider_border.png create mode 100644 data/themes/default/images/parts/slider_border_blue.png create mode 100644 data/themes/default/images/parts/slider_border_green.png create mode 100644 data/themes/default/images/parts/slider_border_red.png create mode 100644 data/themes/default/images/parts/slider_border_vertical.png create mode 100644 data/themes/default/images/parts/slider_green.png create mode 100644 data/themes/default/images/parts/slider_green_on.png create mode 100644 data/themes/default/images/parts/slider_on.png create mode 100644 data/themes/default/images/parts/slider_red.png create mode 100644 data/themes/default/images/parts/slider_red_on.png create mode 100644 data/themes/default/images/parts/slider_vertical.png create mode 100644 data/themes/default/images/parts/slider_vertical_on.png create mode 100644 data/themes/default/images/parts/small_list_decoration.png create mode 100644 data/themes/default/images/parts/small_list_decoration_left.png create mode 100644 data/themes/default/images/parts/small_scroll_list_decoration.png create mode 100644 data/themes/default/images/parts/standard_list_decoration.png create mode 100644 data/themes/default/images/parts/standard_list_decoration_bottom.png create mode 100644 data/themes/default/images/parts/standard_list_decoration_top.png create mode 100644 data/themes/default/images/parts/top_skyline.png create mode 100644 data/themes/default/images/parts/top_skyline_neon.png create mode 100644 data/themes/default/images/parts/vertical_level_indicator.png create mode 100644 data/themes/default/images/parts/volume_knob.png create mode 100644 data/themes/default/images/parts/volume_knob_ledsoff.png create mode 100644 data/themes/default/images/parts/volume_knob_move.png create mode 100644 data/themes/default/images/parts/window_border.png create mode 100644 data/themes/default/images/parts/window_border2.png create mode 100644 data/themes/default/images/parts/window_shutter.png create mode 100644 data/themes/default/images/progressbar/progressbar_background.png create mode 100644 data/themes/default/images/progressbar/progressbar_ligne.png create mode 100644 data/themes/default/images/progressbar/progressbar_niveau.png create mode 100644 data/themes/default/images/rooms/bathroom/bathroom_big.png create mode 100644 data/themes/default/images/rooms/bathroom/bathroom_medium.png create mode 100644 data/themes/default/images/rooms/bathroom/bathroom_medium_bloom.png create mode 100644 data/themes/default/images/rooms/bathroom/bathroom_small.png create mode 100644 data/themes/default/images/rooms/bathroom_small.png create mode 100644 data/themes/default/images/rooms/bedroom/bedroom_big.png create mode 100644 data/themes/default/images/rooms/bedroom/bedroom_medium.png create mode 100644 data/themes/default/images/rooms/bedroom/bedroom_medium_bloom.png create mode 100644 data/themes/default/images/rooms/bedroom/bedroom_small.png create mode 100644 data/themes/default/images/rooms/bedroom_small.png create mode 100644 data/themes/default/images/rooms/big_room_glow.png create mode 100644 data/themes/default/images/rooms/big_room_shadow.png create mode 100644 data/themes/default/images/rooms/big_room_wire.png create mode 100644 data/themes/default/images/rooms/cellar/cellar_big.png create mode 100644 data/themes/default/images/rooms/cellar/cellar_medium.png create mode 100644 data/themes/default/images/rooms/cellar/cellar_medium_bloom.png create mode 100644 data/themes/default/images/rooms/cellar/cellar_small.png create mode 100644 data/themes/default/images/rooms/cellar_small.png create mode 100644 data/themes/default/images/rooms/corridor/corridor_big.png create mode 100644 data/themes/default/images/rooms/corridor/corridor_medium.png create mode 100644 data/themes/default/images/rooms/corridor/corridor_medium_bloom.png create mode 100644 data/themes/default/images/rooms/corridor/corridor_small.png create mode 100644 data/themes/default/images/rooms/corridor_small.png create mode 100644 data/themes/default/images/rooms/diningroom/diningroom_big.png create mode 100644 data/themes/default/images/rooms/diningroom/diningroom_medium.png create mode 100644 data/themes/default/images/rooms/diningroom/diningroom_medium_bloom.png create mode 100644 data/themes/default/images/rooms/diningroom/diningroom_small.png create mode 100644 data/themes/default/images/rooms/diningroom_small.png create mode 100644 data/themes/default/images/rooms/garage/garage_big.png create mode 100644 data/themes/default/images/rooms/garage/garage_medium.png create mode 100644 data/themes/default/images/rooms/garage/garage_medium_bloom.png create mode 100644 data/themes/default/images/rooms/garage/garage_small.png create mode 100644 data/themes/default/images/rooms/garage_small.png create mode 100644 data/themes/default/images/rooms/kitchen/kitchen_big.png create mode 100644 data/themes/default/images/rooms/kitchen/kitchen_medium.png create mode 100644 data/themes/default/images/rooms/kitchen/kitchen_medium_bloom.png create mode 100644 data/themes/default/images/rooms/kitchen/kitchen_small.png create mode 100644 data/themes/default/images/rooms/lounge/lounge_big.png create mode 100644 data/themes/default/images/rooms/lounge/lounge_medium.png create mode 100644 data/themes/default/images/rooms/lounge/lounge_medium_bloom.png create mode 100644 data/themes/default/images/rooms/lounge/lounge_small.png create mode 100644 data/themes/default/images/rooms/medium_room_glow.png create mode 100644 data/themes/default/images/rooms/medium_room_neon.png create mode 100644 data/themes/default/images/rooms/medium_room_shadow.png create mode 100644 data/themes/default/images/rooms/medium_room_touched.png create mode 100644 data/themes/default/images/rooms/office/office_big.png create mode 100644 data/themes/default/images/rooms/office/office_medium.png create mode 100644 data/themes/default/images/rooms/office/office_medium_bloom.png create mode 100644 data/themes/default/images/rooms/office/office_small.png create mode 100644 data/themes/default/images/rooms/outside/outside_big.png create mode 100644 data/themes/default/images/rooms/outside/outside_medium.png create mode 100644 data/themes/default/images/rooms/outside/outside_medium_bloom.png create mode 100644 data/themes/default/images/rooms/outside/outside_small.png create mode 100644 data/themes/default/images/rooms/small_room_shadow.png create mode 100644 data/themes/default/images/rooms/various/various_big.png create mode 100644 data/themes/default/images/rooms/various/various_medium.png create mode 100644 data/themes/default/images/rooms/various/various_medium_bloom.png create mode 100644 data/themes/default/images/rooms/various/various_small.png create mode 100644 data/themes/default/images/scenario/wizzard_1.png create mode 100644 data/themes/default/images/scenario/wizzard_2.png create mode 100644 data/themes/default/images/scenario/wizzard_3.png create mode 100644 data/themes/default/images/scenario/wizzard_4.png create mode 100644 data/themes/default/images/scenario/wizzard_bg_selected.png create mode 100644 data/themes/default/images/scenario/wizzard_header.png create mode 100644 data/themes/default/images/scenario/wizzard_line_selected.png create mode 100644 data/themes/default/images/widgets/flake_large.png create mode 100644 data/themes/default/images/widgets/flake_medium.png create mode 100644 data/themes/default/images/widgets/flake_small.png create mode 100644 data/themes/default/images/widgets/widget_back_edit.png create mode 100644 data/themes/default/images/widgets/widget_container_back.png create mode 100644 data/themes/default/images/widgets/widget_container_back_buttons.png create mode 100644 data/themes/default/images/widgets/xmas_banner_left.png create mode 100644 data/themes/default/images/widgets/xmas_banner_right.png create mode 100644 data/themes/default/structure/activity_header_footer.edc create mode 100644 data/themes/default/structure/activity_loading.edc create mode 100644 data/themes/default/structure/amplifier_control.edc create mode 100644 data/themes/default/structure/circular_spinner.edc create mode 100644 data/themes/default/structure/element_scenario_home.edc create mode 100644 data/themes/default/structure/icons.edc create mode 100644 data/themes/default/structure/images.edc create mode 100644 data/themes/default/structure/keyboard_macros.edc create mode 100644 data/themes/default/structure/macro_menu_button.edc create mode 100644 data/themes/default/structure/macro_round_button.edc create mode 100644 data/themes/default/structure/main_layout.edc create mode 100644 data/themes/default/structure/main_menu.edc create mode 100644 data/themes/default/structure/old_macros.edc create mode 100644 data/themes/default/structure/page_audio_list.edc create mode 100644 data/themes/default/structure/page_camera.edc create mode 100644 data/themes/default/structure/page_config_panel.edc create mode 100644 data/themes/default/structure/page_edit_scenario.edc create mode 100644 data/themes/default/structure/page_home.edc create mode 100644 data/themes/default/structure/page_keyboard.edc create mode 100644 data/themes/default/structure/page_media.edc create mode 100644 data/themes/default/structure/page_scenarios.edc create mode 100644 data/themes/default/structure/page_schedule.edc create mode 100644 data/themes/default/structure/page_web.edc create mode 100644 data/themes/default/structure/page_widgets.edc create mode 100644 data/themes/default/structure/paging_view.edc create mode 100644 data/themes/default/structure/player.edc create mode 100644 data/themes/default/structure/player_prog.edc create mode 100644 data/themes/default/structure/popup_actions_pages.edc create mode 100644 data/themes/default/structure/room_macro.edc create mode 100644 data/themes/default/structure/room_prog_macro.edc create mode 100644 data/themes/default/structure/rooms.edc create mode 100644 data/themes/default/structure/scrolling_text.edc create mode 100644 data/themes/default/structure/slider.edc create mode 100644 data/themes/default/structure/slider_horizontal_macro.edc create mode 100644 data/themes/default/structure/slider_vertical_macro.edc create mode 100644 data/themes/default/structure/styles.edc create mode 100644 data/themes/default/structure/utils.edc create mode 100755 depcomp create mode 100755 install-sh create mode 100644 ltmain.sh create mode 100644 m4/libtool.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100755 missing create mode 100644 src/Makefile.am create mode 100644 src/Makefile.in create mode 100644 src/bin/Makefile.am create mode 100644 src/bin/Makefile.in create mode 100644 src/bin/calaos_home/ApplicationMain.cpp create mode 100644 src/bin/calaos_home/ApplicationMain.h create mode 100644 src/bin/calaos_home/CalaosConnection.cpp create mode 100644 src/bin/calaos_home/CalaosConnection.h create mode 100644 src/bin/calaos_home/CalaosDiscover.cpp create mode 100644 src/bin/calaos_home/CalaosDiscover.h create mode 100644 src/bin/calaos_home/CalaosListener.cpp create mode 100644 src/bin/calaos_home/CalaosListener.h create mode 100644 src/bin/calaos_home/CommonUtils.cpp create mode 100644 src/bin/calaos_home/CommonUtils.h create mode 100644 src/bin/calaos_home/EdjeObject.cpp create mode 100644 src/bin/calaos_home/EdjeObject.h create mode 100644 src/bin/calaos_home/EvasSmart.cpp create mode 100644 src/bin/calaos_home/EvasSmart.h create mode 100644 src/bin/calaos_home/Makefile.am create mode 100644 src/bin/calaos_home/Makefile.in create mode 100644 src/bin/calaos_home/Modules.cpp create mode 100644 src/bin/calaos_home/Modules.h create mode 100644 src/bin/calaos_home/controllers/ActivityAudioListController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityAudioListController.h create mode 100644 src/bin/calaos_home/controllers/ActivityCameraListController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityCameraListController.h create mode 100644 src/bin/calaos_home/controllers/ActivityCameraSelectController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityCameraSelectController.h create mode 100644 src/bin/calaos_home/controllers/ActivityConfigController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityConfigController.h create mode 100644 src/bin/calaos_home/controllers/ActivityController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityController.h create mode 100644 src/bin/calaos_home/controllers/ActivityEditScenarioController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityEditScenarioController.h create mode 100644 src/bin/calaos_home/controllers/ActivityHomeController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityHomeController.h create mode 100644 src/bin/calaos_home/controllers/ActivityKeyboardController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityKeyboardController.h create mode 100644 src/bin/calaos_home/controllers/ActivityMediaController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityMediaController.h create mode 100644 src/bin/calaos_home/controllers/ActivityMediaMenuController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityMediaMenuController.h create mode 100644 src/bin/calaos_home/controllers/ActivityScenariosController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityScenariosController.h create mode 100644 src/bin/calaos_home/controllers/ActivityScheduleScenarioController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityScheduleScenarioController.h create mode 100644 src/bin/calaos_home/controllers/ActivityWebController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityWebController.h create mode 100644 src/bin/calaos_home/controllers/ActivityWidgetsController.cpp create mode 100644 src/bin/calaos_home/controllers/ActivityWidgetsController.h create mode 100644 src/bin/calaos_home/controllers/ApplicationController.cpp create mode 100644 src/bin/calaos_home/controllers/ApplicationController.h create mode 100644 src/bin/calaos_home/main.cpp create mode 100644 src/bin/calaos_home/main_cover.cpp create mode 100644 src/bin/calaos_home/models/AudioModel.cpp create mode 100644 src/bin/calaos_home/models/AudioModel.h create mode 100644 src/bin/calaos_home/models/CalaosModel.cpp create mode 100644 src/bin/calaos_home/models/CalaosModel.h create mode 100644 src/bin/calaos_home/models/CameraModel.cpp create mode 100644 src/bin/calaos_home/models/CameraModel.h create mode 100644 src/bin/calaos_home/models/RoomModel.cpp create mode 100644 src/bin/calaos_home/models/RoomModel.h create mode 100644 src/bin/calaos_home/models/ScenarioModel.cpp create mode 100644 src/bin/calaos_home/models/ScenarioModel.h create mode 100644 src/bin/calaos_home/views/ActivityAudioListView.cpp create mode 100644 src/bin/calaos_home/views/ActivityAudioListView.h create mode 100644 src/bin/calaos_home/views/ActivityAudioPlayerObject.cpp create mode 100644 src/bin/calaos_home/views/ActivityAudioPlayerObject.h create mode 100644 src/bin/calaos_home/views/ActivityCameraListView.cpp create mode 100644 src/bin/calaos_home/views/ActivityCameraListView.h create mode 100644 src/bin/calaos_home/views/ActivityCameraSelectView.cpp create mode 100644 src/bin/calaos_home/views/ActivityCameraSelectView.h create mode 100644 src/bin/calaos_home/views/ActivityConfigView.cpp create mode 100644 src/bin/calaos_home/views/ActivityConfigView.h create mode 100644 src/bin/calaos_home/views/ActivityEditScenarioView.cpp create mode 100644 src/bin/calaos_home/views/ActivityEditScenarioView.h create mode 100644 src/bin/calaos_home/views/ActivityHomeView.cpp create mode 100644 src/bin/calaos_home/views/ActivityHomeView.h create mode 100644 src/bin/calaos_home/views/ActivityKeyboardView.cpp create mode 100644 src/bin/calaos_home/views/ActivityKeyboardView.h create mode 100644 src/bin/calaos_home/views/ActivityMediaMenuView.cpp create mode 100644 src/bin/calaos_home/views/ActivityMediaMenuView.h create mode 100644 src/bin/calaos_home/views/ActivityMediaView.cpp create mode 100644 src/bin/calaos_home/views/ActivityMediaView.h create mode 100644 src/bin/calaos_home/views/ActivityScenariosView.cpp create mode 100644 src/bin/calaos_home/views/ActivityScenariosView.h create mode 100644 src/bin/calaos_home/views/ActivityScheduleScenarioView.cpp create mode 100644 src/bin/calaos_home/views/ActivityScheduleScenarioView.h create mode 100644 src/bin/calaos_home/views/ActivityView.cpp create mode 100644 src/bin/calaos_home/views/ActivityView.h create mode 100644 src/bin/calaos_home/views/ActivityWebView.cpp create mode 100644 src/bin/calaos_home/views/ActivityWebView.h create mode 100644 src/bin/calaos_home/views/ActivityWidgetsView.cpp create mode 100644 src/bin/calaos_home/views/ActivityWidgetsView.h create mode 100644 src/bin/calaos_home/views/BaseView.cpp create mode 100644 src/bin/calaos_home/views/BaseView.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemBase.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemBase.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.h create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemYear.cpp create mode 100644 src/bin/calaos_home/views/GenlistItems/GenlistItemYear.h create mode 100644 src/bin/calaos_home/views/IO/IOGenlistRoomGroup.cpp create mode 100644 src/bin/calaos_home/views/IO/IOGenlistRoomGroup.h create mode 100644 src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOInternalBoolHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOInternalBoolHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOInternalIntHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOInternalIntHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOInternalStringHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOInternalStringHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOScenarioHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOScenarioHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWIAnalogHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWIAnalogHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWITempHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWITempHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWOAnalogHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWOAnalogHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWODaliHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWODaliHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWODigitalHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWODigitalHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWOVoletHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWOVoletHomeView.h create mode 100644 src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.cpp create mode 100644 src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.h create mode 100644 src/bin/calaos_home/views/IOView.cpp create mode 100644 src/bin/calaos_home/views/IOView.h create mode 100644 src/bin/calaos_home/views/KeyboardView.cpp create mode 100644 src/bin/calaos_home/views/KeyboardView.h create mode 100644 src/bin/calaos_home/views/MainContentView.cpp create mode 100644 src/bin/calaos_home/views/MainContentView.h create mode 100644 src/bin/calaos_home/views/MainMenuView.cpp create mode 100644 src/bin/calaos_home/views/MainMenuView.h create mode 100644 src/bin/calaos_home/views/PagingView.cpp create mode 100644 src/bin/calaos_home/views/PagingView.h create mode 100644 src/bin/calaos_home/views/WebKitError.h create mode 100644 src/bin/calaos_home/views/Widget.cpp create mode 100644 src/bin/calaos_home/views/Widget.h create mode 100644 src/bin/calaos_server/Audio/AVRDenon.cpp create mode 100644 src/bin/calaos_server/Audio/AVRDenon.h create mode 100644 src/bin/calaos_server/Audio/AVRManager.cpp create mode 100644 src/bin/calaos_server/Audio/AVRManager.h create mode 100644 src/bin/calaos_server/Audio/AVRMarantz.cpp create mode 100644 src/bin/calaos_server/Audio/AVRMarantz.h create mode 100644 src/bin/calaos_server/Audio/AVROnkyo.cpp create mode 100644 src/bin/calaos_server/Audio/AVROnkyo.h create mode 100644 src/bin/calaos_server/Audio/AVRPioneer.cpp create mode 100644 src/bin/calaos_server/Audio/AVRPioneer.h create mode 100644 src/bin/calaos_server/Audio/AVReceiver.cpp create mode 100644 src/bin/calaos_server/Audio/AVReceiver.h create mode 100644 src/bin/calaos_server/Audio/AudioDB.cpp create mode 100644 src/bin/calaos_server/Audio/AudioDB.h create mode 100644 src/bin/calaos_server/Audio/AudioInput.cpp create mode 100644 src/bin/calaos_server/Audio/AudioInput.h create mode 100644 src/bin/calaos_server/Audio/AudioManager.cpp create mode 100644 src/bin/calaos_server/Audio/AudioManager.h create mode 100644 src/bin/calaos_server/Audio/AudioOutput.cpp create mode 100644 src/bin/calaos_server/Audio/AudioOutput.h create mode 100644 src/bin/calaos_server/Audio/AudioPlayer.cpp create mode 100644 src/bin/calaos_server/Audio/AudioPlayer.h create mode 100644 src/bin/calaos_server/Audio/AudioPlayerData.h create mode 100644 src/bin/calaos_server/Audio/Squeezebox.cpp create mode 100644 src/bin/calaos_server/Audio/Squeezebox.h create mode 100644 src/bin/calaos_server/Audio/SqueezeboxDB.cpp create mode 100644 src/bin/calaos_server/Audio/SqueezeboxDB.h create mode 100644 src/bin/calaos_server/Calaos.cpp create mode 100644 src/bin/calaos_server/Calaos.h create mode 100644 src/bin/calaos_server/Config.cpp create mode 100644 src/bin/calaos_server/Config.h create mode 100644 src/bin/calaos_server/Etage.cpp create mode 100644 src/bin/calaos_server/Etage.h create mode 100644 src/bin/calaos_server/IO/IOFactory.cpp create mode 100644 src/bin/calaos_server/IO/IOFactory.h create mode 100644 src/bin/calaos_server/IO/InPlageHoraire.cpp create mode 100644 src/bin/calaos_server/IO/InPlageHoraire.h create mode 100644 src/bin/calaos_server/IO/InputTime.cpp create mode 100644 src/bin/calaos_server/IO/InputTime.h create mode 100644 src/bin/calaos_server/IO/InputTimer.cpp create mode 100644 src/bin/calaos_server/IO/InputTimer.h create mode 100644 src/bin/calaos_server/IO/IntValue.cpp create mode 100644 src/bin/calaos_server/IO/IntValue.h create mode 100644 src/bin/calaos_server/IO/OWTemp.cpp create mode 100644 src/bin/calaos_server/IO/OWTemp.h create mode 100644 src/bin/calaos_server/IO/OutputFake.cpp create mode 100644 src/bin/calaos_server/IO/OutputFake.h create mode 100644 src/bin/calaos_server/IO/Scenario.cpp create mode 100644 src/bin/calaos_server/IO/Scenario.h create mode 100644 src/bin/calaos_server/IO/WIAnalog.cpp create mode 100644 src/bin/calaos_server/IO/WIAnalog.h create mode 100644 src/bin/calaos_server/IO/WIDigitalBP.cpp create mode 100644 src/bin/calaos_server/IO/WIDigitalBP.h create mode 100644 src/bin/calaos_server/IO/WIDigitalTriple.cpp create mode 100644 src/bin/calaos_server/IO/WIDigitalTriple.h create mode 100644 src/bin/calaos_server/IO/WITemp.cpp create mode 100644 src/bin/calaos_server/IO/WITemp.h create mode 100644 src/bin/calaos_server/IO/WOAnalog.cpp create mode 100644 src/bin/calaos_server/IO/WOAnalog.h create mode 100644 src/bin/calaos_server/IO/WODali.cpp create mode 100644 src/bin/calaos_server/IO/WODali.h create mode 100644 src/bin/calaos_server/IO/WODaliRVB.cpp create mode 100644 src/bin/calaos_server/IO/WODaliRVB.h create mode 100644 src/bin/calaos_server/IO/WODigital.cpp create mode 100644 src/bin/calaos_server/IO/WODigital.h create mode 100644 src/bin/calaos_server/IO/WOVolet.cpp create mode 100644 src/bin/calaos_server/IO/WOVolet.h create mode 100644 src/bin/calaos_server/IO/WOVoletSmart.cpp create mode 100644 src/bin/calaos_server/IO/WOVoletSmart.h create mode 100644 src/bin/calaos_server/IO/WagoCtrl.cpp create mode 100644 src/bin/calaos_server/IO/WagoCtrl.h create mode 100644 src/bin/calaos_server/IO/WagoMap.cpp create mode 100644 src/bin/calaos_server/IO/WagoMap.h create mode 100644 src/bin/calaos_server/IO/X10Output.cpp create mode 100644 src/bin/calaos_server/IO/X10Output.h create mode 100644 src/bin/calaos_server/IO/libmbus/mbus.c create mode 100644 src/bin/calaos_server/IO/libmbus/mbus.h create mode 100644 src/bin/calaos_server/IO/libmbus/mbus_cmd.c create mode 100644 src/bin/calaos_server/IO/libmbus/mbus_conf.h create mode 100644 src/bin/calaos_server/IO/libmbus/mbus_rqst.c create mode 100644 src/bin/calaos_server/IO/libmbus/mbus_sock.c create mode 100644 src/bin/calaos_server/IO/sunset.c create mode 100644 src/bin/calaos_server/IOBase.h create mode 100644 src/bin/calaos_server/IPCam/Axis.cpp create mode 100644 src/bin/calaos_server/IPCam/Axis.h create mode 100644 src/bin/calaos_server/IPCam/CamConnection.cpp create mode 100644 src/bin/calaos_server/IPCam/CamConnection.h create mode 100644 src/bin/calaos_server/IPCam/CamInput.cpp create mode 100644 src/bin/calaos_server/IPCam/CamInput.h create mode 100644 src/bin/calaos_server/IPCam/CamManager.cpp create mode 100644 src/bin/calaos_server/IPCam/CamManager.h create mode 100644 src/bin/calaos_server/IPCam/CamOutput.cpp create mode 100644 src/bin/calaos_server/IPCam/CamOutput.h create mode 100644 src/bin/calaos_server/IPCam/CamServer.cpp create mode 100644 src/bin/calaos_server/IPCam/CamServer.h create mode 100644 src/bin/calaos_server/IPCam/Gadspot.cpp create mode 100644 src/bin/calaos_server/IPCam/Gadspot.h create mode 100644 src/bin/calaos_server/IPCam/IPCam.cpp create mode 100644 src/bin/calaos_server/IPCam/IPCam.h create mode 100644 src/bin/calaos_server/IPCam/Planet.cpp create mode 100644 src/bin/calaos_server/IPCam/Planet.h create mode 100644 src/bin/calaos_server/IPCam/StandardMjpeg.cpp create mode 100644 src/bin/calaos_server/IPCam/StandardMjpeg.h create mode 100644 src/bin/calaos_server/Input.cpp create mode 100644 src/bin/calaos_server/Input.h create mode 100644 src/bin/calaos_server/ListeRoom.cpp create mode 100644 src/bin/calaos_server/ListeRoom.h create mode 100644 src/bin/calaos_server/ListeRule.cpp create mode 100644 src/bin/calaos_server/ListeRule.h create mode 100644 src/bin/calaos_server/Makefile.am create mode 100644 src/bin/calaos_server/Makefile.in create mode 100644 src/bin/calaos_server/Output.cpp create mode 100644 src/bin/calaos_server/Output.h create mode 100644 src/bin/calaos_server/PollListenner.cpp create mode 100644 src/bin/calaos_server/PollListenner.h create mode 100644 src/bin/calaos_server/Room.cpp create mode 100644 src/bin/calaos_server/Room.h create mode 100644 src/bin/calaos_server/Rule.cpp create mode 100644 src/bin/calaos_server/Rule.h create mode 100644 src/bin/calaos_server/Rules/Action.cpp create mode 100644 src/bin/calaos_server/Rules/Action.h create mode 100644 src/bin/calaos_server/Rules/ActionMail.cpp create mode 100644 src/bin/calaos_server/Rules/ActionMail.h create mode 100644 src/bin/calaos_server/Rules/ActionScript.cpp create mode 100644 src/bin/calaos_server/Rules/ActionScript.h create mode 100644 src/bin/calaos_server/Rules/ActionStd.cpp create mode 100644 src/bin/calaos_server/Rules/ActionStd.h create mode 100644 src/bin/calaos_server/Rules/ActionTouchscreen.cpp create mode 100644 src/bin/calaos_server/Rules/ActionTouchscreen.h create mode 100644 src/bin/calaos_server/Rules/Condition.cpp create mode 100644 src/bin/calaos_server/Rules/Condition.h create mode 100644 src/bin/calaos_server/Rules/ConditionOutput.cpp create mode 100644 src/bin/calaos_server/Rules/ConditionOutput.h create mode 100644 src/bin/calaos_server/Rules/ConditionScript.cpp create mode 100644 src/bin/calaos_server/Rules/ConditionScript.h create mode 100644 src/bin/calaos_server/Rules/ConditionStart.cpp create mode 100644 src/bin/calaos_server/Rules/ConditionStart.h create mode 100644 src/bin/calaos_server/Rules/ConditionStd.cpp create mode 100644 src/bin/calaos_server/Rules/ConditionStd.h create mode 100644 src/bin/calaos_server/Rules/RulesFactory.cpp create mode 100644 src/bin/calaos_server/Rules/RulesFactory.h create mode 100644 src/bin/calaos_server/Scenario/AutoScenario.cpp create mode 100644 src/bin/calaos_server/Scenario/AutoScenario.h create mode 100644 src/bin/calaos_server/Scenario/Scenario.h create mode 100644 src/bin/calaos_server/Scenario/ScenarioIO.h create mode 100644 src/bin/calaos_server/Scenario/ScenarioStep.h create mode 100644 src/bin/calaos_server/Scenario/Scenarios.h create mode 100644 src/bin/calaos_server/TCPConnection.cpp create mode 100644 src/bin/calaos_server/TCPConnection.h create mode 100644 src/bin/calaos_server/TCPProcessor/AudioCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/BaseCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/CameraCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/HomeCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/IOCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/ListenCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/RulesCommand.cpp create mode 100644 src/bin/calaos_server/TCPProcessor/ScenarioCommand.cpp create mode 100644 src/bin/calaos_server/TCPServer.cpp create mode 100644 src/bin/calaos_server/TCPServer.h create mode 100644 src/bin/calaos_server/UDPServer.cpp create mode 100644 src/bin/calaos_server/UDPServer.h create mode 100644 src/bin/calaos_server/WagoHeartbeat.cpp create mode 100644 src/bin/calaos_server/WagoHeartbeat.h create mode 100644 src/bin/calaos_server/config_wago.cpp create mode 100644 src/bin/calaos_server/main.cpp create mode 100644 src/bin/calaos_server/test_params.cpp create mode 100644 src/bin/calaos_server/test_url.cpp create mode 100644 src/lib/CThread.cpp create mode 100644 src/lib/CThread.h create mode 100644 src/lib/CalaosModule.h create mode 100644 src/lib/CalaosNetwork.cpp create mode 100644 src/lib/CalaosNetwork.h create mode 100644 src/lib/Calendar.cpp create mode 100644 src/lib/Calendar.h create mode 100644 src/lib/DownloadManager.cpp create mode 100644 src/lib/DownloadManager.h create mode 100644 src/lib/EcoreTimer.cpp create mode 100644 src/lib/EcoreTimer.h create mode 100644 src/lib/FakeLogging.h create mode 100644 src/lib/FileDownloader.cpp create mode 100644 src/lib/FileDownloader.h create mode 100644 src/lib/Firmwares.cpp create mode 100644 src/lib/Firmwares.h create mode 100644 src/lib/IPC.cpp create mode 100644 src/lib/IPC.h create mode 100644 src/lib/Jansson_Addition.h create mode 100644 src/lib/LuaScript/Lunar.h create mode 100644 src/lib/LuaScript/ScriptBindings.cpp create mode 100644 src/lib/LuaScript/ScriptBindings.h create mode 100644 src/lib/LuaScript/ScriptManager.cpp create mode 100644 src/lib/LuaScript/ScriptManager.h create mode 100644 src/lib/Makefile.am create mode 100644 src/lib/Makefile.in create mode 100644 src/lib/Mutex.cpp create mode 100644 src/lib/Mutex.h create mode 100644 src/lib/NTPClock.cpp create mode 100644 src/lib/NTPClock.h create mode 100644 src/lib/Params.cpp create mode 100644 src/lib/Params.h create mode 100644 src/lib/SendMail.cpp create mode 100644 src/lib/SendMail.h create mode 100644 src/lib/SocketListener.cpp create mode 100644 src/lib/SocketListener.h create mode 100644 src/lib/SocketManager.cpp create mode 100644 src/lib/SocketManager.h create mode 100644 src/lib/TimeRange.cpp create mode 100644 src/lib/TimeRange.h create mode 100644 src/lib/TinyXML/tinystr.cpp create mode 100644 src/lib/TinyXML/tinystr.h create mode 100644 src/lib/TinyXML/tinyxml.cpp create mode 100644 src/lib/TinyXML/tinyxml.h create mode 100644 src/lib/TinyXML/tinyxmlerror.cpp create mode 100644 src/lib/TinyXML/tinyxmlparser.cpp create mode 100644 src/lib/Utils.cpp create mode 100644 src/lib/Utils.h create mode 100644 src/lib/base64.c create mode 100644 src/lib/base64.h create mode 100644 src/lib/kashmir/array.h create mode 100644 src/lib/kashmir/devrand.h create mode 100644 src/lib/kashmir/devrandom.h create mode 100644 src/lib/kashmir/iofwd.h create mode 100644 src/lib/kashmir/iostate.h create mode 100644 src/lib/kashmir/randomstream.h create mode 100644 src/lib/kashmir/unique.h create mode 100644 src/lib/kashmir/uuid.h create mode 100644 src/lib/kashmir/winrand.h create mode 100644 src/lib/kashmir/winrandom.h create mode 100644 src/lib/sunset.c create mode 100644 src/lib/tcpsocket.cpp create mode 100644 src/lib/tcpsocket.h create mode 100644 src/lib/threadManager.cpp create mode 100644 src/lib/threadManager.h diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..9d86450b --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Raoul Hecky diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..c013b7d1 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,104 @@ +24-05-2011 Raoul Hecky + + * Ajout des conditions sur les sorties + +30-06-2011 Raoul Hecky + + * Correction du log des temperatures, ajout de son ID + * Correction de la valeur d'un timer au demarrage => true, permet de rester + coherent par rapport au fonctionnement des timer (etat bas pendant la duree + d'attente du timer, etat haut pendant le reste du temps). + +08-29-2011 Raoul Hecky + + * Ajout d'un systeme de rapport de bug automatique. + +28-09-2011 Raoul Hecky + + * Corrige le probleme de reconnexion aux automates en la gardant ouverte + +10-11-2011 + + * Correction de la lecture des valeurs DALI. + * Correction d'une fuite memoire. + * Correction des logs des WIAnalog + * Correction d'un bug possible dans la gestion des requetes automate + * Correction du bug empechant le toggle sur un WODaliRVB + +22-11-2011 + + * Correction d'un plantage dans les ActionTouchscreen. + +23-11-2011 + + * Support du Squeezecenter 7.7.x + * Ajout d'une commande "getitembasic?" pour recuperer les items de la + playlist. + +14-12-2011 Raoul Hecky + + * Correction du port utilise par le squeezecenter. Le parametre "port" + disparait au profit de "port_cli" et "port_web". + +27-12-2011 Raoul Hecky + + * Remise a zero de la valeur d'un WIDigitalTriple apres relachement du + bouton. + * Correction de la lecture des WIDigitalBP + * Lancement des regles au demarrage apres avoir lu les entrees/sorties + +16-01-2012 Raoul Hecky + + * Correction d'un potentiel probleme lors de la lecture d'un + interrupteur + +17-01-2012 Raoul Hecky + + * L'enregistrement des variables sauvegardes se fait dans un fichier + separe (iostates.cache) + * L'enregistrement des fichiers de configuration est maintenant plus + sur, afin d'eviter une corruption. + +26-01-2012 Raoul Hecky + + * Release Firmware 1.1.19 + +01-02-2012 Raoul Hecky + + * Ajout du support des Amplificateur Audio/Video Pioneer et Denon. + +11-02-2012 Raoul Hecky + + * Correction des valeurs de temperature negative + +27-02-2012 Raoul Hecky + + * Correction d'un probleme de sauvegarde de la configuration des + scenarios. + * Release Firmware 1.1.20 + +15-03-2012 Raoul Hecky + + * Correction d'un probleme qui empechait la lecture correcte des + entrees WIDigitalBP au demarrage. + * Correction des actions "impulse up x" et "impulse down x" sur + des sorties WOVolet et WOVoletSmart + +28-03-2012 Raoul Hecky + + * Ajout des commandes de volume sur les AudioOutput + +29-03-2012 Raoul Hecky + + * Correction d'un bug possible dans la connexion reseau + * Ajout du support des Amplificateurs A/V Onkyo/Integra (eISCP) + +03-04-2012 Raoul Hecky + + * Ajout du support des ammplificateurs A/V Marantz + +23-07-2012 Raoul Hecky + + * Correction d'un bug sur la lecture des entrees KNX/STD lorsqu'on + utilise les deux avec les memes adresses. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..a1e89e18 --- /dev/null +++ b/INSTALL @@ -0,0 +1,370 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..92bc7b03 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,30 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = src data + +MAINTAINERCLEANFILES = \ +Makefile.in \ +aclocal.m4 \ +config.guess \ +config.h.in \ +config.h.in~ \ +config.sub \ +configure \ +depcomp \ +install-sh \ +ltconfig \ +ltmain.sh \ +missing \ +$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \ +$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \ +m4/libtool.m4 \ +m4/lt~obsolete.m4 \ +m4/ltoptions.m4 \ +m4/ltsugar.m4 \ +m4/ltversion.m4 + +EXTRA_DIST = \ +AUTHORS \ +COPYING \ +README \ +autogen.sh diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 00000000..9040bd42 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,791 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ + TODO config.guess config.sub depcomp install-sh ltmain.sh \ + missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = src data +MAINTAINERCLEANFILES = \ +Makefile.in \ +aclocal.m4 \ +config.guess \ +config.h.in \ +config.h.in~ \ +config.sub \ +configure \ +depcomp \ +install-sh \ +ltconfig \ +ltmain.sh \ +missing \ +$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \ +$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \ +m4/libtool.m4 \ +m4/lt~obsolete.m4 \ +m4/ltoptions.m4 \ +m4/ltsugar.m4 \ +m4/ltversion.m4 + +EXTRA_DIST = \ +AUTHORS \ +COPYING \ +README \ +autogen.sh + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..e69de29b diff --git a/README b/README new file mode 100644 index 00000000..9a7d9335 --- /dev/null +++ b/README @@ -0,0 +1,12 @@ +[Calaos Home](http://www.calaos.fr) +============= + +Calaos is a powerful home automation software. It features a complete set of part to automate your house from lights to shutter or even music or cameras. +Calaos uses the Enlightenment Foundation Libraries to power its amazing touchscreen interface. + +This is the base package for the server and the touchscreen client. + +Contributing +------------ + +Want to contribute? Great! There are many ways to contribute, come get in touch with us on #calaos on freenode. diff --git a/README.md b/README.md deleted file mode 100644 index 137cbf4c..00000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -calaos_base -=========== - -Calaos server and touchscreen interface \ No newline at end of file diff --git a/TODO b/TODO new file mode 100644 index 00000000..e69de29b diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 00000000..5bd259df --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,9794 @@ +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_REPLACE_SHELLFNS + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.3], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.3])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 00000000..a49af3ee --- /dev/null +++ b/autogen.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +rm -rf autom4te.cache +rm -f aclocal.m4 ltmain.sh + +autoreconf -f -i + +if [ -z "$NOCONFIGURE" ]; then + ./configure "$@" +fi diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0 new file mode 100644 index 00000000..e54bcd79 --- /dev/null +++ b/autom4te.cache/output.0 @@ -0,0 +1,19716 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.68 for calaos 2.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +@%:@ Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: raoul.hecky@gmail.com about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='calaos' +PACKAGE_TARNAME='calaos' +PACKAGE_VERSION='2.0' +PACKAGE_STRING='calaos 2.0' +PACKAGE_BUGREPORT='raoul.hecky@gmail.com' +PACKAGE_URL='' + +ac_unique_file="configure.ac" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +requirements_calaos_home +CALAOS_HOME_LIBS +CALAOS_HOME_CFLAGS +requirements_calaos_server +CALAOS_SERVER_LIBS +CALAOS_SERVER_CFLAGS +requirements_calaos_common +CALAOS_COMMON_LIBS +CALAOS_COMMON_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CXXCPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +OBJDUMP +DLLTOOL +AS +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_largefile +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_assert +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +CALAOS_COMMON_CFLAGS +CALAOS_COMMON_LIBS +CALAOS_SERVER_CFLAGS +CALAOS_SERVER_LIBS +CALAOS_HOME_CFLAGS +CALAOS_HOME_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures calaos 2.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/calaos@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of calaos 2.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-largefile omit support for large files + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-assert turn off assertions + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + CALAOS_COMMON_CFLAGS + C compiler flags for CALAOS_COMMON, overriding pkg-config + CALAOS_COMMON_LIBS + linker flags for CALAOS_COMMON, overriding pkg-config + CALAOS_SERVER_CFLAGS + C compiler flags for CALAOS_SERVER, overriding pkg-config + CALAOS_SERVER_LIBS + linker flags for CALAOS_SERVER, overriding pkg-config + CALAOS_HOME_CFLAGS + C compiler flags for CALAOS_HOME, overriding pkg-config + CALAOS_HOME_LIBS + linker flags for CALAOS_HOME, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +calaos configure 2.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------ ## +## Report this to raoul.hecky@gmail.com ## +## ------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_cxx_try_compile LINENO +@%:@ ---------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_cxx_try_compile + +@%:@ ac_fn_cxx_try_cpp LINENO +@%:@ ------------------------ +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_cxx_try_cpp + +@%:@ ac_fn_cxx_try_link LINENO +@%:@ ------------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_cxx_try_link +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by calaos $as_me 2.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +ac_config_headers="$ac_config_headers config.h" + + + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='calaos' + VERSION='2.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "@%:@define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h + + + +@%:@ Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _FILE_OFFSET_BITS 64 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _LARGE_FILES 1 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +### Needed information + + + + +### Checks for programs +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# pkg-config + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +### Checks for libraries + +requirements_calaos_common="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 sigc++-2.0 >= 2.2.0 log4cpp >= 1.0 jansson >= 2.0.0 vmime >= 0.9.0 lua5.1 >= 5.1.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_COMMON" >&5 +$as_echo_n "checking for CALAOS_COMMON... " >&6; } + +if test -n "$CALAOS_COMMON_CFLAGS"; then + pkg_cv_CALAOS_COMMON_CFLAGS="$CALAOS_COMMON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_common}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_common}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_COMMON_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_COMMON_LIBS"; then + pkg_cv_CALAOS_COMMON_LIBS="$CALAOS_COMMON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_common}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_common}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_COMMON_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_COMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_common}" 2>&1` + else + CALAOS_COMMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_common}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_COMMON_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_common}) were not met: + +$CALAOS_COMMON_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_COMMON_CFLAGS +and CALAOS_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_COMMON_CFLAGS +and CALAOS_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_COMMON_CFLAGS=$pkg_cv_CALAOS_COMMON_CFLAGS + CALAOS_COMMON_LIBS=$pkg_cv_CALAOS_COMMON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +requirements_calaos_server="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_SERVER" >&5 +$as_echo_n "checking for CALAOS_SERVER... " >&6; } + +if test -n "$CALAOS_SERVER_CFLAGS"; then + pkg_cv_CALAOS_SERVER_CFLAGS="$CALAOS_SERVER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_server}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_server}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_SERVER_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_SERVER_LIBS"; then + pkg_cv_CALAOS_SERVER_LIBS="$CALAOS_SERVER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_server}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_server}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_SERVER_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_SERVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_server}" 2>&1` + else + CALAOS_SERVER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_server}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_SERVER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_server}) were not met: + +$CALAOS_SERVER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_SERVER_CFLAGS +and CALAOS_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_SERVER_CFLAGS +and CALAOS_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_SERVER_CFLAGS=$pkg_cv_CALAOS_SERVER_CFLAGS + CALAOS_SERVER_LIBS=$pkg_cv_CALAOS_SERVER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +requirements_calaos_home="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 elementary >= 1.7.0 ecore-x >= 1.7.0 openssl >= 1.0.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_HOME" >&5 +$as_echo_n "checking for CALAOS_HOME... " >&6; } + +if test -n "$CALAOS_HOME_CFLAGS"; then + pkg_cv_CALAOS_HOME_CFLAGS="$CALAOS_HOME_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_home}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_home}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_HOME_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_HOME_LIBS"; then + pkg_cv_CALAOS_HOME_LIBS="$CALAOS_HOME_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_home}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_home}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_HOME_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_HOME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_home}" 2>&1` + else + CALAOS_HOME_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_home}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_HOME_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_home}) were not met: + +$CALAOS_HOME_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_HOME_CFLAGS +and CALAOS_HOME_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_HOME_CFLAGS +and CALAOS_HOME_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_HOME_CFLAGS=$pkg_cv_CALAOS_HOME_CFLAGS + CALAOS_HOME_LIBS=$pkg_cv_CALAOS_HOME_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +### Checks for compiler characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +### Checks for header files + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 +$as_echo_n "checking whether to enable assertions... " >&6; } + @%:@ Check whether --enable-assert was given. +if test "${enable_assert+set}" = set; then : + enableval=$enable_assert; ac_enable_assert=$enableval + if test "x$enableval" = xno; then : + +$as_echo "@%:@define NDEBUG 1" >>confdefs.h + +elif test "x$enableval" != xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 +$as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} + ac_enable_assert=yes +fi +else + ac_enable_assert=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 +$as_echo "$ac_enable_assert" >&6; } + +for ac_header in unistd.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_UNISTD_H 1 +_ACEOF + +fi + +done + + +ac_config_files="$ac_config_files Makefile src/Makefile src/lib/Makefile src/bin/Makefile src/bin/calaos_server/Makefile src/bin/calaos_home/Makefile data/Makefile data/themes/Makefile data/themes/default/Makefile" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by calaos $as_me 2.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +calaos config.status 2.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_separator_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; + "src/bin/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/Makefile" ;; + "src/bin/calaos_server/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/calaos_server/Makefile" ;; + "src/bin/calaos_home/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/calaos_home/Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/themes/Makefile") CONFIG_FILES="$CONFIG_FILES data/themes/Makefile" ;; + "data/themes/default/Makefile") CONFIG_FILES="$CONFIG_FILES data/themes/default/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="CXX " + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +##################################################################### +## Info + +echo +echo +echo +echo "------------------------------------------------------------------------" +echo "$PACKAGE $VERSION" +echo "------------------------------------------------------------------------" +echo +echo +echo "Configuration Options Summary:" +echo +echo "Compilation............: make (or gmake)" +echo " CPPFLAGS.............: $CPPFLAGS" +echo " CFLAGS...............: $CFLAGS" +echo " LDFLAGS..............: $LDFLAGS" +echo +echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" +echo " prefix...............: $prefix" +echo diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1 new file mode 100644 index 00000000..858952f2 --- /dev/null +++ b/autom4te.cache/output.1 @@ -0,0 +1,19712 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.68 for calaos 2.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +@%:@ Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: raoul.hecky@gmail.com about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='calaos' +PACKAGE_TARNAME='calaos' +PACKAGE_VERSION='2.0' +PACKAGE_STRING='calaos 2.0' +PACKAGE_BUGREPORT='raoul.hecky@gmail.com' +PACKAGE_URL='' + +ac_unique_file="configure.ac" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +requirements_calaos_home +CALAOS_HOME_LIBS +CALAOS_HOME_CFLAGS +requirements_calaos_server +CALAOS_SERVER_LIBS +CALAOS_SERVER_CFLAGS +requirements_calaos_common +CALAOS_COMMON_LIBS +CALAOS_COMMON_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CXXCPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +OBJDUMP +DLLTOOL +AS +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_largefile +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_assert +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +CALAOS_COMMON_CFLAGS +CALAOS_COMMON_LIBS +CALAOS_SERVER_CFLAGS +CALAOS_SERVER_LIBS +CALAOS_HOME_CFLAGS +CALAOS_HOME_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures calaos 2.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/calaos@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of calaos 2.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-largefile omit support for large files + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-assert turn off assertions + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + CALAOS_COMMON_CFLAGS + C compiler flags for CALAOS_COMMON, overriding pkg-config + CALAOS_COMMON_LIBS + linker flags for CALAOS_COMMON, overriding pkg-config + CALAOS_SERVER_CFLAGS + C compiler flags for CALAOS_SERVER, overriding pkg-config + CALAOS_SERVER_LIBS + linker flags for CALAOS_SERVER, overriding pkg-config + CALAOS_HOME_CFLAGS + C compiler flags for CALAOS_HOME, overriding pkg-config + CALAOS_HOME_LIBS + linker flags for CALAOS_HOME, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +calaos configure 2.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------ ## +## Report this to raoul.hecky@gmail.com ## +## ------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_cxx_try_compile LINENO +@%:@ ---------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_cxx_try_compile + +@%:@ ac_fn_cxx_try_cpp LINENO +@%:@ ------------------------ +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_cxx_try_cpp + +@%:@ ac_fn_cxx_try_link LINENO +@%:@ ------------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_cxx_try_link +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by calaos $as_me 2.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +ac_config_headers="$ac_config_headers config.h" + + + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='calaos' + VERSION='2.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "@%:@define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h + + + +@%:@ Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _FILE_OFFSET_BITS 64 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _LARGE_FILES 1 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +### Needed information + + + + +### Checks for programs +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# pkg-config + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +### Checks for libraries + +requirements_calaos_common="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 sigc++-2.0 >= 2.2.0 log4cpp >= 1.0 jansson >= 2.0.0 vmime >= 0.9.0 lua5.1 >= 5.1.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_COMMON" >&5 +$as_echo_n "checking for CALAOS_COMMON... " >&6; } + +if test -n "$CALAOS_COMMON_CFLAGS"; then + pkg_cv_CALAOS_COMMON_CFLAGS="$CALAOS_COMMON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_common}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_common}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_COMMON_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_COMMON_LIBS"; then + pkg_cv_CALAOS_COMMON_LIBS="$CALAOS_COMMON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_common}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_common}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_COMMON_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_COMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_common}" 2>&1` + else + CALAOS_COMMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_common}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_COMMON_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_common}) were not met: + +$CALAOS_COMMON_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_COMMON_CFLAGS +and CALAOS_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_COMMON_CFLAGS +and CALAOS_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_COMMON_CFLAGS=$pkg_cv_CALAOS_COMMON_CFLAGS + CALAOS_COMMON_LIBS=$pkg_cv_CALAOS_COMMON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +requirements_calaos_server="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_SERVER" >&5 +$as_echo_n "checking for CALAOS_SERVER... " >&6; } + +if test -n "$CALAOS_SERVER_CFLAGS"; then + pkg_cv_CALAOS_SERVER_CFLAGS="$CALAOS_SERVER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_server}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_server}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_SERVER_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_SERVER_LIBS"; then + pkg_cv_CALAOS_SERVER_LIBS="$CALAOS_SERVER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_server}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_server}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_SERVER_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_SERVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_server}" 2>&1` + else + CALAOS_SERVER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_server}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_SERVER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_server}) were not met: + +$CALAOS_SERVER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_SERVER_CFLAGS +and CALAOS_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_SERVER_CFLAGS +and CALAOS_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_SERVER_CFLAGS=$pkg_cv_CALAOS_SERVER_CFLAGS + CALAOS_SERVER_LIBS=$pkg_cv_CALAOS_SERVER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +requirements_calaos_home="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 elementary >= 1.7.0 ecore-x >= 1.7.0 openssl >= 1.0.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_HOME" >&5 +$as_echo_n "checking for CALAOS_HOME... " >&6; } + +if test -n "$CALAOS_HOME_CFLAGS"; then + pkg_cv_CALAOS_HOME_CFLAGS="$CALAOS_HOME_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_home}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_home}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_HOME_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_HOME_LIBS"; then + pkg_cv_CALAOS_HOME_LIBS="$CALAOS_HOME_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_home}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_home}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_HOME_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_HOME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_home}" 2>&1` + else + CALAOS_HOME_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_home}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_HOME_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_home}) were not met: + +$CALAOS_HOME_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_HOME_CFLAGS +and CALAOS_HOME_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_HOME_CFLAGS +and CALAOS_HOME_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_HOME_CFLAGS=$pkg_cv_CALAOS_HOME_CFLAGS + CALAOS_HOME_LIBS=$pkg_cv_CALAOS_HOME_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +### Checks for compiler characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +### Checks for header files + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 +$as_echo_n "checking whether to enable assertions... " >&6; } + @%:@ Check whether --enable-assert was given. +if test "${enable_assert+set}" = set; then : + enableval=$enable_assert; ac_enable_assert=$enableval + if test "x$enableval" = xno; then : + +$as_echo "@%:@define NDEBUG 1" >>confdefs.h + +elif test "x$enableval" != xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 +$as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} + ac_enable_assert=yes +fi +else + ac_enable_assert=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 +$as_echo "$ac_enable_assert" >&6; } + +for ac_header in unistd.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_UNISTD_H 1 +_ACEOF + +fi + +done + + +ac_config_files="$ac_config_files Makefile src/Makefile src/lib/Makefile src/bin/Makefile src/bin/calaos_server/Makefile src/bin/calaos_home/Makefile data/Makefile data/themes/Makefile data/themes/default/Makefile" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by calaos $as_me 2.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +calaos config.status 2.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_separator_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; + "src/bin/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/Makefile" ;; + "src/bin/calaos_server/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/calaos_server/Makefile" ;; + "src/bin/calaos_home/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/calaos_home/Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/themes/Makefile") CONFIG_FILES="$CONFIG_FILES data/themes/Makefile" ;; + "data/themes/default/Makefile") CONFIG_FILES="$CONFIG_FILES data/themes/default/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="CXX " + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +##################################################################### +## Info + +echo +echo +echo +echo "------------------------------------------------------------------------" +echo "$PACKAGE $VERSION" +echo "------------------------------------------------------------------------" +echo +echo +echo "Configuration Options Summary:" +echo +echo "Compilation............: make (or gmake)" +echo " CPPFLAGS.............: $CPPFLAGS" +echo " CFLAGS...............: $CFLAGS" +echo " LDFLAGS..............: $LDFLAGS" +echo +echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" +echo " prefix...............: $prefix" +echo diff --git a/autom4te.cache/requests b/autom4te.cache/requests new file mode 100644 index 00000000..7130928a --- /dev/null +++ b/autom4te.cache/requests @@ -0,0 +1,294 @@ +# This file was generated by Autom4te Sun Nov 6 20:57:04 UTC 2011. +# It contains the lists of macros which have been traced. +# It can be safely removed. + +@request = ( + bless( [ + '0', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + '/usr/share/aclocal/argz.m4', + '/usr/share/aclocal/libtool.m4', + '/usr/share/aclocal/ltdl.m4', + '/usr/share/aclocal/ltoptions.m4', + '/usr/share/aclocal/ltsugar.m4', + '/usr/share/aclocal/ltversion.m4', + '/usr/share/aclocal/lt~obsolete.m4', + '/usr/share/aclocal/pkg.m4', + '/usr/share/aclocal-1.11/amversion.m4', + '/usr/share/aclocal-1.11/auxdir.m4', + '/usr/share/aclocal-1.11/cond.m4', + '/usr/share/aclocal-1.11/depend.m4', + '/usr/share/aclocal-1.11/depout.m4', + '/usr/share/aclocal-1.11/init.m4', + '/usr/share/aclocal-1.11/install-sh.m4', + '/usr/share/aclocal-1.11/lead-dot.m4', + '/usr/share/aclocal-1.11/make.m4', + '/usr/share/aclocal-1.11/missing.m4', + '/usr/share/aclocal-1.11/mkdirp.m4', + '/usr/share/aclocal-1.11/options.m4', + '/usr/share/aclocal-1.11/runlog.m4', + '/usr/share/aclocal-1.11/sanity.m4', + '/usr/share/aclocal-1.11/silent.m4', + '/usr/share/aclocal-1.11/strip.m4', + '/usr/share/aclocal-1.11/substnot.m4', + '/usr/share/aclocal-1.11/tar.m4', + 'configure.ac' + ], + { + 'AM_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AC_DEFUN' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AM_MISSING_PROG' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_m4_warn' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'gl_FUNC_ARGZ' => 1, + 'AM_SANITY_CHECK' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'LT_LIB_M' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LTSUGAR_VERSION' => 1, + '_LT_PROG_LTMAIN' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + '_AM_PROG_TAR' => 1, + 'AC_LIBTOOL_GCJ' => 1, + '_LT_WITH_SYSROOT' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'AC_LTDL_DLLIB' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + '_LTDL_SETUP' => 1, + 'AM_PROG_LIBTOOL' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AM_PROG_LD' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'AC_LIB_LTDL' => 1, + 'AU_DEFUN' => 1, + 'AC_PROG_NM' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_PROG_LD' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_LIBTOOL_FC' => 1, + 'LTDL_CONVENIENCE' => 1, + '_AM_SET_OPTION' => 1, + 'AC_LTDL_PREOPEN' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'gl_PREREQ_ARGZ' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_PROG_RC' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'AC_DEFUN_ONCE' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_RC' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'AM_SILENT_RULES' => 1, + 'include' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'LT_AC_PROG_SED' => 1, + 'AM_ENABLE_SHARED' => 1, + 'LTDL_INSTALLABLE' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AC_ENABLE_SHARED' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_ENABLE_STATIC' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_LIB_DLLOAD' => 1, + 'LTVERSION_VERSION' => 1, + '_LT_PROG_CXX' => 1, + '_LT_PROG_F77' => 1, + 'LTDL_INIT' => 1, + 'm4_include' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_PROG_EGREP' => 1, + 'AC_PATH_MAGIC' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LT_CMD_MAX_LEN' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'm4_pattern_forbid' => 1, + '_LT_LINKER_OPTION' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AC_DISABLE_SHARED' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'LT_LANG' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'LT_OUTPUT' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AC_WITH_LTDL' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'LT_INIT' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'AM_DEP_TRACK' => 1, + 'AM_DISABLE_STATIC' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_AM_IF_OPTION' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'm4_pattern_allow' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AM_SET_LEADING_DOT' => 1, + '_LT_PROG_FC' => 1, + 'LT_AC_PROG_EGREP' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'LTOPTIONS_VERSION' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AM_PROG_NM' => 1, + 'PKG_CHECK_MODULES' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'LT_PROG_GCJ' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_DISABLE_STATIC' => 1, + 'LT_PATH_NM' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + '_LT_AC_LOCK' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'LT_PROG_GO' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + '_LT_COMPILER_OPTION' => 1, + '_AM_SET_OPTIONS' => 1, + 'AM_RUN_LOG' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_CHECK_LIBM' => 1, + 'LT_PATH_LD' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AM_SET_DEPDIR' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + '_LT_CC_BASENAME' => 1, + '_LT_LIBOBJ' => 1 + } + ], 'Autom4te::Request' ), + bless( [ + '1', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + 'aclocal.m4', + 'configure.ac' + ], + { + 'AM_PROG_F77_C_O' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_INIT' => 1, + 'm4_pattern_forbid' => 1, + 'AC_CANONICAL_TARGET' => 1, + '_AM_COND_IF' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AC_SUBST' => 1, + 'AC_CANONICAL_HOST' => 1, + 'AC_FC_SRCEXT' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AM_PATH_GUILE' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_CONFIG_LINKS' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'm4_sinclude' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AM_NLS' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + '_m4_warn' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'AM_PROG_CXX_C_O' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_PROG_MOC' => 1, + 'AC_CONFIG_FILES' => 1, + 'include' => 1, + 'LT_INIT' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AM_PROG_AR' => 1, + 'AC_LIBSOURCE' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AC_FC_FREEFORM' => 1, + 'AH_OUTPUT' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'm4_pattern_allow' => 1, + 'AM_PROG_CC_C_O' => 1, + 'sinclude' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AM_POT_TOOLS' => 1, + 'm4_include' => 1, + '_AM_COND_ELSE' => 1, + 'AC_SUBST_TRACE' => 1 + } + ], 'Autom4te::Request' ) + ); + diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0 new file mode 100644 index 00000000..cd2eb4c5 --- /dev/null +++ b/autom4te.cache/traces.0 @@ -0,0 +1,2631 @@ +m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ + +AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_TYPES([error_t], + [], + [AC_DEFINE([error_t], [int], + [Define to a type to use for `error_t' if it is not otherwise available.]) + AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h + does not typedef error_t.])], + [#if defined(HAVE_ARGZ_H) +# include +#endif]) + +ARGZ_H= +AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ + argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) + +dnl if have system argz functions, allow forced use of +dnl libltdl-supplied implementation (and default to do so +dnl on "known bad" systems). Could use a runtime check, but +dnl (a) detecting malloc issues is notoriously unreliable +dnl (b) only known system that declares argz functions, +dnl provides them, yet they are broken, is cygwin +dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) +dnl So, it's more straightforward simply to special case +dnl this for known bad systems. +AS_IF([test -z "$ARGZ_H"], + [AC_CACHE_CHECK( + [if argz actually works], + [lt_cv_sys_argz_works], + [[case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test "$cross_compiling" != no; then + lt_cv_sys_argz_works="guessing no" + else + lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' + save_IFS=$IFS + IFS=-. + set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` + IFS=$save_IFS + lt_os_major=${2-0} + lt_os_minor=${3-0} + lt_os_micro=${4-0} + if test "$lt_os_major" -gt 1 \ + || { test "$lt_os_major" -eq 1 \ + && { test "$lt_os_minor" -gt 5 \ + || { test "$lt_os_minor" -eq 5 \ + && test "$lt_os_micro" -gt 24; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac]]) + AS_IF([test "$lt_cv_sys_argz_works" = yes], + [AC_DEFINE([HAVE_WORKING_ARGZ], 1, + [This value is set to 1 to indicate that the system argz facility works])], + [ARGZ_H=argz.h + AC_LIBOBJ([argz])])]) + +AC_SUBST([ARGZ_H]) +]) +m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:]) +m4trace:/usr/share/aclocal/libtool.m4:69: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +]) +m4trace:/usr/share/aclocal/libtool.m4:107: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:107: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:108: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:108: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:609: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +]) +m4trace:/usr/share/aclocal/libtool.m4:790: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) +m4trace:/usr/share/aclocal/libtool.m4:801: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:893: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +m4trace:/usr/share/aclocal/libtool.m4:893: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. +You should run autoupdate.])dnl +LT_LANG(C++)]) +m4trace:/usr/share/aclocal/libtool.m4:894: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +m4trace:/usr/share/aclocal/libtool.m4:894: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran 77)]) +m4trace:/usr/share/aclocal/libtool.m4:895: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +m4trace:/usr/share/aclocal/libtool.m4:895: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran)]) +m4trace:/usr/share/aclocal/libtool.m4:896: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +m4trace:/usr/share/aclocal/libtool.m4:896: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Java)]) +m4trace:/usr/share/aclocal/libtool.m4:897: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +m4trace:/usr/share/aclocal/libtool.m4:897: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Windows Resource)]) +m4trace:/usr/share/aclocal/libtool.m4:1225: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) +m4trace:/usr/share/aclocal/libtool.m4:1502: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +]) +m4trace:/usr/share/aclocal/libtool.m4:1544: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1544: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1553: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +]) +m4trace:/usr/share/aclocal/libtool.m4:1588: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1588: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1595: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +]) +m4trace:/usr/share/aclocal/libtool.m4:1733: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1733: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1844: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +]) +m4trace:/usr/share/aclocal/libtool.m4:1961: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1961: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:2942: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:3004: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3004: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3027: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +]) +m4trace:/usr/share/aclocal/libtool.m4:3501: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3501: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3502: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3502: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3572: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +]) +m4trace:/usr/share/aclocal/libtool.m4:3591: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3591: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7641: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:7650: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7650: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7657: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) +]) +m4trace:/usr/share/aclocal/libtool.m4:7664: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) +]) +m4trace:/usr/share/aclocal/libtool.m4:7669: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7669: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7789: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7789: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) +_$0($*) +]) +m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ + m4_pattern_allow([^_LT_LIBOBJS$]) + _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" +]) +m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +dnl We need to keep our own list of libobjs separate from our parent project, +dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while +dnl we look for our own LIBOBJs. +m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) +m4_pushdef([AC_LIBSOURCES]) + +dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: +m4_if(_LTDL_MODE, [], + [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) + m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], + [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) + +AC_ARG_WITH([included_ltdl], + [AS_HELP_STRING([--with-included-ltdl], + [use the GNU ltdl sources included here])]) + +if test "x$with_included_ltdl" != xyes; then + # We are not being forced to use the included libltdl sources, so + # decide whether there is a useful installed version we can use. + AC_CHECK_HEADER([ltdl.h], + [AC_CHECK_DECL([lt_dlinterface_register], + [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], + [with_included_ltdl=no], + [with_included_ltdl=yes])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT + #include ])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT] + ) +fi + +dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE +dnl was called yet, then for old times' sake, we assume libltdl is in an +dnl eponymous directory: +AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) + +AC_ARG_WITH([ltdl_include], + [AS_HELP_STRING([--with-ltdl-include=DIR], + [use the ltdl headers installed in DIR])]) + +if test -n "$with_ltdl_include"; then + if test -f "$with_ltdl_include/ltdl.h"; then : + else + AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) + fi +else + with_ltdl_include=no +fi + +AC_ARG_WITH([ltdl_lib], + [AS_HELP_STRING([--with-ltdl-lib=DIR], + [use the libltdl.la installed in DIR])]) + +if test -n "$with_ltdl_lib"; then + if test -f "$with_ltdl_lib/libltdl.la"; then : + else + AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) + fi +else + with_ltdl_lib=no +fi + +case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in + ,yes,no,no,) + m4_case(m4_default(_LTDL_TYPE, [convenience]), + [convenience], [_LTDL_CONVENIENCE], + [installable], [_LTDL_INSTALLABLE], + [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) + ;; + ,no,no,no,) + # If the included ltdl is not to be used, then use the + # preinstalled libltdl we found. + AC_DEFINE([HAVE_LTDL], [1], + [Define this if a modern libltdl is already installed]) + LIBLTDL=-lltdl + LTDLDEPS= + LTDLINCL= + ;; + ,no*,no,*) + AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) + ;; + *) with_included_ltdl=no + LIBLTDL="-L$with_ltdl_lib -lltdl" + LTDLDEPS= + LTDLINCL="-I$with_ltdl_include" + ;; +esac +INCLTDL="$LTDLINCL" + +# Report our decision... +AC_MSG_CHECKING([where to find libltdl headers]) +AC_MSG_RESULT([$LTDLINCL]) +AC_MSG_CHECKING([where to find libltdl library]) +AC_MSG_RESULT([$LIBLTDL]) + +_LTDL_SETUP + +dnl restore autoconf definition. +m4_popdef([AC_LIBOBJ]) +m4_popdef([AC_LIBSOURCES]) + +AC_CONFIG_COMMANDS_PRE([ + _ltdl_libobjs= + _ltdl_ltlibobjs= + if test -n "$_LT_LIBOBJS"; then + # Remove the extension. + _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do + _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" + _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" + done + fi + AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) + AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) +]) + +# Only expand once: +m4_define([LTDL_INIT]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_SYS_MODULE_EXT])dnl +AC_REQUIRE([LT_SYS_MODULE_PATH])dnl +AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl +AC_REQUIRE([LT_LIB_DLLOAD])dnl +AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl +AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl +AC_REQUIRE([gl_FUNC_ARGZ])dnl + +m4_require([_LT_CHECK_OBJDIR])dnl +m4_require([_LT_HEADER_DLFCN])dnl +m4_require([_LT_CHECK_DLPREOPEN])dnl +m4_require([_LT_DECL_SED])dnl + +dnl Don't require this, or it will be expanded earlier than the code +dnl that sets the variables it relies on: +_LT_ENABLE_INSTALL + +dnl _LTDL_MODE specific code must be called at least once: +_LTDL_MODE_DISPATCH + +# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS +# the user used. This is so that ltdl.h can pick up the parent projects +# config.h file, The first file in AC_CONFIG_HEADERS must contain the +# definitions required by ltdl.c. +# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). +AC_CONFIG_COMMANDS_PRE([dnl +m4_pattern_allow([^LT_CONFIG_H$])dnl +m4_ifset([AH_HEADER], + [LT_CONFIG_H=AH_HEADER], + [m4_ifset([AC_LIST_HEADERS], + [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], + [])])]) +AC_SUBST([LT_CONFIG_H]) + +AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], + [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) +AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) + +m4_pattern_allow([LT_LIBEXT])dnl +AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) + +name= +eval "lt_libprefix=\"$libname_spec\"" +m4_pattern_allow([LT_LIBPREFIX])dnl +AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) + +name=ltdl +eval "LTDLOPEN=\"$libname_spec\"" +AC_SUBST([LTDLOPEN]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_CACHE_CHECK([whether deplibs are loaded by dlopen], + [lt_cv_sys_dlopen_deplibs], + [# PORTME does your system automatically load deplibs for dlopen? + # or its logical equivalent (e.g. shl_load for HP-UX < 11) + # For now, we just catch OSes we know something about -- in the + # future, we'll try test this programmatically. + lt_cv_sys_dlopen_deplibs=unknown + case $host_os in + aix3*|aix4.1.*|aix4.2.*) + # Unknown whether this is true for these versions of AIX, but + # we want this `case' here to explicitly catch those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + aix[[4-9]]*) + lt_cv_sys_dlopen_deplibs=yes + ;; + amigaos*) + case $host_cpu in + powerpc) + lt_cv_sys_dlopen_deplibs=no + ;; + esac + ;; + darwin*) + # Assuming the user has installed a libdl from somewhere, this is true + # If you are looking for one http://www.opendarwin.org/projects/dlcompat + lt_cv_sys_dlopen_deplibs=yes + ;; + freebsd* | dragonfly*) + lt_cv_sys_dlopen_deplibs=yes + ;; + gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) + # GNU and its variants, using gnu ld.so (Glibc) + lt_cv_sys_dlopen_deplibs=yes + ;; + hpux10*|hpux11*) + lt_cv_sys_dlopen_deplibs=yes + ;; + interix*) + lt_cv_sys_dlopen_deplibs=yes + ;; + irix[[12345]]*|irix6.[[01]]*) + # Catch all versions of IRIX before 6.2, and indicate that we don't + # know how it worked for any of those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + irix*) + # The case above catches anything before 6.2, and it's known that + # at 6.2 and later dlopen does load deplibs. + lt_cv_sys_dlopen_deplibs=yes + ;; + netbsd* | netbsdelf*-gnu) + lt_cv_sys_dlopen_deplibs=yes + ;; + openbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + osf[[1234]]*) + # dlopen did load deplibs (at least at 4.x), but until the 5.x series, + # it did *not* use an RPATH in a shared library to find objects the + # library depends on, so we explicitly say `no'. + lt_cv_sys_dlopen_deplibs=no + ;; + osf5.0|osf5.0a|osf5.1) + # dlopen *does* load deplibs and with the right loader patch applied + # it even uses RPATH in a shared library to search for shared objects + # that the library depends on, but there's no easy way to know if that + # patch is installed. Since this is the case, all we can really + # say is unknown -- it depends on the patch being installed. If + # it is, this changes to `yes'. Without it, it would be `no'. + lt_cv_sys_dlopen_deplibs=unknown + ;; + osf*) + # the two cases above should catch all versions of osf <= 5.1. Read + # the comments above for what we know about them. + # At > 5.1, deplibs are loaded *and* any RPATH in a shared library + # is used to find them so we can finally say `yes'. + lt_cv_sys_dlopen_deplibs=yes + ;; + qnx*) + lt_cv_sys_dlopen_deplibs=yes + ;; + solaris*) + lt_cv_sys_dlopen_deplibs=yes + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + libltdl_cv_sys_dlopen_deplibs=yes + ;; + esac + ]) +if test "$lt_cv_sys_dlopen_deplibs" != yes; then + AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], + [Define if the OS needs help to load dependent libraries for dlopen().]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:549: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which extension is used for runtime loadable modules], + [libltdl_cv_shlibext], +[ +module=yes +eval libltdl_cv_shlibext=$shrext_cmds +module=no +eval libltdl_cv_shrext=$shrext_cmds + ]) +if test -n "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_MODULE_EXT])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], + [Define to the extension used for runtime loadable modules, say, ".so".]) +fi +if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_SHARED_EXT])dnl + AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], + [Define to the shared library suffix, say, ".dylib".]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:579: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which variable specifies run-time module search path], + [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) +if test -n "$lt_cv_module_path_var"; then + m4_pattern_allow([LT_MODULE_PATH_VAR])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], + [Define to the name of the environment variable that determines the run-time module search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:598: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([for the default library search path], + [lt_cv_sys_dlsearch_path], + [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) +if test -n "$lt_cv_sys_dlsearch_path"; then + sys_dlsearch_path= + for dir in $lt_cv_sys_dlsearch_path; do + if test -z "$sys_dlsearch_path"; then + sys_dlsearch_path="$dir" + else + sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" + fi + done + m4_pattern_allow([LT_DLSEARCH_PATH])dnl + AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], + [Define to the system default library search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:645: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) +LT_DLLOADERS= +AC_SUBST([LT_DLLOADERS]) + +AC_LANG_PUSH([C]) + +LIBADD_DLOPEN= +AC_SEARCH_LIBS([dlopen], [dl], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + if test "$ac_cv_search_dlopen" != "none required" ; then + LIBADD_DLOPEN="-ldl" + fi + libltdl_cv_lib_dl_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H +# include +#endif + ]], [[dlopen(0, 0);]])], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_CHECK_LIB([svld], [dlopen], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) +if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes +then + lt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + AC_CHECK_FUNCS([dlerror]) + LIBS="$lt_save_LIBS" +fi +AC_SUBST([LIBADD_DLOPEN]) + +LIBADD_SHL_LOAD= +AC_CHECK_FUNC([shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], + [AC_CHECK_LIB([dld], [shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" + LIBADD_SHL_LOAD="-ldld"])]) +AC_SUBST([LIBADD_SHL_LOAD]) + +case $host_os in +darwin[[1567]].*) +# We only want this for pre-Mac OS X 10.4. + AC_CHECK_FUNC([_dyld_func_lookup], + [AC_DEFINE([HAVE_DYLD], [1], + [Define if you have the _dyld_func_lookup function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) + ;; +beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +cygwin* | mingw* | os2* | pw32*) + AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; +esac + +AC_CHECK_LIB([dld], [dld_link], + [AC_DEFINE([HAVE_DLD], [1], + [Define if you have the GNU dld library.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) +AC_SUBST([LIBADD_DLD_LINK]) + +m4_pattern_allow([^LT_DLPREOPEN$]) +LT_DLPREOPEN= +if test -n "$LT_DLLOADERS" +then + for lt_loader in $LT_DLLOADERS; do + LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " + done + AC_DEFINE([HAVE_LIBDLLOADER], [1], + [Define if libdlloader will be built on this platform]) +fi +AC_SUBST([LT_DLPREOPEN]) + +dnl This isn't used anymore, but set it for backwards compatibility +LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" +AC_SUBST([LIBADD_DL]) + +AC_LANG_POP +]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:746: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +AC_CACHE_CHECK([for _ prefix in compiled symbols], + [lt_cv_sys_symbol_underscore], + [lt_cv_sys_symbol_underscore=no + cat > conftest.$ac_ext <<_LT_EOF +void nm_test_func(){} +int main(){nm_test_func;return 0;} +_LT_EOF + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + ac_nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then + # See whether the symbols have a leading underscore. + if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then + lt_cv_sys_symbol_underscore=yes + else + if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then + : + else + echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD + fi + fi + else + echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.c >&AS_MESSAGE_LOG_FD + fi + rm -rf conftest* + ]) + sys_symbol_underscore=$lt_cv_sys_symbol_underscore + AC_SUBST([sys_symbol_underscore]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:790: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +if test x"$lt_cv_sys_symbol_underscore" = xyes; then + if test x"$libltdl_cv_func_dlopen" = xyes || + test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then + AC_CACHE_CHECK([whether we have to add an underscore for dlsym], + [libltdl_cv_need_uscore], + [libltdl_cv_need_uscore=unknown + save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + _LT_TRY_DLOPEN_SELF( + [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], + [], [libltdl_cv_need_uscore=cross]) + LIBS="$save_LIBS" + ]) + fi +fi + +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE([NEED_USCORE], [1], + [Define if dlsym() requires a leading underscore in symbol names.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +m4trace:/usr/share/aclocal/ltoptions.m4:111: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:111: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:146: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:146: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. +You should run autoupdate.])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:195: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:199: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:203: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:203: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:204: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:204: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:249: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:253: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:257: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:257: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:258: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:258: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:303: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:303: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:310: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:310: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:358: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:358: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) +m4trace:/usr/share/aclocal/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:81: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:82: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:83: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:84: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:85: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:86: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:87: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:88: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:89: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:90: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:91: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:93: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:96: -1- AC_DEFUN([_LT_PROG_F77]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_FC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_CXX]) +m4trace:/usr/share/aclocal/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +]) +m4trace:/usr/share/aclocal/pkg.m4:60: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) +m4trace:/usr/share/aclocal/pkg.m4:86: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +]) +m4trace:/usr/share/aclocal/pkg.m4:106: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +]) +m4trace:/usr/share/aclocal-1.11/amversion.m4:17: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.3], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) +m4trace:/usr/share/aclocal-1.11/amversion.m4:36: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.3])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +m4trace:/usr/share/aclocal-1.11/auxdir.m4:49: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) +m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) +m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) +m4trace:/usr/share/aclocal-1.11/depend.m4:164: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) +m4trace:/usr/share/aclocal-1.11/depend.m4:172: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) +m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +]) +m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) +m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) +m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +m4trace:/usr/share/aclocal-1.11/install-sh.m4:14: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) +m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) +m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) +m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) +m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) +m4trace:/usr/share/aclocal-1.11/mkdirp.m4:14: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) +m4trace:/usr/share/aclocal-1.11/options.m4:14: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +m4trace:/usr/share/aclocal-1.11/options.m4:20: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +m4trace:/usr/share/aclocal-1.11/options.m4:26: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +m4trace:/usr/share/aclocal-1.11/options.m4:32: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +m4trace:/usr/share/aclocal-1.11/runlog.m4:14: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) +m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) +m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) +m4trace:/usr/share/aclocal-1.11/strip.m4:19: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) +m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) +m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:1: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:15: -1- AM_INIT_AUTOMAKE([1.6 dist-bzip2]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:15: -1- AM_SET_CURRENT_AUTOMAKE_VERSION +m4trace:configure.ac:15: -1- AM_AUTOMAKE_VERSION([1.11.3]) +m4trace:configure.ac:15: -1- _AM_AUTOCONF_VERSION([2.68]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:15: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:15: -1- _AM_SET_OPTIONS([1.6 dist-bzip2]) +m4trace:configure.ac:15: -1- _AM_SET_OPTION([1.6]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([1.6]) +m4trace:configure.ac:15: -1- _AM_SET_OPTION([dist-bzip2]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([dist-bzip2]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:15: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([no-define]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:15: -1- AM_SANITY_CHECK +m4trace:configure.ac:15: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +m4trace:configure.ac:15: -1- AM_MISSING_HAS_RUN +m4trace:configure.ac:15: -1- AM_AUX_DIR_EXPAND +m4trace:configure.ac:15: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:15: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:15: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:15: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:15: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:15: -1- AM_PROG_INSTALL_SH +m4trace:configure.ac:15: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:15: -1- AM_PROG_INSTALL_STRIP +m4trace:configure.ac:15: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:15: -1- AM_PROG_MKDIR_P +m4trace:configure.ac:15: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:15: -1- AM_SET_LEADING_DOT +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:15: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:15: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([tar-pax]) +m4trace:configure.ac:15: -1- _AM_PROG_TAR([v7]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__tar$]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__untar$]) +m4trace:configure.ac:15: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([no-dependencies]) +m4trace:configure.ac:15: -1- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])]) +m4trace:configure.ac:15: -2- _AM_MANGLE_OPTION([silent-rules]) +m4trace:configure.ac:16: -1- AM_SILENT_RULES([yes]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:16: -1- AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:16: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:18: -1- _m4_warn([obsolete], [The macro `AC_GNU_SOURCE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/specific.m4:310: AC_GNU_SOURCE is expanded from... +configure.ac:18: the top level]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.ac:18: -1- _AM_DEPENDENCIES([CC]) +m4trace:configure.ac:18: -1- AM_SET_DEPDIR +m4trace:configure.ac:18: -1- m4_pattern_allow([^DEPDIR$]) +m4trace:configure.ac:18: -1- AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:18: -1- AM_MAKE_INCLUDE +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__include$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__quote$]) +m4trace:configure.ac:18: -1- AM_DEP_TRACK +m4trace:configure.ac:18: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^AMDEP_TRUE$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^AMDEP_FALSE$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__nodep$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__nodep]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:18: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:18: -1- AC_PROG_EGREP +m4trace:configure.ac:18: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_POSIX_SOURCE$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_MINIX$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^__EXTENSIONS__$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_ALL_SOURCE$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_GNU_SOURCE$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) +m4trace:configure.ac:19: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$]) +m4trace:configure.ac:19: -1- m4_pattern_allow([^_LARGE_FILES$]) +m4trace:configure.ac:22: -1- LT_INIT([win32-dll]) +m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) +m4trace:configure.ac:22: -1- LTOPTIONS_VERSION +m4trace:configure.ac:22: -1- LTSUGAR_VERSION +m4trace:configure.ac:22: -1- LTVERSION_VERSION +m4trace:configure.ac:22: -1- LTOBSOLETE_VERSION +m4trace:configure.ac:22: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:22: -1- m4_pattern_allow([^AS$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBTOOL$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:22: -1- _LT_PREPARE_SED_QUOTE_VARS +m4trace:configure.ac:22: -1- _LT_PROG_ECHO_BACKSLASH +m4trace:configure.ac:22: -1- LT_PATH_LD +m4trace:configure.ac:22: -1- m4_pattern_allow([^SED$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^FGREP$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:22: -1- LT_PATH_NM +m4trace:configure.ac:22: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^NM$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.ac:22: -1- LT_CMD_MAX_LEN +m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^AR$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^ac_ct_AR$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.ac:22: -1- _LT_WITH_SYSROOT +m4trace:configure.ac:22: -1- m4_pattern_allow([LT_OBJDIR]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LT_OBJDIR$]) +m4trace:configure.ac:22: -1- _LT_CC_BASENAME([$compiler]) +m4trace:configure.ac:22: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH]) +m4trace:configure.ac:22: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH]) +m4trace:configure.ac:22: -1- LT_SUPPORTED_TAG([CC]) +m4trace:configure.ac:22: -1- _LT_COMPILER_BOILERPLATE +m4trace:configure.ac:22: -1- _LT_LINKER_BOILERPLATE +m4trace:configure.ac:22: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"]) +m4trace:configure.ac:22: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;; + esac], [_LT_TAGVAR(lt_prog_compiler_pic, )= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no]) +m4trace:configure.ac:22: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^MANIFEST_TOOL$]) +m4trace:configure.ac:22: -1- _LT_REQUIRED_DARWIN_CHECKS +m4trace:configure.ac:22: -1- m4_pattern_allow([^DSYMUTIL$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^NMEDIT$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LIPO$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OTOOL$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OTOOL64$]) +m4trace:configure.ac:22: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags']) +m4trace:configure.ac:22: -1- LT_SYS_DLOPEN_SELF +m4trace:configure.ac:22: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXX$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXFLAGS$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXX$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^ac_ct_CXX$]) +m4trace:configure.ac:30: -1- _AM_DEPENDENCIES([CXX]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXDEPMODE$]) +m4trace:configure.ac:30: -1- AM_CONDITIONAL([am__fastdepCXX], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$]) +m4trace:configure.ac:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE]) +m4trace:configure.ac:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE]) +m4trace:configure.ac:30: -1- LT_LANG([CXX]) +m4trace:configure.ac:30: -1- LT_SUPPORTED_TAG([CXX]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXCPP$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXCPP$]) +m4trace:configure.ac:30: -1- _LT_COMPILER_BOILERPLATE +m4trace:configure.ac:30: -1- _LT_LINKER_BOILERPLATE +m4trace:configure.ac:30: -1- _LT_CC_BASENAME([$compiler]) +m4trace:configure.ac:30: -1- LT_PATH_LD +m4trace:configure.ac:30: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:30: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, CXX) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, CXX)], [$_LT_TAGVAR(lt_prog_compiler_pic, CXX)@&t@m4_if([CXX],[],[ -DPIC],[m4_if([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, CXX) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, CXX)=" $_LT_TAGVAR(lt_prog_compiler_pic, CXX)" ;; + esac], [_LT_TAGVAR(lt_prog_compiler_pic, CXX)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, CXX)=no]) +m4trace:configure.ac:30: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works_CXX], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, CXX)=]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:31: -1- _AM_DEPENDENCIES([CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:31: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:31: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:31: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:34: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:34: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:39: -1- PKG_CHECK_MODULES([CALAOS_COMMON], [${requirements_calaos_common}]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^CALAOS_COMMON_CFLAGS$]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^CALAOS_COMMON_LIBS$]) +m4trace:configure.ac:39: -1- PKG_CHECK_EXISTS([${requirements_calaos_common}], [pkg_cv_[]CALAOS_COMMON_CFLAGS=`$PKG_CONFIG --[]cflags "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:39: -1- PKG_CHECK_EXISTS([${requirements_calaos_common}], [pkg_cv_[]CALAOS_COMMON_LIBS=`$PKG_CONFIG --[]libs "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:39: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:40: -1- m4_pattern_allow([^requirements_calaos_common$]) +m4trace:configure.ac:43: -1- PKG_CHECK_MODULES([CALAOS_SERVER], [${requirements_calaos_server}]) +m4trace:configure.ac:43: -1- m4_pattern_allow([^CALAOS_SERVER_CFLAGS$]) +m4trace:configure.ac:43: -1- m4_pattern_allow([^CALAOS_SERVER_LIBS$]) +m4trace:configure.ac:43: -1- PKG_CHECK_EXISTS([${requirements_calaos_server}], [pkg_cv_[]CALAOS_SERVER_CFLAGS=`$PKG_CONFIG --[]cflags "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:43: -1- PKG_CHECK_EXISTS([${requirements_calaos_server}], [pkg_cv_[]CALAOS_SERVER_LIBS=`$PKG_CONFIG --[]libs "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:43: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:44: -1- m4_pattern_allow([^requirements_calaos_server$]) +m4trace:configure.ac:47: -1- PKG_CHECK_MODULES([CALAOS_HOME], [${requirements_calaos_home}]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^CALAOS_HOME_CFLAGS$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^CALAOS_HOME_LIBS$]) +m4trace:configure.ac:47: -1- PKG_CHECK_EXISTS([${requirements_calaos_home}], [pkg_cv_[]CALAOS_HOME_CFLAGS=`$PKG_CONFIG --[]cflags "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:47: -1- PKG_CHECK_EXISTS([${requirements_calaos_home}], [pkg_cv_[]CALAOS_HOME_LIBS=`$PKG_CONFIG --[]libs "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:47: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:48: -1- m4_pattern_allow([^requirements_calaos_home$]) +m4trace:configure.ac:51: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) +m4trace:configure.ac:51: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) +m4trace:configure.ac:55: -1- m4_pattern_allow([^NDEBUG$]) +m4trace:configure.ac:56: -1- m4_pattern_allow([^HAVE_UNISTD_H$]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:70: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:70: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:70: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:70: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:70: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:70: -1- _LT_PROG_LTMAIN diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1 new file mode 100644 index 00000000..43c6c03c --- /dev/null +++ b/autom4te.cache/traces.1 @@ -0,0 +1,752 @@ +m4trace:configure.ac:1: -1- AC_INIT([calaos], [2.0], [raoul.hecky@gmail.com]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:1: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:1: -1- AC_SUBST([SHELL]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([SHELL]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:1: -1- AC_SUBST([PATH_SEPARATOR]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_NAME]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_STRING]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_URL]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:1: -1- AC_SUBST([exec_prefix], [NONE]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([exec_prefix]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:1: -1- AC_SUBST([prefix], [NONE]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([prefix]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:1: -1- AC_SUBST([program_transform_name], [s,x,x,]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([program_transform_name]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:1: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([bindir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:1: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sbindir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:1: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([libexecdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([datarootdir], ['${prefix}/share']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([datarootdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([datadir], ['${datarootdir}']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([datadir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:1: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sysconfdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sharedstatedir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:1: -1- AC_SUBST([localstatedir], ['${prefix}/var']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([localstatedir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:1: -1- AC_SUBST([includedir], ['${prefix}/include']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([includedir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:1: -1- AC_SUBST([oldincludedir], ['/usr/include']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([oldincludedir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:1: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], + ['${datarootdir}/doc/${PACKAGE_TARNAME}'], + ['${datarootdir}/doc/${PACKAGE}'])]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([docdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([infodir], ['${datarootdir}/info']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([infodir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:1: -1- AC_SUBST([htmldir], ['${docdir}']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([htmldir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:1: -1- AC_SUBST([dvidir], ['${docdir}']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([dvidir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:1: -1- AC_SUBST([pdfdir], ['${docdir}']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([pdfdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([psdir], ['${docdir}']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([psdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([libdir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:1: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([localedir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:1: -1- AC_SUBST([mandir], ['${datarootdir}/man']) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([mandir]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ +@%:@undef PACKAGE_NAME]) +m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ +@%:@undef PACKAGE_TARNAME]) +m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ +@%:@undef PACKAGE_VERSION]) +m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ +@%:@undef PACKAGE_STRING]) +m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ +@%:@undef PACKAGE_BUGREPORT]) +m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ +@%:@undef PACKAGE_URL]) +m4trace:configure.ac:1: -1- AC_SUBST([DEFS]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([DEFS]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:1: -1- AC_SUBST([ECHO_C]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_C]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:1: -1- AC_SUBST([ECHO_N]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_N]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:1: -1- AC_SUBST([ECHO_T]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_T]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:1: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:1: -1- AC_SUBST([build_alias]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([build_alias]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:1: -1- AC_SUBST([host_alias]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([host_alias]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:1: -1- AC_SUBST([target_alias]) +m4trace:configure.ac:1: -1- AC_SUBST_TRACE([target_alias]) +m4trace:configure.ac:1: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:6: -1- AC_CONFIG_HEADERS([config.h]) +m4trace:configure.ac:7: -1- AH_OUTPUT([00001], [ +#ifndef CALAOS_CONFIG_H__ +#define CALAOS_CONFIG_H__ +]) +m4trace:configure.ac:11: -1- AH_OUTPUT([zzzz2], [ +#endif /* CALAOS_CONFIG_H__ */ +]) +m4trace:configure.ac:15: -1- AM_INIT_AUTOMAKE([1.6 dist-bzip2]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:15: -1- AM_AUTOMAKE_VERSION([1.11.3]) +m4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([install-sh]) +m4trace:configure.ac:15: -1- AC_SUBST([INSTALL_PROGRAM]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:15: -1- AC_SUBST([INSTALL_SCRIPT]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:15: -1- AC_SUBST([INSTALL_DATA]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([INSTALL_DATA]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:15: -1- AC_SUBST([am__isrc], [' -I$(srcdir)']) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([am__isrc]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:15: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:15: -1- AC_SUBST([CYGPATH_W]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([CYGPATH_W]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME']) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:15: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION']) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([VERSION]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ +@%:@undef PACKAGE]) +m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:15: -1- AH_OUTPUT([VERSION], [/* Version number of package */ +@%:@undef VERSION]) +m4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([missing]) +m4trace:configure.ac:15: -1- AC_SUBST([ACLOCAL]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ACLOCAL]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:15: -1- AC_SUBST([AUTOCONF]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([AUTOCONF]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:15: -1- AC_SUBST([AUTOMAKE]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([AUTOMAKE]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:15: -1- AC_SUBST([AUTOHEADER]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([AUTOHEADER]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:15: -1- AC_SUBST([MAKEINFO]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([MAKEINFO]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:15: -1- AC_SUBST([install_sh]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([install_sh]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:15: -1- AC_SUBST([STRIP]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([STRIP]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:15: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([install-sh]) +m4trace:configure.ac:15: -1- AC_SUBST([MKDIR_P]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:15: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([mkdir_p]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:15: -1- AC_SUBST([AWK]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([AWK]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:15: -1- AC_SUBST([SET_MAKE]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([SET_MAKE]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:15: -1- AC_SUBST([am__leading_dot]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([am__leading_dot]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:15: -1- AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([AMTAR]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:15: -1- AC_SUBST([am__tar]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([am__tar]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__tar$]) +m4trace:configure.ac:15: -1- AC_SUBST([am__untar]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([am__untar]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^am__untar$]) +m4trace:configure.ac:16: -1- AM_SILENT_RULES([yes]) +m4trace:configure.ac:16: -1- AC_SUBST([AM_V]) +m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AM_V]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:16: -1- AC_SUBST([AM_DEFAULT_V]) +m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AM_DEFAULT_V]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:16: -1- AC_SUBST([AM_DEFAULT_VERBOSITY]) +m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:16: -1- AC_SUBST([AM_BACKSLASH]) +m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AM_BACKSLASH]) +m4trace:configure.ac:16: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:18: -1- _m4_warn([obsolete], [The macro `AC_GNU_SOURCE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/specific.m4:310: AC_GNU_SOURCE is expanded from... +configure.ac:18: the top level]) +m4trace:configure.ac:18: -1- AC_SUBST([CC]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- AC_SUBST([CFLAGS]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CFLAGS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:18: -1- AC_SUBST([LDFLAGS]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([LDFLAGS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:18: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:18: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:18: -1- AC_SUBST([CC]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- AC_SUBST([CC]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- AC_SUBST([CC]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- AC_SUBST([CC]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:18: -1- AC_SUBST([ac_ct_CC]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([ac_ct_CC]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:18: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([EXEEXT]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.ac:18: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([OBJEXT]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.ac:18: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([DEPDIR]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^DEPDIR$]) +m4trace:configure.ac:18: -1- AC_SUBST([am__include]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__include]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__include$]) +m4trace:configure.ac:18: -1- AC_SUBST([am__quote]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__quote]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__quote$]) +m4trace:configure.ac:18: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +m4trace:configure.ac:18: -1- AC_SUBST([AMDEP_TRUE]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([AMDEP_TRUE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^AMDEP_TRUE$]) +m4trace:configure.ac:18: -1- AC_SUBST([AMDEP_FALSE]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([AMDEP_FALSE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^AMDEP_FALSE$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) +m4trace:configure.ac:18: -1- AC_SUBST([AMDEPBACKSLASH]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([AMDEPBACKSLASH]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) +m4trace:configure.ac:18: -1- AC_SUBST([am__nodep]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__nodep]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__nodep$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__nodep]) +m4trace:configure.ac:18: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CCDEPMODE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:18: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:18: -1- AC_SUBST([am__fastdepCC_TRUE]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:18: -1- AC_SUBST([am__fastdepCC_FALSE]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:18: -1- AC_SUBST([CPP]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:18: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:18: -1- AC_SUBST([CPP]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:18: -1- AC_SUBST([GREP]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:18: -1- AC_SUBST([EGREP]) +m4trace:configure.ac:18: -1- AC_SUBST_TRACE([EGREP]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.ac:18: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ +@%:@undef STDC_HEADERS]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TYPES_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_STAT_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRING_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MEMORY_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRINGS_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_INTTYPES_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDINT_H]) +m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_POSIX_SOURCE$]) +m4trace:configure.ac:18: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ +@%:@undef _POSIX_SOURCE]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) +m4trace:configure.ac:18: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +@%:@undef _POSIX_1_SOURCE]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_MINIX$]) +m4trace:configure.ac:18: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ +@%:@undef _MINIX]) +m4trace:configure.ac:18: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^__EXTENSIONS__$]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_ALL_SOURCE$]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_GNU_SOURCE$]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) +m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE]) +m4trace:configure.ac:18: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) +m4trace:configure.ac:19: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS]) +m4trace:configure.ac:19: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$]) +m4trace:configure.ac:19: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */ +@%:@undef _FILE_OFFSET_BITS]) +m4trace:configure.ac:19: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES]) +m4trace:configure.ac:19: -1- m4_pattern_allow([^_LARGE_FILES$]) +m4trace:configure.ac:19: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */ +@%:@undef _LARGE_FILES]) +m4trace:configure.ac:22: -1- LT_INIT([win32-dll]) +m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) +m4trace:configure.ac:22: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) +m4trace:configure.ac:22: -1- AC_SUBST([AS]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([AS]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^AS$]) +m4trace:configure.ac:22: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:22: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:22: -1- AC_SUBST([LIBTOOL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIBTOOL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBTOOL$]) +m4trace:configure.ac:22: -1- AC_CANONICAL_HOST +m4trace:configure.ac:22: -1- AC_CANONICAL_BUILD +m4trace:configure.ac:22: -1- AC_REQUIRE_AUX_FILE([config.sub]) +m4trace:configure.ac:22: -1- AC_REQUIRE_AUX_FILE([config.guess]) +m4trace:configure.ac:22: -1- AC_SUBST([build], [$ac_cv_build]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([build]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:22: -1- AC_SUBST([build_cpu], [$[1]]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([build_cpu]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:22: -1- AC_SUBST([build_vendor], [$[2]]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([build_vendor]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:22: -1- AC_SUBST([build_os]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([build_os]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:22: -1- AC_SUBST([host], [$ac_cv_host]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([host]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:22: -1- AC_SUBST([host_cpu], [$[1]]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([host_cpu]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:22: -1- AC_SUBST([host_vendor], [$[2]]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([host_vendor]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:22: -1- AC_SUBST([host_os]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([host_os]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:22: -1- AC_SUBST([SED]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([SED]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^SED$]) +m4trace:configure.ac:22: -1- AC_SUBST([FGREP]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([FGREP]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^FGREP$]) +m4trace:configure.ac:22: -1- AC_SUBST([GREP]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:22: -1- AC_SUBST([LD]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LD]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:22: -1- AC_SUBST([DUMPBIN]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DUMPBIN]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:22: -1- AC_SUBST([ac_ct_DUMPBIN]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) +m4trace:configure.ac:22: -1- AC_SUBST([DUMPBIN]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DUMPBIN]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:22: -1- AC_SUBST([NM]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([NM]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^NM$]) +m4trace:configure.ac:22: -1- AC_SUBST([LN_S], [$as_ln_s]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LN_S]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.ac:22: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:22: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:22: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:22: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:22: -1- AC_SUBST([AR]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([AR]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^AR$]) +m4trace:configure.ac:22: -1- AC_SUBST([ac_ct_AR]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ac_ct_AR]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^ac_ct_AR$]) +m4trace:configure.ac:22: -1- AC_SUBST([STRIP]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([STRIP]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:22: -1- AC_SUBST([RANLIB]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([RANLIB]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([LT_OBJDIR]) +m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LT_OBJDIR$]) +m4trace:configure.ac:22: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +@%:@undef LT_OBJDIR]) +m4trace:configure.ac:22: -1- LT_SUPPORTED_TAG([CC]) +m4trace:configure.ac:22: -1- AC_SUBST([MANIFEST_TOOL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([MANIFEST_TOOL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^MANIFEST_TOOL$]) +m4trace:configure.ac:22: -1- AC_SUBST([DSYMUTIL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DSYMUTIL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DSYMUTIL$]) +m4trace:configure.ac:22: -1- AC_SUBST([NMEDIT]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([NMEDIT]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^NMEDIT$]) +m4trace:configure.ac:22: -1- AC_SUBST([LIPO]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIPO]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^LIPO$]) +m4trace:configure.ac:22: -1- AC_SUBST([OTOOL]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([OTOOL]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OTOOL$]) +m4trace:configure.ac:22: -1- AC_SUBST([OTOOL64]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([OTOOL64]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^OTOOL64$]) +m4trace:configure.ac:22: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_DLFCN_H]) +m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) +m4trace:configure.ac:26: -1- AC_CANONICAL_BUILD +m4trace:configure.ac:27: -1- AC_CANONICAL_HOST +m4trace:configure.ac:30: -1- AC_SUBST([CXX]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CXX]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXX$]) +m4trace:configure.ac:30: -1- AC_SUBST([CXXFLAGS]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CXXFLAGS]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXFLAGS$]) +m4trace:configure.ac:30: -1- AC_SUBST([LDFLAGS]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([LDFLAGS]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:30: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:30: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:30: -1- AC_SUBST([CXX]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CXX]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXX$]) +m4trace:configure.ac:30: -1- AC_SUBST([ac_ct_CXX]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([ac_ct_CXX]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^ac_ct_CXX$]) +m4trace:configure.ac:30: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CXXDEPMODE]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXDEPMODE$]) +m4trace:configure.ac:30: -1- AM_CONDITIONAL([am__fastdepCXX], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:30: -1- AC_SUBST([am__fastdepCXX_TRUE]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$]) +m4trace:configure.ac:30: -1- AC_SUBST([am__fastdepCXX_FALSE]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$]) +m4trace:configure.ac:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE]) +m4trace:configure.ac:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE]) +m4trace:configure.ac:30: -1- LT_SUPPORTED_TAG([CXX]) +m4trace:configure.ac:30: -1- AC_SUBST([CXXCPP]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CXXCPP]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXCPP$]) +m4trace:configure.ac:30: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:30: -1- AC_SUBST([CXXCPP]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([CXXCPP]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^CXXCPP$]) +m4trace:configure.ac:30: -1- AC_SUBST([LD]) +m4trace:configure.ac:30: -1- AC_SUBST_TRACE([LD]) +m4trace:configure.ac:30: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:31: -1- AC_SUBST([CC]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- AC_SUBST([CFLAGS]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CFLAGS]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:31: -1- AC_SUBST([LDFLAGS]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([LDFLAGS]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:31: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:31: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:31: -1- AC_SUBST([CC]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- AC_SUBST([CC]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- AC_SUBST([CC]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- AC_SUBST([CC]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:31: -1- AC_SUBST([ac_ct_CC]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([ac_ct_CC]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:31: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([CCDEPMODE]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:31: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:31: -1- AC_SUBST([am__fastdepCC_TRUE]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:31: -1- AC_SUBST([am__fastdepCC_FALSE]) +m4trace:configure.ac:31: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) +m4trace:configure.ac:31: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:31: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:31: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:34: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:34: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:34: -1- AC_SUBST([PKG_CONFIG_PATH]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:34: -1- AC_SUBST([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:34: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:39: -1- AC_SUBST([CALAOS_COMMON_CFLAGS]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CALAOS_COMMON_CFLAGS]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^CALAOS_COMMON_CFLAGS$]) +m4trace:configure.ac:39: -1- AC_SUBST([CALAOS_COMMON_LIBS]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CALAOS_COMMON_LIBS]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^CALAOS_COMMON_LIBS$]) +m4trace:configure.ac:40: -1- AC_SUBST([requirements_calaos_common]) +m4trace:configure.ac:40: -1- AC_SUBST_TRACE([requirements_calaos_common]) +m4trace:configure.ac:40: -1- m4_pattern_allow([^requirements_calaos_common$]) +m4trace:configure.ac:43: -1- AC_SUBST([CALAOS_SERVER_CFLAGS]) +m4trace:configure.ac:43: -1- AC_SUBST_TRACE([CALAOS_SERVER_CFLAGS]) +m4trace:configure.ac:43: -1- m4_pattern_allow([^CALAOS_SERVER_CFLAGS$]) +m4trace:configure.ac:43: -1- AC_SUBST([CALAOS_SERVER_LIBS]) +m4trace:configure.ac:43: -1- AC_SUBST_TRACE([CALAOS_SERVER_LIBS]) +m4trace:configure.ac:43: -1- m4_pattern_allow([^CALAOS_SERVER_LIBS$]) +m4trace:configure.ac:44: -1- AC_SUBST([requirements_calaos_server]) +m4trace:configure.ac:44: -1- AC_SUBST_TRACE([requirements_calaos_server]) +m4trace:configure.ac:44: -1- m4_pattern_allow([^requirements_calaos_server$]) +m4trace:configure.ac:47: -1- AC_SUBST([CALAOS_HOME_CFLAGS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([CALAOS_HOME_CFLAGS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^CALAOS_HOME_CFLAGS$]) +m4trace:configure.ac:47: -1- AC_SUBST([CALAOS_HOME_LIBS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([CALAOS_HOME_LIBS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^CALAOS_HOME_LIBS$]) +m4trace:configure.ac:48: -1- AC_SUBST([requirements_calaos_home]) +m4trace:configure.ac:48: -1- AC_SUBST_TRACE([requirements_calaos_home]) +m4trace:configure.ac:48: -1- m4_pattern_allow([^requirements_calaos_home$]) +m4trace:configure.ac:51: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif]) +m4trace:configure.ac:51: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) +m4trace:configure.ac:51: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) +m4trace:configure.ac:51: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD]) +m4trace:configure.ac:51: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) +m4trace:configure.ac:51: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */ +@%:@undef AC_APPLE_UNIVERSAL_BUILD]) +m4trace:configure.ac:52: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler + calls it, or to nothing if \'inline\' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif]) +m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([NDEBUG]) +m4trace:configure.ac:55: -1- m4_pattern_allow([^NDEBUG$]) +m4trace:configure.ac:55: -1- AH_OUTPUT([NDEBUG], [/* Define to 1 if assertions should be disabled. */ +@%:@undef NDEBUG]) +m4trace:configure.ac:56: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.ac:56: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNISTD_H]) +m4trace:configure.ac:56: -1- m4_pattern_allow([^HAVE_UNISTD_H$]) +m4trace:configure.ac:58: -1- AC_CONFIG_FILES([ +Makefile +src/Makefile +src/lib/Makefile +src/bin/Makefile +src/bin/calaos_server/Makefile +src/bin/calaos_home/Makefile +data/Makefile +data/themes/Makefile +data/themes/default/Makefile +]) +m4trace:configure.ac:70: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:70: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:70: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:70: -1- AC_SUBST([am__EXEEXT_TRUE]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:70: -1- AC_SUBST([am__EXEEXT_FALSE]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) +m4trace:configure.ac:70: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:70: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:70: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([top_build_prefix]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([abs_top_builddir]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.ac:70: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:70: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) diff --git a/config.guess b/config.guess new file mode 100755 index 00000000..d622a44e --- /dev/null +++ b/config.guess @@ -0,0 +1,1530 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-02-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 00000000..eb9fb5d0 --- /dev/null +++ b/config.h.in @@ -0,0 +1,133 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef CALAOS_CONFIG_H__ +#define CALAOS_CONFIG_H__ + + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if assertions should be disabled. */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + + +#endif /* CALAOS_CONFIG_H__ */ + diff --git a/config.sub b/config.sub new file mode 100755 index 00000000..c894da45 --- /dev/null +++ b/config.sub @@ -0,0 +1,1773 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-02-10' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ + | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i386-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure new file mode 100755 index 00000000..814f8642 --- /dev/null +++ b/configure @@ -0,0 +1,19712 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.68 for calaos 2.0. +# +# Report bugs to . +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: raoul.hecky@gmail.com about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='calaos' +PACKAGE_TARNAME='calaos' +PACKAGE_VERSION='2.0' +PACKAGE_STRING='calaos 2.0' +PACKAGE_BUGREPORT='raoul.hecky@gmail.com' +PACKAGE_URL='' + +ac_unique_file="configure.ac" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +requirements_calaos_home +CALAOS_HOME_LIBS +CALAOS_HOME_CFLAGS +requirements_calaos_server +CALAOS_SERVER_LIBS +CALAOS_SERVER_CFLAGS +requirements_calaos_common +CALAOS_COMMON_LIBS +CALAOS_COMMON_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CXXCPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +OBJDUMP +DLLTOOL +AS +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_largefile +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_assert +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +CALAOS_COMMON_CFLAGS +CALAOS_COMMON_LIBS +CALAOS_SERVER_CFLAGS +CALAOS_SERVER_LIBS +CALAOS_HOME_CFLAGS +CALAOS_HOME_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures calaos 2.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/calaos] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of calaos 2.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-largefile omit support for large files + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-assert turn off assertions + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + CALAOS_COMMON_CFLAGS + C compiler flags for CALAOS_COMMON, overriding pkg-config + CALAOS_COMMON_LIBS + linker flags for CALAOS_COMMON, overriding pkg-config + CALAOS_SERVER_CFLAGS + C compiler flags for CALAOS_SERVER, overriding pkg-config + CALAOS_SERVER_LIBS + linker flags for CALAOS_SERVER, overriding pkg-config + CALAOS_HOME_CFLAGS + C compiler flags for CALAOS_HOME, overriding pkg-config + CALAOS_HOME_LIBS + linker flags for CALAOS_HOME, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +calaos configure 2.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------ ## +## Report this to raoul.hecky@gmail.com ## +## ------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by calaos $as_me 2.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +ac_config_headers="$ac_config_headers config.h" + + + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='calaos' + VERSION='2.0' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "#define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + + + +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AS+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +### Needed information + + + + +### Checks for programs +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# pkg-config + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +### Checks for libraries + +requirements_calaos_common="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 sigc++-2.0 >= 2.2.0 log4cpp >= 1.0 jansson >= 2.0.0 vmime >= 0.9.0 lua5.1 >= 5.1.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_COMMON" >&5 +$as_echo_n "checking for CALAOS_COMMON... " >&6; } + +if test -n "$CALAOS_COMMON_CFLAGS"; then + pkg_cv_CALAOS_COMMON_CFLAGS="$CALAOS_COMMON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_common}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_common}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_COMMON_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_COMMON_LIBS"; then + pkg_cv_CALAOS_COMMON_LIBS="$CALAOS_COMMON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_common}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_common}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_COMMON_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_common}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_COMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_common}" 2>&1` + else + CALAOS_COMMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_common}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_COMMON_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_common}) were not met: + +$CALAOS_COMMON_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_COMMON_CFLAGS +and CALAOS_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_COMMON_CFLAGS +and CALAOS_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_COMMON_CFLAGS=$pkg_cv_CALAOS_COMMON_CFLAGS + CALAOS_COMMON_LIBS=$pkg_cv_CALAOS_COMMON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +requirements_calaos_server="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_SERVER" >&5 +$as_echo_n "checking for CALAOS_SERVER... " >&6; } + +if test -n "$CALAOS_SERVER_CFLAGS"; then + pkg_cv_CALAOS_SERVER_CFLAGS="$CALAOS_SERVER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_server}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_server}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_SERVER_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_SERVER_LIBS"; then + pkg_cv_CALAOS_SERVER_LIBS="$CALAOS_SERVER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_server}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_server}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_SERVER_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_server}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_SERVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_server}" 2>&1` + else + CALAOS_SERVER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_server}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_SERVER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_server}) were not met: + +$CALAOS_SERVER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_SERVER_CFLAGS +and CALAOS_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_SERVER_CFLAGS +and CALAOS_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_SERVER_CFLAGS=$pkg_cv_CALAOS_SERVER_CFLAGS + CALAOS_SERVER_LIBS=$pkg_cv_CALAOS_SERVER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +requirements_calaos_home="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 elementary >= 1.7.0 ecore-x >= 1.7.0 openssl >= 1.0.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CALAOS_HOME" >&5 +$as_echo_n "checking for CALAOS_HOME... " >&6; } + +if test -n "$CALAOS_HOME_CFLAGS"; then + pkg_cv_CALAOS_HOME_CFLAGS="$CALAOS_HOME_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_home}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_home}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_HOME_CFLAGS=`$PKG_CONFIG --cflags "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CALAOS_HOME_LIBS"; then + pkg_cv_CALAOS_HOME_LIBS="$CALAOS_HOME_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_calaos_home}\""; } >&5 + ($PKG_CONFIG --exists --print-errors "${requirements_calaos_home}") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CALAOS_HOME_LIBS=`$PKG_CONFIG --libs "${requirements_calaos_home}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CALAOS_HOME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_calaos_home}" 2>&1` + else + CALAOS_HOME_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_calaos_home}" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CALAOS_HOME_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (${requirements_calaos_home}) were not met: + +$CALAOS_HOME_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CALAOS_HOME_CFLAGS +and CALAOS_HOME_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CALAOS_HOME_CFLAGS +and CALAOS_HOME_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CALAOS_HOME_CFLAGS=$pkg_cv_CALAOS_HOME_CFLAGS + CALAOS_HOME_LIBS=$pkg_cv_CALAOS_HOME_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + +### Checks for compiler characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +### Checks for header files + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 +$as_echo_n "checking whether to enable assertions... " >&6; } + # Check whether --enable-assert was given. +if test "${enable_assert+set}" = set; then : + enableval=$enable_assert; ac_enable_assert=$enableval + if test "x$enableval" = xno; then : + +$as_echo "#define NDEBUG 1" >>confdefs.h + +elif test "x$enableval" != xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 +$as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} + ac_enable_assert=yes +fi +else + ac_enable_assert=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 +$as_echo "$ac_enable_assert" >&6; } + +for ac_header in unistd.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UNISTD_H 1 +_ACEOF + +fi + +done + + +ac_config_files="$ac_config_files Makefile src/Makefile src/lib/Makefile src/bin/Makefile src/bin/calaos_server/Makefile src/bin/calaos_home/Makefile data/Makefile data/themes/Makefile data/themes/default/Makefile" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by calaos $as_me 2.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +calaos config.status 2.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_separator_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; + "src/bin/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/Makefile" ;; + "src/bin/calaos_server/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/calaos_server/Makefile" ;; + "src/bin/calaos_home/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/calaos_home/Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/themes/Makefile") CONFIG_FILES="$CONFIG_FILES data/themes/Makefile" ;; + "data/themes/default/Makefile") CONFIG_FILES="$CONFIG_FILES data/themes/default/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="CXX " + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +##################################################################### +## Info + +echo +echo +echo +echo "------------------------------------------------------------------------" +echo "$PACKAGE $VERSION" +echo "------------------------------------------------------------------------" +echo +echo +echo "Configuration Options Summary:" +echo +echo "Compilation............: make (or gmake)" +echo " CPPFLAGS.............: $CPPFLAGS" +echo " CFLAGS...............: $CFLAGS" +echo " LDFLAGS..............: $LDFLAGS" +echo +echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" +echo " prefix...............: $prefix" +echo diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..50c83a23 --- /dev/null +++ b/configure.ac @@ -0,0 +1,92 @@ +AC_INIT([calaos], [2.0], [raoul.hecky@gmail.com]) +AC_PREREQ([2.59]) +AC_CONFIG_SRCDIR([configure.ac]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_CONFIG_HEADERS([config.h]) +AH_TOP([ +#ifndef CALAOS_CONFIG_H__ +#define CALAOS_CONFIG_H__ +]) +AH_BOTTOM([ +#endif /* CALAOS_CONFIG_H__ */ +]) + +AM_INIT_AUTOMAKE([1.6 dist-bzip2]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +AC_GNU_SOURCE +AC_SYS_LARGEFILE + +LT_PREREQ([2.2]) +LT_INIT([win32-dll]) + +### Needed information + +AC_CANONICAL_BUILD +AC_CANONICAL_HOST + +### Checks for programs +AC_PROG_CXX +AC_PROG_CC + +# pkg-config +PKG_PROG_PKG_CONFIG + +### Checks for libraries + +requirements_calaos_common="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 sigc++-2.0 >= 2.2.0 log4cpp >= 1.0 jansson >= 2.0.0 vmime >= 0.9.0 lua5.1 >= 5.1.0" +PKG_CHECK_MODULES([CALAOS_COMMON], [${requirements_calaos_common}]) +AC_SUBST([requirements_calaos_common]) + +requirements_calaos_server="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0" +PKG_CHECK_MODULES([CALAOS_SERVER], [${requirements_calaos_server}]) +AC_SUBST([requirements_calaos_server]) + +requirements_calaos_home="eina >= 1.7.0 eet >= 1.7.0 ecore >= 1.7.0 ecore-file >= 1.7.0 ecore-con >= 1.7.0 elementary >= 1.7.0 ecore-x >= 1.7.0 openssl >= 1.0.0" +PKG_CHECK_MODULES([CALAOS_HOME], [${requirements_calaos_home}]) +AC_SUBST([requirements_calaos_home]) + +### Checks for compiler characteristics +AC_C_BIGENDIAN +AC_C_INLINE + +### Checks for header files +AC_HEADER_ASSERT +AC_CHECK_HEADERS([unistd.h]) + +AC_CONFIG_FILES([ +Makefile +src/Makefile +src/lib/Makefile +src/bin/Makefile +src/bin/calaos_server/Makefile +src/bin/calaos_home/Makefile +data/Makefile +data/themes/Makefile +data/themes/default/Makefile +]) + +AC_OUTPUT + +##################################################################### +## Info + +echo +echo +echo +echo "------------------------------------------------------------------------" +echo "$PACKAGE $VERSION" +echo "------------------------------------------------------------------------" +echo +echo +echo "Configuration Options Summary:" +echo +echo "Compilation............: make (or gmake)" +echo " CPPFLAGS.............: $CPPFLAGS" +echo " CFLAGS...............: $CFLAGS" +echo " LDFLAGS..............: $LDFLAGS" +echo +echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" +echo " prefix...............: $prefix" +echo diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 00000000..6cded0ab --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = themes + +MAINTAINERCLEANFILES = Makefile.in diff --git a/data/Makefile.in b/data/Makefile.in new file mode 100644 index 00000000..8f3d9655 --- /dev/null +++ b/data/Makefile.in @@ -0,0 +1,584 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = themes +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am new file mode 100644 index 00000000..97ebe31a --- /dev/null +++ b/data/themes/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = default + +MAINTAINERCLEANFILES = Makefile.in diff --git a/data/themes/Makefile.in b/data/themes/Makefile.in new file mode 100644 index 00000000..c6271ef2 --- /dev/null +++ b/data/themes/Makefile.in @@ -0,0 +1,584 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/themes +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = default +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/themes/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/themes/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/themes/default/Makefile.am b/data/themes/default/Makefile.am new file mode 100644 index 00000000..6a16d0b0 --- /dev/null +++ b/data/themes/default/Makefile.am @@ -0,0 +1,895 @@ +MAINTAINERCLEANFILES = Makefile.in + +EDJE_CC = edje_cc + +EDJE_FLAGS = \ +-id $(top_srcdir)/data/themes/default/images \ +-id $(top_srcdir)/data/themes/default/images/buttons \ +-id $(top_srcdir)/data/themes/default/images/parts \ +-id $(top_srcdir)/data/themes/default/images/icons \ +-id $(top_srcdir)/data/themes/default/images/logo \ +-id $(top_srcdir)/data/themes/default/images/animations \ +-id $(top_srcdir)/data/themes/default/images/animations/glowed_556_line \ +-id $(top_srcdir)/data/themes/default/images/animations/room_touched \ +-id $(top_srcdir)/data/themes/default/images/animations/round_button \ +-id $(top_srcdir)/data/themes/default/images/animations/light_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/shutter_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/scenario_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/mini_circular_cooldown \ +-id $(top_srcdir)/data/themes/default/images/animations/micro_circular_cooldown \ +-id $(top_srcdir)/data/themes/default/images/animations/cd_player \ +-id $(top_srcdir)/data/themes/default/images/animations/bootsplash_logo \ +-id $(top_srcdir)/data/themes/default/images/animations/bootsplash_logo_reflect \ +-id $(top_srcdir)/data/themes/default/images/animations/bootsplash_notification_icone \ +-id $(top_srcdir)/data/themes/default/images/animations/tor_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/volume_knob_leds \ +-id $(top_srcdir)/data/themes/default/images/boosplash \ +-id $(top_srcdir)/data/themes/default/images/adjust_pattern \ +-id $(top_srcdir)/data/themes/default/images/background \ +-id $(top_srcdir)/data/themes/default/images/scenario \ +-id $(top_srcdir)/data/themes/default/images/rooms \ +-id $(top_srcdir)/data/themes/default/images/rooms/lounge \ +-id $(top_srcdir)/data/themes/default/images/rooms/bedroom \ +-id $(top_srcdir)/data/themes/default/images/rooms/kitchen \ +-id $(top_srcdir)/data/themes/default/images/rooms/office \ +-id $(top_srcdir)/data/themes/default/images/rooms/diningroom \ +-id $(top_srcdir)/data/themes/default/images/rooms/various \ +-id $(top_srcdir)/data/themes/default/images/rooms/outside \ +-id $(top_srcdir)/data/themes/default/images/rooms/bathroom \ +-id $(top_srcdir)/data/themes/default/images/rooms/corridor \ +-id $(top_srcdir)/data/themes/default/images/rooms/cellar \ +-id $(top_srcdir)/data/themes/default/images/rooms/garage \ +-id $(top_srcdir)/data/themes/default/images/widgets \ +-fd $(top_srcdir)/data/themes/default/fonts + +EDJE_VERB = $(EDJE_VERB_$(V)) +EDJE_VERB_ = $(EDJE_VERB_$(AM_DEFAULT_VERBOSITY)) +EDJE_VERB_1 = -v + +defaultdir = $(pkgdatadir) + +default_DATA = default.edj + +IMG = \ +images/buttons/button_list_up_glow.png \ +images/buttons/button_previous_glow.png \ +images/buttons/button_action_reboot_off.png \ +images/buttons/button_action_reload.png \ +images/buttons/button_action_scenario_play.png \ +images/buttons/button_action_popup_glow.png \ +images/buttons/button_widget_move_right.png \ +images/buttons/button_action_labeled.png \ +images/buttons/button_home_glow.png \ +images/buttons/button_rot_right_glow.png \ +images/buttons/button_scenarios.png \ +images/buttons/button_action_toggle.png \ +images/buttons/button_widget_list_end.png \ +images/buttons/button_rot_zoomout.png \ +images/buttons/button_action_select_unselected.png \ +images/buttons/button_rot_up_glow.png \ +images/buttons/button_scenarios_stop.png \ +images/buttons/button_action_on.png \ +images/buttons/button_action_pager_previous.png \ +images/buttons/button_action_fullscreen.png \ +images/buttons/button_home_bloom.png \ +images/buttons/button_down.png \ +images/buttons/button_action_left.png \ +images/buttons/button_scroll_glow.png \ +images/buttons/button_widget_move_left.png \ +images/buttons/button_previous.png \ +images/buttons/button_action_reboot.png \ +images/buttons/button_next.png \ +images/buttons/button_action_del_off.png \ +images/buttons/button_browser_glow.png \ +images/buttons/button_action_warming_up_glow.png \ +images/buttons/button_action_warming_up.png \ +images/buttons/button_action_on_glow.png \ +images/buttons/button_home_stop_on.png \ +images/buttons/button_action_glow_small.png \ +images/buttons/button_rot_centre_glow.png \ +images/buttons/button_rot_centre.png \ +images/buttons/menu_item.png \ +images/buttons/button_scenarios_glow.png \ +images/buttons/button_action_quit_off.png \ +images/buttons/button_configuration.png \ +images/buttons/button_rot_zoomout_glow.png \ +images/buttons/button_selected_neon.png \ +images/buttons/button_action_pager_next.png \ +images/buttons/button_action_labeled_small.png \ +images/buttons/button_action_plus_off.png \ +images/buttons/button_action_editor_glow.png \ +images/buttons/button_action_small_glow.png \ +images/buttons/button_home.png \ +images/buttons/button_element.png \ +images/buttons/button_list_down.png \ +images/buttons/button_configuration_bloom.png \ +images/buttons/button_action_big_glow.png \ +images/buttons/button_action_popup_valid.png \ +images/buttons/button_media_stop_on.png \ +images/buttons/button_action_back.png \ +images/buttons/button_configuration_stop_on.png \ +images/buttons/button_widget_move_left_big.png \ +images/buttons/button_action_neon.png \ +images/buttons/button_action_vertical_glow.png \ +images/buttons/button_rot_left.png \ +images/buttons/button_element_bevel.png \ +images/buttons/button_glow_down.png \ +images/buttons/button_widget_resize.png \ +images/buttons/button_scenarios_stop_on.png \ +images/buttons/button_action_clavier2.png \ +images/buttons/button_configuration_stop.png \ +images/buttons/button_element_cut_glow.png \ +images/buttons/button_home_stop.png \ +images/buttons/button_scenarios_bloom.png \ +images/buttons/button_action_glow.png \ +images/buttons/button_glow_up.png \ +images/buttons/button_media_glow.png \ +images/buttons/button_action_pause.png \ +images/buttons/button_rot_right.png \ +images/buttons/button_scroll.png \ +images/buttons/button_action_light_off.png \ +images/buttons/button_action_scenario_play_glow.png \ +images/buttons/button_widget_move_up.png \ +images/buttons/button_action_clavier_off.png \ +images/buttons/button_action_valid_off.png \ +images/buttons/button_feature_small.png \ +images/buttons/button_action_off.png \ +images/buttons/button_rot_down_glow.png \ +images/buttons/button_key_del.png \ +images/buttons/button_browser.png \ +images/buttons/button_action_impulse_glow.png \ +images/buttons/button_action_edit.png \ +images/buttons/button_action_rolll_up.png \ +images/buttons/button_action_small.png \ +images/buttons/button_media_bloom.png \ +images/buttons/button_action_quit.png \ +images/buttons/button_action_upper.png \ +images/buttons/menu_item_select2.png \ +images/buttons/button_action_del.png \ +images/buttons/button_action_home.png \ +images/buttons/button_action_actionstop_off.png \ +images/buttons/button_rot_down.png \ +images/buttons/button_slider_less.png \ +images/buttons/button_slider_more.png \ +images/buttons/button_action_less_vertical.png \ +images/buttons/button_rot_zoomin.png \ +images/buttons/button_rot_zoomin_glow.png \ +images/buttons/button_action_big.png \ +images/buttons/button_action_fullscreen_glow.png \ +images/buttons/button_previous_off.png \ +images/buttons/button_widget_list_begin.png \ +images/buttons/button_rot_up.png \ +images/buttons/button_action_downer.png \ +images/buttons/button_action_impulse.png \ +images/buttons/button_action_less.png \ +images/buttons/button_media_stop.png \ +images/buttons/button_keyboard_select.png \ +images/buttons/button_action_right.png \ +images/buttons/button_action_up.png \ +images/buttons/button_action_more.png \ +images/buttons/button_next_off.png \ +images/buttons/button_action_rolll_down.png \ +images/buttons/button_action_sync.png \ +images/buttons/button_media.png \ +images/buttons/button_next_glow.png \ +images/buttons/button_action_more_vertical.png \ +images/buttons/button_up.png \ +images/buttons/button_element_open.png \ +images/buttons/button_action_popup_back_glow.png \ +images/buttons/button_element_glow.png \ +images/buttons/button_action_valid.png \ +images/buttons/button_info.png \ +images/buttons/button_action_popup_back.png \ +images/buttons/button_widget_move_up_big.png \ +images/buttons/button_keyboard.png \ +images/buttons/button_action_plus.png \ +images/buttons/button_action_light_on.png \ +images/buttons/button_widget_move_down_big.png \ +images/buttons/button_action_previous.png \ +images/buttons/button_configuration_glow.png \ +images/buttons/button_action_impulse_up.png \ +images/buttons/button_action_pattern.png \ +images/buttons/button_round_stop.png \ +images/buttons/button_list_up.png \ +images/buttons/button_list_down_glow.png \ +images/buttons/button_action_labeled_glow.png \ +images/buttons/button_action_border.png \ +images/buttons/button_action_stop.png \ +images/buttons/button_action_play.png \ +images/buttons/button_widget_move_right_big.png \ +images/buttons/button_action_actionstop.png \ +images/buttons/button_action_next.png \ +images/buttons/button_widget_list_item.png \ +images/buttons/button_action_clavier.png \ +images/buttons/button_action_select_selected.png \ +images/buttons/button_widget_move_down.png \ +images/buttons/button_element_cut.png \ +images/buttons/button_action_down.png \ +images/buttons/button_rot_left_glow.png \ +images/buttons/button_action_impulse_down.png \ +images/buttons/menu_item_select.png \ +images/buttons/button_feature_big.png \ +images/buttons/button_action_warming_down.png \ +images/buttons/button_key_return.png \ +images/buttons/button_info_glow.png \ +images/buttons/button_action_editor.png \ +images/buttons/button_action_delete.png \ +images/progressbar/progressbar_background.png \ +images/progressbar/progressbar_niveau.png \ +images/progressbar/progressbar_ligne.png \ +images/adjust_pattern/elements_light.png \ +images/adjust_pattern/normal_room_bg.png \ +images/adjust_pattern/big_room_bg.png \ +images/adjust_pattern/elements.png \ +images/adjust_pattern/cover.png \ +images/adjust_pattern/elements_track.png \ +images/adjust_pattern/player.png \ +images/adjust_pattern/small_room_bg.png \ +images/widgets/widget_container_back_buttons.png \ +images/widgets/widget_back_edit.png \ +images/widgets/xmas_banner_right.png \ +images/widgets/flake_large.png \ +images/widgets/widget_container_back.png \ +images/widgets/flake_small.png \ +images/widgets/xmas_banner_left.png \ +images/widgets/flake_medium.png \ +images/parts/config_item.png \ +images/parts/slider_green.png \ +images/parts/footer_shadow.png \ +images/parts/loading_top.png \ +images/parts/menu_glowed_neon.png \ +images/parts/menu_media_item_separator.png \ +images/parts/slider_vertical.png \ +images/parts/camera_big_border.png \ +images/parts/module_footer_shadow.png \ +images/parts/player_line_decoration_top.png \ +images/parts/dialog_neon.png \ +images/parts/selector_on.png \ +images/parts/browser_list_decoration.png \ +images/parts/camera_border.png \ +images/parts/module_header_shadow.png \ +images/parts/keyboard_select_bar_right.png \ +images/parts/menu_media_icon_eskiss_back.png \ +images/parts/player_small_shadow.png \ +images/parts/calendar_back.png \ +images/parts/glow.png \ +images/parts/medium_list_decoration_left.png \ +images/parts/player_cover_front.png \ +images/parts/dialog_lines.png \ +images/parts/player_line_decoration_bottom.png \ +images/parts/slider_on.png \ +images/parts/calendar_holiday.png \ +images/parts/menu_back.png \ +images/parts/loading_bar.png \ +images/parts/slider_border_red.png \ +images/parts/calendar_select.png \ +images/parts/controls_sep.png \ +images/parts/keyboard_agenda_background.png \ +images/parts/slider_green_on.png \ +images/parts/menu_media_icon_web_back.png \ +images/parts/keyboard_select_separator.png \ +images/parts/window_border2.png \ +images/parts/shutter_arrows_deco.png \ +images/parts/volume_knob_move.png \ +images/parts/keyboard_cursor.png \ +images/parts/keyboard_select_bar_left.png \ +images/parts/shadow_photo.png \ +images/parts/menu_header_shadow.png \ +images/parts/slider_vertical_on.png \ +images/parts/middle_skyline.png \ +images/parts/keyboard_lines.png \ +images/parts/album_back.png \ +images/parts/top_skyline.png \ +images/parts/indicator_glow.png \ +images/parts/player_line_decoration_right.png \ +images/parts/top_skyline_neon.png \ +images/parts/player_glow.png \ +images/parts/vertical_level_indicator.png \ +images/parts/slider_red_on.png \ +images/parts/popup_arrow_down.png \ +images/parts/slider_border_green.png \ +images/parts/slider_border.png \ +images/parts/medium_list_decoration_right.png \ +images/parts/menu_media_icon_cd_back.png \ +images/parts/keyboard_key_glow.png \ +images/parts/standard_list_decoration_top.png \ +images/parts/slider_border_blue.png \ +images/parts/player_small_cover_back.png \ +images/parts/calendar_header.png \ +images/parts/standard_list_decoration_bottom.png \ +images/parts/slider_blue.png \ +images/parts/calendar_ring.png \ +images/parts/keyboard_key_selected.png \ +images/parts/player_cover_back.png \ +images/parts/keyboard_multiline_background.png \ +images/parts/selector_off.png \ +images/parts/menu_media_item_glow.png \ +images/parts/footer_kevlar.png \ +images/parts/popup_arrow_left.png \ +images/parts/camera_reflect.png \ +images/parts/menu_buttons_shadow_left.png \ +images/parts/list_message_border.png \ +images/parts/small_list_decoration.png \ +images/parts/player_line_decoration_cd.png \ +images/parts/medium_list_decoration_camera.png \ +images/parts/player_line_decoration_left.png \ +images/parts/camera_mire.png \ +images/parts/controls_bg.png \ +images/parts/menu_buttons_shadow_right.png \ +images/parts/slider_blue_on.png \ +images/parts/menu_media_item_shadow.png \ +images/parts/display_border.png \ +images/parts/menu_media_item_reflect.png \ +images/parts/popup_arrow_right.png \ +images/parts/menu_media_icon_camera_red.png \ +images/parts/cover_loading_border.png \ +images/parts/display_border2.png \ +images/parts/cursor.png \ +images/parts/small_scroll_list_decoration.png \ +images/parts/standard_list_decoration.png \ +images/parts/medium_scroll_list_decoration.png \ +images/parts/menu_media_item.png \ +images/parts/scenario_separator.png \ +images/parts/camera_medium_border.png \ +images/parts/popup_carbon.png \ +images/parts/separator.png \ +images/parts/menu_media_icon_camera_back.png \ +images/parts/player_small_cover_front.png \ +images/parts/keyboard_background.png \ +images/parts/volume_knob_ledsoff.png \ +images/parts/rgb_preview.png \ +images/parts/config_item_select.png \ +images/parts/popup_arrow_up.png \ +images/parts/menu_footer_shadow.png \ +images/parts/middle_skyline_neon.png \ +images/parts/dialog_background.png \ +images/parts/window_border.png \ +images/parts/popup_bg.png \ +images/parts/slider_red.png \ +images/parts/loading_bg.png \ +images/parts/player_shadow.png \ +images/parts/volume_knob.png \ +images/parts/window_shutter.png \ +images/parts/imageviewer_footer.png \ +images/parts/player_cd_shadow.png \ +images/parts/scenario_list_decoration.png \ +images/parts/slider.png \ +images/parts/camera_nocam.png \ +images/parts/album_cover.png \ +images/parts/small_list_decoration_left.png \ +images/parts/slider_border_vertical.png \ +images/parts/cover_border.png \ +images/bootsplash/neonlight.png \ +images/scenario/wizzard_4.png \ +images/scenario/wizzard_header.png \ +images/scenario/wizzard_3.png \ +images/scenario/wizzard_line_selected.png \ +images/scenario/wizzard_bg_selected.png \ +images/scenario/wizzard_1.png \ +images/scenario/wizzard_2.png \ +images/background/menu_footer_background_left.png \ +images/background/bootsplash.png \ +images/background/background_top.png \ +images/background/background_default_lighted.png \ +images/background/background_quad.png \ +images/background/background_bottom.png \ +images/background/module_footer.png \ +images/background/menu_header_background_version.png \ +images/background/background_default.png \ +images/background/menu_header_background.png \ +images/background/menu_footer_background.png \ +images/background/module_header.png \ +images/background/menu_footer_background_right.png \ +images/background/background_center.png \ +images/download_manager/download_disk.png \ +images/download_manager/download_shadow.png \ +images/download_manager/download_arrow.png \ +images/download_manager/download_fond.png \ +images/logo/final.png \ +images/logo/shadow.png \ +images/logo/logo_tittle.png \ +images/logo/calaos_about_logo.png \ +images/logo/menu_logo.png \ +images/logo/logo_mirror.png \ +images/logo/bloom.png \ +images/icons/icon_select_simple.png \ +images/icons/icon_groom.png \ +images/icons/icon_player.png \ +images/icons/icon_play.png \ +images/icons/icon_edit.png \ +images/icons/icon_analog.png \ +images/icons/icon_light_on.png \ +images/icons/icon_item_widget.png \ +images/icons/icon_scenario_big.png \ +images/icons/icon_item_screensaver.png \ +images/icons/icon_tor_on.png \ +images/icons/icon_config_widget.png \ +images/icons/icon_cd.png \ +images/icons/icon_cd_glow.png \ +images/icons/icon_string.png \ +images/icons/icon_plus.png \ +images/icons/icon_camera_on.png \ +images/icons/icon_config_info.png \ +images/icons/icon_camera.png \ +images/icons/icon_action.png \ +images/icons/icon_clock.png \ +images/icons/icon_light_simple.png \ +images/icons/icon_warming_up.png \ +images/icons/icon_sound.png \ +images/icons/icon_search.png \ +images/icons/icon_config_veille.png \ +images/icons/icon_temp.png \ +images/icons/icon_folder.png \ +images/icons/icon_myhome.png \ +images/icons/icon_room_on.png \ +images/icons/icon_disclosure.png \ +images/icons/icon_scenario_small.png \ +images/icons/icon_music.png \ +images/icons/icon_camera_title.png \ +images/icons/icon_action_simple.png \ +images/icons/icon_flickr.png \ +images/icons/icon_config_terminal.png \ +images/icons/icon_config_fw.png \ +images/icons/icon_bool_on.png \ +images/icons/icon_bool.png \ +images/icons/icon_int.png \ +images/icons/icon_light_off.png \ +images/icons/icon_play_simple.png \ +images/icons/icon_room.png \ +images/icons/icon_bool_scenario.png \ +images/icons/icon_config_l18n.png \ +images/icons/icon_config_clock.png \ +images/icons/icon_warming.png \ +images/icons/icon_stop_simple.png \ +images/icons/icon_action_blue.png \ +images/icons/icon_trash.png \ +images/icons/icon_camera_simple.png \ +images/icons/icon_warming_down.png \ +images/icons/icon_config_network.png \ +images/icons/icon_item_lock.png \ +images/icons/icon_light.png \ +images/icons/icon_playlist.png \ +images/icons/icon_note.png \ +images/icons/icon_config_security.png \ +images/icons/icon_item_reboot.png \ +images/icons/icon_tor.png \ +images/icons/icon_widget_unknown.png \ +images/icons/icon_shutter_on.png \ +images/icons/icon_note_on.png \ +images/icons/icon_shutter.png \ +images/icons/icon_moins.png \ +images/icons/icon_radio.png \ +images/animations/bootsplash_logo/0028.png \ +images/animations/bootsplash_logo/0002.png \ +images/animations/bootsplash_logo/0047.png \ +images/animations/bootsplash_logo/0006.png \ +images/animations/bootsplash_logo/0043.png \ +images/animations/bootsplash_logo/0021.png \ +images/animations/bootsplash_logo/0040.png \ +images/animations/bootsplash_logo/0056.png \ +images/animations/bootsplash_logo/0024.png \ +images/animations/bootsplash_logo/0053.png \ +images/animations/bootsplash_logo/0054.png \ +images/animations/bootsplash_logo/0012.png \ +images/animations/bootsplash_logo/0063.png \ +images/animations/bootsplash_logo/0051.png \ +images/animations/bootsplash_logo/0061.png \ +images/animations/bootsplash_logo/0031.png \ +images/animations/bootsplash_logo/0013.png \ +images/animations/bootsplash_logo/0019.png \ +images/animations/bootsplash_logo/0009.png \ +images/animations/bootsplash_logo/0060.png \ +images/animations/bootsplash_logo/0064.png \ +images/animations/bootsplash_logo/0001.png \ +images/animations/bootsplash_logo/0045.png \ +images/animations/bootsplash_logo/0033.png \ +images/animations/bootsplash_logo/0017.png \ +images/animations/bootsplash_logo/0029.png \ +images/animations/bootsplash_logo/0059.png \ +images/animations/bootsplash_logo/0057.png \ +images/animations/bootsplash_logo/0037.png \ +images/animations/bootsplash_logo/0039.png \ +images/animations/bootsplash_logo/0065.png \ +images/animations/bootsplash_logo/0014.png \ +images/animations/bootsplash_logo/0015.png \ +images/animations/bootsplash_logo/0003.png \ +images/animations/bootsplash_logo/0010.png \ +images/animations/bootsplash_logo/0050.png \ +images/animations/bootsplash_logo/0011.png \ +images/animations/bootsplash_logo/0008.png \ +images/animations/bootsplash_logo/0007.png \ +images/animations/bootsplash_logo/0038.png \ +images/animations/bootsplash_logo/0049.png \ +images/animations/bootsplash_logo/0058.png \ +images/animations/bootsplash_logo/0048.png \ +images/animations/bootsplash_logo/0035.png \ +images/animations/bootsplash_logo/0062.png \ +images/animations/bootsplash_logo/0005.png \ +images/animations/bootsplash_logo/0032.png \ +images/animations/bootsplash_logo/0027.png \ +images/animations/bootsplash_logo/0055.png \ +images/animations/bootsplash_logo/0025.png \ +images/animations/bootsplash_logo/0026.png \ +images/animations/bootsplash_logo/0052.png \ +images/animations/bootsplash_logo/0030.png \ +images/animations/bootsplash_logo/0036.png \ +images/animations/bootsplash_logo/0022.png \ +images/animations/bootsplash_logo/0020.png \ +images/animations/bootsplash_logo/0044.png \ +images/animations/bootsplash_logo/0046.png \ +images/animations/bootsplash_logo/0016.png \ +images/animations/bootsplash_logo/0042.png \ +images/animations/bootsplash_logo/0004.png \ +images/animations/bootsplash_logo/0041.png \ +images/animations/bootsplash_logo/0034.png \ +images/animations/bootsplash_logo/0018.png \ +images/animations/bootsplash_logo/0023.png \ +images/animations/shutter_icon/icon_shutter_000.png \ +images/animations/shutter_icon/icon_shutter_002.png \ +images/animations/shutter_icon/icon_shutter_006.png \ +images/animations/shutter_icon/icon_shutter_005.png \ +images/animations/shutter_icon/icon_shutter_001.png \ +images/animations/shutter_icon/icon_shutter_008.png \ +images/animations/shutter_icon/icon_shutter_007.png \ +images/animations/shutter_icon/icon_shutter_003.png \ +images/animations/shutter_icon/icon_shutter_009.png \ +images/animations/shutter_icon/icon_shutter_004.png \ +images/animations/round_button/round_button_006.png \ +images/animations/round_button/round_button_001.png \ +images/animations/round_button/round_button_010.png \ +images/animations/round_button/round_button_007.png \ +images/animations/round_button/round_button_009.png \ +images/animations/round_button/round_button_003.png \ +images/animations/round_button/round_button_002.png \ +images/animations/round_button/round_button_005.png \ +images/animations/round_button/round_button_008.png \ +images/animations/round_button/round_button_004.png \ +images/animations/tor_icon/icon_tor_003.png \ +images/animations/tor_icon/icon_tor_006.png \ +images/animations/tor_icon/icon_tor_001.png \ +images/animations/tor_icon/icon_tor_007.png \ +images/animations/tor_icon/icon_tor_000.png \ +images/animations/tor_icon/icon_tor_002.png \ +images/animations/tor_icon/icon_tor_004.png \ +images/animations/tor_icon/icon_tor_005.png \ +images/animations/tor_icon/icon_tor_008.png \ +images/animations/light_icon/icon_light_004.png \ +images/animations/light_icon/icon_light_009.png \ +images/animations/light_icon/icon_light_008.png \ +images/animations/light_icon/icon_light_003.png \ +images/animations/light_icon/icon_light_001.png \ +images/animations/light_icon/icon_light_002.png \ +images/animations/light_icon/icon_light_005.png \ +images/animations/light_icon/icon_light_007.png \ +images/animations/light_icon/icon_light_006.png \ +images/animations/mini_circular_cooldown/mini_circular_015.png \ +images/animations/mini_circular_cooldown/mini_circular_004.png \ +images/animations/mini_circular_cooldown/mini_circular_013.png \ +images/animations/mini_circular_cooldown/mini_circular_008.png \ +images/animations/mini_circular_cooldown/mini_circular_009.png \ +images/animations/mini_circular_cooldown/mini_circular_012.png \ +images/animations/mini_circular_cooldown/mini_circular_000.png \ +images/animations/mini_circular_cooldown/mini_circular_011.png \ +images/animations/mini_circular_cooldown/mini_circular_005.png \ +images/animations/mini_circular_cooldown/mini_circular_007.png \ +images/animations/mini_circular_cooldown/mini_circular_017.png \ +images/animations/mini_circular_cooldown/mini_circular_003.png \ +images/animations/mini_circular_cooldown/mini_circular_002.png \ +images/animations/mini_circular_cooldown/mini_circular_006.png \ +images/animations/mini_circular_cooldown/mini_circular_001.png \ +images/animations/mini_circular_cooldown/mini_circular_016.png \ +images/animations/mini_circular_cooldown/mini_circular_014.png \ +images/animations/mini_circular_cooldown/mini_circular_010.png \ +images/animations/room_touched/medium_room_touched_001.png \ +images/animations/room_touched/medium_room_touched_003.png \ +images/animations/room_touched/medium_room_touched_002.png \ +images/animations/cd_player/menu_media_icon_cd_01.png \ +images/animations/cd_player/cd_player_007.png \ +images/animations/cd_player/cd_player_003.png \ +images/animations/cd_player/menu_media_icon_cd_06.png \ +images/animations/cd_player/menu_media_icon_cd_07.png \ +images/animations/cd_player/menu_media_icon_cd_09.png \ +images/animations/cd_player/cd_player_006.png \ +images/animations/cd_player/mini_cd_player_001.png \ +images/animations/cd_player/menu_media_icon_cd_02.png \ +images/animations/cd_player/cd_player_008.png \ +images/animations/cd_player/menu_media_icon_cd_05.png \ +images/animations/cd_player/menu_media_icon_cd_04.png \ +images/animations/cd_player/cd_player_001.png \ +images/animations/cd_player/cd_player_002.png \ +images/animations/cd_player/cd_player_004.png \ +images/animations/cd_player/menu_media_icon_cd_03.png \ +images/animations/cd_player/cd_player_005.png \ +images/animations/cd_player/cd_player_009.png \ +images/animations/cd_player/menu_media_icon_cd_08.png \ +images/animations/scenario_icon/icon_scenario_035.png \ +images/animations/scenario_icon/icon_scenario_029.png \ +images/animations/scenario_icon/icon_scenario_011.png \ +images/animations/scenario_icon/icon_scenario_006.png \ +images/animations/scenario_icon/icon_scenario_027.png \ +images/animations/scenario_icon/icon_scenario_013.png \ +images/animations/scenario_icon/icon_scenario_009.png \ +images/animations/scenario_icon/icon_scenario_032.png \ +images/animations/scenario_icon/icon_scenario_038.png \ +images/animations/scenario_icon/icon_scenario_012.png \ +images/animations/scenario_icon/icon_scenario_019.png \ +images/animations/scenario_icon/icon_scenario_021.png \ +images/animations/scenario_icon/icon_scenario_015.png \ +images/animations/scenario_icon/icon_scenario_018.png \ +images/animations/scenario_icon/icon_scenario_025.png \ +images/animations/scenario_icon/icon_scenario_001.png \ +images/animations/scenario_icon/icon_scenario_024.png \ +images/animations/scenario_icon/icon_scenario_022.png \ +images/animations/scenario_icon/icon_scenario_008.png \ +images/animations/scenario_icon/icon_scenario_010.png \ +images/animations/scenario_icon/icon_scenario_004.png \ +images/animations/scenario_icon/icon_scenario_020.png \ +images/animations/scenario_icon/icon_scenario_036.png \ +images/animations/scenario_icon/icon_scenario_014.png \ +images/animations/scenario_icon/icon_scenario_028.png \ +images/animations/scenario_icon/icon_scenario_033.png \ +images/animations/scenario_icon/icon_scenario_023.png \ +images/animations/scenario_icon/icon_scenario_037.png \ +images/animations/scenario_icon/icon_scenario_040.png \ +images/animations/scenario_icon/icon_scenario_007.png \ +images/animations/scenario_icon/icon_scenario_002.png \ +images/animations/scenario_icon/icon_scenario_026.png \ +images/animations/scenario_icon/icon_scenario_030.png \ +images/animations/scenario_icon/icon_scenario_016.png \ +images/animations/scenario_icon/icon_scenario_039.png \ +images/animations/scenario_icon/icon_scenario_017.png \ +images/animations/scenario_icon/icon_scenario_034.png \ +images/animations/scenario_icon/icon_scenario_031.png \ +images/animations/scenario_icon/icon_scenario_005.png \ +images/animations/scenario_icon/icon_scenario_003.png \ +images/animations/bootsplash_logo_reflect/reflect_004.png \ +images/animations/bootsplash_logo_reflect/reflect_002.png \ +images/animations/bootsplash_logo_reflect/reflect_001.png \ +images/animations/bootsplash_logo_reflect/reflect_005.png \ +images/animations/bootsplash_logo_reflect/reflect_007.png \ +images/animations/bootsplash_logo_reflect/reflect_006.png \ +images/animations/bootsplash_logo_reflect/reflect_003.png \ +images/animations/bootsplash_notification_icone/loader_icon_0009.png \ +images/animations/bootsplash_notification_icone/loader_icon_0015.png \ +images/animations/bootsplash_notification_icone/loader_icon_0003.png \ +images/animations/bootsplash_notification_icone/loader_icon_0017.png \ +images/animations/bootsplash_notification_icone/loader_icon_0016.png \ +images/animations/bootsplash_notification_icone/loader_icon_0019.png \ +images/animations/bootsplash_notification_icone/loader_icon_0023.png \ +images/animations/bootsplash_notification_icone/loader_icon_0004.png \ +images/animations/bootsplash_notification_icone/loader_icon_0025.png \ +images/animations/bootsplash_notification_icone/loader_icon_0007.png \ +images/animations/bootsplash_notification_icone/loader_icon_0008.png \ +images/animations/bootsplash_notification_icone/loader_icon_0020.png \ +images/animations/bootsplash_notification_icone/loader_icon_0006.png \ +images/animations/bootsplash_notification_icone/loader_icon_0010.png \ +images/animations/bootsplash_notification_icone/loader_icon_0021.png \ +images/animations/bootsplash_notification_icone/loader_icon_0014.png \ +images/animations/bootsplash_notification_icone/loader_icon_0012.png \ +images/animations/bootsplash_notification_icone/loader_icon_0001.png \ +images/animations/bootsplash_notification_icone/loader_icon_0002.png \ +images/animations/bootsplash_notification_icone/loader_icon_bg.png \ +images/animations/bootsplash_notification_icone/loader_icon_0018.png \ +images/animations/bootsplash_notification_icone/loader_icon_0011.png \ +images/animations/bootsplash_notification_icone/loader_icon_0013.png \ +images/animations/bootsplash_notification_icone/loader_icon_0005.png \ +images/animations/bootsplash_notification_icone/loader_icon_0024.png \ +images/animations/bootsplash_notification_icone/loader_icon_0022.png \ +images/animations/micro_circular_cooldown/micro_circular_001.png \ +images/animations/micro_circular_cooldown/micro_circular_004.png \ +images/animations/micro_circular_cooldown/micro_circular_012.png \ +images/animations/micro_circular_cooldown/micro_circular_010.png \ +images/animations/micro_circular_cooldown/micro_circular_007.png \ +images/animations/micro_circular_cooldown/micro_circular_009.png \ +images/animations/micro_circular_cooldown/micro_circular_003.png \ +images/animations/micro_circular_cooldown/micro_circular_014.png \ +images/animations/micro_circular_cooldown/micro_circular_006.png \ +images/animations/micro_circular_cooldown/micro_circular_008.png \ +images/animations/micro_circular_cooldown/micro_circular_017.png \ +images/animations/micro_circular_cooldown/micro_circular_011.png \ +images/animations/micro_circular_cooldown/micro_circular_016.png \ +images/animations/micro_circular_cooldown/micro_circular_002.png \ +images/animations/micro_circular_cooldown/micro_circular_013.png \ +images/animations/micro_circular_cooldown/micro_circular_000.png \ +images/animations/micro_circular_cooldown/micro_circular_015.png \ +images/animations/micro_circular_cooldown/micro_circular_005.png \ +images/animations/volume_knob_leds/volume_led_32.png \ +images/animations/volume_knob_leds/volume_led_24.png \ +images/animations/volume_knob_leds/volume_led_25.png \ +images/animations/volume_knob_leds/volume_led_29.png \ +images/animations/volume_knob_leds/volume_led_43.png \ +images/animations/volume_knob_leds/volume_led_26.png \ +images/animations/volume_knob_leds/volume_led_27.png \ +images/animations/volume_knob_leds/volume_led_20.png \ +images/animations/volume_knob_leds/volume_led_31.png \ +images/animations/volume_knob_leds/volume_led_02.png \ +images/animations/volume_knob_leds/volume_led_35.png \ +images/animations/volume_knob_leds/volume_led_37.png \ +images/animations/volume_knob_leds/volume_led_41.png \ +images/animations/volume_knob_leds/volume_led_19.png \ +images/animations/volume_knob_leds/volume_led_28.png \ +images/animations/volume_knob_leds/volume_led_09.png \ +images/animations/volume_knob_leds/volume_led_17.png \ +images/animations/volume_knob_leds/volume_led_07.png \ +images/animations/volume_knob_leds/volume_led_01.png \ +images/animations/volume_knob_leds/volume_led_22.png \ +images/animations/volume_knob_leds/volume_led_30.png \ +images/animations/volume_knob_leds/volume_led_08.png \ +images/animations/volume_knob_leds/volume_led_06.png \ +images/animations/volume_knob_leds/volume_led_11.png \ +images/animations/volume_knob_leds/volume_led_14.png \ +images/animations/volume_knob_leds/volume_led_15.png \ +images/animations/volume_knob_leds/volume_led_10.png \ +images/animations/volume_knob_leds/volume_led_34.png \ +images/animations/volume_knob_leds/volume_led_42.png \ +images/animations/volume_knob_leds/volume_led_16.png \ +images/animations/volume_knob_leds/volume_led_39.png \ +images/animations/volume_knob_leds/volume_led_23.png \ +images/animations/volume_knob_leds/volume_led_03.png \ +images/animations/volume_knob_leds/volume_led_40.png \ +images/animations/volume_knob_leds/volume_led_45.png \ +images/animations/volume_knob_leds/volume_led_18.png \ +images/animations/volume_knob_leds/volume_led_21.png \ +images/animations/volume_knob_leds/volume_led_36.png \ +images/animations/volume_knob_leds/volume_led_33.png \ +images/animations/volume_knob_leds/volume_led_05.png \ +images/animations/volume_knob_leds/volume_led_38.png \ +images/animations/volume_knob_leds/volume_led_13.png \ +images/animations/volume_knob_leds/volume_led_04.png \ +images/animations/volume_knob_leds/volume_led_12.png \ +images/animations/volume_knob_leds/volume_led_44.png \ +images/animations/glowed_556_line/glowed_556_line_final.png \ +images/rooms/cellar/cellar_medium_bloom.png \ +images/rooms/cellar/cellar_small.png \ +images/rooms/cellar/cellar_medium.png \ +images/rooms/cellar/cellar_big.png \ +images/rooms/bathroom/bathroom_medium_bloom.png \ +images/rooms/bathroom/bathroom_small.png \ +images/rooms/bathroom/bathroom_medium.png \ +images/rooms/bathroom/bathroom_big.png \ +images/rooms/office/office_small.png \ +images/rooms/office/office_medium_bloom.png \ +images/rooms/office/office_medium.png \ +images/rooms/office/office_big.png \ +images/rooms/bedroom_small.png \ +images/rooms/lounge/lounge_medium.png \ +images/rooms/lounge/lounge_small.png \ +images/rooms/lounge/lounge_medium_bloom.png \ +images/rooms/lounge/lounge_big.png \ +images/rooms/bathroom_small.png \ +images/rooms/garage/garage_medium.png \ +images/rooms/garage/garage_big.png \ +images/rooms/garage/garage_medium_bloom.png \ +images/rooms/garage/garage_small.png \ +images/rooms/various/various_medium_bloom.png \ +images/rooms/various/various_big.png \ +images/rooms/various/various_medium.png \ +images/rooms/various/various_small.png \ +images/rooms/big_room_glow.png \ +images/rooms/diningroom_small.png \ +images/rooms/medium_room_neon.png \ +images/rooms/big_room_wire.png \ +images/rooms/diningroom/diningroom_small.png \ +images/rooms/diningroom/diningroom_big.png \ +images/rooms/diningroom/diningroom_medium.png \ +images/rooms/diningroom/diningroom_medium_bloom.png \ +images/rooms/small_room_shadow.png \ +images/rooms/medium_room_shadow.png \ +images/rooms/cellar_small.png \ +images/rooms/medium_room_glow.png \ +images/rooms/medium_room_touched.png \ +images/rooms/outside/outside_medium_bloom.png \ +images/rooms/outside/outside_big.png \ +images/rooms/outside/outside_small.png \ +images/rooms/outside/outside_medium.png \ +images/rooms/bedroom/bedroom_big.png \ +images/rooms/bedroom/bedroom_small.png \ +images/rooms/bedroom/bedroom_medium.png \ +images/rooms/bedroom/bedroom_medium_bloom.png \ +images/rooms/corridor/corridor_medium.png \ +images/rooms/corridor/corridor_big.png \ +images/rooms/corridor/corridor_medium_bloom.png \ +images/rooms/corridor/corridor_small.png \ +images/rooms/garage_small.png \ +images/rooms/corridor_small.png \ +images/rooms/kitchen/kitchen_medium_bloom.png \ +images/rooms/kitchen/kitchen_small.png \ +images/rooms/kitchen/kitchen_medium.png \ +images/rooms/kitchen/kitchen_big.png \ +images/rooms/big_room_shadow.png + + +EDC = \ +calaos_theme.edc \ +elm/elm_genlist_item_internalstring.edc \ +elm/elm_ctxpopup.edc \ +elm/elm_genlist_item_internalbool.edc \ +elm/elm_calendar.edc \ +elm/elm_entry_keyboard.edc \ +elm/elm_list_base.edc \ +elm/elm_genlist_item_wovolet.edc \ +elm/elm_genlist_item_wovoletsmart.edc \ +elm/elm_genlist_item_woanalog.edc \ +elm/elm_button.edc \ +elm/elm_actionbutton.edc \ +elm/elm_list_homeboard.edc \ +elm/elm_genlist_item_wianalog.edc \ +elm/elm_genlist_item_simple.edc \ +elm/elm_genlist_item_scenario.edc \ +elm/elm_genlist_item_browser_album.edc \ +elm/elm_genlist_item_wodigital.edc \ +elm/elm_genlist_item_group_room.edc \ +elm/elm_genlist_item_wodalirvb.edc \ +elm/elm_genlist_item_internalint.edc \ +elm/elm_genlist_item_playlist.edc \ +elm/elm_pager.edc \ +elm/elm_genlist_item_wodali.edc \ +elm/elm_slider_knob.edc \ +elm/elm_list_home_room.edc \ +elm/elm_genlist_item_witemp.edc \ +elm/elm_genlist_item_scenario_schedule.edc \ +elm/elm_spinner.edc \ +structure/page_camera.edc \ +structure/room_prog_macro.edc \ +structure/page_config_panel.edc \ +structure/activity_header_footer.edc \ +structure/page_widgets.edc \ +structure/keyboard_macros.edc \ +structure/page_web.edc \ +structure/room_macro.edc \ +structure/main_layout.edc \ +structure/player_prog.edc \ +structure/styles.edc \ +structure/macro_menu_button.edc \ +structure/circular_spinner.edc \ +structure/page_scenarios.edc \ +structure/page_schedule.edc \ +structure/page_edit_scenario.edc \ +structure/main_menu.edc \ +structure/page_audio_list.edc \ +structure/popup_actions_pages.edc \ +structure/element_scenario_home.edc \ +structure/page_keyboard.edc \ +structure/player.edc \ +structure/slider_horizontal_macro.edc \ +structure/icons.edc \ +structure/utils.edc \ +structure/paging_view.edc \ +structure/slider_vertical_macro.edc \ +structure/rooms.edc \ +structure/page_home.edc \ +structure/activity_loading.edc \ +structure/scrolling_text.edc \ +structure/page_media.edc \ +structure/old_macros.edc \ +structure/slider.edc \ +structure/macro_round_button.edc \ +structure/amplifier_control.edc \ +structure/images.edc + +FONT = \ +fonts/calaos_logo.ttf \ +fonts/calaos_content.ttf \ +fonts/calaos_content-oblique.ttf \ +fonts/calaos_text_bold.ttf \ +fonts/Ubuntu-L.ttf \ +fonts/calaos_text.ttf \ +fonts/Ubuntu-M.ttf \ +fonts/calaos_content-bold.ttf \ +fonts/RepetitionScrolling.ttf \ +fonts/Ubuntu-B.ttf + + +EXTRA_DIST = \ + $(IMG) \ + $(EDC) \ + $(FONT) + +default.edj: Makefile $(EXTRA_DIST) + $(AM_V_GEN)$(EDJE_CC) $(EDJE_VERB) $(EDJE_FLAGS) \ + $(top_srcdir)/data/themes/default/calaos_theme.edc \ + $(top_builddir)/data/themes/default/default.edj + +clean-local: + rm -f *.edj + diff --git a/data/themes/default/Makefile.in b/data/themes/default/Makefile.in new file mode 100644 index 00000000..1334f863 --- /dev/null +++ b/data/themes/default/Makefile.in @@ -0,0 +1,1320 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/themes/default +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(defaultdir)" +DATA = $(default_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MAINTAINERCLEANFILES = Makefile.in +EDJE_CC = edje_cc +EDJE_FLAGS = \ +-id $(top_srcdir)/data/themes/default/images \ +-id $(top_srcdir)/data/themes/default/images/buttons \ +-id $(top_srcdir)/data/themes/default/images/parts \ +-id $(top_srcdir)/data/themes/default/images/icons \ +-id $(top_srcdir)/data/themes/default/images/logo \ +-id $(top_srcdir)/data/themes/default/images/animations \ +-id $(top_srcdir)/data/themes/default/images/animations/glowed_556_line \ +-id $(top_srcdir)/data/themes/default/images/animations/room_touched \ +-id $(top_srcdir)/data/themes/default/images/animations/round_button \ +-id $(top_srcdir)/data/themes/default/images/animations/light_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/shutter_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/scenario_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/mini_circular_cooldown \ +-id $(top_srcdir)/data/themes/default/images/animations/micro_circular_cooldown \ +-id $(top_srcdir)/data/themes/default/images/animations/cd_player \ +-id $(top_srcdir)/data/themes/default/images/animations/bootsplash_logo \ +-id $(top_srcdir)/data/themes/default/images/animations/bootsplash_logo_reflect \ +-id $(top_srcdir)/data/themes/default/images/animations/bootsplash_notification_icone \ +-id $(top_srcdir)/data/themes/default/images/animations/tor_icon \ +-id $(top_srcdir)/data/themes/default/images/animations/volume_knob_leds \ +-id $(top_srcdir)/data/themes/default/images/boosplash \ +-id $(top_srcdir)/data/themes/default/images/adjust_pattern \ +-id $(top_srcdir)/data/themes/default/images/background \ +-id $(top_srcdir)/data/themes/default/images/scenario \ +-id $(top_srcdir)/data/themes/default/images/rooms \ +-id $(top_srcdir)/data/themes/default/images/rooms/lounge \ +-id $(top_srcdir)/data/themes/default/images/rooms/bedroom \ +-id $(top_srcdir)/data/themes/default/images/rooms/kitchen \ +-id $(top_srcdir)/data/themes/default/images/rooms/office \ +-id $(top_srcdir)/data/themes/default/images/rooms/diningroom \ +-id $(top_srcdir)/data/themes/default/images/rooms/various \ +-id $(top_srcdir)/data/themes/default/images/rooms/outside \ +-id $(top_srcdir)/data/themes/default/images/rooms/bathroom \ +-id $(top_srcdir)/data/themes/default/images/rooms/corridor \ +-id $(top_srcdir)/data/themes/default/images/rooms/cellar \ +-id $(top_srcdir)/data/themes/default/images/rooms/garage \ +-id $(top_srcdir)/data/themes/default/images/widgets \ +-fd $(top_srcdir)/data/themes/default/fonts + +EDJE_VERB = $(EDJE_VERB_$(V)) +EDJE_VERB_ = $(EDJE_VERB_$(AM_DEFAULT_VERBOSITY)) +EDJE_VERB_1 = -v +defaultdir = $(pkgdatadir) +default_DATA = default.edj +IMG = \ +images/buttons/button_list_up_glow.png \ +images/buttons/button_previous_glow.png \ +images/buttons/button_action_reboot_off.png \ +images/buttons/button_action_reload.png \ +images/buttons/button_action_scenario_play.png \ +images/buttons/button_action_popup_glow.png \ +images/buttons/button_widget_move_right.png \ +images/buttons/button_action_labeled.png \ +images/buttons/button_home_glow.png \ +images/buttons/button_rot_right_glow.png \ +images/buttons/button_scenarios.png \ +images/buttons/button_action_toggle.png \ +images/buttons/button_widget_list_end.png \ +images/buttons/button_rot_zoomout.png \ +images/buttons/button_action_select_unselected.png \ +images/buttons/button_rot_up_glow.png \ +images/buttons/button_scenarios_stop.png \ +images/buttons/button_action_on.png \ +images/buttons/button_action_pager_previous.png \ +images/buttons/button_action_fullscreen.png \ +images/buttons/button_home_bloom.png \ +images/buttons/button_down.png \ +images/buttons/button_action_left.png \ +images/buttons/button_scroll_glow.png \ +images/buttons/button_widget_move_left.png \ +images/buttons/button_previous.png \ +images/buttons/button_action_reboot.png \ +images/buttons/button_next.png \ +images/buttons/button_action_del_off.png \ +images/buttons/button_browser_glow.png \ +images/buttons/button_action_warming_up_glow.png \ +images/buttons/button_action_warming_up.png \ +images/buttons/button_action_on_glow.png \ +images/buttons/button_home_stop_on.png \ +images/buttons/button_action_glow_small.png \ +images/buttons/button_rot_centre_glow.png \ +images/buttons/button_rot_centre.png \ +images/buttons/menu_item.png \ +images/buttons/button_scenarios_glow.png \ +images/buttons/button_action_quit_off.png \ +images/buttons/button_configuration.png \ +images/buttons/button_rot_zoomout_glow.png \ +images/buttons/button_selected_neon.png \ +images/buttons/button_action_pager_next.png \ +images/buttons/button_action_labeled_small.png \ +images/buttons/button_action_plus_off.png \ +images/buttons/button_action_editor_glow.png \ +images/buttons/button_action_small_glow.png \ +images/buttons/button_home.png \ +images/buttons/button_element.png \ +images/buttons/button_list_down.png \ +images/buttons/button_configuration_bloom.png \ +images/buttons/button_action_big_glow.png \ +images/buttons/button_action_popup_valid.png \ +images/buttons/button_media_stop_on.png \ +images/buttons/button_action_back.png \ +images/buttons/button_configuration_stop_on.png \ +images/buttons/button_widget_move_left_big.png \ +images/buttons/button_action_neon.png \ +images/buttons/button_action_vertical_glow.png \ +images/buttons/button_rot_left.png \ +images/buttons/button_element_bevel.png \ +images/buttons/button_glow_down.png \ +images/buttons/button_widget_resize.png \ +images/buttons/button_scenarios_stop_on.png \ +images/buttons/button_action_clavier2.png \ +images/buttons/button_configuration_stop.png \ +images/buttons/button_element_cut_glow.png \ +images/buttons/button_home_stop.png \ +images/buttons/button_scenarios_bloom.png \ +images/buttons/button_action_glow.png \ +images/buttons/button_glow_up.png \ +images/buttons/button_media_glow.png \ +images/buttons/button_action_pause.png \ +images/buttons/button_rot_right.png \ +images/buttons/button_scroll.png \ +images/buttons/button_action_light_off.png \ +images/buttons/button_action_scenario_play_glow.png \ +images/buttons/button_widget_move_up.png \ +images/buttons/button_action_clavier_off.png \ +images/buttons/button_action_valid_off.png \ +images/buttons/button_feature_small.png \ +images/buttons/button_action_off.png \ +images/buttons/button_rot_down_glow.png \ +images/buttons/button_key_del.png \ +images/buttons/button_browser.png \ +images/buttons/button_action_impulse_glow.png \ +images/buttons/button_action_edit.png \ +images/buttons/button_action_rolll_up.png \ +images/buttons/button_action_small.png \ +images/buttons/button_media_bloom.png \ +images/buttons/button_action_quit.png \ +images/buttons/button_action_upper.png \ +images/buttons/menu_item_select2.png \ +images/buttons/button_action_del.png \ +images/buttons/button_action_home.png \ +images/buttons/button_action_actionstop_off.png \ +images/buttons/button_rot_down.png \ +images/buttons/button_slider_less.png \ +images/buttons/button_slider_more.png \ +images/buttons/button_action_less_vertical.png \ +images/buttons/button_rot_zoomin.png \ +images/buttons/button_rot_zoomin_glow.png \ +images/buttons/button_action_big.png \ +images/buttons/button_action_fullscreen_glow.png \ +images/buttons/button_previous_off.png \ +images/buttons/button_widget_list_begin.png \ +images/buttons/button_rot_up.png \ +images/buttons/button_action_downer.png \ +images/buttons/button_action_impulse.png \ +images/buttons/button_action_less.png \ +images/buttons/button_media_stop.png \ +images/buttons/button_keyboard_select.png \ +images/buttons/button_action_right.png \ +images/buttons/button_action_up.png \ +images/buttons/button_action_more.png \ +images/buttons/button_next_off.png \ +images/buttons/button_action_rolll_down.png \ +images/buttons/button_action_sync.png \ +images/buttons/button_media.png \ +images/buttons/button_next_glow.png \ +images/buttons/button_action_more_vertical.png \ +images/buttons/button_up.png \ +images/buttons/button_element_open.png \ +images/buttons/button_action_popup_back_glow.png \ +images/buttons/button_element_glow.png \ +images/buttons/button_action_valid.png \ +images/buttons/button_info.png \ +images/buttons/button_action_popup_back.png \ +images/buttons/button_widget_move_up_big.png \ +images/buttons/button_keyboard.png \ +images/buttons/button_action_plus.png \ +images/buttons/button_action_light_on.png \ +images/buttons/button_widget_move_down_big.png \ +images/buttons/button_action_previous.png \ +images/buttons/button_configuration_glow.png \ +images/buttons/button_action_impulse_up.png \ +images/buttons/button_action_pattern.png \ +images/buttons/button_round_stop.png \ +images/buttons/button_list_up.png \ +images/buttons/button_list_down_glow.png \ +images/buttons/button_action_labeled_glow.png \ +images/buttons/button_action_border.png \ +images/buttons/button_action_stop.png \ +images/buttons/button_action_play.png \ +images/buttons/button_widget_move_right_big.png \ +images/buttons/button_action_actionstop.png \ +images/buttons/button_action_next.png \ +images/buttons/button_widget_list_item.png \ +images/buttons/button_action_clavier.png \ +images/buttons/button_action_select_selected.png \ +images/buttons/button_widget_move_down.png \ +images/buttons/button_element_cut.png \ +images/buttons/button_action_down.png \ +images/buttons/button_rot_left_glow.png \ +images/buttons/button_action_impulse_down.png \ +images/buttons/menu_item_select.png \ +images/buttons/button_feature_big.png \ +images/buttons/button_action_warming_down.png \ +images/buttons/button_key_return.png \ +images/buttons/button_info_glow.png \ +images/buttons/button_action_editor.png \ +images/buttons/button_action_delete.png \ +images/progressbar/progressbar_background.png \ +images/progressbar/progressbar_niveau.png \ +images/progressbar/progressbar_ligne.png \ +images/adjust_pattern/elements_light.png \ +images/adjust_pattern/normal_room_bg.png \ +images/adjust_pattern/big_room_bg.png \ +images/adjust_pattern/elements.png \ +images/adjust_pattern/cover.png \ +images/adjust_pattern/elements_track.png \ +images/adjust_pattern/player.png \ +images/adjust_pattern/small_room_bg.png \ +images/widgets/widget_container_back_buttons.png \ +images/widgets/widget_back_edit.png \ +images/widgets/xmas_banner_right.png \ +images/widgets/flake_large.png \ +images/widgets/widget_container_back.png \ +images/widgets/flake_small.png \ +images/widgets/xmas_banner_left.png \ +images/widgets/flake_medium.png \ +images/parts/config_item.png \ +images/parts/slider_green.png \ +images/parts/footer_shadow.png \ +images/parts/loading_top.png \ +images/parts/menu_glowed_neon.png \ +images/parts/menu_media_item_separator.png \ +images/parts/slider_vertical.png \ +images/parts/camera_big_border.png \ +images/parts/module_footer_shadow.png \ +images/parts/player_line_decoration_top.png \ +images/parts/dialog_neon.png \ +images/parts/selector_on.png \ +images/parts/browser_list_decoration.png \ +images/parts/camera_border.png \ +images/parts/module_header_shadow.png \ +images/parts/keyboard_select_bar_right.png \ +images/parts/menu_media_icon_eskiss_back.png \ +images/parts/player_small_shadow.png \ +images/parts/calendar_back.png \ +images/parts/glow.png \ +images/parts/medium_list_decoration_left.png \ +images/parts/player_cover_front.png \ +images/parts/dialog_lines.png \ +images/parts/player_line_decoration_bottom.png \ +images/parts/slider_on.png \ +images/parts/calendar_holiday.png \ +images/parts/menu_back.png \ +images/parts/loading_bar.png \ +images/parts/slider_border_red.png \ +images/parts/calendar_select.png \ +images/parts/controls_sep.png \ +images/parts/keyboard_agenda_background.png \ +images/parts/slider_green_on.png \ +images/parts/menu_media_icon_web_back.png \ +images/parts/keyboard_select_separator.png \ +images/parts/window_border2.png \ +images/parts/shutter_arrows_deco.png \ +images/parts/volume_knob_move.png \ +images/parts/keyboard_cursor.png \ +images/parts/keyboard_select_bar_left.png \ +images/parts/shadow_photo.png \ +images/parts/menu_header_shadow.png \ +images/parts/slider_vertical_on.png \ +images/parts/middle_skyline.png \ +images/parts/keyboard_lines.png \ +images/parts/album_back.png \ +images/parts/top_skyline.png \ +images/parts/indicator_glow.png \ +images/parts/player_line_decoration_right.png \ +images/parts/top_skyline_neon.png \ +images/parts/player_glow.png \ +images/parts/vertical_level_indicator.png \ +images/parts/slider_red_on.png \ +images/parts/popup_arrow_down.png \ +images/parts/slider_border_green.png \ +images/parts/slider_border.png \ +images/parts/medium_list_decoration_right.png \ +images/parts/menu_media_icon_cd_back.png \ +images/parts/keyboard_key_glow.png \ +images/parts/standard_list_decoration_top.png \ +images/parts/slider_border_blue.png \ +images/parts/player_small_cover_back.png \ +images/parts/calendar_header.png \ +images/parts/standard_list_decoration_bottom.png \ +images/parts/slider_blue.png \ +images/parts/calendar_ring.png \ +images/parts/keyboard_key_selected.png \ +images/parts/player_cover_back.png \ +images/parts/keyboard_multiline_background.png \ +images/parts/selector_off.png \ +images/parts/menu_media_item_glow.png \ +images/parts/footer_kevlar.png \ +images/parts/popup_arrow_left.png \ +images/parts/camera_reflect.png \ +images/parts/menu_buttons_shadow_left.png \ +images/parts/list_message_border.png \ +images/parts/small_list_decoration.png \ +images/parts/player_line_decoration_cd.png \ +images/parts/medium_list_decoration_camera.png \ +images/parts/player_line_decoration_left.png \ +images/parts/camera_mire.png \ +images/parts/controls_bg.png \ +images/parts/menu_buttons_shadow_right.png \ +images/parts/slider_blue_on.png \ +images/parts/menu_media_item_shadow.png \ +images/parts/display_border.png \ +images/parts/menu_media_item_reflect.png \ +images/parts/popup_arrow_right.png \ +images/parts/menu_media_icon_camera_red.png \ +images/parts/cover_loading_border.png \ +images/parts/display_border2.png \ +images/parts/cursor.png \ +images/parts/small_scroll_list_decoration.png \ +images/parts/standard_list_decoration.png \ +images/parts/medium_scroll_list_decoration.png \ +images/parts/menu_media_item.png \ +images/parts/scenario_separator.png \ +images/parts/camera_medium_border.png \ +images/parts/popup_carbon.png \ +images/parts/separator.png \ +images/parts/menu_media_icon_camera_back.png \ +images/parts/player_small_cover_front.png \ +images/parts/keyboard_background.png \ +images/parts/volume_knob_ledsoff.png \ +images/parts/rgb_preview.png \ +images/parts/config_item_select.png \ +images/parts/popup_arrow_up.png \ +images/parts/menu_footer_shadow.png \ +images/parts/middle_skyline_neon.png \ +images/parts/dialog_background.png \ +images/parts/window_border.png \ +images/parts/popup_bg.png \ +images/parts/slider_red.png \ +images/parts/loading_bg.png \ +images/parts/player_shadow.png \ +images/parts/volume_knob.png \ +images/parts/window_shutter.png \ +images/parts/imageviewer_footer.png \ +images/parts/player_cd_shadow.png \ +images/parts/scenario_list_decoration.png \ +images/parts/slider.png \ +images/parts/camera_nocam.png \ +images/parts/album_cover.png \ +images/parts/small_list_decoration_left.png \ +images/parts/slider_border_vertical.png \ +images/parts/cover_border.png \ +images/bootsplash/neonlight.png \ +images/scenario/wizzard_4.png \ +images/scenario/wizzard_header.png \ +images/scenario/wizzard_3.png \ +images/scenario/wizzard_line_selected.png \ +images/scenario/wizzard_bg_selected.png \ +images/scenario/wizzard_1.png \ +images/scenario/wizzard_2.png \ +images/background/menu_footer_background_left.png \ +images/background/bootsplash.png \ +images/background/background_top.png \ +images/background/background_default_lighted.png \ +images/background/background_quad.png \ +images/background/background_bottom.png \ +images/background/module_footer.png \ +images/background/menu_header_background_version.png \ +images/background/background_default.png \ +images/background/menu_header_background.png \ +images/background/menu_footer_background.png \ +images/background/module_header.png \ +images/background/menu_footer_background_right.png \ +images/background/background_center.png \ +images/download_manager/download_disk.png \ +images/download_manager/download_shadow.png \ +images/download_manager/download_arrow.png \ +images/download_manager/download_fond.png \ +images/logo/final.png \ +images/logo/shadow.png \ +images/logo/logo_tittle.png \ +images/logo/calaos_about_logo.png \ +images/logo/menu_logo.png \ +images/logo/logo_mirror.png \ +images/logo/bloom.png \ +images/icons/icon_select_simple.png \ +images/icons/icon_groom.png \ +images/icons/icon_player.png \ +images/icons/icon_play.png \ +images/icons/icon_edit.png \ +images/icons/icon_analog.png \ +images/icons/icon_light_on.png \ +images/icons/icon_item_widget.png \ +images/icons/icon_scenario_big.png \ +images/icons/icon_item_screensaver.png \ +images/icons/icon_tor_on.png \ +images/icons/icon_config_widget.png \ +images/icons/icon_cd.png \ +images/icons/icon_cd_glow.png \ +images/icons/icon_string.png \ +images/icons/icon_plus.png \ +images/icons/icon_camera_on.png \ +images/icons/icon_config_info.png \ +images/icons/icon_camera.png \ +images/icons/icon_action.png \ +images/icons/icon_clock.png \ +images/icons/icon_light_simple.png \ +images/icons/icon_warming_up.png \ +images/icons/icon_sound.png \ +images/icons/icon_search.png \ +images/icons/icon_config_veille.png \ +images/icons/icon_temp.png \ +images/icons/icon_folder.png \ +images/icons/icon_myhome.png \ +images/icons/icon_room_on.png \ +images/icons/icon_disclosure.png \ +images/icons/icon_scenario_small.png \ +images/icons/icon_music.png \ +images/icons/icon_camera_title.png \ +images/icons/icon_action_simple.png \ +images/icons/icon_flickr.png \ +images/icons/icon_config_terminal.png \ +images/icons/icon_config_fw.png \ +images/icons/icon_bool_on.png \ +images/icons/icon_bool.png \ +images/icons/icon_int.png \ +images/icons/icon_light_off.png \ +images/icons/icon_play_simple.png \ +images/icons/icon_room.png \ +images/icons/icon_bool_scenario.png \ +images/icons/icon_config_l18n.png \ +images/icons/icon_config_clock.png \ +images/icons/icon_warming.png \ +images/icons/icon_stop_simple.png \ +images/icons/icon_action_blue.png \ +images/icons/icon_trash.png \ +images/icons/icon_camera_simple.png \ +images/icons/icon_warming_down.png \ +images/icons/icon_config_network.png \ +images/icons/icon_item_lock.png \ +images/icons/icon_light.png \ +images/icons/icon_playlist.png \ +images/icons/icon_note.png \ +images/icons/icon_config_security.png \ +images/icons/icon_item_reboot.png \ +images/icons/icon_tor.png \ +images/icons/icon_widget_unknown.png \ +images/icons/icon_shutter_on.png \ +images/icons/icon_note_on.png \ +images/icons/icon_shutter.png \ +images/icons/icon_moins.png \ +images/icons/icon_radio.png \ +images/animations/bootsplash_logo/0028.png \ +images/animations/bootsplash_logo/0002.png \ +images/animations/bootsplash_logo/0047.png \ +images/animations/bootsplash_logo/0006.png \ +images/animations/bootsplash_logo/0043.png \ +images/animations/bootsplash_logo/0021.png \ +images/animations/bootsplash_logo/0040.png \ +images/animations/bootsplash_logo/0056.png \ +images/animations/bootsplash_logo/0024.png \ +images/animations/bootsplash_logo/0053.png \ +images/animations/bootsplash_logo/0054.png \ +images/animations/bootsplash_logo/0012.png \ +images/animations/bootsplash_logo/0063.png \ +images/animations/bootsplash_logo/0051.png \ +images/animations/bootsplash_logo/0061.png \ +images/animations/bootsplash_logo/0031.png \ +images/animations/bootsplash_logo/0013.png \ +images/animations/bootsplash_logo/0019.png \ +images/animations/bootsplash_logo/0009.png \ +images/animations/bootsplash_logo/0060.png \ +images/animations/bootsplash_logo/0064.png \ +images/animations/bootsplash_logo/0001.png \ +images/animations/bootsplash_logo/0045.png \ +images/animations/bootsplash_logo/0033.png \ +images/animations/bootsplash_logo/0017.png \ +images/animations/bootsplash_logo/0029.png \ +images/animations/bootsplash_logo/0059.png \ +images/animations/bootsplash_logo/0057.png \ +images/animations/bootsplash_logo/0037.png \ +images/animations/bootsplash_logo/0039.png \ +images/animations/bootsplash_logo/0065.png \ +images/animations/bootsplash_logo/0014.png \ +images/animations/bootsplash_logo/0015.png \ +images/animations/bootsplash_logo/0003.png \ +images/animations/bootsplash_logo/0010.png \ +images/animations/bootsplash_logo/0050.png \ +images/animations/bootsplash_logo/0011.png \ +images/animations/bootsplash_logo/0008.png \ +images/animations/bootsplash_logo/0007.png \ +images/animations/bootsplash_logo/0038.png \ +images/animations/bootsplash_logo/0049.png \ +images/animations/bootsplash_logo/0058.png \ +images/animations/bootsplash_logo/0048.png \ +images/animations/bootsplash_logo/0035.png \ +images/animations/bootsplash_logo/0062.png \ +images/animations/bootsplash_logo/0005.png \ +images/animations/bootsplash_logo/0032.png \ +images/animations/bootsplash_logo/0027.png \ +images/animations/bootsplash_logo/0055.png \ +images/animations/bootsplash_logo/0025.png \ +images/animations/bootsplash_logo/0026.png \ +images/animations/bootsplash_logo/0052.png \ +images/animations/bootsplash_logo/0030.png \ +images/animations/bootsplash_logo/0036.png \ +images/animations/bootsplash_logo/0022.png \ +images/animations/bootsplash_logo/0020.png \ +images/animations/bootsplash_logo/0044.png \ +images/animations/bootsplash_logo/0046.png \ +images/animations/bootsplash_logo/0016.png \ +images/animations/bootsplash_logo/0042.png \ +images/animations/bootsplash_logo/0004.png \ +images/animations/bootsplash_logo/0041.png \ +images/animations/bootsplash_logo/0034.png \ +images/animations/bootsplash_logo/0018.png \ +images/animations/bootsplash_logo/0023.png \ +images/animations/shutter_icon/icon_shutter_000.png \ +images/animations/shutter_icon/icon_shutter_002.png \ +images/animations/shutter_icon/icon_shutter_006.png \ +images/animations/shutter_icon/icon_shutter_005.png \ +images/animations/shutter_icon/icon_shutter_001.png \ +images/animations/shutter_icon/icon_shutter_008.png \ +images/animations/shutter_icon/icon_shutter_007.png \ +images/animations/shutter_icon/icon_shutter_003.png \ +images/animations/shutter_icon/icon_shutter_009.png \ +images/animations/shutter_icon/icon_shutter_004.png \ +images/animations/round_button/round_button_006.png \ +images/animations/round_button/round_button_001.png \ +images/animations/round_button/round_button_010.png \ +images/animations/round_button/round_button_007.png \ +images/animations/round_button/round_button_009.png \ +images/animations/round_button/round_button_003.png \ +images/animations/round_button/round_button_002.png \ +images/animations/round_button/round_button_005.png \ +images/animations/round_button/round_button_008.png \ +images/animations/round_button/round_button_004.png \ +images/animations/tor_icon/icon_tor_003.png \ +images/animations/tor_icon/icon_tor_006.png \ +images/animations/tor_icon/icon_tor_001.png \ +images/animations/tor_icon/icon_tor_007.png \ +images/animations/tor_icon/icon_tor_000.png \ +images/animations/tor_icon/icon_tor_002.png \ +images/animations/tor_icon/icon_tor_004.png \ +images/animations/tor_icon/icon_tor_005.png \ +images/animations/tor_icon/icon_tor_008.png \ +images/animations/light_icon/icon_light_004.png \ +images/animations/light_icon/icon_light_009.png \ +images/animations/light_icon/icon_light_008.png \ +images/animations/light_icon/icon_light_003.png \ +images/animations/light_icon/icon_light_001.png \ +images/animations/light_icon/icon_light_002.png \ +images/animations/light_icon/icon_light_005.png \ +images/animations/light_icon/icon_light_007.png \ +images/animations/light_icon/icon_light_006.png \ +images/animations/mini_circular_cooldown/mini_circular_015.png \ +images/animations/mini_circular_cooldown/mini_circular_004.png \ +images/animations/mini_circular_cooldown/mini_circular_013.png \ +images/animations/mini_circular_cooldown/mini_circular_008.png \ +images/animations/mini_circular_cooldown/mini_circular_009.png \ +images/animations/mini_circular_cooldown/mini_circular_012.png \ +images/animations/mini_circular_cooldown/mini_circular_000.png \ +images/animations/mini_circular_cooldown/mini_circular_011.png \ +images/animations/mini_circular_cooldown/mini_circular_005.png \ +images/animations/mini_circular_cooldown/mini_circular_007.png \ +images/animations/mini_circular_cooldown/mini_circular_017.png \ +images/animations/mini_circular_cooldown/mini_circular_003.png \ +images/animations/mini_circular_cooldown/mini_circular_002.png \ +images/animations/mini_circular_cooldown/mini_circular_006.png \ +images/animations/mini_circular_cooldown/mini_circular_001.png \ +images/animations/mini_circular_cooldown/mini_circular_016.png \ +images/animations/mini_circular_cooldown/mini_circular_014.png \ +images/animations/mini_circular_cooldown/mini_circular_010.png \ +images/animations/room_touched/medium_room_touched_001.png \ +images/animations/room_touched/medium_room_touched_003.png \ +images/animations/room_touched/medium_room_touched_002.png \ +images/animations/cd_player/menu_media_icon_cd_01.png \ +images/animations/cd_player/cd_player_007.png \ +images/animations/cd_player/cd_player_003.png \ +images/animations/cd_player/menu_media_icon_cd_06.png \ +images/animations/cd_player/menu_media_icon_cd_07.png \ +images/animations/cd_player/menu_media_icon_cd_09.png \ +images/animations/cd_player/cd_player_006.png \ +images/animations/cd_player/mini_cd_player_001.png \ +images/animations/cd_player/menu_media_icon_cd_02.png \ +images/animations/cd_player/cd_player_008.png \ +images/animations/cd_player/menu_media_icon_cd_05.png \ +images/animations/cd_player/menu_media_icon_cd_04.png \ +images/animations/cd_player/cd_player_001.png \ +images/animations/cd_player/cd_player_002.png \ +images/animations/cd_player/cd_player_004.png \ +images/animations/cd_player/menu_media_icon_cd_03.png \ +images/animations/cd_player/cd_player_005.png \ +images/animations/cd_player/cd_player_009.png \ +images/animations/cd_player/menu_media_icon_cd_08.png \ +images/animations/scenario_icon/icon_scenario_035.png \ +images/animations/scenario_icon/icon_scenario_029.png \ +images/animations/scenario_icon/icon_scenario_011.png \ +images/animations/scenario_icon/icon_scenario_006.png \ +images/animations/scenario_icon/icon_scenario_027.png \ +images/animations/scenario_icon/icon_scenario_013.png \ +images/animations/scenario_icon/icon_scenario_009.png \ +images/animations/scenario_icon/icon_scenario_032.png \ +images/animations/scenario_icon/icon_scenario_038.png \ +images/animations/scenario_icon/icon_scenario_012.png \ +images/animations/scenario_icon/icon_scenario_019.png \ +images/animations/scenario_icon/icon_scenario_021.png \ +images/animations/scenario_icon/icon_scenario_015.png \ +images/animations/scenario_icon/icon_scenario_018.png \ +images/animations/scenario_icon/icon_scenario_025.png \ +images/animations/scenario_icon/icon_scenario_001.png \ +images/animations/scenario_icon/icon_scenario_024.png \ +images/animations/scenario_icon/icon_scenario_022.png \ +images/animations/scenario_icon/icon_scenario_008.png \ +images/animations/scenario_icon/icon_scenario_010.png \ +images/animations/scenario_icon/icon_scenario_004.png \ +images/animations/scenario_icon/icon_scenario_020.png \ +images/animations/scenario_icon/icon_scenario_036.png \ +images/animations/scenario_icon/icon_scenario_014.png \ +images/animations/scenario_icon/icon_scenario_028.png \ +images/animations/scenario_icon/icon_scenario_033.png \ +images/animations/scenario_icon/icon_scenario_023.png \ +images/animations/scenario_icon/icon_scenario_037.png \ +images/animations/scenario_icon/icon_scenario_040.png \ +images/animations/scenario_icon/icon_scenario_007.png \ +images/animations/scenario_icon/icon_scenario_002.png \ +images/animations/scenario_icon/icon_scenario_026.png \ +images/animations/scenario_icon/icon_scenario_030.png \ +images/animations/scenario_icon/icon_scenario_016.png \ +images/animations/scenario_icon/icon_scenario_039.png \ +images/animations/scenario_icon/icon_scenario_017.png \ +images/animations/scenario_icon/icon_scenario_034.png \ +images/animations/scenario_icon/icon_scenario_031.png \ +images/animations/scenario_icon/icon_scenario_005.png \ +images/animations/scenario_icon/icon_scenario_003.png \ +images/animations/bootsplash_logo_reflect/reflect_004.png \ +images/animations/bootsplash_logo_reflect/reflect_002.png \ +images/animations/bootsplash_logo_reflect/reflect_001.png \ +images/animations/bootsplash_logo_reflect/reflect_005.png \ +images/animations/bootsplash_logo_reflect/reflect_007.png \ +images/animations/bootsplash_logo_reflect/reflect_006.png \ +images/animations/bootsplash_logo_reflect/reflect_003.png \ +images/animations/bootsplash_notification_icone/loader_icon_0009.png \ +images/animations/bootsplash_notification_icone/loader_icon_0015.png \ +images/animations/bootsplash_notification_icone/loader_icon_0003.png \ +images/animations/bootsplash_notification_icone/loader_icon_0017.png \ +images/animations/bootsplash_notification_icone/loader_icon_0016.png \ +images/animations/bootsplash_notification_icone/loader_icon_0019.png \ +images/animations/bootsplash_notification_icone/loader_icon_0023.png \ +images/animations/bootsplash_notification_icone/loader_icon_0004.png \ +images/animations/bootsplash_notification_icone/loader_icon_0025.png \ +images/animations/bootsplash_notification_icone/loader_icon_0007.png \ +images/animations/bootsplash_notification_icone/loader_icon_0008.png \ +images/animations/bootsplash_notification_icone/loader_icon_0020.png \ +images/animations/bootsplash_notification_icone/loader_icon_0006.png \ +images/animations/bootsplash_notification_icone/loader_icon_0010.png \ +images/animations/bootsplash_notification_icone/loader_icon_0021.png \ +images/animations/bootsplash_notification_icone/loader_icon_0014.png \ +images/animations/bootsplash_notification_icone/loader_icon_0012.png \ +images/animations/bootsplash_notification_icone/loader_icon_0001.png \ +images/animations/bootsplash_notification_icone/loader_icon_0002.png \ +images/animations/bootsplash_notification_icone/loader_icon_bg.png \ +images/animations/bootsplash_notification_icone/loader_icon_0018.png \ +images/animations/bootsplash_notification_icone/loader_icon_0011.png \ +images/animations/bootsplash_notification_icone/loader_icon_0013.png \ +images/animations/bootsplash_notification_icone/loader_icon_0005.png \ +images/animations/bootsplash_notification_icone/loader_icon_0024.png \ +images/animations/bootsplash_notification_icone/loader_icon_0022.png \ +images/animations/micro_circular_cooldown/micro_circular_001.png \ +images/animations/micro_circular_cooldown/micro_circular_004.png \ +images/animations/micro_circular_cooldown/micro_circular_012.png \ +images/animations/micro_circular_cooldown/micro_circular_010.png \ +images/animations/micro_circular_cooldown/micro_circular_007.png \ +images/animations/micro_circular_cooldown/micro_circular_009.png \ +images/animations/micro_circular_cooldown/micro_circular_003.png \ +images/animations/micro_circular_cooldown/micro_circular_014.png \ +images/animations/micro_circular_cooldown/micro_circular_006.png \ +images/animations/micro_circular_cooldown/micro_circular_008.png \ +images/animations/micro_circular_cooldown/micro_circular_017.png \ +images/animations/micro_circular_cooldown/micro_circular_011.png \ +images/animations/micro_circular_cooldown/micro_circular_016.png \ +images/animations/micro_circular_cooldown/micro_circular_002.png \ +images/animations/micro_circular_cooldown/micro_circular_013.png \ +images/animations/micro_circular_cooldown/micro_circular_000.png \ +images/animations/micro_circular_cooldown/micro_circular_015.png \ +images/animations/micro_circular_cooldown/micro_circular_005.png \ +images/animations/volume_knob_leds/volume_led_32.png \ +images/animations/volume_knob_leds/volume_led_24.png \ +images/animations/volume_knob_leds/volume_led_25.png \ +images/animations/volume_knob_leds/volume_led_29.png \ +images/animations/volume_knob_leds/volume_led_43.png \ +images/animations/volume_knob_leds/volume_led_26.png \ +images/animations/volume_knob_leds/volume_led_27.png \ +images/animations/volume_knob_leds/volume_led_20.png \ +images/animations/volume_knob_leds/volume_led_31.png \ +images/animations/volume_knob_leds/volume_led_02.png \ +images/animations/volume_knob_leds/volume_led_35.png \ +images/animations/volume_knob_leds/volume_led_37.png \ +images/animations/volume_knob_leds/volume_led_41.png \ +images/animations/volume_knob_leds/volume_led_19.png \ +images/animations/volume_knob_leds/volume_led_28.png \ +images/animations/volume_knob_leds/volume_led_09.png \ +images/animations/volume_knob_leds/volume_led_17.png \ +images/animations/volume_knob_leds/volume_led_07.png \ +images/animations/volume_knob_leds/volume_led_01.png \ +images/animations/volume_knob_leds/volume_led_22.png \ +images/animations/volume_knob_leds/volume_led_30.png \ +images/animations/volume_knob_leds/volume_led_08.png \ +images/animations/volume_knob_leds/volume_led_06.png \ +images/animations/volume_knob_leds/volume_led_11.png \ +images/animations/volume_knob_leds/volume_led_14.png \ +images/animations/volume_knob_leds/volume_led_15.png \ +images/animations/volume_knob_leds/volume_led_10.png \ +images/animations/volume_knob_leds/volume_led_34.png \ +images/animations/volume_knob_leds/volume_led_42.png \ +images/animations/volume_knob_leds/volume_led_16.png \ +images/animations/volume_knob_leds/volume_led_39.png \ +images/animations/volume_knob_leds/volume_led_23.png \ +images/animations/volume_knob_leds/volume_led_03.png \ +images/animations/volume_knob_leds/volume_led_40.png \ +images/animations/volume_knob_leds/volume_led_45.png \ +images/animations/volume_knob_leds/volume_led_18.png \ +images/animations/volume_knob_leds/volume_led_21.png \ +images/animations/volume_knob_leds/volume_led_36.png \ +images/animations/volume_knob_leds/volume_led_33.png \ +images/animations/volume_knob_leds/volume_led_05.png \ +images/animations/volume_knob_leds/volume_led_38.png \ +images/animations/volume_knob_leds/volume_led_13.png \ +images/animations/volume_knob_leds/volume_led_04.png \ +images/animations/volume_knob_leds/volume_led_12.png \ +images/animations/volume_knob_leds/volume_led_44.png \ +images/animations/glowed_556_line/glowed_556_line_final.png \ +images/rooms/cellar/cellar_medium_bloom.png \ +images/rooms/cellar/cellar_small.png \ +images/rooms/cellar/cellar_medium.png \ +images/rooms/cellar/cellar_big.png \ +images/rooms/bathroom/bathroom_medium_bloom.png \ +images/rooms/bathroom/bathroom_small.png \ +images/rooms/bathroom/bathroom_medium.png \ +images/rooms/bathroom/bathroom_big.png \ +images/rooms/office/office_small.png \ +images/rooms/office/office_medium_bloom.png \ +images/rooms/office/office_medium.png \ +images/rooms/office/office_big.png \ +images/rooms/bedroom_small.png \ +images/rooms/lounge/lounge_medium.png \ +images/rooms/lounge/lounge_small.png \ +images/rooms/lounge/lounge_medium_bloom.png \ +images/rooms/lounge/lounge_big.png \ +images/rooms/bathroom_small.png \ +images/rooms/garage/garage_medium.png \ +images/rooms/garage/garage_big.png \ +images/rooms/garage/garage_medium_bloom.png \ +images/rooms/garage/garage_small.png \ +images/rooms/various/various_medium_bloom.png \ +images/rooms/various/various_big.png \ +images/rooms/various/various_medium.png \ +images/rooms/various/various_small.png \ +images/rooms/big_room_glow.png \ +images/rooms/diningroom_small.png \ +images/rooms/medium_room_neon.png \ +images/rooms/big_room_wire.png \ +images/rooms/diningroom/diningroom_small.png \ +images/rooms/diningroom/diningroom_big.png \ +images/rooms/diningroom/diningroom_medium.png \ +images/rooms/diningroom/diningroom_medium_bloom.png \ +images/rooms/small_room_shadow.png \ +images/rooms/medium_room_shadow.png \ +images/rooms/cellar_small.png \ +images/rooms/medium_room_glow.png \ +images/rooms/medium_room_touched.png \ +images/rooms/outside/outside_medium_bloom.png \ +images/rooms/outside/outside_big.png \ +images/rooms/outside/outside_small.png \ +images/rooms/outside/outside_medium.png \ +images/rooms/bedroom/bedroom_big.png \ +images/rooms/bedroom/bedroom_small.png \ +images/rooms/bedroom/bedroom_medium.png \ +images/rooms/bedroom/bedroom_medium_bloom.png \ +images/rooms/corridor/corridor_medium.png \ +images/rooms/corridor/corridor_big.png \ +images/rooms/corridor/corridor_medium_bloom.png \ +images/rooms/corridor/corridor_small.png \ +images/rooms/garage_small.png \ +images/rooms/corridor_small.png \ +images/rooms/kitchen/kitchen_medium_bloom.png \ +images/rooms/kitchen/kitchen_small.png \ +images/rooms/kitchen/kitchen_medium.png \ +images/rooms/kitchen/kitchen_big.png \ +images/rooms/big_room_shadow.png + +EDC = \ +calaos_theme.edc \ +elm/elm_genlist_item_internalstring.edc \ +elm/elm_ctxpopup.edc \ +elm/elm_genlist_item_internalbool.edc \ +elm/elm_calendar.edc \ +elm/elm_entry_keyboard.edc \ +elm/elm_list_base.edc \ +elm/elm_genlist_item_wovolet.edc \ +elm/elm_genlist_item_wovoletsmart.edc \ +elm/elm_genlist_item_woanalog.edc \ +elm/elm_button.edc \ +elm/elm_actionbutton.edc \ +elm/elm_list_homeboard.edc \ +elm/elm_genlist_item_wianalog.edc \ +elm/elm_genlist_item_simple.edc \ +elm/elm_genlist_item_scenario.edc \ +elm/elm_genlist_item_browser_album.edc \ +elm/elm_genlist_item_wodigital.edc \ +elm/elm_genlist_item_group_room.edc \ +elm/elm_genlist_item_wodalirvb.edc \ +elm/elm_genlist_item_internalint.edc \ +elm/elm_genlist_item_playlist.edc \ +elm/elm_pager.edc \ +elm/elm_genlist_item_wodali.edc \ +elm/elm_slider_knob.edc \ +elm/elm_list_home_room.edc \ +elm/elm_genlist_item_witemp.edc \ +elm/elm_genlist_item_scenario_schedule.edc \ +elm/elm_spinner.edc \ +structure/page_camera.edc \ +structure/room_prog_macro.edc \ +structure/page_config_panel.edc \ +structure/activity_header_footer.edc \ +structure/page_widgets.edc \ +structure/keyboard_macros.edc \ +structure/page_web.edc \ +structure/room_macro.edc \ +structure/main_layout.edc \ +structure/player_prog.edc \ +structure/styles.edc \ +structure/macro_menu_button.edc \ +structure/circular_spinner.edc \ +structure/page_scenarios.edc \ +structure/page_schedule.edc \ +structure/page_edit_scenario.edc \ +structure/main_menu.edc \ +structure/page_audio_list.edc \ +structure/popup_actions_pages.edc \ +structure/element_scenario_home.edc \ +structure/page_keyboard.edc \ +structure/player.edc \ +structure/slider_horizontal_macro.edc \ +structure/icons.edc \ +structure/utils.edc \ +structure/paging_view.edc \ +structure/slider_vertical_macro.edc \ +structure/rooms.edc \ +structure/page_home.edc \ +structure/activity_loading.edc \ +structure/scrolling_text.edc \ +structure/page_media.edc \ +structure/old_macros.edc \ +structure/slider.edc \ +structure/macro_round_button.edc \ +structure/amplifier_control.edc \ +structure/images.edc + +FONT = \ +fonts/calaos_logo.ttf \ +fonts/calaos_content.ttf \ +fonts/calaos_content-oblique.ttf \ +fonts/calaos_text_bold.ttf \ +fonts/Ubuntu-L.ttf \ +fonts/calaos_text.ttf \ +fonts/Ubuntu-M.ttf \ +fonts/calaos_content-bold.ttf \ +fonts/RepetitionScrolling.ttf \ +fonts/Ubuntu-B.ttf + +EXTRA_DIST = \ + $(IMG) \ + $(EDC) \ + $(FONT) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/themes/default/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/themes/default/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-defaultDATA: $(default_DATA) + @$(NORMAL_INSTALL) + test -z "$(defaultdir)" || $(MKDIR_P) "$(DESTDIR)$(defaultdir)" + @list='$(default_DATA)'; test -n "$(defaultdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defaultdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(defaultdir)" || exit $$?; \ + done + +uninstall-defaultDATA: + @$(NORMAL_UNINSTALL) + @list='$(default_DATA)'; test -n "$(defaultdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(defaultdir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(defaultdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-defaultDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-defaultDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-defaultDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am uninstall uninstall-am uninstall-defaultDATA + + +default.edj: Makefile $(EXTRA_DIST) + $(AM_V_GEN)$(EDJE_CC) $(EDJE_VERB) $(EDJE_FLAGS) \ + $(top_srcdir)/data/themes/default/calaos_theme.edc \ + $(top_builddir)/data/themes/default/default.edj + +clean-local: + rm -f *.edj + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/themes/default/calaos_theme.edc b/data/themes/default/calaos_theme.edc new file mode 100644 index 00000000..b79e2144 --- /dev/null +++ b/data/themes/default/calaos_theme.edc @@ -0,0 +1,156 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#include "structure/styles.edc" +#include "structure/images.edc" + +#include "structure/macro_menu_button.edc" +#include "structure/macro_round_button.edc" + +#include "structure/old_macros.edc" + +externals +{ + external: "elm"; +} + +fonts +{ + font: "calaos_logo.ttf" "CalaosLogo"; + font: "calaos_text_bold.ttf" "CalaosVersion"; + //font: "calaos_content.ttf" "CalaosContent"; + //font: "calaos_content-bold.ttf" "CalaosContentBold"; + font: "RepetitionScrolling.ttf" "RepetitionScrolling"; + + font: "Ubuntu-L.ttf" "CalaosContent"; + font: "Ubuntu-B.ttf" "CalaosContentBold"; +} + +collections +{ + group + { + name: "calaos/cursor"; + min: 32 32; + max: 32 32; + parts + { + part + { + name: "cursor"; + description + { + state: "default" 0.0; + image.normal: "cursor.png"; + } + } + } + } + + #include "structure/utils.edc" + + // calaos/icons/** + #include "structure/icons.edc" + + ELM_BUTTON("button.quit", "Quitter", "calaos/icons/button/quit") + ELM_BUTTON("button.back", "Retour au menu", "calaos/icons/button/back") + ELM_BUTTON("button.audio.back", "Retour", "calaos/icons/button/back") + ELM_BUTTON("button.audio.more", "Editer la playlist", "calaos/icons/button/more") + ELM_BUTTON("button.save_room", "Sauvegarder l'état de la pièce", "calaos/icons/button/keyboard") + ELM_BUTTON("button.valid", "Valider", "calaos/icons/button/valid") + ELM_BUTTON("button.cleartext", "Effacer la saisie en cours", "calaos/icons/button/delete") + ELM_BUTTON("button.go", "Aller à...", "calaos/icons/button/valid") + ELM_BUTTON("button.reload", "Recharger", "calaos/icons/button/reload") + ELM_BUTTON("button.stop", "Stop", "calaos/icons/button/stop") + ELM_BUTTON("button.home", "Page d'accueil", "calaos/icons/button/home") + ELM_BUTTON("button.keyboard", "Clavier", "calaos/icons/button/keyboard") + ELM_BUTTON("button.bookmark", "Ajouter aux favoris", "calaos/icons/button/more") + ELM_BUTTON("button.scenario.create", "Créer un nouveau scénario", "calaos/icons/button/more") + ELM_BUTTON_STYLE("button.labeled.lights_off", "Tout éteindre", "calaos/action_button/label") + ELM_BUTTON_STYLE("button.labeled.shutters_down", "Tout descendre", "calaos/action_button/label") + ELM_BUTTON_STYLE("button.position.info", "Plus d'infos", "calaos/button/position") + ELM_BUTTON_STYLE("button.labeled.today", "Auj.", "calaos/action_button/label") + + //calaos helpers + #include "structure/scrolling_text.edc" + + // calaos/main/layout + #include "structure/main_layout.edc" + + // calaos/main/menu + #include "structure/main_menu.edc" + + // calaos/page/widgets + #include "structure/page_widgets.edc" + + // calaos/page/home + #include "structure/page_home.edc" + + // calaos/page/media + #include "structure/page_media.edc" + #include "structure/page_camera.edc" + #include "structure/page_audio_list.edc" + #include "structure/amplifier_control.edc" + + // calaos/page/scenarios + #include "structure/page_scenarios.edc" + #include "structure/page_edit_scenario.edc" + #include "structure/page_schedule.edc" + #include "structure/popup_actions_pages.edc" + + // calaos/page/config + #include "structure/page_config_panel.edc" + + // calaos/page/keyboard + #include "structure/page_keyboard.edc" + + // calaos/page/web + #include "structure/page_web.edc" + + // calaos/room/** + #include "structure/rooms.edc" + + // calaos/element/scenario_home + #include "structure/element_scenario_home.edc" + + // include all sliders (horizontal and vertical) + #include "structure/slider.edc" + + #include "structure/circular_spinner.edc" + + /* Elementary styles */ + #include "elm/elm_list_base.edc" + #include "elm/elm_list_homeboard.edc" + #include "elm/elm_pager.edc" + #include "elm/elm_button.edc" + #include "elm/elm_actionbutton.edc" + #include "elm/elm_list_home_room.edc" + #include "elm/elm_ctxpopup.edc" + + /* Genlist calaos item */ + #include "elm/elm_genlist_item_wodigital.edc" + #include "elm/elm_genlist_item_scenario.edc" + #include "elm/elm_genlist_item_wodali.edc" + #include "elm/elm_genlist_item_wodalirvb.edc" + #include "elm/elm_genlist_item_internalbool.edc" + #include "elm/elm_genlist_item_internalint.edc" + #include "elm/elm_genlist_item_internalstring.edc" + #include "elm/elm_genlist_item_wianalog.edc" + #include "elm/elm_genlist_item_woanalog.edc" + #include "elm/elm_genlist_item_witemp.edc" + #include "elm/elm_genlist_item_wovolet.edc" + #include "elm/elm_genlist_item_wovoletsmart.edc" + #include "elm/elm_genlist_item_group_room.edc" + #include "elm/elm_genlist_item_simple.edc" + #include "elm/elm_genlist_item_playlist.edc" + #include "elm/elm_genlist_item_browser_album.edc" + #include "elm/elm_genlist_item_scenario_schedule.edc" + #include "elm/elm_slider_knob.edc" + #include "elm/elm_entry_keyboard.edc" + #include "elm/elm_calendar.edc" + #include "elm/elm_spinner.edc" + + #include "structure/paging_view.edc" +} diff --git a/data/themes/default/elm/elm_actionbutton.edc b/data/themes/default/elm/elm_actionbutton.edc new file mode 100644 index 00000000..ac84f648 --- /dev/null +++ b/data/themes/default/elm/elm_actionbutton.edc @@ -0,0 +1,742 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/button/base/calaos/action_button/default"; + alias: "elm/button/base/calaos/action_button/blue"; + + parts + { + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_glow.png"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/yellow"; + + parts + { + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_on_glow.png"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/red"; + + parts + { + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_warming_up_glow.png"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/green"; + + parts + { + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_scenario_play_glow.png"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/pink"; + + parts + { + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_impulse_glow.png"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/label"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image.normal: "button_action_labeled_small.png"; + image.border: 7 7 5 5; + } + } + + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image.normal: "button_action_labeled_glow.png"; + image.border: 7 7 5 5; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "elm.text"; + type: TEXT; + description + { + state: "default" 0.0; + color: 231 231 231 180; + text { text: "Button"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.5 0.5; } + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/label/back"; + inherit: "elm/button/base/calaos/action_button/label"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image.normal: "button_action_popup_back.png"; + image.border: 35 35 5 5; + } + } + + part + { + name: "elm.text"; + type: TEXT; + description + { + state: "default" 0.0; + color: 231 231 231 180; + rel1.offset: 9 0; + text { text: "Button"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.5 0.5; } + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image.normal: "button_action_popup_back_glow.png"; + image.border: 35 35 5 5; + visible: 0; + color: 255 255 255 0; + rel1.offset: -3 -3; + rel2.offset: 2 2; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + } +} + +group +{ + name: "elm/button/base/calaos/action_button/small"; + inherit: "elm/button/base/calaos/action_button/default"; + + parts + { + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_glow_small.png"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + } +} diff --git a/data/themes/default/elm/elm_button.edc b/data/themes/default/elm/elm_button.edc new file mode 100644 index 00000000..2429d4b3 --- /dev/null +++ b/data/themes/default/elm/elm_button.edc @@ -0,0 +1,776 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/button/base/calaos/activity/footer"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_action_pattern.png"; } + fill { smooth: 1; size { relative: 0.0 1.0; offset: 4 0;} } + } + } + + part + { + name: "border"; + description + { + state: "default" 0.0; + image { normal: "button_action_border.png"; border: 5 5 16 16; } + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_neon.png"; border: 5 5 16 16; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description + { + state: "default" 0.0; + visible: 0; + rel1.to_x: "elm.swallow.content"; + rel1 { relative: 1.0 0.0; offset: 0 4; } + rel2.offset: -5 -5; + color: 231 231 231 255; + text { font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + text.min: 1 1; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + } + } + + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 0; + visible: 0; + align: 0.0 0.5; + rel1.offset: 4 4; + rel2.offset: 3 -5; + rel2.relative: 0.0 1.0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + fixed: 1 0; + visible: 1; + aspect: 1.0 1.0; + // aspect_preference: VERTICAL; + rel2.offset: 4 -5; + } + description + { + state: "icononly" 0.0; + inherit: "default" 0.0; + fixed: 0 0; + visible: 1; + align: 0.5 0.5; + // aspect: 1.0 1.0; + rel2.offset: -5 -5; + rel2.relative: 1.0 1.0; + // aspect_preference: VERTICAL; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + target: "elm.text"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + after: "button_unclick_anim2"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + after: "button_unclick_anim2"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + } + program + { + name: "button_unclick_anim2"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.5; + target: "elm.text"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + + program + { + name: "text_show"; + signal: "elm,state,text,visible"; + source: "elm"; + script + { + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "icononly")) + set_state(PART:"elm.swallow.content", "visible", 0.0); + set_state(PART:"elm.text", "visible", 0.0); + } + } + program + { + name: "text_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + script + { + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.swallow.content", "icononly", 0.0); + set_state(PART:"elm.text", "default", 0.0); + } + } + + program + { + name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + script + { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.swallow.content", "visible", 0.0); + else + set_state(PART:"elm.swallow.content", "icononly", 0.0); + } + } + program + { + name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_element.png"; border: 11 11 14 14; } + } + } + + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_element_glow.png"; border: 11 11 14 14; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "elm.text"; + type: TEXT; + description + { + state: "default" 0.0; + color: 231 231 231 127; + text { text: "Button"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.58; } + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + color: 231 231 231 255; + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + } + + programs + { + program + { + name: "button_click"; + signal: "mouse,down,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "button_click_anim"; + } + program + { + name: "button_click_anim"; + action: STATE_SET "touched" 0.0; + transition: ACCELERATE 0.00001; + target: "glow"; + target: "elm.text"; + } + program + { + name: "button_unclick"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "button_unclick_anim"; + } + program + { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + after: "button_click_anim"; + after: "button_unpressed_anim"; + } + program + { + name: "button_unpressed_anim"; + in: 0.6 0.0; + after: "button_unclick_anim"; + } + program + { + name: "button_unclick_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "glow"; + target: "elm.text"; + } + program + { + name: "button_unclick3"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/left"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_left.png"; /*border: 6 34 4 33;*/ } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_left_glow.png"; /*border: 6 34 4 33;*/ } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/right"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_right.png"; /*border: 6 34 4 33;*/ } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_right_glow.png"; /*border: 6 34 4 33;*/ } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/up"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_up.png"; /*border: 6 34 4 33;*/ } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_up_glow.png"; /*border: 6 34 4 33;*/ } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/down"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_down.png"; /*border: 6 34 4 33;*/ } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_down_glow.png"; /*border: 6 34 4 33;*/ } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/zoom_in"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_zoomin.png"; border: 6 34 4 33; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_zoomin_glow.png"; border: 6 34 4 33; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/zoom_out"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_zoomout.png"; border: 6 34 4 33; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_zoomout_glow.png"; border: 6 34 4 33; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/center"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_rot_centre.png"; border: 6 34 4 33; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_rot_centre_glow.png"; border: 6 34 4 33; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/info"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_info.png"; border: 6 6 6 6; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_info_glow.png"; border: 6 6 6 6; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; visible: 0; } + description { state: "touched" 0.0; visible: 0; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/rolldown"; + inherit: "elm/button/base/calaos/button/position/info"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_action_rolll_down.png"; border: 6 6 6 6; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_glow.png"; border: 6 6 6 6; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + } +} + + +group +{ + name: "elm/button/base/calaos/button/position/browser"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_action_editor.png"; border: 6 6 6 6; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_editor_glow.png"; border: 6 6 6 6; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + } +} + +group +{ + name: "elm/button/base/calaos/button/position/browser_icon"; + inherit: "elm/button/base/calaos/button/position"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + image { normal: "button_action_editor.png"; border: 6 6 6 6; } + } + } + part + { + name: "elm.swallow.content"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 12 -9; } + rel2 { relative: 0.0 0.5; offset: 31 10; } + } + } + part + { + name: "glow"; + description + { + state: "default" 0.0; + image { normal: "button_action_editor_glow.png"; border: 6 6 6 6; } + } + description { state: "touched" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } + } + part + { + name: "elm.text"; + description { state: "default" 0.0; rel1.to_x: "elm.swallow.content"; } + description { state: "touched" 0.0; rel1.to_x: "elm.swallow.content"; } + } + } +} diff --git a/data/themes/default/elm/elm_calendar.edc b/data/themes/default/elm/elm_calendar.edc new file mode 100644 index 00000000..2fc40c8b --- /dev/null +++ b/data/themes/default/elm/elm_calendar.edc @@ -0,0 +1,454 @@ +//Calaos Home Theme +//Copyright 2012 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/calendar/base/calaos"; + + parts + { + part + { + name: "event"; + type: RECT; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + part + { + name: "header"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "calendar_header.png"; + image.border: 35 35 19 2; + rel1 { relative: 0.0 0.0; offset: 0 12; } + rel2 { relative: 1.0 0.0; offset: -1 49; } + fixed: 0 1; + } + } + + part + { + name: "ring1"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "calendar_ring.png"; + rel1.to: "header"; + rel2.to: "header"; + rel1 { relative: 0.0 0.0; offset: 24 -12; } + rel2 { relative: 0.0 0.0; offset: 31 15; } + fixed: 1 1; + } + } + + part + { + name: "ring2"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "calendar_ring.png"; + rel1.to: "header"; + rel2.to: "header"; + rel1 { relative: 1.0 0.0; offset: -32 -12; } + rel2 { relative: 1.0 0.0; offset: -25 15; } + fixed: 1 1; + } + } + + part + { + name: "month_text"; + type: TEXT; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1.to: "header"; + rel2.to: "header"; + color: 156 156 156 255; + text { font: "CalaosContent"; size: 14; min: 1 1; align: 0.5 0.5; } + } + } + + part + { + name: "button.next"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: -40-33 -14; to: "header"; } + rel2 { relative: 1.0 0.5; offset: -40 13; to: "header"; } + params + { +// string: "style" "calaos/action_button/default"; +// string: "icon" "calaos/icons/action_button/right_arrow"; + string: "style" "calaos/button/position/right"; + } + } + } + + part + { + name: "button.previous"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 40 -14; to: "header"; } + rel2 { relative: 0.0 0.5; offset: 40+33 13; to: "header"; } + params + { +// string: "style" "calaos/action_button/default"; +// string: "icon" "calaos/icons/action_button/left_arrow"; + string: "style" "calaos/button/position/left"; + } + } + } + + part + { + name: "bg_days"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 36 36 36 255; + rel1.to: "header"; + rel2.to: "header"; + rel1 { relative: 0.0 1.0; offset: 0 0; } + rel2 { relative: 1.0 1.0; offset: -1 20; } + fixed: 0 1; + } + } + + part + { + name: "back"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "calendar_back.png"; + image.border: 6 6 1 6; + rel1.to: "bg_days"; + rel1 { relative: 0.0 1.0; } + } + } + + //Some lines to separate days + + #define VSEP(_pos, _vis) \ + part \ + { \ + name: "vline_"#_pos; \ + type: RECT; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + color: 211 211 211 255; \ + rel1.to: "back"; \ + rel2.to: "back"; \ + visible: _vis; \ + rel1 { relative: (1 / 7 * _pos) 0.0; offset: 0 0; } \ + rel2 { relative: (1 / 7 * _pos) 1.0; offset: 0 -1; } \ + fixed: 1 0; \ + } \ + } + + VSEP(0, 0) VSEP(1, 1) VSEP(2, 1) VSEP(3, 1) VSEP(4, 1) VSEP(5, 1) VSEP(6, 1) VSEP(7, 0) + + #define HSEP(_pos, _vis) \ + part \ + { \ + name: "hline_"#_pos; \ + type: RECT; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + color: 211 211 211 255; \ + rel1.to: "back"; \ + rel2.to: "back"; \ + visible: _vis; \ + rel1 { relative: 0.0 (1 / 6 * _pos); offset: 0 0; } \ + rel2 { relative: 1.0 (1 / 6 * _pos); offset: -1 0; } \ + fixed: 0 1; \ + } \ + } + + HSEP(0, 0) HSEP(1, 1) HSEP(2, 1) HSEP(3, 1) HSEP(4, 1) HSEP(5, 1) HSEP(6, 0) + + #define CH(_pos, _pos2) \ + part \ + { \ + name: "ch_"#_pos".base"; \ + type: RECT; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + rel1.to_y: "bg_days"; \ + rel2.to_y: "bg_days"; \ + rel1.to_x: "vline_"#_pos; \ + rel2.to_x: "vline_"#_pos2; \ + rel1.relative: 1.0 0.0; \ + rel2.relative: 0.0 1.0; \ + } \ + } \ + part \ + { \ + name: "ch_"#_pos".clipper"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "ch_"#_pos".base"; \ + rel2.to: "ch_"#_pos".base"; \ + } \ + } \ + part \ + { \ + name: "ch_"#_pos".text"; \ + type: TEXT; \ + mouse_events: 0; \ + clip_to: "ch_"#_pos".clipper"; \ + description \ + { \ + state: "default" 0.0; \ + color: 12 222 10 160; \ + rel1.to: "ch_"#_pos".base"; \ + rel2.to: "ch_"#_pos".base"; \ + color: 231 231 231 255; \ + text { font: "CalaosContent"; size: 10; min: 1 1; align: 0.5 0.5; }; \ + } \ + } + + CH(0, 1) CH(1, 2) CH(2, 3) CH(3, 4) CH(4, 5) CH(5, 6) CH(6, 7) + + #define CIT(_num, _xpos, _xpos2, _ypos, _ypos2) \ + part \ + { \ + name: "cit_"#_num".base"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to_y: "hline_"#_ypos; \ + rel2.to_y: "hline_"#_ypos2; \ + rel1.to_x: "vline_"#_xpos; \ + rel2.to_x: "vline_"#_xpos2; \ + rel1.relative: 1.0 1.0; \ + rel2.relative: 0.0 0.0; \ + color: 0 0 0 0; \ + } \ + description \ + { \ + state: "today" 0.0; \ + inherit: "default" 0.0; \ + color: 207 237 246 145; \ + } \ + } \ + part \ + { \ + name: "cit_"#_num".clipper"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "cit_"#_num".base"; \ + rel2.to: "cit_"#_num".base"; \ + } \ + } \ + part \ + { \ + name: "cit_"#_num".check"; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "cit_"#_num".base"; \ + rel2.to: "cit_"#_num".base"; \ + color: 255 255 255 0; \ + image.normal: "calendar_holiday.png"; \ + rel1 { relative: 1.0 0.0; offset: -15 0; } \ + rel2 { relative: 1.0 0.0; offset: -1 14; } \ + visible: 0; \ + } \ + description \ + { \ + state: "checked" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 255; \ + visible: 1; \ + } \ + } \ + part \ + { \ + name: "cit_"#_num".select"; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "cit_"#_num".base"; \ + rel2.to: "cit_"#_num".base"; \ + color: 255 255 255 0; \ + image.normal: "calendar_select.png"; \ + rel1 { relative: 0.5 0.5; offset: -23 -21; } \ + rel2 { relative: 0.5 0.5; offset: 23 20; } \ + visible: 0; \ + } \ + description \ + { \ + state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 255; \ + visible: 1; \ + } \ + } \ + part \ + { \ + name: "cit_"#_num".text"; \ + type: TEXT; \ + mouse_events: 0; \ + clip_to: "cit_"#_num".clipper"; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "cit_"#_num".base"; \ + rel2.to: "cit_"#_num".base"; \ + color: 80 80 80 255; \ + text { font: "CalaosContent"; size: 12; min: 1 1; align: 0.5 0.5; }; \ + } \ + description \ + { \ + state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: 224 224 224 255; \ + } \ + } \ + programs \ + { \ + program \ + { \ + name: "cit_"#_num".go_active"; \ + signal: "cit_"#_num",selected"; \ + source: "elm"; \ + action: STATE_SET "selected" 0.0; \ + transition: ACCELERATE 0.1; \ + target: "cit_"#_num".select"; \ + target: "cit_"#_num".text"; \ + } \ + program \ + { \ + name: "cit_"#_num".go_passive"; \ + signal: "cit_"#_num",unselected"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 0.2; \ + target: "cit_"#_num".select"; \ + target: "cit_"#_num".text"; \ + } \ + program \ + { \ + name: "cit_"#_num".is_today"; \ + signal: "cit_"#_num",today"; \ + source: "elm"; \ + action: STATE_SET "today" 0.0; \ + transition: ACCELERATE 0.1; \ + target: "cit_"#_num".base"; \ + } \ + program \ + { \ + name: "cit_"#_num".not_today"; \ + signal: "cit_"#_num",not_today"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + transition: ACCELERATE 0.1; \ + target: "cit_"#_num".base"; \ + } \ + program \ + { \ + name: "cit_"#_num".clicked"; \ + signal: "mouse,clicked,1"; \ + source: "cit_"#_num".base"; \ + action: SIGNAL_EMIT "elm,action,selected" #_num; \ + } \ + program \ + { \ + name: "cit_"#_num".clear"; \ + signal: "cit_"#_num",clear"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + transition: ACCELERATE 0.1; \ + target: "cit_"#_num".check"; \ + } \ + program \ + { \ + name: "cit_"#_num".checked"; \ + signal: "cit_"#_num",checked"; \ + source: "elm"; \ + action: STATE_SET "checked" 0.0; \ + transition: ACCELERATE 0.1; \ + target: "cit_"#_num".check"; \ + } \ + } + + CIT(0, 0, 1, 0, 1) CIT(1, 1, 2, 0, 1) CIT(2, 2, 3, 0, 1) CIT(3, 3, 4, 0, 1) CIT(4, 4, 5, 0, 1) CIT(5, 5, 6, 0, 1) CIT(6, 6, 7, 0, 1) + CIT(7, 0, 1, 1, 2) CIT(8, 1, 2, 1, 2) CIT(9, 2, 3, 1, 2) CIT(10, 3, 4, 1, 2) CIT(11, 4, 5, 1, 2) CIT(12, 5, 6, 1, 2) CIT(13, 6, 7, 1, 2) + CIT(14, 0, 1, 2, 3) CIT(15, 1, 2, 2, 3) CIT(16, 2, 3, 2, 3) CIT(17, 3, 4, 2, 3) CIT(18, 4, 5, 2, 3) CIT(19, 5, 6, 2, 3) CIT(20, 6, 7, 2, 3) + CIT(21, 0, 1, 3, 4) CIT(22, 1, 2, 3, 4) CIT(23, 2, 3, 3, 4) CIT(24, 3, 4, 3, 4) CIT(25, 4, 5, 3, 4) CIT(26, 5, 6, 3, 4) CIT(27, 6, 7, 3, 4) + CIT(28, 0, 1, 4, 5) CIT(29, 1, 2, 4, 5) CIT(30, 2, 3, 4, 5) CIT(31, 3, 4, 4, 5) CIT(32, 4, 5, 4, 5) CIT(33, 5, 6, 4, 5) CIT(34, 6, 7, 4, 5) + CIT(35, 0, 1, 5, 6) CIT(36, 1, 2, 5, 6) CIT(37, 2, 3, 5, 6) CIT(38, 3, 4, 5, 6) CIT(39, 4, 5, 5, 6) CIT(40, 5, 6, 5, 6) CIT(41, 6, 7, 5, 6) + + } + + programs + { + program + { + name: "previous_press"; + signal: "pressed"; + source: "button.previous"; + action: SIGNAL_EMIT "elm,action,decrement,start" ""; + } + program + { + name: "previous_unpress"; + signal: "unpressed"; + source: "button.previous"; + action: SIGNAL_EMIT "elm,action,stop" ""; + } + program + { + name: "next_press"; + signal: "pressed"; + source: "button.next"; + action: SIGNAL_EMIT "elm,action,increment,start" ""; + } + program + { + name: "next_unpress"; + signal: "unpressed"; + source: "button.next"; + action: SIGNAL_EMIT "elm,action,stop" ""; + } + } +} \ No newline at end of file diff --git a/data/themes/default/elm/elm_ctxpopup.edc b/data/themes/default/elm/elm_ctxpopup.edc new file mode 100644 index 00000000..94199025 --- /dev/null +++ b/data/themes/default/elm/elm_ctxpopup.edc @@ -0,0 +1,428 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/ctxpopup/base/calaos"; + + parts + { + part + { + name: "arrow_area_left"; + type: RECT; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: -18 0; to: "content_clip"; } + rel2 { relative: 0.0 1.0; offset: 0 -1; to: "content_clip"; } + } + } + + part + { + name: "arrow_area_right"; + type: RECT; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 1.0 0.0; offset: -1 0; to: "content_clip"; } + rel2 { relative: 1.0 1.0; offset: 17 -1; to: "content_clip"; } + } + } + + part + { + name: "arrow_area_up"; + type: RECT; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 0 -18; to: "content_clip"; } + rel2 { relative: 1.0 0.0; offset: -1 0; to: "content_clip"; } + } + } + + part + { + name: "arrow_area_down"; + type: RECT; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 1.0; offset: 0 -1; to: "content_clip"; } + rel2 { relative: 1.0 1.0; offset: -1 17; to: "content_clip"; } + } + } + + part + { + name: "elm.swallow.arrow_up"; + type: SWALLOW; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + dragable + { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_up"; + } + description + { + state: "default" 0.0; + min: 30 17; + fixed: 1 1; + visible: 1; + } + } + + part + { + name: "elm.swallow.arrow_down"; + type: SWALLOW; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + dragable + { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_down"; + } + description + { + state: "default" 0.0; + min: 30 17; + fixed: 1 1; + visible: 1; + } + } + + part + { + name: "elm.swallow.arrow_left"; + type: SWALLOW; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + dragable + { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_left"; + } + description + { + state: "default" 0.0; + min: 17 30; + fixed: 1 1; + visible: 1; + } + } + + part + { + name: "elm.swallow.arrow_right"; + type: SWALLOW; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + dragable + { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_right"; + } + description + { + state: "default" 0.0; + min: 17 30; + fixed: 1 1; + visible: 1; + } + } + + part + { + name: "ctxpopup_clip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + color: 255 255 255 255; + } + } + + part + { + name: "content_clip"; + type: RECT; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description + { + state: "default" 0.0; + rel1 { to:"base"; offset: 5 6; } + rel2 { to:"base"; offset: -6 -7; } + } + } + + part + { + name: "bg"; + clip_to: "ctxpopup_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "popup_carbon.png"; + fill { smooth: 1; size { relative: 0.0 0.0; offset: 8 8;} } + rel1.to: "content_clip"; + rel2.to: "content_clip"; + } + } + + part + { + name: "elm.swallow.content"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "content_clip"; + rel2.to: "content_clip"; + } + } + + part + { + name: "base"; + clip_to: "ctxpopup_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "popup_bg.png"; + image.border: 10 10 10 50; + rel1.offset: 12 12; + rel2.offset: -13 -13; + } + } + } + + programs + { + program + { + name: "show"; + signal: "elm,state,show"; + source: "elm"; + action: STATE_SET "visible" 0.0; +// transition: DECELERATE 0.85; + target: "ctxpopup_clip"; + } + program + { + name: "up"; + signal: "elm,state,show,up"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "ctxpopup_clip"; + } + program + { + name: "left"; + signal: "elm,state,show,left"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "ctxpopup_clip"; + } + program + { + name: "right"; + signal: "elm,state,show,right"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "ctxpopup_clip"; + } + program + { + name: "down"; + signal: "elm,state,show,down"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "ctxpopup_clip"; + } + + program + { + name: "hide"; + signal: "elm,state,hide*"; + source: "elm"; + action: STATE_SET "default" 0.0; +// transition: ACCELERATE 0.1; + target: "ctxpopup_clip"; + after: "hide_finished"; + } + + program + { + name: "hide_finished"; + action: SIGNAL_EMIT "elm,action,hide,finished" ""; + } + } +} + +group +{ + name: "elm/ctxpopup/bg/calaos"; + parts + { + part + { + name: "ctxpopup_bg"; + type: RECT; + mouse_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + color: 0 0 0 100; + } + } + } + + programs + { + program + { + name: "clicked_event"; + signal: "mouse,clicked,1"; + source: "ctxpopup_bg"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + program + { + name: "show"; + signal: "elm,state,show"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "ctxpopup_bg"; + transition: DECELERATE 0.85; + } + program + { + name: "hide"; + signal: "elm,state,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "ctxpopup_bg"; + } + } +} + +group +{ + name: "elm/ctxpopup/arrow/calaos"; + + parts + { + part + { + name: "ctxpopup_arrow"; + description + { + state: "default" 0.0; + min: 12 12; + image { normal: "popup_arrow_left.png"; } + } + description + { + state: "left" 0.0; + min: 10 12; + color: 255 255 255 200; + image { normal: "popup_arrow_left.png"; } + } + description + { + state: "right" 0.0; + min: 10 12; + color: 255 255 255 200; + image { normal: "popup_arrow_right.png"; } + } + description + { + state: "top" 0.0; + min: 12 10; + color: 255 255 255 200; + image { normal: "popup_arrow_up.png"; } + } + description + { + state: "bottom" 0.0; + min: 12 10; + color: 255 255 255 200; + image { normal: "popup_arrow_down.png"; } + } + } + } + + programs + { + program + { + name: "enable_left_arrow"; + signal: "elm,state,left"; + source: "elm"; + action: STATE_SET "left" 0.0; + target: "ctxpopup_arrow"; + } + program + { + name: "enable_right_arrow"; + signal: "elm,state,right"; + source: "elm"; + action: STATE_SET "right" 0.0; + target: "ctxpopup_arrow"; + } + program + { + name: "enable_top_arrow"; + signal: "elm,state,top"; + source: "elm"; + action: STATE_SET "top" 0.0; + target: "ctxpopup_arrow"; + } + program + { + name: "enable_bottom_arrow"; + signal: "elm,state,bottom"; + source: "elm"; + action: STATE_SET "bottom" 0.0; + target: "ctxpopup_arrow"; + } + } +} diff --git a/data/themes/default/elm/elm_entry_keyboard.edc b/data/themes/default/elm/elm_entry_keyboard.edc new file mode 100644 index 00000000..d6493b0a --- /dev/null +++ b/data/themes/default/elm/elm_entry_keyboard.edc @@ -0,0 +1,278 @@ +//Calaos Home Theme +//Copyright 2012 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/entry/base/calaos"; + + parts + { + part + { + name: "elm.guide"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + description + { + state: "default" 0.0; + rel1.to: "elm.text"; + rel2.to: "elm.text"; + text + { + style: "KeyboardStyle"; + min: 0 1; + align: 0.0 0.0; + } + } + description + { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part + { + name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 1; + scale: 1; + entry_mode: EDITABLE; + select_mode: EXPLICIT; + multiline: 0; + source: "calaos/keyboard/selection_under"; // selection under + // source2: "calaos/keyboard/selection_over"; // selection over + // source3: "X"; // cursor under + source4: "calaos/keyboard/cursor_over"; // cursorover + source5: "calaos/keyboard/anchor_under"; // anchor under + // source6: "X"; // anchor over + + description + { + state: "default" 0.0; + /* we gotta use 0 0 here, because of scrolled entries */ + fixed: 0 0; + text + { + style: "KeyboardStyle"; + min: 0 1; + align: 0.0 0.0; + } + } + description + { + state: "disabled" 0.0; + inherit: "default" 0.0; + } + } + } + + programs + { + program + { + name: "focus"; + signal: "load"; + source: ""; + action: FOCUS_SET; + target: "elm.text"; + } + program + { + name: "onfocus"; + signal: "elm,action,focus"; + source: "elm"; + action: FOCUS_SET; + target: "elm.text"; + } + program + { + name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "elm.text"; + } + program + { + name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program + { + name: "gdisable"; + signal: "elm,guide,disabled"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "elm.guide"; + } + program + { + name: "genable"; + signal: "elm,guide,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.guide"; + } + } +} + +group +{ + name: "elm/entry/base/calaos/multiline"; + inherit: "elm/entry/base/calaos"; + + parts + { + part + { + name: "elm.text"; + multiline: 1; + } + } +} + +group +{ + name: "calaos/keyboard/selection_under"; + parts + { + part + { + name: "bg"; + type: RECT; + description + { + state: "default" 0.0; + color: 58 181 215 127; + } + description + { + state: "default" 1.0; + color: 58 181 215 187; + } + } + } + programs + { + program + { + name: "init"; + signal: "show"; + source: ""; + after: "loop1"; + } + program + { + name: "loop1"; + action: STATE_SET "default" 1.0; + transition: LINEAR 0.6; + target: "bg"; + after: "loop2"; + } + program + { + name: "loop2"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.6; + target: "bg"; + after: "loop1"; + } + } +} + +group +{ + name: "calaos/keyboard/cursor_over"; + + images + { + image: "keyboard_cursor.png" COMP; + } + parts + { + part + { + name: "clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 255 255 255 255; + rel1 { relative: 0.0 0.5; offset: -4 -19; } + rel2 { relative: 0.0 0.5; offset: 5 21; } + } + description + { + state: "default" 1.0; + inherit: "default" 0.0; + color: 180 180 180 120; + } + } + part + { + name: "img"; + clip_to: "clip"; + description + { + state: "default" 0.0; + image.normal: "keyboard_cursor.png"; + rel1 { relative: 0.0 0.5; offset: -4 -19; } + rel2 { relative: 0.0 0.5; offset: 5 21; } + } + } + } + programs + { + program + { + name: "init"; + signal: "show"; + source: ""; + after: "loop1"; + } + program + { + name: "loop1"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.3; + target: "clip"; + after: "loop2"; + } + program + { + name: "loop2"; + in: 0.8 0.0; + action: STATE_SET "default" 1.0; + transition: ACCELERATE 0.3; + target: "clip"; + after: "loop1"; + } + } +} + +group +{ + name: "calaos/keyboard/anchor_under"; + parts + { + part + { + name: "bg"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 140 199 215 63; + } + } + } +} diff --git a/data/themes/default/elm/elm_genlist_item_browser_album.edc b/data/themes/default/elm/elm_genlist_item_browser_album.edc new file mode 100644 index 00000000..01f9f401 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_browser_album.edc @@ -0,0 +1,926 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/browser/playlist_header/default"; + + data.item: "texts" "text text.count"; + data.item: "contents" "calaos.button.del calaos.button.play calaos.button.add"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 80; + fixed: 0 0; + image { normal: "button_element_open.png"; border: 11 11 41 14; } + } + } + + part + { + name: "text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 10 12; } + rel2 { relative: 1.0 0.0; offset: -5 36 ; } + text { align: 0.0 0.5; style: "TabWidgetTitle"; text: "Titre de l'item Sous titre"; } + } + } + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 1.0; offset: -33-6 -38; } + rel2 { relative: 1.0 1.0; offset: -6 -11; } + } + } + + part + { + name: "calaos.button.add"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 1.0; offset: -33-3-33-6 -38; } + rel2 { relative: 1.0 1.0; offset: -6-33-3 -11; } + } + } + + /* + * This needs more testing. + * After playlist is deleted, we need to wait squeezcenter to notify us for the real deletion + * and be able to return to previous view and delete the playlist item in genlist. + part + { + name: "calaos.button.del"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 1.0; offset: -6-33-3-33-3-108 -38; } + rel2 { relative: 1.0 1.0; offset: -6-33-3-33-3 -11; } + } + } + */ + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT("player_count") + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,active,blue" "calaos"; + } + } +} + +group +{ + name: "elm/genlist/item/browser/default/noselect/default"; + alias: "elm/genlist/item_compress/browser/default/noselect/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.play calaos.button.add icon"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to: "icon"; + rel2.to: "calaos.button.add"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3 7; } + rel2 { relative: 1.0 0.0; offset: -3 34; } + } + } + + part + { + name: "calaos.button.add"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3-3-33 7; } + rel2 { relative: 1.0 0.0; offset: -33-3-3 34; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + } +} + +group +{ + name: "elm/genlist/item/browser/default/default"; + name: "elm/genlist/item_compress/browser/default/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.play calaos.button.add icon"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_select"; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + image { normal: "button_element_bevel.png"; border: 11 11 14 14; } + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to: "icon"; + rel2.to: "calaos.button.add"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3 7; } + rel2 { relative: 1.0 0.0; offset: -3 34; } + } + } + + part + { + name: "calaos.button.add"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3-3-33 7; } + rel2 { relative: 1.0 0.0; offset: -33-3-3 34; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + transition: ACCELERATE 0.00001; + target: "item_select"; + } + program + { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "item_select"; + } + } +} + +group +{ + name: "elm/genlist/item/browser/track/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.play calaos.button.add calaos.button.more"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "icon"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + image.normal: "icon_note_on.png"; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to: "icon"; + rel2.to: "calaos.button.more"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3 7; } + rel2 { relative: 1.0 0.0; offset: -3 34; } + } + } + + part + { + name: "calaos.button.add"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3-3-33 7; } + rel2 { relative: 1.0 0.0; offset: -33-3-3 34; } + } + } + + part + { + name: "calaos.button.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3-3-33-3-29 9; } + rel2 { relative: 1.0 0.0; offset: -33-3-3-3-33 32; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + } +} + +group +{ + name: "elm/genlist/item/browser/album_header/default"; + + data.item: "texts" "text text.artist text.album text.year text.count"; + data.item: "contents" "calaos.cover calaos.button.play calaos.button.add"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 166; + fixed: 0 0; + image { normal: "button_element_open.png"; border: 11 11 41 14; } + } + } + + part + { + name: "text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 10 12; } + rel2 { relative: 1.0 0.0; offset: -5 36 ; } + text { align: 0.0 0.5; style: "TabWidgetTitle"; text: "Titre de l'item Sous titre"; } + } + } + + #define LABEL_ALBUM_INFO(id, title, y1) \ + part \ + { \ + name: "label."id; \ + type: TEXT; \ + description \ + { \ + state: "default" 0.0; \ + color: 231 231 231 140; \ + rel1 { relative: 0.0 0.0; offset: 133-22 y1; } \ + rel2 { relative: 0.0 0.0; offset: 196-22 y1+12; } \ + text { text: title; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5; } \ + } \ + } \ + alias: "text."id "player_"id":text"; \ + part \ + { \ + name: "player_"id; \ + type: GROUP; \ + source: "calaos/text/scrolling/left"; \ + description \ + { \ + state: "default" 0.0; \ + color: 231 231 231 140; \ + rel1 { relative: 0.0 0.0; offset: 202-22 y1; } \ + rel2 { relative: 1.0 0.0; offset: -10 y1+12; } \ + } \ + } + + LABEL_ALBUM_INFO("artist", "Artiste :", 50) + LABEL_ALBUM_INFO("album", "Album :", 70) + LABEL_ALBUM_INFO("count", "Pistes :", 90) + LABEL_ALBUM_INFO("year", "Année :", 110) + //LABEL_ALBUM_INFO("duration", "Durée :", 130) + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 1.0; offset: -33-6 -38; } + rel2 { relative: 1.0 1.0; offset: -6 -11; } + } + } + + part + { + name: "calaos.button.add"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 1.0; offset: -33-6-3-77 -38; } + rel2 { relative: 1.0 1.0; offset: -6-33-3 -11; } + } + } + + part + { + name: "rotation_center"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0 0; offset: 5+25 42; } + rel2 { relative: 0 0; offset: 6+25 156; } + rel2.relative: 0.0 0.0; + } + } + + part + { + name: "rotation_perspective"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 0.6 0.5; offset: 5+25 42; } + rel2 { relative: 0.6 0.5; offset: 6+25 156; } + rel2.relative: 0.0 0.0; + perspective + { + zplane: 0; + focal: 500; + } + } + } + + part + { + name: "cover_back"; + description + { + state: "default" 0.0; + rel1 { relative: 0 0; offset: 5 42; } + rel2 { relative: 0 0; offset: 122 156; } + image.normal: "album_back.png"; + map + { + on: 1; + perspective_on: 1; + perspective: "rotation_perspective"; + rotation.y: 0; + rotation.center: "rotation_center"; + } + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + map { rotation.y: 45; } + } + description + { + state: "anim" 1.0; + inherit: "default" 0.0; + map { rotation.y: 35; } + } + } + part + { + name: "cover"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0; offset: 15 50; } + rel2 { relative: 0.0 0; offset: 112 147; } + image.normal: "menu_media_icon_cd_01.png"; + map + { + on: 1; + perspective_on: 1; + perspective: "rotation_perspective"; + rotation.y: 0; + rotation.center: "rotation_center"; + } + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + map { rotation.y: 45; } + } + description + { + state: "anim" 1.0; + inherit: "default" 0.0; + map { rotation.y: 35; } + } + } + part + { + name: "calaos.cover"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0; offset: 15 50; } + rel2 { relative: 0.0 0; offset: 112 147; } + map + { + on: 1; + perspective_on: 1; + perspective: "rotation_perspective"; + rotation.y: 0; + rotation.center: "rotation_center"; + } + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + map { rotation.y: 45; } + } + description + { + state: "anim" 1.0; + inherit: "default" 0.0; + map { rotation.y: 35; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT("player_artist") + SCROLLING_TEXT_SIGNAL_REPEAT("player_album") + SCROLLING_TEXT_SIGNAL_REPEAT("player_count") + SCROLLING_TEXT_SIGNAL_REPEAT("player_year") + + program + { + name: "on_show"; + in: 0.6 0.0; + signal: "show"; + action: SIGNAL_EMIT "text,active,blue" "calaos"; + after: "anim_start"; + } + + program + { + name: "anim_start"; + in: 0.2 0.0; + action: STATE_SET "anim" 0.0; + transition: DECELERATE 1.0; + target: "cover_back"; + target: "cover"; + target: "calaos.cover"; + after: "anim_loop"; + } + program + { + name: "anim_loop"; + in: 0.2 0.0; + action: STATE_SET "anim" 1.0; + transition: DECELERATE 1.0; + target: "cover_back"; + target: "cover"; + target: "calaos.cover"; + after: "anim_start"; + } + } +} + +group +{ + name: "elm/genlist/item/browser/album/default"; + alias: "elm/genlist/item_compress/browser/album/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "album.text artist.text year.text"; + data.item: "contents" "calaos.button.play calaos.button.add calaos.cover"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 60; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_select"; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + image { normal: "button_element_bevel.png"; border: 11 11 14 14; } + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "icon"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 16 8; } + rel2 { relative: 0.0 0.0; offset: 16+20 8+20; } + image.normal: "icon_cd_glow.png"; + } + } + + part + { + name: "cover_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 1.0; offset: 46 -10; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "calaos_cover_bg"; + type: RECT; + clip_to: "cover_clip"; + description + { + state: "default" 0.0; + color: 0 0 0 255; + rel1.to: "cover_clip"; + rel2.to: "cover_clip"; + } + } + + part + { + name: "calaos.cover"; + type: SWALLOW; + clip_to: "cover_clip"; + description + { + state: "default" 0.0; + rel1.offset: 1 1; + rel2.offset: -2 -2; + rel1.to: "cover_clip"; + rel2.to: "cover_clip"; + } + } + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3 9; } + rel2 { relative: 1.0 0.0; offset: -3 36; } + } + } + + part + { + name: "calaos.button.add"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -33-3-3-33 9; } + rel2 { relative: 1.0 0.0; offset: -33-3-3 36; } + } + } + + alias: "album.text" "album_text:text"; + part + { + name: "album_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 6 8;} + rel2 { relative: 0.0 0.5; offset: -6 -1;} + rel1.to_x: "cover_clip"; + rel2.to_x: "year.text"; + } + } + + alias: "artist.text" "artist_text:text"; + part + { + name: "artist_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 6 0;} + rel2 { relative: 0.0 1.0; offset: -6 -9;} + rel1.to_x: "cover_clip"; + rel2.to_x: "year.text"; + } + } + + part + { + name: "year.text"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 231 231 231 127; + rel1 { relative: 0.0 0.0; offset: -5-30 8; } + rel2 { relative: 0.0 0.5; offset: -5 -1; } + rel1.to_x: "calaos.button.add"; + rel2.to_x: "calaos.button.add"; + text { text: "2011"; font: "CalaosContent"; size: 10; min: 1 1; align: 0.5 0.5;} + } + } + } + + programs + { + program + { + name: "on_show_text_album"; + signal: "show"; + action: SIGNAL_EMIT "album_text:text,active,blue" "calaos"; + } + program + { + name: "on_show_text_artist"; + signal: "show"; + action: SIGNAL_EMIT "artist_text:text,inactive" "calaos"; + } + + program + { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + transition: ACCELERATE 0.00001; + target: "item_select"; + } + program + { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "item_select"; + } + + program + { + name: "show_cover"; + signal: "show,cover"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.6; + target: "cover_clip"; + } + + program + { + name: "on_hide_reset"; + signal: "hide"; + action: STATE_SET "default" 0.0; + target: "cover_clip"; + } + } +} diff --git a/data/themes/default/elm/elm_genlist_item_group_room.edc b/data/themes/default/elm/elm_genlist_item_group_room.edc new file mode 100644 index 00000000..2beedbc3 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_group_room.edc @@ -0,0 +1,133 @@ +//Calaos Home Theme +//Copyright 2012 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/group_room/default"; + alias: "elm/genlist/item_compress/group_room/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "elm.text"; + + parts + { + part + { + name: "item_back"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + color: 255 255 255 0; + } + } + part + { + name: "bg"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "popup_carbon.png"; + fill { smooth: 1; size { relative: 0.0 0.0; offset: 8 8;} } + rel1 { relative: 0.0 0.0; offset: 0 0; }; + rel2 { relative: 1.0 1.0; offset: -1 -1; }; + } + } + + part + { + name: "sep"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 255 255 28; + rel1 { relative: 0.0 1.0; offset: 0 -2; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + } + } + + part + { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 10 -22; } + rel2 { relative: 1.0 1.0; offset: -5 -4; } + color: 231 231 231 204; + text { text: "Titre la pièce"; font: "CalaosContent"; size: 15; min: 1 1; align: 0.0 0.5; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } +} + +group +{ + name: "elm/genlist/item/group_room/icon/default"; + alias: "elm/genlist/item_compress/group_room/icon/default"; + inherit: "elm/genlist/item/group_room/default"; + + data.item: "contents" "icon"; + + parts + { + part + { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 60 0; } + rel2 { relative: 1.0 1.0; offset: -5 -1; } + color: 231 231 231 174; + text { text: "Titre la pièce"; font: "CalaosContentBold"; size: 15; min: 1 1; align: 0.0 0.5; } + } + } + + part + { + name: "icon"; + type: SWALLOW; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 7 2+5; } + rel2 { relative: 0.0 0.0; offset: 51 27+5; } + } + } + + part + { + name: "bg"; + mouse_events: 0; + description + { + state: "default" 0.0; + visible: 0; + } + } + } +} + diff --git a/data/themes/default/elm/elm_genlist_item_internalbool.edc b/data/themes/default/elm/elm_genlist_item_internalbool.edc new file mode 100644 index 00000000..2fa23afc --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_internalbool.edc @@ -0,0 +1,552 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/InternalBool_left/default"; + alias: "elm/genlist/item_compress/InternalBool_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon_off"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool.png"; + color: 255 255 255 180; + rel1 { relative: 0.0 0.5; offset: 6 -5; } + rel2 { relative: 0.0 0.5; offset: 14+6 5; } + } + } + + part + { + name: "item_icon"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool_on.png"; + rel1 { relative: 0.0 0.5; offset: 6 -7; } + rel2 { relative: 0.0 0.5; offset: 14+6 5; } + visible: 0; + color: 0 0 0 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item_icon"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "show_on_anim"; + signal: "on,anim"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_on"; + signal: "on,normal"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "item_icon"; + } + + program + { + name: "show_off_anim"; + signal: "off,anim"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_off"; + signal: "off,normal"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "item_icon"; + } + } + + +} + +group +{ + name: "elm/genlist/item/InternalBool_right/default"; + alias: "elm/genlist/item_compress/InternalBool_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon_off"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool.png"; + color: 255 255 255 180; + rel1 { relative: 1.0 0.5; offset: -6-14 -5; } + rel2 { relative: 1.0 0.5; offset: -6 5; } + } + } + + part + { + name: "item_icon"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool_on.png"; + rel1 { relative: 1.0 0.5; offset: -6-14 -7; } + rel2 { relative: 1.0 0.5; offset: -6 5; } + visible: 0; + color: 0 0 0 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel2.to_x: "item_icon"; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "show_on_anim"; + signal: "on,anim"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_on"; + signal: "on,normal"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "item_icon"; + } + + program + { + name: "show_off_anim"; + signal: "off,anim"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_off"; + signal: "off,normal"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "item_icon"; + } + } + +} + + +/////// Read/Write mode + +group +{ + name: "elm/genlist/item/InternalBool_left/rw/default"; + alias: "elm/genlist/item_compress/InternalBool_left/rw/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.on calaos.button.off"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon_off"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool.png"; + color: 255 255 255 180; + rel1 { relative: 0.0 0.5; offset: 6 -5; } + rel2 { relative: 0.0 0.5; offset: 14+6 5; } + } + } + + part + { + name: "item_icon"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool_on.png"; + rel1 { relative: 0.0 0.5; offset: 6 -7; } + rel2 { relative: 0.0 0.5; offset: 14+6 5; } + visible: 0; + color: 0 0 0 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.off"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "show_on_anim"; + signal: "on,anim"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_on"; + signal: "on,normal"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "item_icon"; + } + + program + { + name: "show_off_anim"; + signal: "off,anim"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_off"; + signal: "off,normal"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "item_icon"; + } + } + + +} + +group +{ + name: "elm/genlist/item/InternalBool_right/rw/default"; + alias: "elm/genlist/item_compress/InternalBool_right/rw/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.on calaos.button.off"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon_off"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool.png"; + color: 255 255 255 180; + rel1 { relative: 1.0 0.5; offset: -6-14 -5; } + rel2 { relative: 1.0 0.5; offset: -6 5; } + } + } + + part + { + name: "item_icon"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_bool_on.png"; + rel1 { relative: 1.0 0.5; offset: -6-14 -7; } + rel2 { relative: 1.0 0.5; offset: -6 5; } + visible: 0; + color: 0 0 0 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3+34+3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34+3+34 13; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.off"; + rel2.to_x: "item_icon"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "show_on_anim"; + signal: "on,anim"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_on"; + signal: "on,normal"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "item_icon"; + } + + program + { + name: "show_off_anim"; + signal: "off,anim"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.4; + target: "item_icon"; + } + + program + { + name: "show_off"; + signal: "off,normal"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "item_icon"; + } + } + +} + diff --git a/data/themes/default/elm/elm_genlist_item_internalint.edc b/data/themes/default/elm/elm_genlist_item_internalint.edc new file mode 100644 index 00000000..e82b1788 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_internalint.edc @@ -0,0 +1,317 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/InternalInt_left/default"; + alias: "elm/genlist/item_compress/InternalInt_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 24+3 13; } + text { text: "0"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item.value"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/InternalInt_right/default"; + alias: "elm/genlist/item_compress/InternalInt_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 1.0 0.5; offset: -3-24 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + text { text: "0"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel2.to_x: "item.value"; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} + + +/////// Read/Write mode + +group +{ + name: "elm/genlist/item/InternalInt_left/rw/default"; + alias: "elm/genlist/item_compress/InternalInt_left/rw/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" "calaos.button.plus calaos.button.moins"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 24+3 13; } + text { text: "0"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "calaos.button.plus"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + part + { + name: "calaos.button.moins"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item.value"; + rel2.to_x: "calaos.button.moins"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/InternalInt_right/rw/default"; + alias: "elm/genlist/item_compress/InternalInt_right/rw/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" "calaos.button.plus calaos.button.moins"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 1.0 0.5; offset: -3-24 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + text { text: "0"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "calaos.button.moins"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3+34+3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34+3+34 13; } + } + } + + part + { + name: "calaos.button.plus"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.moins"; + rel2.to_x: "item.value"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -5 13; } + } + } + } + + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} + diff --git a/data/themes/default/elm/elm_genlist_item_internalstring.edc b/data/themes/default/elm/elm_genlist_item_internalstring.edc new file mode 100644 index 00000000..6d4ab34d --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_internalstring.edc @@ -0,0 +1,227 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/InternalString_left/default"; + alias: "elm/genlist/item_compress/InternalString_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/InternalString_right/default"; + alias: "elm/genlist/item_compress/InternalString_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} + + +/////// Read/Write mode + +group +{ + name: "elm/genlist/item/InternalString_left/rw/default"; + alias: "elm/genlist/item_compress/InternalString_left/rw/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.text"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.text"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel2.to_x: "calaos.button.text"; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/InternalString_right/rw/default"; + alias: "elm/genlist/item_compress/InternalString_right/rw/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.text"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.text"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.text"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} + diff --git a/data/themes/default/elm/elm_genlist_item_playlist.edc b/data/themes/default/elm/elm_genlist_item_playlist.edc new file mode 100644 index 00000000..f3250674 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_playlist.edc @@ -0,0 +1,186 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/playlist/default"; + alias: "elm/genlist/item_compress/playlist/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.play calaos.button.more track.cover"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "track_icon_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "cover" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + + part + { + name: "track_icon"; + clip_to: "track_icon_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 6 -8; } + rel2 { relative: 0.0 0.5; offset: 6+21 7; } + image.normal: "icon_sound.png"; + } + } + + part + { + name: "track_cover_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "cover" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "cover_border"; + type: RECT; + clip_to: "track_cover_clip"; + description + { + state: "default" 0.0; + rel1 { offset: -1 -1; to: "track.cover"; } + rel2 { offset: 0 0; to: "track.cover"; } + color: 255 255 255 46; + } + } + + part + { + name: "track.cover"; + type: SWALLOW; + clip_to: "track_cover_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 6 -11; } + rel2 { relative: 0.0 0.5; offset: 6+23 11; } + } + } + + part + { + name: "calaos.button.play"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -33-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + part + { + name: "calaos.button.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-30 -12; } + rel2 { relative: 1.0 0.5; offset: -34-3-3 11; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + rel1.to_x: "cover_border"; + rel2.to_x: "calaos.button.more"; + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "show_icon"; + signal: "icon"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "track_cover_clip"; + target: "track_icon_clip"; + } + + program + { + name: "show_cover"; + signal: "cover"; + source: "calaos"; + action: STATE_SET "cover" 0.0; + transition: DECELERATE 0.5; + target: "track_cover_clip"; + target: "track_icon_clip"; + } + } +} diff --git a/data/themes/default/elm/elm_genlist_item_scenario.edc b/data/themes/default/elm/elm_genlist_item_scenario.edc new file mode 100644 index 00000000..b79f82a3 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_scenario.edc @@ -0,0 +1,160 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/scenario_left/default"; + alias: "elm/genlist/item_compress/scenario_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.go"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/scenario"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 6 -14; } + rel2 { relative: 0.0 0.5; offset: 21+6 13; } + } + } + + part + { + name: "calaos.button.go"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.go"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} + + +group +{ + name: "elm/genlist/item/scenario_right/default"; + alias: "elm/genlist/item_compress/scenario_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.go"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/scenario"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -6-21 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + } + } + + part + { + name: "calaos.button.go"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.go"; + rel2.to_x: "item_icon"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} + diff --git a/data/themes/default/elm/elm_genlist_item_scenario_schedule.edc b/data/themes/default/elm/elm_genlist_item_scenario_schedule.edc new file mode 100644 index 00000000..06e1c20d --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_scenario_schedule.edc @@ -0,0 +1,582 @@ +//Calaos Home Theme +//Copyright 2012 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/scenario/schedule/default"; + alias: "elm/genlist/item_compress/scenario/schedule/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text time actions.text"; + data.item: "contents" "calaos.button.more"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -6-34 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + } + } + + part + { + name: "time"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 10 -14; } + rel2 { relative: 0.0 0.5; offset: 10+35 13; } + text { font: "CalaosContent"; text: "12:00"; size: 12; min: 1 1; align: 0.0 0.5; } + color: 58 180 215 255; + } + } + + part + { + name: "actions.text"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -6-30-8-80 0; } + rel2 { relative: 1.0 1.0; offset: -6-30-8 -1; } + color: 255 218 90 255; + align: 1.0 0.5; + text { font: "CalaosContent"; text: "Aucune actions!"; max: 1 0; size: 10; align: 1.0 0.5; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + rel1.to_x: "time"; + rel2.to_x: "actions.text"; + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + } +} + +group +{ + name: "elm/genlist/item/scenario/standard/default"; + alias: "elm/genlist/item_compress/scenario/standard/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text actions.text"; + data.item: "contents" "calaos.button.more"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -6-34 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + } + } + + part + { + name: "icon_schedule"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -6-30-3-22 -8; } + rel2 { relative: 1.0 0.5; offset: -6-30-4 7; } + image.normal: "icon_clock.png"; + color: 255 255 255 0; + } + description + { + state: "schedule" 0.0; + inherit: "default" 0.0; + color: 255 255 255 100; + } + } + + part + { + name: "actions.text"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -6-30-8-80 0; } + rel2 { relative: 1.0 1.0; offset: -6-30-8 -1; } + color: 255 218 90 255; + align: 1.0 0.5; + text { font: "CalaosContent"; text: "Aucune actions!"; max: 1 0; size: 10; align: 1.0 0.5; } + } + description + { + state: "schedule" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -6-30-4-22-8-80 0; } + rel2 { relative: 1.0 1.0; offset: -6-30-4-22-8 -1; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 10 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + rel2.to_x: "actions.text"; + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "is_schedule"; + signal: "schedule,true"; + source: "calaos"; + action: STATE_SET "schedule" 0.0; + transition: DECELERATE 0.1; + target: "icon_schedule"; + target: "actions.text"; + } + program + { + name: "is_not_schedule"; + signal: "schedule,false"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.1; + target: "icon_schedule"; + target: "actions.text"; + } + } +} + + +group +{ + name: "elm/genlist/item/scenario/header/default"; + alias: "elm/genlist/item_compress/scenario/header/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "elm.text"; + + parts + { + part + { + name: "item_back"; + type: RECT; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + color: 255 255 255 0; + } + } + + part + { + name: "sep"; + type: RECT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 255 255 28; + rel1 { relative: 0.0 1.0; offset: 0 -2; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + } + } + + part + { + name: "elm.text"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 10 -22; } + rel2 { relative: 1.0 1.0; offset: -5 -4; } + color: 231 231 231 204; + text { text: "Titre de l'element'"; font: "CalaosContent"; size: 15; min: 1 1; align: 0.0 0.5; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } +} + + +group +{ + name: "elm/genlist/item/scenario/action/default"; + alias: "elm/genlist/item_compress/scenario/action/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text action.text"; + data.item: "contents" "calaos.button.edit icon"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 72; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "sep"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 58 180 215 20; + rel1 { relative: 0.0 0.5; offset: 10 -2; } + rel2 { relative: 1.0 0.5; offset: -10 -1; } + } + } + + part + { + name: "calaos.button.edit"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.70; offset: -6-34 -14; } + rel2 { relative: 1.0 0.70; offset: -6 13; } + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.25; offset: 10 -8; } + rel2 { relative: 0.0 0.25; offset: 10+21 7; } + } + } + + part + { + name: "icon_action"; + description + { + state: "default" 0.0; + fixed: 1 1; + image.normal: "icon_action_simple.png"; + rel1 { relative: 0.0 0.70; offset: 22 -8; } + rel2 { relative: 0.0 0.70; offset: 22+21 7; } + color: 255 255 255 110; + } + } + + alias: "action.text" "item_text_act:text"; + part + { + name: "item_text_act"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.70; offset: 10 -14; } + rel2 { relative: 0.0 0.70; offset: -8 13; } + rel1.to_x: "icon_action"; + rel2.to_x: "calaos.button.edit"; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.25; offset: 10 -14; } + rel2 { relative: 1.0 0.25; offset: -8 13; } + rel1.to_x: "icon"; + } + } + } + + programs + { + program + { + signal: "show"; + action: SIGNAL_EMIT "item_text:text,inactive" "calaos"; + } + + program + { + signal: "show"; + action: SIGNAL_EMIT "item_text_act:text,active,yellow" "calaos"; + } + } +} + +group +{ + name: "elm/genlist/item/scenario/schedule/time/default"; + alias: "elm/genlist/item_compress/scenario/schedule/time/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.edit calaos.button.delete icon"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42+15; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.edit"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -3-34-6-34 9; } + rel2 { relative: 1.0 0.0; offset: -3-6-35 36; } + } + } + + part + { + name: "calaos.button.delete"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -6-34 9; } + rel2 { relative: 1.0 0.0; offset: -7 36; } + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + rel1.to_y: "calaos.button.delete"; + rel2.to_y: "calaos.button.delete"; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + rel1.to_y: "calaos.button.delete"; + rel1.to_x: "icon"; + rel2.to: "calaos.button.edit"; + } + } + + #define SCHED_DAY(day, txt, px) \ + part \ + { \ + name: day; \ + type: TEXT; \ + description \ + { \ + state: "default" 0.0; \ + rel1 { to: "item_back"; relative: 0.5 1.0; offset: -94+px -17; } \ + rel2 { to: "item_back"; relative: 0.5 1.0; offset: -94+px+25 -7; } \ + text { font: "CalaosContent"; text: txt; size: "10"; align: 0.5 0.5; } \ + color: 231 231 231 67; \ + } \ + description \ + { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + color: 255 218 90 255; \ + } \ + } \ + program \ + { \ + name: day"_on"; \ + signal: day",active"; \ + source: "calaos"; \ + action: STATE_SET "active" 0.0; \ + target: day; \ + } \ + program \ + { \ + name: day"_off"; \ + signal: day",inactive"; \ + source: "calaos"; \ + action: STATE_SET "default" 0.0; \ + target: day; \ + } + + + SCHED_DAY("monday", "LUN", 0) + SCHED_DAY("tuesday", "MAR", 27) + SCHED_DAY("wednesday", "MER", 54) + SCHED_DAY("thursday", "JEU", 81) + SCHED_DAY("friday", "VEN", 108) + SCHED_DAY("saturday", "SAM", 135) + SCHED_DAY("sunday", "DIM", 162) + + #define SCHED_SEP(day) \ + part \ + { \ + name: "sep_"day; \ + type: RECT; \ + description \ + { \ + color: 166 204 215 53; \ + rel1 { to: day; relative: 1.0 0.0; offset: -1 0; } \ + rel2 { to: day; relative: 1.0 1.0; offset: 0 -1; } \ + } \ + } + + SCHED_SEP("monday") + SCHED_SEP("tuesday") + SCHED_SEP("wednesday") + SCHED_SEP("thursday") + SCHED_SEP("friday") + SCHED_SEP("saturday") + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + } +} + diff --git a/data/themes/default/elm/elm_genlist_item_simple.edc b/data/themes/default/elm/elm_genlist_item_simple.edc new file mode 100644 index 00000000..0c161ead --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_simple.edc @@ -0,0 +1,833 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/simple/default"; + alias: "elm/genlist/item_compress/simple/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "icon button"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 0 -8; } + rel2 { relative: 0.0 0.5; offset: 0 7; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + part + { + name: "button"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 0 -14; } + rel2 { relative: 1.0 0.5; offset: 0 13; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "icon"; + rel2.to_x: "button"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "show_icon"; + signal: "icon,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "icon"; + } + program + { + name: "hide_icon"; + signal: "icon,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "icon"; + } + + program + { + name: "show_button"; + signal: "button,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "button"; + } + program + { + name: "hide_button"; + signal: "button,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "button"; + } + } +} + +group +{ + name: "elm/genlist/item/simple_select/default"; + alias: "elm/genlist/item_compress/simple_select/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "icon button"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_select"; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + image { normal: "button_element_glow.png"; border: 11 11 14 14; } + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 0 -8; } + rel2 { relative: 0.0 0.5; offset: 0 7; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + part + { + name: "button"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 0 -14; } + rel2 { relative: 1.0 0.5; offset: 0 13; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to: "icon"; + rel2.to: "button"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + transition: ACCELERATE 0.00001; + target: "item_select"; + after: "sig_text_active_blue_item_text"; + } + program + { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "item_select"; + after: "sig_text_inactive_item_text"; + } + + program + { + name: "show_icon"; + signal: "icon,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "icon"; + } + program + { + name: "hide_icon"; + signal: "icon,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "icon"; + } + + program + { + name: "show_button"; + signal: "button,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "button"; + } + program + { + name: "hide_button"; + signal: "button,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "button"; + } + } +} + +group +{ + name: "elm/genlist/item/simple_select/check/default"; + alias: "elm/genlist/item_compress/simple_select/check/default"; + inherit: "elm/genlist/item/simple_select/default"; + + parts + { + part + { + name: "icon.end"; + description + { + state: "default" 0.0; + visible: 0; + image.normal: "icon_select_simple.png"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -10-21 -8; } + rel2 { relative: 1.0 0.5; offset: -10 7; } + color: 255 255 255 0; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to: "icon"; + rel2.to: "icon.end"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + } + + programs + { + program + { + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + transition: ACCELERATE 0.00001; + target: "icon.end"; + } + program + { + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "icon.end"; + } + } +} + + +group +{ + name: "elm/genlist/item/simple_select/disclosure/default"; + alias: "elm/genlist/item_compress/simple_select/disclosure/default"; + inherit: "elm/genlist/item/simple_select/default"; + + parts + { + part + { + name: "icon.end"; + description + { + state: "default" 0.0; + image.normal: "icon_disclosure.png"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -10-21 -8; } + rel2 { relative: 1.0 0.5; offset: -10 7; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to: "icon"; + rel2.to: "icon.end"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: -8 13; } + } + } + } +} + + +group +{ + name: "elm/genlist/item/simple_header/default"; + alias: "elm/genlist/item_compress/simple_header/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "elm.text"; + + parts + { + part + { + name: "item_back"; + type: RECT; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + color: 255 255 255 0; + } + } + part + { + name: "bg"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "popup_carbon.png"; + fill { smooth: 1; size { relative: 0.0 0.0; offset: 8 8;} } + rel1 { relative: 0.0 0.0; offset: 0 0; }; + rel2 { relative: 1.0 1.0; offset: -1 -1; }; + } + } + + part + { + name: "sep"; + type: RECT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 255 255 28; + rel1 { relative: 0.0 1.0; offset: 0 -2; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + } + } + + part + { + name: "elm.text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 10 4; } + rel2 { relative: 1.0 1.0; offset: -5 -4; } + text { align: 0.0 1.0; style: "TabWidgetTitle"; text: "Titre de l'item
Sous titre"; } + } + } + } + + programs + { + } +} + +group +{ + name: "elm/genlist/item/simple_info/default"; + alias: "elm/genlist/item_compress/simple_info/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "value.text key.text"; + data.item: "contents" "icon"; + + parts + { + part + { + name: "item_back"; + type: RECT; + description + { + state: "default" 0.0; + min: 50 21; + fixed: 0 0; + color: 255 255 255 0; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 0 -8; } + rel2 { relative: 0.0 0.5; offset: 0 7; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + part + { + name: "key.text"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "icon"; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 0.0 0.5; offset: 8+20 13; } + align: 0.0 0.5; + text { text: "Titre de l'element:"; font: "CalaosContent"; size: 12; min: 1 1; align: 0.0 0.5; } + color: 58 180 215 255; + } + } + + alias: "value.text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 8 -14; } + rel2 { relative: 1.0 0.5; offset: -8 13; } + rel1.to: "key.text"; + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "show_icon"; + signal: "icon,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "icon"; + } + program + { + name: "hide_icon"; + signal: "icon,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "icon"; + } + } +} + +group +{ + name: "elm/genlist/item/simple/multiline/default"; + name: "elm/genlist/item_odd/simple/multiline/default"; + name: "elm/genlist/item_compress/simple/multiline/default"; + name: "elm/genlist/item_compress_odd/simple/multiline/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "icon"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 1 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 0 -8; } + rel2 { relative: 0.0 0.5; offset: 0 7; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + part + { + name: "text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1.to_x: "icon"; + rel1 { relative: 1.0 0.0; offset: 8 12; } + rel2 { relative: 1.0 1.0; offset: -8 -12; } + text + { + style: "GenlistText"; + min: 0 1; + align: 0.0 0.0; + } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "show_icon"; + signal: "icon,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "icon"; + } + program + { + name: "hide_icon"; + signal: "icon,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "icon"; + } + } +} + +group +{ + name: "elm/genlist/item/simple_select/multiline/default"; + name: "elm/genlist/item_odd/simple_select/multiline/default"; + name: "elm/genlist/item_compress/simple_select/multiline/default"; + name: "elm/genlist/item_compress_odd/simple_select/multiline/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "icon"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 1 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_select"; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + image { normal: "button_element_glow.png"; border: 11 11 14 14; } + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 0 -8; } + rel2 { relative: 0.0 0.5; offset: 0 7; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 10+21 7; } + } + } + + part + { + name: "text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1.to_x: "icon"; + rel1 { relative: 1.0 0.0; offset: 8 12; } + rel2 { relative: 1.0 1.0; offset: -8 -12; } + text + { + style: "GenlistText"; + min: 0 1; + align: 0.0 0.0; + } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + + program + { + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,inactive" "calaos"; + } + + program + { + name: "show_icon"; + signal: "icon,enabled"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + target: "icon"; + } + program + { + name: "hide_icon"; + signal: "icon,disabled"; + source: "calaos"; + action: STATE_SET "default" 0.0; + target: "icon"; + } + + program + { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + transition: ACCELERATE 0.00001; + target: "item_select"; + after: "sig_text_active_blue_item_text"; + } + program + { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "item_select"; + after: "sig_text_inactive_item_text"; + } + } +} + diff --git a/data/themes/default/elm/elm_genlist_item_wianalog.edc b/data/themes/default/elm/elm_genlist_item_wianalog.edc new file mode 100644 index 00000000..0d010f52 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_wianalog.edc @@ -0,0 +1,131 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/WIAnalog_left/default"; + alias: "elm/genlist/item_compress/WIAnalog_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 1.0 0.5; offset: -34-6-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + text { text: "00.00 Units"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel2.to_x: "item.value"; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -10 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/WIAnalog_right/default"; + alias: "elm/genlist/item_compress/WIAnalog_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 0.0 0.5; offset: 6 -14; } + rel2 { relative: 0.0 0.5; offset: 34+6+3+34 13; } + text { text: "00.00 Units"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.0 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item.value"; + rel1 { relative: 1.0 0.5; offset: 10 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} diff --git a/data/themes/default/elm/elm_genlist_item_witemp.edc b/data/themes/default/elm/elm_genlist_item_witemp.edc new file mode 100644 index 00000000..d13409c3 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_witemp.edc @@ -0,0 +1,131 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + + + +group +{ + name: "elm/genlist/item/WITemp_left/default"; + alias: "elm/genlist/item_compress/WITemp_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-6-3-34-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + text { text: "99.99 °C / 99.99 °C"; min: 0 0; style: "ElementTempValueLeft"; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel2.to_x: "item.value"; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -10 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/WITemp_right/default"; + alias: "elm/genlist/item_compress/WITemp_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" ""; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item.value"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 6 -14; } + rel2 { relative: 0.0 0.5; offset: 34+6+3+34+3+34 13; } + text { text: "99.99 °C / 99.99 °C"; min: 0 0; style: "ElementTempValueRight"; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item.value"; + rel1 { relative: 1.0 0.5; offset: 10 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} diff --git a/data/themes/default/elm/elm_genlist_item_woanalog.edc b/data/themes/default/elm/elm_genlist_item_woanalog.edc new file mode 100644 index 00000000..9c159fc1 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_woanalog.edc @@ -0,0 +1,183 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/WOAnalog_left/default"; + alias: "elm/genlist/item_compress/WOAnalog_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" "calaos.button.plus calaos.button.moins"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.plus"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + part + { + name: "calaos.button.moins"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3 13; } + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34-5-34-3-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3-34-5 13; } + text { text: "00.00 Units"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel2.to_x: "item.value"; + rel1 { relative: 0.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -10 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + + +} + +group +{ + name: "elm/genlist/item/WOAnalog_right/default"; + alias: "elm/genlist/item_compress/WOAnalog_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text item.value"; + data.item: "contents" "calaos.button.plus calaos.button.moins"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "calaos.button.moins"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3+34+3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34+3+34 13; } + } + } + + part + { + name: "calaos.button.plus"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + part + { + name: "item.value"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 218 90 255; + rel1 { relative: 0.0 0.5; offset: 34+3+3+34+5 -14; } + rel2 { relative: 0.0 0.5; offset: 34+3+3+34+5+34+3+3+34 13; } + text { text: "00.00 Units"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.0 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "item.value"; + rel1 { relative: 1.0 0.5; offset: 10 -14; } + rel2 { relative: 1.0 0.5; offset: -5 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + } + +} diff --git a/data/themes/default/elm/elm_genlist_item_wodali.edc b/data/themes/default/elm/elm_genlist_item_wodali.edc new file mode 100644 index 00000000..1bdcf913 --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_wodali.edc @@ -0,0 +1,292 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/WODali_left/default"; + alias: "elm/genlist/item_compress/WODali_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text text.value"; + data.item: "contents" "calaos.button.on calaos.button.off calaos.slider calaos.button.more calaos.button.less"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 75; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/light"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 6 9; } + rel2 { relative: 0.0 0.0; offset: 21+6 37; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3 9; } + rel2 { relative: 1.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34 9; } + rel2 { relative: 1.0 0.0; offset: -34-3-3 37; } + } + } + + part + { + name: "calaos.button.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34-3-34 39; } + rel2 { relative: 1.0 0.0; offset: -34-3-3-34-3 39+28; } + } + } + + part + { + name: "calaos.button.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 39; } + rel2 { relative: 0.0 0.0; offset: 3+34 39+28; } + } + } + + part + { + name: "calaos.slider"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39; } + rel2 { relative: 0.0 0.0; offset: -7 39+28; } + rel1.to_x: "calaos.button.less"; + rel2.to_x: "calaos.button.more"; + } + } + + part + { + name: "text.value"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -46 39;} + rel2 { relative: 1.0 0.0; offset: -3 39+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.off"; + rel1 { relative: 1.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 0.0; offset: -3 37; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } +} + +group +{ + name: "elm/genlist/item/WODali_right/default"; + alias: "elm/genlist/item_compress/WODali_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text text.value"; + data.item: "contents" "calaos.button.on calaos.button.off calaos.slider calaos.button.more calaos.button.less"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 75; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/light"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -6-21 9; } + rel2 { relative: 1.0 0.0; offset: -6 37; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3 9; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34 37; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 9; } + rel2 { relative: 0.0 0.0; offset: 3+34 37; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.off"; + rel2.to_x: "item_icon"; + rel1 { relative: 1.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.button.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -3-34 39; } + rel2 { relative: 1.0 0.0; offset: -3 39+28; } + } + } + + part + { + name: "calaos.button.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3+34+3 39; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34+3+34 39+28; } + } + } + + part + { + name: "calaos.slider"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39; } + rel2 { relative: 0.0 0.0; offset: -7 39+28; } + rel1.to_x: "calaos.button.less"; + rel2.to_x: "calaos.button.more"; + } + } + + part + { + name: "text.value"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 3 39;} + rel2 { relative: 0.0 0.0; offset: 46 39+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} diff --git a/data/themes/default/elm/elm_genlist_item_wodalirvb.edc b/data/themes/default/elm/elm_genlist_item_wodalirvb.edc new file mode 100644 index 00000000..24b1e0cd --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_wodalirvb.edc @@ -0,0 +1,559 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/WODaliRVB_left/default"; + alias: "elm/genlist/item_compress/WODaliRVB_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text text.value.red text.value.green text.value.blue"; + data.item: "contents" "calaos.button.on calaos.button.off calaos.slider.red calaos.button.red.more calaos.button.red.less calaos.slider.green calaos.button.green.more calaos.button.green.less calaos.slider.blue calaos.button.blue.more calaos.button.blue.less color.preview"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 172; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/light"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 6 9; } + rel2 { relative: 0.0 0.0; offset: 21+6 37; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.off"; + rel1 { relative: 1.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34 9; } + rel2 { relative: 1.0 0.0; offset: -34-3-3 37; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3 9; } + rel2 { relative: 1.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.button.red.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 39; } + rel2 { relative: 0.0 0.0; offset: 3+34 39+28; } + } + } + + part + { + name: "calaos.slider.red"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39; } + rel2 { relative: 0.0 0.0; offset: -7 39+28; } + rel1.to_x: "calaos.button.red.less"; + rel2.to_x: "calaos.button.red.more"; + } + } + + part + { + name: "calaos.button.red.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34-3-34 39; } + rel2 { relative: 1.0 0.0; offset: -34-3-3-34-3 39+28; } + } + } + + part + { + name: "text.value.red"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -46 39;} + rel2 { relative: 1.0 0.0; offset: -3 39+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "calaos.button.green.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 39+28+2; } + rel2 { relative: 0.0 0.0; offset: 3+34 39+28+2+28; } + } + } + + part + { + name: "calaos.slider.green"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39+28+2; } + rel2 { relative: 0.0 0.0; offset: -7 39+28+2+28; } + rel1.to_x: "calaos.button.green.less"; + rel2.to_x: "calaos.button.green.more"; + } + } + + part + { + name: "calaos.button.green.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34-3-34 39+28+2; } + rel2 { relative: 1.0 0.0; offset: -34-3-3-34-3 39+28+2+28; } + } + } + + part + { + name: "text.value.green"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -46 39+28+2;} + rel2 { relative: 1.0 0.0; offset: -3 39+28+2+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "calaos.button.blue.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 39+28+2+28+2; } + rel2 { relative: 0.0 0.0; offset: 3+34 39+28+2+28+2+28; } + } + } + + part + { + name: "calaos.slider.blue"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39+28+2+28+2; } + rel2 { relative: 0.0 0.0; offset: -7 39+28+2+28+2+28; } + rel1.to_x: "calaos.button.blue.less"; + rel2.to_x: "calaos.button.blue.more"; + } + } + + part + { + name: "calaos.button.blue.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34-3-34 39+28+2+28+2; } + rel2 { relative: 1.0 0.0; offset: -34-3-3-34-3 39+28+2+28+2+28; } + } + } + + part + { + name: "text.value.blue"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -46 39+28+2+28+2;} + rel2 { relative: 1.0 0.0; offset: -3 39+28+2+28+2+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "color.preview"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { to: "rgb_decoration"; offset: 12 3; } + rel2 { to: "rgb_decoration"; offset: -13 -2; } + } + } + + part + { + name: "rgb_decoration"; + description + { + state: "default" 0.0; + image { normal: "rgb_preview.png"; border: 20 20 10 10; } + rel1 { relative: 0.0 1.0; offset: 20 5; to_y: "text.value.blue"; } + rel2 { relative: 1.0 1.0; offset: -19 5+28; to_y: "text.value.blue"; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } +} + +group +{ + name: "elm/genlist/item/WODaliRVB_right/default"; + alias: "elm/genlist/item_compress/WODaliRVB_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text text.value.red text.value.green text.value.blue"; + data.item: "contents" "calaos.button.on calaos.button.off calaos.slider.red calaos.button.red.more calaos.button.red.less calaos.slider.green calaos.button.green.more calaos.button.green.less calaos.slider.blue calaos.button.blue.more calaos.button.blue.less color.preview"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 172; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/light"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -6-21 9; } + rel2 { relative: 1.0 0.0; offset: -6 37; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to_x: "calaos.button.off"; + rel2.to_x: "item_icon"; + rel1 { relative: 1.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3 9; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34 37; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 9; } + rel2 { relative: 0.0 0.0; offset: 3+34 37; } + } + } + + part + { + name: "calaos.button.red.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3+34+3 39; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34+3+34 39+28; } + } + } + + part + { + name: "calaos.slider.red"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39; } + rel2 { relative: 0.0 0.0; offset: -7 39+28; } + rel1.to_x: "calaos.button.red.less"; + rel2.to_x: "calaos.button.red.more"; + } + } + + part + { + name: "calaos.button.red.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -3-34 39; } + rel2 { relative: 1.0 0.0; offset: -3 39+28; } + } + } + + part + { + name: "text.value.red"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 3 39;} + rel2 { relative: 0.0 0.0; offset: 46 39+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "calaos.button.green.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3+34+3 39+28+2; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34+3+34 39+28+2+28; } + } + } + + part + { + name: "calaos.slider.green"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39+28+2; } + rel2 { relative: 0.0 0.0; offset: -7 39+28+2+28; } + rel1.to_x: "calaos.button.green.less"; + rel2.to_x: "calaos.button.green.more"; + } + } + + part + { + name: "calaos.button.green.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -3-34 39+28+2; } + rel2 { relative: 1.0 0.0; offset: -3 39+28+2+28; } + } + } + + part + { + name: "text.value.green"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 3 39+28+2;} + rel2 { relative: 0.0 0.0; offset: 46 39+28+2+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "calaos.button.blue.less"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3+34+3 39+28+2+28+2; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34+3+34 39+28+2+28+2+28; } + } + } + + part + { + name: "calaos.slider.blue"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 7 39+28+2+28+2; } + rel2 { relative: 0.0 0.0; offset: -7 39+28+2+28+2+28; } + rel1.to_x: "calaos.button.blue.less"; + rel2.to_x: "calaos.button.blue.more"; + } + } + + part + { + name: "calaos.button.blue.more"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -3-34 39+28+2+28+2; } + rel2 { relative: 1.0 0.0; offset: -3 39+28+2+28+2+28; } + } + } + + part + { + name: "text.value.blue"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 3 39+28+2+28+2;} + rel2 { relative: 0.0 0.0; offset: 46 39+28+2+28+2+28;} + color: 251 175 37 255; + text { text: "100%"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.5 0.5;} + } + } + + part + { + name: "color.preview"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { to: "rgb_decoration"; offset: 12 3; } + rel2 { to: "rgb_decoration"; offset: -13 -2; } + } + } + + part + { + name: "rgb_decoration"; + description + { + state: "default" 0.0; + image { normal: "rgb_preview.png"; border: 20 20 10 10; } + rel1 { relative: 0.0 1.0; offset: 20 5; to_y: "text.value.blue"; } + rel2 { relative: 1.0 1.0; offset: -19 5+28; to_y: "text.value.blue"; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } +} diff --git a/data/themes/default/elm/elm_genlist_item_wodigital.edc b/data/themes/default/elm/elm_genlist_item_wodigital.edc new file mode 100644 index 00000000..2f19392a --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_wodigital.edc @@ -0,0 +1,185 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/WODigital_left/default"; + alias: "elm/genlist/item_compress/WODigital_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.on calaos.button.off"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/light"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 6 -14; } + rel2 { relative: 0.0 0.5; offset: 21+6 13; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.off"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} + +group +{ + name: "elm/genlist/item/WODigital_right/default"; + alias: "elm/genlist/item_compress/WODigital_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.on calaos.button.off"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/light"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -6-21 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + } + } + + part + { + name: "calaos.button.off"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3+34+3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34+3+34 13; } + } + } + + part + { + name: "calaos.button.on"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.off"; + rel2.to_x: "item_icon"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} diff --git a/data/themes/default/elm/elm_genlist_item_wovolet.edc b/data/themes/default/elm/elm_genlist_item_wovolet.edc new file mode 100644 index 00000000..29e43f1e --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_wovolet.edc @@ -0,0 +1,211 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/genlist/item/WOVolet_left/default"; + alias: "elm/genlist/item_compress/WOVolet_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.up calaos.button.down calaos.button.stop"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/volet"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 6 -14; } + rel2 { relative: 0.0 0.5; offset: 21+6 13; } + } + } + + part + { + name: "calaos.button.up"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3 -14; } + rel2 { relative: 1.0 0.5; offset: -3 13; } + } + } + + part + { + name: "calaos.button.down"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3 13; } + } + } + + part + { + name: "calaos.button.stop"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -34-3-3-34-3-34 -14; } + rel2 { relative: 1.0 0.5; offset: -34-3-3-3-34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.stop"; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} + +group +{ + name: "elm/genlist/item/WOVolet_right/default"; + alias: "elm/genlist/item_compress/WOVolet_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text"; + data.item: "contents" "calaos.button.up calaos.button.down calaos.button.stop"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 42; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/volet"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.5; offset: -6-21 -14; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + } + } + + part + { + name: "calaos.button.stop"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3+34+3+3+34 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34+3+34+3+34 13; } + } + } + + part + { + name: "calaos.button.down"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3+34+3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34+3+34 13; } + } + } + + part + { + name: "calaos.button.up"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 3 -14; } + rel2 { relative: 0.0 0.5; offset: 3+34 13; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.stop"; + rel2.to_x: "item_icon"; + rel1 { relative: 1.0 0.5; offset: 5 -14; } + rel2 { relative: 0.0 0.5; offset: -3 13; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} diff --git a/data/themes/default/elm/elm_genlist_item_wovoletsmart.edc b/data/themes/default/elm/elm_genlist_item_wovoletsmart.edc new file mode 100644 index 00000000..642d745c --- /dev/null +++ b/data/themes/default/elm/elm_genlist_item_wovoletsmart.edc @@ -0,0 +1,513 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/shutter/slider"; + + parts + { + part + { + name: "shutter_move_clipper"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 0 49;} + rel2 { relative: 0.0 0.0; offset: 62 96;} + } + } + + part { + name: "shutter_move_confine"; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 0.0 0.0; offset: 62 96;} + } + } + + part + { + name: "object.shutter"; + clip_to: "shutter_move_clipper"; + dragable + { + confine: "shutter_move_confine"; + x: 0 0 0; y: 1 1 1; + } + description + { + state: "default" 0.0; + min: 63 48; max: 63 48; + image { normal: "window_shutter.png";} + } + } + } +} + +group +{ + name: "elm/genlist/item/WOVoletSmart_left/default"; + alias: "elm/genlist/item_compress/WOVoletSmart_left/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text shutter.state shutter.action"; + data.item: "contents" "calaos.button.up calaos.button.down calaos.button.stop calaos.button.impulse_up calaos.button.impulse_down calaos.button.50 calaos.button.25 calaos.button.75 calaos.window.slider"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 150; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/volet"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 6 9; } + rel2 { relative: 0.0 0.0; offset: 21+6 37; } + } + } + + part + { + name: "calaos.button.up"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3 9; } + rel2 { relative: 1.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.button.down"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34 9; } + rel2 { relative: 1.0 0.0; offset: -34-3-3 37; } + } + } + + part + { + name: "calaos.button.stop"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3-3-34-3-34 9; } + rel2 { relative: 1.0 0.0; offset: -34-3-3-3-34 37; } + } + } + + part + { + name: "calaos.button.impulse_up"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3 37+11; } + rel2 { relative: 1.0 0.0; offset: -3 37+11+28; } + } + } + + part + { + name: "calaos.button.impulse_down"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -34-3 37+11+28+10; } + rel2 { relative: 1.0 0.0; offset: -3 37+11+28+10+28; } + } + } + + part + { + name: "calaos.button.75"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -49-40 113; } + rel2 { relative: 1.0 0.0; offset: -49 141; } + } + } + + part + { + name: "calaos.button.50"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -49-40-6-40 113; } + rel2 { relative: 1.0 0.0; offset: -49-40-6 141; } + } + } + + part + { + name: "calaos.button.25"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -49-40-6-40-6-40 113; } + rel2 { relative: 1.0 0.0; offset: -49-40-6-40-6 141; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "item_icon"; + rel2.to_x: "calaos.button.stop"; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.window.slider"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 50-10 16;} + rel2 { relative: 0.0 0.0; offset: 112-10 112;} + } + } + + part + { + name: "button_shutter_border"; + description + { + state: "default" 0.0; + image { normal: "window_border.png";} + rel1 { relative: 0.0 0.0; offset: 33-10 48;} + rel2 { relative: 0.0 0.0; offset: 129-10 124;} + } + } + + part + { + name: "button_shutter_arrows"; + description + { + state: "default" 0.0; + image { normal: "shutter_arrows_deco.png";} + rel1 { relative: 0.0 0.0; offset: 19-10 57; } + rel2 { relative: 0.0 0.0; offset: 29-10 112; } + } + } + + part + { + name: "shutter.state"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 142 60; } + rel2 { relative: 0.0 0.0; offset: 274 74; } + text { style: "StandardText"; text: "Etat : 75% fermé."; } + } + } + + part + { + name: "shutter.action"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 142 82; } + rel2 { relative: 0.0 0.0; offset: 274 96; } + text { style: "StandardText"; text: "Action : fermeture"; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} + +group +{ + name: "elm/genlist/item/WOVoletSmart_right/default"; + alias: "elm/genlist/item_compress/WOVoletSmart_right/default"; + + data.item: "selectraise" "on"; + data.item: "texts" "text shutter.state shutter.action"; + data.item: "contents" "calaos.button.up calaos.button.down calaos.button.stop calaos.button.impulse_up calaos.button.impulse_down calaos.button.50 calaos.button.25 calaos.button.75 calaos.window.slider"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 50 150; + fixed: 0 0; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_icon"; + type: GROUP; + source: "calaos/icons/element/volet"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -6-21 9; } + rel2 { relative: 1.0 0.0; offset: -6 37; } + } + } + + part + { + name: "calaos.button.stop"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3+3+34 9; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34+3+34 37; } + } + } + + part + { + name: "calaos.button.down"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3+34+3 9; } + rel2 { relative: 0.0 0.0; offset: 3+34+3+34 37; } + } + } + + part + { + name: "calaos.button.up"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 9; } + rel2 { relative: 0.0 0.0; offset: 3+34 37; } + } + } + + part + { + name: "calaos.button.impulse_up"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 37+11; } + rel2 { relative: 0.0 0.0; offset: 3+34 37+11+28; } + } + } + + part + { + name: "calaos.button.impulse_down"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 3 37+11+28+10; } + rel2 { relative: 0.0 0.0; offset: 3+34 37+11+28+10+28; } + } + } + + part + { + name: "calaos.button.25"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 49 113; } + rel2 { relative: 0.0 0.0; offset: 49+40 141; } + } + } + + part + { + name: "calaos.button.50"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 49+40+6 113; } + rel2 { relative: 0.0 0.0; offset: 49+40+6+40 141; } + } + } + + part + { + name: "calaos.button.75"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; offset: 49+40+6+40+6 113; } + rel2 { relative: 0.0 0.0; offset: 49+40+6+40+6+40 141; } + } + } + + alias: "text" "item_text:text"; + part + { + name: "item_text"; + type: GROUP; + source: "calaos/text/scrolling/right"; + description + { + state: "default" 0.0; + rel1.to_x: "calaos.button.stop"; + rel2.to_x: "item_icon"; + rel1 { relative: 1.0 0.0; offset: 5 9; } + rel2 { relative: 0.0 0.0; offset: -3 37; } + } + } + + part + { + name: "calaos.window.slider"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -112+10 16;} + rel2 { relative: 1.0 0.0; offset: -49+10 112;} + } + } + + part + { + name: "button_shutter_border"; + description + { + state: "default" 0.0; + image { normal: "window_border2.png";} + rel1 { relative: 1.0 0.0; offset: -129+10 48;} + rel2 { relative: 1.0 0.0; offset: -32+10 124;} + } + } + + part + { + name: "button_shutter_arrows"; + description + { + state: "default" 0.0; + image { normal: "shutter_arrows_deco.png";} + rel1 { relative: 1.0 0.0; offset: -29+10 57; } + rel2 { relative: 1.0 0.0; offset: -18+10 112; } + } + } + + part + { + name: "shutter.state"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -274+15 60; } + rel2 { relative: 1.0 0.0; offset: -141+15 74; } + text { style: "StandardText"; text: "Etat : 75% fermé."; } + } + } + + part + { + name: "shutter.action"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -274+15 82; } + rel2 { relative: 1.0 0.0; offset: -141+15 96; } + text { style: "StandardText"; text: "Action : fermeture"; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT(item_text) + ANIM_ICON_SIGNAL_REPEAT(item_icon) + } + + +} diff --git a/data/themes/default/elm/elm_list_base.edc b/data/themes/default/elm/elm_list_base.edc new file mode 100644 index 00000000..30f0ce56 --- /dev/null +++ b/data/themes/default/elm/elm_list_base.edc @@ -0,0 +1,803 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +// This is the modified base theme for elementary list/genlist/scroller/... + +group { name: "elm/scroller/base/calaos"; + + alias: "elm/list/base/menu/homeboard"; + alias: "elm/list/base/home/room_list"; + alias: "elm/list/base/calaos"; + alias: "elm/genlist/base/calaos"; + alias: "elm/carousel/base/calaos"; + alias: "elm/gengrid/base/calaos"; + alias: "elm/scroller/base/calaos"; + alias: "elm/genscroller/base/calaos"; + alias: "elm/scroller/entry/calaos"; + alias: "elm/scroller/entry/calaos/multiline"; + + data { + item: "focus_highlight" "on"; + } + + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; + public timer0(val) { + new v; + v = get_int(sbvis_v); + if (v) { + v = get_int(sbalways_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + v = get_int(sbvis_h); + if (v) { + v = get_int(sbalways_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + set_int(sbvis_timer, 0); + return 0; + } + } + images + { + image: "menu_item_select2.png" COMP; + } + parts { + part { name: "bg"; + type: RECT; + description { state: "default" 0.0; + rel1.offset: 5 0; + rel2.offset: -6 -1; + color: 255 255 255 0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 5 0; + rel2.offset: -6 -1; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 5 0; + rel2.offset: -6 -1; + } + } + + part { name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_clip"; + clip_to: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: 10 6; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + offset: 8 2; + to_y: "elm.swallow.content"; + to_x: "elm.swallow.content"; + } + rel2 { + relative: 1.0 0.0; + offset: 9 -1; + to_y: "sb_hbar"; + to_x: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: 6 6; + max: 6 99999; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + image { normal: "menu_item_select2.png"; border: 2 2 2 2;} + } + } + + part { name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: 6 10; + align: 0.0 1.0; + rel1 { + relative: 0.0 1.0; + offset: 2 0; + to_x: "elm.swallow.content"; + to_y: "elm.swallow.content"; + } + rel2 { + relative: 0.0 1.0; + offset: -1 -1; + to_x: "sb_vbar"; + to_y: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: 6 6; + max: 99999 6; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + image { normal: "menu_item_select2.png"; border: 3 3 3 3;} + } + } + part { name: "disabler"; + type: RECT; + description { state: "default" 0.0; + rel1.to: "clipper"; + rel2.to: "clipper"; + color: 0 0 0 0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 128 128 128 128; + } + } + } + programs { + program { name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + } + } + + program { name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + program { name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + program { name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + + program { name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + program { name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + program { name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + + program { name: "highlight_show"; + signal: "elm,action,focus_highlight,show"; + source: "elm"; + } + program { name: "highlight_hide"; + signal: "elm,action,focus_highlight,hide"; + source: "elm"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disabler"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disabler"; + } + } + } + +group { name: "elm/scroller/base/calaos/pager"; + + data { + item: "focus_highlight" "on"; + } + + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; + public timer0(val) { + new v; + v = get_int(sbvis_v); + if (v) { + v = get_int(sbalways_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + v = get_int(sbvis_h); + if (v) { + v = get_int(sbalways_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + set_int(sbvis_timer, 0); + return 0; + } + } + images + { + image: "menu_item_select2.png" COMP; + } + parts { + part { name: "bg"; + type: RECT; + description { state: "default" 0.0; + rel1.offset: 0 0; + rel2.offset: -1 -1; + color: 255 255 255 0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + + part { name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_clip"; + clip_to: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: 10 6; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + offset: 0 2; + to_y: "elm.swallow.content"; + to_x: "elm.swallow.content"; + } + rel2 { + relative: 1.0 0.0; + offset: -1 -1; + to_y: "sb_hbar"; + to_x: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: 6 6; + max: 6 99999; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + image { normal: "menu_item_select2.png"; border: 2 2 2 2;} + } + } + + part { name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: 6 10; + align: 0.0 1.0; + rel1 { + relative: 0.0 1.0; + offset: 2 0; + to_x: "elm.swallow.content"; + to_y: "elm.swallow.content"; + } + rel2 { + relative: 0.0 1.0; + offset: -1 -1; + to_x: "sb_vbar"; + to_y: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: 6 6; + max: 99999 6; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + image { normal: "menu_item_select2.png"; border: 3 3 3 3;} + } + } + part { name: "disabler"; + type: RECT; + description { state: "default" 0.0; + rel1.to: "clipper"; + rel2.to: "clipper"; + color: 0 0 0 0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 128 128 128 128; + } + } + } + programs { + program { name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + } + } + + program { name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + program { name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + program { name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + + program { name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + program { name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + program { name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + + program { name: "highlight_show"; + signal: "elm,action,focus_highlight,show"; + source: "elm"; + } + program { name: "highlight_hide"; + signal: "elm,action,focus_highlight,hide"; + source: "elm"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disabler"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disabler"; + } + } + } \ No newline at end of file diff --git a/data/themes/default/elm/elm_list_home_room.edc b/data/themes/default/elm/elm_list_home_room.edc new file mode 100644 index 00000000..cdd1a951 --- /dev/null +++ b/data/themes/default/elm/elm_list_home_room.edc @@ -0,0 +1,152 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/list/item/home/room_list"; + alias: "elm/list/item_odd/home/room_list"; + + data.item: "stacking" "above"; + + parts + { + part + { + name: "item_back"; + description + { + state: "default" 0.0; + min: 0 42; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + } + } + + part + { + name: "item_select"; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + image { normal: "button_element_bevel.png"; border: 11 11 23 23; } + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + + part + { + name: "icon_room_off"; + description + { + state: "default" 0.0; + image { normal: "icon_room.png"; } + rel1 { relative: 0.0 0.5; offset: 10 -8; } + rel2 { relative: 0.0 0.5; offset: 21+10 7; } + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + + part + { + name: "icon_room_on"; + description + { + state: "default" 0.0; + image { normal: "icon_room_on.png"; } + rel1.to: "icon_room_off"; + rel2.to: "icon_room_off"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "elm.text" "label_clip:text"; + part + { + name: "label_clip"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1.to_x: "icon_room_off"; + rel1 { relative: 1.0 0.0; offset: 5 0; } + rel2 { relative: 1.0 1.0; offset: -5 -1; } + } + } + } + + programs + { + program + { + name: "on_show"; + signal: "show"; + after: "go_passive"; + } + + program + { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + transition: ACCELERATE 0.25; + target: "item_select"; + target: "icon_room_off"; + target: "icon_room_on"; + after: "sig_text_active"; + } + program + { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "item_select"; + target: "icon_room_off"; + target: "icon_room_on"; + after: "sig_text_inactive"; + } + + program + { + name: "sig_text_active"; + action: SIGNAL_EMIT "label_clip:text,active,blue" "calaos"; + } + + program + { + name: "sig_text_inactive"; + action: SIGNAL_EMIT "label_clip:text,inactive" "calaos"; + } + + } +} diff --git a/data/themes/default/elm/elm_list_homeboard.edc b/data/themes/default/elm/elm_list_homeboard.edc new file mode 100644 index 00000000..1c553407 --- /dev/null +++ b/data/themes/default/elm/elm_list_homeboard.edc @@ -0,0 +1,139 @@ + +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/list/item/menu/homeboard"; + alias: "elm/list/item_odd/menu/homeboard"; + + data.item: "stacking" "above"; + + parts + { + part + { + name: "homeboard_item_back"; + description + { + state: "default" 0.0; + min: 0 82; + image { normal: "menu_item.png"; border: 158 28 26 9;} + } + } + + part + { + name: "homeboard_item_back_select"; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + image { normal: "menu_item_select.png"; border: 158 28 26 9;} + } + description + { + state: "selected" 0.0; + visible: 1; + color: 255 255 255 255; + image { normal: "menu_item_select.png"; border: 158 28 26 9;} + } + } + + + part + { + name: "elm.swallow.icon"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 26 -64;} + rel2 { relative: 0.0 1.0; offset: 147 -9;} + } + } + + part + { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + description + { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 175 35; } + rel2 { relative: 1.0 0.0; offset: -23 53; } + color: 58 180 215 255; + text { text: "Titre de l'objet"; font: "CalaosContent"; size: 15; min: 0 0; align: 0.0 0.5; } + } + } + + part + { + name: "object.description"; + type: TEXT; + description + { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 176 55; } + rel2 { relative: 1.0 0.0; offset: -23 68; } + color: 231 231 231 140; + text { text: "Description de l'objet"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.0 0.5; } + } + } + + part + { + name: "object.more_infos"; + type: TEXT; + description + { + state, "default" 0.0; + visible: 1; + rel1 { relative: 1.0 0.0; offset: -174 42; } + rel2 { relative: 1.0 0.0; offset: -38 55; } + color: 255 218 90 255; + text { text: "Infos supplémentaires"; font: "CalaosContent"; size: 10; min: 0 0; align: 1.0 0.5; } + } + } + + part + { + name: "event"; + type: RECT; + repeat_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + + programs + { + program + { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + target: "homeboard_item_back_select"; + transition: ACCELERATE 0.00001; + } + program + { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "homeboard_item_back_select"; + transition: DECELERATE 0.5; + } + } +} diff --git a/data/themes/default/elm/elm_pager.edc b/data/themes/default/elm/elm_pager.edc new file mode 100644 index 00000000..ba0d942c --- /dev/null +++ b/data/themes/default/elm/elm_pager.edc @@ -0,0 +1,247 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +// Same as elm/pager/base/fade_invisible but without padding + +group +{ + name: "elm/pager/base/calaos/fade_invisible"; + data.item: "onshow" "raise"; + + parts + { + part + { + name: "clip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1 { offset: -9999 -9999; } + rel2 { offset: 9999 9999; } + color: 255 255 255 255; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + } + description + { + state: "hidden" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "elm.swallow.content"; + type: SWALLOW; + clip_to: "clip"; + description + { + state: "default" 0.0; + } + } + } + + programs + { + program + { + name: "push_start"; + signal: "elm,action,push"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "clip"; + after: "show_start2"; + } + + program + { + name: "show_start"; + signal: "elm,action,show"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "clip"; + after: "show_start2"; + } + program + { + name: "show_start2"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.5; + target: "clip"; + after: "show_end"; + } + + program + { + name: "show_end"; + action: SIGNAL_EMIT "elm,action,show,finished" ""; + } + + program + { + name: "pop_start"; + signal: "elm,action,pop"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "clip"; + after: "hide_start2"; + } + + program + { + name: "hide_start"; + signal: "elm,action,hide"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "clip"; + after: "hide_start2"; + } + + program + { + name: "hide_start2"; + action: STATE_SET "hidden" 0.0; + transition: DECELERATE 0.5; + target: "clip"; + after: "hide_end"; + } + + program + { + name: "hide_end"; + action: SIGNAL_EMIT "elm,action,hide,finished" ""; + } + + program + { + name: "reset"; + signal: "elm,action,reset"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "clip"; + } + } +} + +//elm naviframe + +group { name: "elm/naviframe/item/calaos/default"; + parts { + part { name: "content_clip"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + clip_to: "content_clip"; + description { state: "default" 0.0; + align: 0.0 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + } + description { state: "left" 0.0; + inherit: "default" 0.0; + rel1.relative: -1.0 0.0; + rel2.relative: 0.0 1.0; + } + description { state: "right" 0.0; + inherit: "default" 0.0; + rel1.relative: 1.0 0.0; + rel2.relative: 2.0 1.0; + } + } + } + programs { + program { name: "content_new_pusehd"; + signal: "elm,state,new,pushed,internal"; + source: ""; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "elm.swallow.content"; + after: "show_finished"; + } + program { name: "content_cur_pusehd"; + signal: "elm,state,cur,pushed,internal"; + source: ""; + action: STATE_SET "left" 0.0; + target: "elm.swallow.content"; + transition: DECELERATE 0.5; + after: "pushed_finished"; + } + program { name: "content_prev_popped"; + signal: "elm,state,prev,popped,internal"; + source: ""; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + transition: DECELERATE 0.5; + after: "show_finished"; + } + program { name: "content_cur_popped"; + signal: "elm,state,cur,popped,internal"; + source: ""; + action: STATE_SET "right" 0.0; + target: "elm.swallow.content"; + transition: DECELERATE 0.5; + after: "popped_finished"; + } + program { name: "cur_pushed"; + signal: "elm,state,cur,pushed"; + source: "elm"; + script { + set_state(PART:"elm.swallow.content", "default", 0.0); + emit("elm,state,cur,pushed,internal", ""); + } + } + program { name: "new_pushed"; + signal: "elm,state,new,pushed"; + source: "elm"; + script { + set_state(PART:"elm.swallow.content", "right", 0.0); + emit("elm,state,new,pushed,internal", ""); + } + } + program { name: "prev_popped"; + signal: "elm,state,prev,popped"; + source: "elm"; + script { + set_state(PART:"elm.swallow.content", "left", 0.0); + emit("elm,state,prev,popped,internal", ""); + } + } + program { name: "cur_popped"; + signal: "elm,state,cur,popped"; + source: "elm"; + script { + set_state(PART:"elm.swallow.content", "default", 0.0); + emit("elm,state,cur,popped,internal", ""); + } + } + program { name: "visible"; + signal: "elm,state,visible"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + } + program { name: "show_finished"; + action: SIGNAL_EMIT "elm,action,show,finished" ""; + } + program { name: "pushed_finished"; + action: SIGNAL_EMIT "elm,action,pushed,finished" ""; + } + program { name: "popped_finished"; + action: SIGNAL_EMIT "elm,action,popped,finished" ""; + } + } +} diff --git a/data/themes/default/elm/elm_slider_knob.edc b/data/themes/default/elm/elm_slider_knob.edc new file mode 100644 index 00000000..d54553c7 --- /dev/null +++ b/data/themes/default/elm/elm_slider_knob.edc @@ -0,0 +1,430 @@ +//Calaos Home Theme +//Copyright 2012 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/slider/horizontal/calaos/volume"; + alias: "elm/slider/horizontal/calaos/volume"; + min: 200 200; + + images + { + image: "volume_knob.png" COMP; + image: "volume_knob_move.png" COMP; + image: "volume_knob_ledsoff.png" COMP; + + image: "volume_led_01.png" COMP; + image: "volume_led_02.png" COMP; + image: "volume_led_03.png" COMP; + image: "volume_led_04.png" COMP; + image: "volume_led_05.png" COMP; + image: "volume_led_06.png" COMP; + image: "volume_led_07.png" COMP; + image: "volume_led_08.png" COMP; + image: "volume_led_09.png" COMP; + image: "volume_led_10.png" COMP; + + image: "volume_led_11.png" COMP; + image: "volume_led_12.png" COMP; + image: "volume_led_13.png" COMP; + image: "volume_led_14.png" COMP; + image: "volume_led_15.png" COMP; + image: "volume_led_16.png" COMP; + image: "volume_led_17.png" COMP; + image: "volume_led_18.png" COMP; + image: "volume_led_19.png" COMP; + image: "volume_led_20.png" COMP; + + image: "volume_led_21.png" COMP; + image: "volume_led_22.png" COMP; + image: "volume_led_23.png" COMP; + image: "volume_led_24.png" COMP; + image: "volume_led_25.png" COMP; + image: "volume_led_26.png" COMP; + image: "volume_led_27.png" COMP; + image: "volume_led_28.png" COMP; + image: "volume_led_29.png" COMP; + image: "volume_led_30.png" COMP; + + image: "volume_led_31.png" COMP; + image: "volume_led_32.png" COMP; + image: "volume_led_33.png" COMP; + image: "volume_led_34.png" COMP; + image: "volume_led_35.png" COMP; + image: "volume_led_36.png" COMP; + image: "volume_led_37.png" COMP; + image: "volume_led_38.png" COMP; + image: "volume_led_39.png" COMP; + image: "volume_led_40.png" COMP; + + image: "volume_led_41.png" COMP; + image: "volume_led_42.png" COMP; + image: "volume_led_43.png" COMP; + image: "volume_led_44.png" COMP; + image: "volume_led_45.png" COMP; + } + + script + { + //#define VOLUME_MIN_ANGLE 42.0 + #define VOLUME_MIN_ANGLE 0.0 + #define VOLUME_MAX_ANGLE 264.0 + #define VOLUME_MAX_LEDS 45 + + public knob_angle; + public knob_offset; + public leds_on; + + public led_status; //edje list to keep track of each led status + + public Float:calc_angle(mx, my) + { + new px, py, pw, ph; + get_geometry(PART:"bg", px, py, pw, ph); + + new center_x, center_y; + center_x = px + pw / 2; + center_y = py + ph / 2; + + new dx, dy; + dx = center_x - mx; + dy = center_y - my; + + new Float:angle; + angle = atan2(-dx, dy) * 180.0 / PI + 180.0; + + return angle; + } + + public rotate_knob(Float:val) + { + custom_state(PART:"knob", "default", 0.0); + set_state_val(PART:"knob", STATE_MAP_ROT_Z, val); + set_state(PART:"knob", "custom", 0.0); + + //set needed leds on or off from current value + set_int(leds_on, round(val * VOLUME_MAX_LEDS / VOLUME_MAX_ANGLE)); + emit("leds,changed", "volume"); + } + } + + parts + { + part + { + name: "bg"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1.to: "leds_off"; + rel2.to: "leds_off"; + } + } + + part + { + name: "knob_back"; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -100 -100; } + rel2 { relative: 0.5 0.5; offset: 99 99; } + image.normal: "volume_knob.png"; + } + } + + part + { + name: "knob"; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -100 -100; } + rel2 { relative: 0.5 0.5; offset: 99 99; } + image.normal: "volume_knob_move.png"; + map.on: 1; + } + } + + part + { + name: "leds_off"; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -100 -100; } + rel2 { relative: 0.5 0.5; offset: 99 99; } + image.normal: "volume_knob_ledsoff.png"; + color: 255 255 255 50; + } + } + +#define VOLUME_LED_ON(num, inum) \ + part \ + { \ + name: "led_"num; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "leds_off"; \ + rel2.to: "leds_off"; \ + image.normal: "volume_led_"num".png"; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + } \ + program \ + { \ + name: "show_led_"num; \ + action: STATE_SET "visible" 0.0; \ + transition: DECELERATE 0.6 CURRENT; \ + target: "led_"num; \ + } \ + program \ + { \ + name: "hide_led_"num; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 0.6 CURRENT; \ + target: "led_"num; \ + } \ + program \ + { \ + name: "sig_led_changed_"num; \ + signal: "leds,changed"; \ + source: "volume"; \ + script \ + { \ + new current_status = fetch_int(led_status, inum - 1); \ + new new_status; \ + if (get_int(leds_on) >= inum) \ + new_status = 1; \ + else \ + new_status = 0; \ + \ + if (current_status != new_status) \ + { \ + if (new_status == 1) \ + run_program(PROGRAM:"show_led_"num); \ + else if (new_status == 0) \ + run_program(PROGRAM:"hide_led_"num); \ + \ + replace_int(led_status, inum - 1, new_status); \ + } \ + } \ + } + + VOLUME_LED_ON("01", 1) + VOLUME_LED_ON("02", 2) + VOLUME_LED_ON("03", 3) + VOLUME_LED_ON("04", 4) + VOLUME_LED_ON("05", 5) + VOLUME_LED_ON("06", 6) + VOLUME_LED_ON("07", 7) + VOLUME_LED_ON("08", 8) + VOLUME_LED_ON("09", 9) + VOLUME_LED_ON("10", 10) + + VOLUME_LED_ON("11", 11) + VOLUME_LED_ON("12", 12) + VOLUME_LED_ON("13", 13) + VOLUME_LED_ON("14", 14) + VOLUME_LED_ON("15", 15) + VOLUME_LED_ON("16", 16) + VOLUME_LED_ON("17", 17) + VOLUME_LED_ON("18", 18) + VOLUME_LED_ON("19", 19) + VOLUME_LED_ON("20", 20) + + VOLUME_LED_ON("21", 21) + VOLUME_LED_ON("22", 22) + VOLUME_LED_ON("23", 23) + VOLUME_LED_ON("24", 24) + VOLUME_LED_ON("25", 25) + VOLUME_LED_ON("26", 26) + VOLUME_LED_ON("27", 27) + VOLUME_LED_ON("28", 28) + VOLUME_LED_ON("29", 29) + VOLUME_LED_ON("30", 30) + + VOLUME_LED_ON("31", 31) + VOLUME_LED_ON("32", 32) + VOLUME_LED_ON("33", 33) + VOLUME_LED_ON("34", 34) + VOLUME_LED_ON("35", 35) + VOLUME_LED_ON("36", 36) + VOLUME_LED_ON("37", 37) + VOLUME_LED_ON("38", 38) + VOLUME_LED_ON("39", 39) + VOLUME_LED_ON("40", 40) + + VOLUME_LED_ON("41", 41) + VOLUME_LED_ON("42", 42) + VOLUME_LED_ON("43", 43) + VOLUME_LED_ON("44", 44) + VOLUME_LED_ON("45", 45) + + part + { + name: "volume_min"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.5 0.5; offset: -67 61; } + rel2 { relative: 0.5 0.5; offset: -1 82; } + color: 231 231 231 204; + text { text: "Min"; font: "CalaosContent"; size: 14; min: 1 1; align: 0.0 0.5; } + } + } + + part + { + name: "volume_max"; + type: TEXT; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.5 0.5; offset: -1 61; } + rel2 { relative: 0.5 0.5; offset: 68 82; } + color: 231 231 231 204; + text { text: "Max"; font: "CalaosContent"; size: 14; min: 1 1; align: 1.0 0.5; } + } + } + + part + { + name: "event"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "knob"; + rel2.to: "knob"; + color: 0 0 0 0; + + } + dragable + { + x: 1 1 0; + y: 1 1 0; + } + } + + part + { + //The real slider for elm_slider + name: "elm.dragable.slider"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + + } + dragable + { + x: 1 1 0; + y: 0 0 0; + } + } + + } + + programs + { + program + { + name: "on_drag_start"; + signal: "drag,start"; + source: "event"; + script + { + new mx, my; + get_mouse(mx, my); + + set_float(knob_offset, calc_angle(mx, my) - get_float(knob_angle)); + } + } + + program + { + name: "on_drag_move"; + signal: "drag"; + source: "event"; + script + { + new mx, my; + get_mouse(mx, my); + + new Float:angle = calc_angle(mx, my) - get_float(knob_offset); + + //Limits the button range + if (angle < VOLUME_MIN_ANGLE) angle = VOLUME_MIN_ANGLE; + if (angle > VOLUME_MAX_ANGLE) angle = VOLUME_MAX_ANGLE; + + set_float(knob_angle, angle); + + rotate_knob(angle); + set_drag(PART:"elm.dragable.slider", + get_float(knob_angle) / VOLUME_MAX_ANGLE, 0.0); + } + } + + + program + { + name: "on_drag_stop"; + signal: "drag,stop"; + source: "event"; + script + { + set_drag(PART:"event", 0.0, 0.0); + } + } + + program + { + name: "on_slider_set"; + signal: "drag,set"; + source: "elm.dragable.slider"; + script + { + new Float:dx, Float:dy; + get_drag(PART:"elm.dragable.slider", dx, dy); + + new Float:angle = dx * VOLUME_MAX_ANGLE; + set_float(knob_angle, angle); + + rotate_knob(angle); + } + } + + program + { + name: "on_init"; + signal: "show"; + script + { + while (count(led_status) < VOLUME_MAX_LEDS) + append_int(led_status, 0); + } + } + } +} diff --git a/data/themes/default/elm/elm_spinner.edc b/data/themes/default/elm/elm_spinner.edc new file mode 100644 index 00000000..11ee9e7b --- /dev/null +++ b/data/themes/default/elm/elm_spinner.edc @@ -0,0 +1,83 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "elm/spinner/base/calaos/time/vertical"; + + parts + { + part + { + name: "button.up"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/up"; } + min: 43 37; + rel1 { relative: 0.5 0.0; offset: 0 0; } + rel2 { relative: 0.5 0.0; offset: 0 36; } + } + } + + part + { + name: "elm.text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 5 5; to_y: "button.up"; } + rel2 { relative: 1.0 0.0; offset: -5 -5; to_y: "button.down"; } + text { text: "5
Heures"; style: "TimerSpinnerStyle"; min: 1 1; } + } + } + + part + { + name: "button.down"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/down"; } + min: 43 37; + rel1 { relative: 0.5 1.0; offset: 0 -37; } + rel2 { relative: 0.5 1.0; offset: 0 -1; } + } + } + } + + programs + { + program + { + signal: "pressed"; + source: "button.down"; + action: SIGNAL_EMIT "elm,action,decrement,start" ""; + } + program + { + signal: "unpressed"; + source: "button.down"; + action: SIGNAL_EMIT "elm,action,decrement,stop" ""; + } + program + { + signal: "pressed"; + source: "button.up"; + action: SIGNAL_EMIT "elm,action,increment,start" ""; + } + program + { + signal: "unpressed"; + source: "button.up"; + action: SIGNAL_EMIT "elm,action,increment,stop" ""; + } + } +} diff --git a/data/themes/default/fonts/RepetitionScrolling.ttf b/data/themes/default/fonts/RepetitionScrolling.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc124164424fc1696f36e4af8319607c1a5150ea GIT binary patch literal 42872 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 WD}ALN7ts4wM(-PY7QTgZ$^QX@HiAR| literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/Ubuntu-B.ttf b/data/themes/default/fonts/Ubuntu-B.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c0142fea09311a2dfe8325322ff5c3241562a008 GIT binary patch literal 333616 zcmeFadAKb{S?^zKt-be}y4UJ?So5%_v-g=Z0s#$>gdsoz1i}n~5CR0l6oD`a9MBLz z<}o017-bYhkkJ6bRpBa%UbzBJ*8x!xL6CJn-|E%-oWv9Lzx(`t4^^kDdv(okz4fj4 zeXDvOQ!&QG1S{r(+u!4k=iTik4}O4I`3W!c!{=Raw|o5I_4oQ8ruO0wnaXLeJMSJB z-S&#x{q0p|l>HVEC$=4ow#Y3+Az}1iZlrbNFsxhnAKlG|6OyVCpr2XO-jHyNszw)vx zuKL97KWEHm){R-4U-pp4Uugoc>80%N^GtA?CQsPGS!b) zuOZ8|#l7;U=1Jz?c-wBQ)YhuC>dK#)>f!=3xnEiO?a#i;*=AzQk5+1p#d+q;+FQ&g z`1yu=QDe1J{V?e!rdIi$Icjr!myoM6GDj<4F-NPvVa|ZM^V%!Sy!vS~H~-4}hnaJ^ zRx95(+r%9)-#32co+jr$s(g6ySG=2XovVCYJ+6prlWT)(murh_p!CYi^HHuNx+~{SS52$-A)en%zL%TT>Lq4gdAzx=+RVL0{Q-1P-=pe2+J1lf`8{)h z`+@2m%z?_=DC6!t--Y*6b4F#l_-OTZJfCIGtv!%9-d7)F)1Rw6N?-X4vsL-HIh(k% ztDDsCQO^$79Qu9F)<3V@mNpdir?laq`DfFuylwH($_=Iqhn-dV4(W8g(Cn;k(=Pf{ zIS)Gh1!MNlX4|H}!E7si<o@iET_hL-chV#s*_72)czsvEZt^-`EGq0Yx z_)+B`^s1RbH8Xds4H)ManXGz|9lN6%U;FM!reArKeRqVr$K^w>9&|akN*gQ>oJ-#y zMLWJ|rsN;h9z$D;D`k9hJGL6%n_RVT@lNBdu|DB~zH_dlTq~8c7Jpv-JJK!3TH}4< zMPF`Xc|hZR;-&G1FRCx)y~g$=SM8D1qw!{}PrMlGgliw;{e7@pbMC?*9ng8{EIkeF7c2-0#ZW&Vkw;$@{Zl1apxzAGPz5IZ?YE z@6V;brKgaE!>5m4d|%^fX?l};?J1^OebnOb%XmAs(D$bI zDs$b=&*I+M`>nYG|Jylp;vGz|^YW&5@r=gpzj?2LCw5MYzcjYO6z26!@0B}JZrPS) zouXI8Ge28-4)aCx>NRGU`Ln-rd#*FhDU}bHt+M=^-YtGnpLx~dUd**FSH#uh8gq@f z;^kd&n_R_Qy_s~?q3PAGH@92PQ?Hz_+kQ9YcUr>m8{st=t##L8F1Ts2^8Th#+cjO*{0pkWkNYqFvHI-A zkHE>O`g^2ZFYuuDXq%>3t1dJ*c{UCGYk<6=)P$qM= zaxvpEH|^TjDF1t;eK_-XiL1i0m7`$nrOdf5b*K%+y1LE0+OFOMetYBMkL+A}A$+K{ zPV4R8lJ0Tl?Aj{r_P1!&RwnWF68%PsAq|(V9g5i>-!~6{CDTG#nYSMveqT7 z4b?w_hW9-IMO6fFYy1|>ZhP#hyHzme%_05DY2|<$8w!1 z%fGpMiA|M%U;L=H!Z_;wO8AGX`d8HVa>}oYFL{12@&kM%%&h##R4bn`b>zNQ_3ycm z*KD6JA}z90Wq0wh+J5p%9(xSzfjt`d2#$A704Vyq9`}*T|XB_s_Mytvu31E0Q&9q|w-G{I2C$SSA{2 zj!I@Ff9-VMtGqwt{UyjeN~?=}wHVBlyb9ed4V7QAiDVzm3(BlL+#HmgO8f=Y>&q+caYyz^47cbM&!TX26rV>1*_ir%|-bOjd2DJ;J(?5WNkK&!KJ8?-I>>n!GWqvKGv05k7voLPa+OEu||AN82b$Bmu!D3SJMn@kKld>$}eRm z$q%Z(3Ed@k7IO0MX)e^BOMk#d$r!dBY7ceowc~HWm#5l3A62_*DfM5(?_1HwtDw!x z_MH3XUSr-^zSLNVKe^xRyoTR2=9cF*ZsPqD z@5?rd|HT91Q}N2mL%5@l(0=I}4%b-EmFF`Knm5ZiW90(ojBux%8={e&Ytr48I$rf4 z`l$50a^A28*?Ggb?9CfwI4fH`5;{DMz8x?P%j-4f^!MNw$?un$!u~*KaXtjZQ?GZ+=SoE4Y1zb*o<0SvhU-$6TLS&cCx&t}UDLDxWgXs65SFPW#TY`IPtOuJ4#m z^*gNHzrFZL?cIw-?J0{N)?Q_rwWEt4=(2UH-kV+vv%(r(seK#y;&WUdH#Ovxnx%_q zb2C@%8R(RcF_o2vn#RiQxy~}RmAjJn+tl~X#SiG)8O#2ClKy>(>ziDE#PvgaeVujr zPfP_{LZkX7uGdiKySdJ$tv|yhJUYn*_N>(2NWIUa&dW`6f&E( zKVB?W4nmu+F21Aj`cJQ?QqS8c`x@$bB=sEO`S#HB@8}=b-Z+%>T+)d?J6w`+iuRu{ zo~myz-_4BU%Bpcz)=hi0w)n})w`lMC7C&719qNDN;s?5JZam8OD<3v1D_Heb-)b7G z&oxc1+Uh$@xSB71u$s~K|DxY3A0Yp?$^R+xznT1(lmGSPpOK&IKW)F}Fjs98UhkM- zrOujjiFp9@xU;=K2iZF_4=CGu;+;IEcEGsM+|=G<+?AO5ewBF?IDY@i(^=0?!!B{! z;>TQX;rayEKXd(!m3h!l(OXuT+W~UeC1Aj#E6>B`u%tcrTiR!>Il9XC!f(yX$5Q9Z zsQUo?m@(IwZ^+-yNon;R(ti;>=)2rMO&`xgju;_xTw?B9b4-V;UHb-e@Kf;Fo0x;| zIX(yNoOv3&dj&joH^%e=c%l}hEkl_2%Ef2-B1yzBEXxuKcvxf^ca(P^F29<-c+bNISu zvvPXsG#$TkEI#La=UAoHZ2fYj668+a`i!4ne|_t%kIQ%S{E3|_^ZT5$d7ZO(%_2>| z{0ErLy_Ej4BVFEC(w9^!|MV`;tK^j%vdR^D<(y+( zW#Hhh!zHPnoU{_-jy2Q3y46YxcRj9>@5()Z2ITp5`E}<6_||}y%eMxJ@3iDA3jM+# z&MV1v*O&hK%Aw}<%~r*!ycI9^+%%V`fh}iO-hZNer6YgrO8Ge7^R4sGId&bn@vl_$ z^|p*kvvU49^2e^ryrrw`Jrqe!7T&>WzB|osI9hqC2BcEC_S(0;^|6nwP~3pzX~o+s zD(3{(UGMDf^*L{e&Xv{5QOAdLyOrH$Tm5$Y zr*5UWjoDQSQC@T|iKqh7^l*N3d#15gyd|)+d+fT;Joz&hU36Pod0~gPw*7M)r}DOD z-fUm`!nSRO>$-<|;O023{rfA|UDs?mPBT3J*g5U?{x%F6hE4zU!_KfdIClP%9p8Jv z#jPW0)7=ale|l}}a{AnMp1yx~f9`znx~Feu>6MS@y!zVq1+bDcZFk_Nr#~}kJJ&sB z_wlcBc7Ns`(YV=aIy)7w(`?=5A_lm1;Q4N|Qpq-3F-3WU%CWZ{d(VsC<9MfBn>f#X z4b)EHEdTQ9ptE^6NkT6@^)}ZRloAJ4TK?q_xE(s7rM?5z&c9CHOZQKYyxMWo=f5Pa zoYUTa2d8q_xvqK6>1jZ3l4Hl7?7ZUL>8tLu+id2}8=d>+_i66#_bcx2?0@>^)2}|K zR;gT936E9MX8y)EzHxW|{{2@&C^3+nB_2W3x=O9WPj#cW)Ym4IEA(MWWZuui)!c@*V{O)wSa^FhDRIq=o z+9a!MYn9a+1jA_?V}0el%`@H41m~MiH@;vRroH%g_G1*bj6>KqE}>&X*K~O9m@Z-0 zc#9vi_u>=!HVjP2b7-Q)k4$7@!q_B)i49YeF8bTn znGxaGj0q=ZviO0SnknJT%n9c2bl*f{>D6*@c)>HmZ1{L{ zCC^VVk6rwQd7^n7;Z^4Gi$6C%Z=OK-BpW{2T*dQK%+C{EZJtEv-qa@C3B4M z8XG>}{36fS+VBPDmll6!UTCf%e35xR;V%>ZZ}VbvE#XVd3kY9oUPSmZ8@}B9GS9Ct zFIjxUywbds@KuC=YF=$#M)(@@a>Cb|R}j7q>-3+R>&&YOUvFMR_y+S@!e1f$U*?VG zb%bv+*De0UyxF{-@Ga&Igl{#!LijfG#>F3-x7+Y~^JbpkVctUcP8+_TBm9VYKjBBs z2MB-Nh95H@T71p?hWRzZkDHGWe!_;oN%#lmljfs@pE4gK{Im@}V?NIFXU!)Tzi&Qg zev|OGYH>+C{8KCEXI84utqk9@5_{juQTRFBe}zJNui(Z<|}0?<~HEcJ@z; zFQA?M%i{CqHs;?JH=vy@7Qe-LlFH(9=IqKU;cYAJ#b?d!D(>Pl>^b<0Pn&Zp$>Njj zLG%f+b}oL?+@UgCe8SwZvbp#;XLa@w-nnvM@iB9L&36J zw{u&<3oGX?K5Xt@xzpl9<{p*1E1@h+^yS1sOY9$0zG;vMEem8UPRHxI5nYw>pT zkjirxZ!?!vu35a*Jhbw{#aqn7Dlb{Q*<4zA1>wUhuUWj&TvmBK;Ug+c%8X|6Bw^EkEwiY@f!1Ul}|2SZLX|*X7MWX*vbuySDMFF zzC`%=%I_>*VV+R=>f+_*iIuM{US_VU{K?{_=I1NlSiHnMsq*c`FPkS<{)+G^mA_fM z$Xs3dhs6ucQ!D?pc!7CZcPb`IN^De@CDT~ z7Ed=XtlnzzH1i@(ay-@ia`m>0tIdn6=PsUNUQ)gD;>qTv)w?Zz-n^`O55kvM@4dLn zyrO!)#S_gds}Cf6RrQj^6U?itmn|M|Uc*_c$C=kwAG5g9ysr9q!t1J6Eq>0tzIyfI zG3E``XDqHTzry*FN1HcRpSO6Fc~kWo!Z%l6xVYTBrTUV^Bg|W?uOfU~^|gzKo3~fr zKzM!i&5KLTJF0JAJj}ea`p(5e&AY0YRRzJCT zpm|^Qvx^6q_g8ON+~0hl`X#~-R)2SKKl7pL|6JV1e7O2G!e6WY$>L)3k?NlZq)0IwY7S^w$@l{ z)f;$zG+K>jePwlJb&W*i;UCFYn#!@d%CA zHjC29-CU`Yk=j@Iz@TUcJ1c7q>)LgdNF!@hEVtII;|TPgYHXdITA_XM=QrV7?ptfxgqvKFZ(Yp zO-IF5S8nRaax;!jQeRaRv+btGjfUfh(1p8cQTkoQaa(O`WL8&1YYJEsxo~uVQCVAq zM2$vsm0@39gT7FvO`jRBI`39hZ-X({gWM{#sMk7do;B;8cB{c)Si&v|XvxBB+uWud z7$vT+x%N%F)l|KTjRu!1;d=~^wuUyZV^*@oOpSH!d-xsp<+NKx<`Y1>Yx<91-%rE^{FWp_Gd zZnxukU4AbMhAo?*gi4X4BP}?oXb=;WS4_#JQzV05vqh;VP7PFP(?grhaa=vSuI`M< zS~F~K@pY54Bg|W2sM<{mUTbKolw~s6Rv6S(2TE$fflBaBL31^YktI0{M{n&6A^8gY z!?W!-uPIYgwoaEA`A27RL^-dc7nQ z1jX4|sk&MkS6Zr~t+VO%r1@9OH#?KmhdozJ4{EkibC2pp)C$j z02WSQ)*{6+o!HUFL6^oFXtxUH0YRJx(40I8=4r4_>cluLaxhx9*^Fef33C*`2#+`W z_>)jY?CMx(fSj)AvdT<^)KGv?qcDvolY_1Tio9&r-If4?maox0y(y-##?i9b+KSh8 z-B!Kpf{qNu9z7^ZKO7;OMF3vd#ErVEf^3ZLa%!iZMMC=y#)Ff{p?JNqu|h2vmws!? z(H_OZS!65LQNg~-(iDJ3bYo?$;{paW9IkBD9X&wtf=?V!!g0m0mYFEUG7ZUb6d|5% zfld@H>#J>Msv5RRIW)4_Tv2DBgW%L@kX1l07FcqFy|wBs9Xwg3>FSH9tsXe5 z$7gi238(=C5Dv#L&T|Ti8|pYB@r{!r2&pT2fM}(i}%e z$L)4I-91dJcRD`K^UB9A{|SE)ZlJq&D$xuQ!5h2C`Nb<+#E; z!M3t>TtTfG*WpgN^=8!G0rT90^#b!6PLr7;1OnLh936nmTxhNJs1gvxvjHv$@#tD( zMG0E)S#gJdwV2a8>n)>~F}k~2P^W{fj>Wta`)sE)P`F1=s7K;vgF{Zlxhh%XfD@IKRV371!VgSNJ&G?2 z)$28}DVFhui5De5IU-d zJcSZrX#qGmyre$H$G#DktgJZVWVMQ3v{Z=%QU+X80721`NOA2Zv=iwpGXSol1LSMB z+N~9rn4()vc*9~IY+xy+QUKq*UKiY|S{lf#T~{E;vQJw2!dxc3?F}>4QEMOt1f^cx zbpz+TGtkYt<1(2Bwh)5KI4T7mTo|Ts!bIv<={Uy`b`{Ui+?Cj0 zI%3EtZm}3(Qi06eBs5n;TU6U>J5J{W%u@}=d(%ML zq?@)V;dN&Pg-Y#0%2>st9n!=Rqv>{3OOmJo(Cfm6KhdyZM8k#Fzu z6g;>WN#joN%DZ&n_=-hy&|7n(xs=cl5|}yiEcy6?LFpj=#G)V-Oe>EZW5o};!~k~N z@2~}OCO51SF;FjlU*4iqX#|t_Bw8Xr6myv;x&{|f6dXpj3 z!Bd!3PkxYMI@>=TIL&qegV3;-J$w{A@HkEvMb-IvvPo%OsCwa*9X+Eq_K8Y_atv;(*+n$gTP~)8+wxtNUCOa7D(bW_ zpwwMq8lqg8GYFD6PNJyH9fV1u-^+N5R+e$?3lOj40S;xGRKs3xz_$)VS708<*6~(W zE!H8|(HR_Q*P-s9+XYCPPTo1K&L2EEv&1~FEnyZ>?k1SWMDWPKoDt^1$PNT8Fb|S2 zvoyU$cA6s0V{zwMa)cPQ#5@noOPi~nFt6V5);f*V?jGhfT_&GIK`?Jsm`6KUah90p ziSne?%4@*^Zo*j@7F{|Tayy&gH90i^CvLGGK9fg^=UwTSail=NJ??~gu&bB}`wm7@~mi&eo+n|jv?JfZ6vS;grt>pe(oDb=Dk7J(TX$$x4w zy#NF?x|q-Ez;z2TTh!K6z#5{Pb&lg9tw|=6)2}X&Qn-$V2ah>gxWd{;>DG0+Kvz(v zbv=pwOGk`Q&ytc#ArsUrQ+j?Jh0*bxVW_kCaa?8&qbyDMy-Y6!+t<(*zg;wAA3Bt6 z;_Y%a=&40lnypn^l!VD(74?8F(Lp+c!*Hl(haM0H`TE|OV4iEzr^8>uye5gLpKK%t%5ZRvq$Q>$^rp-vFkeqwYrX_W zeyw#IYk;gum)WjE-nzsNFt1g#gN9oJtJqW}N^@I^Lsoi~MyU6#R@V-S;)~x}>2WZE zv4(xau%tTJ!{TgTMttGJ8taMBilY6%1a0>0VKyPBFO| zCaw9P9hisc+;!#KO&MWt?3x;*lR9Bur^WsU)yc7XIZhZ-HGRV`jWRbbPRt=J@S!|T zw1zIMA(}cGcM0t@n9=MaPPJB>K0RaJb~T5=yawH4gb{mG#d1C&YON-57h6p`4@Z%C;0cFs#m(#&2GnAC7Yv)h$4V_}bJpfUj^ zD+Jl?4%Sc{^A@^L5PTH|GFDr@=(K!mx@LXWZzOEj@dMXuJAC_OD;0AACHxQ^h=sad zo58o-D=B?-)#q6_2QgY*h;REKxr`pkh9?pU*E;R6+YvTd@3fGZ5yW5xzU`tA5|L2! z@;cb*Y;H?DmBJ(uv2D)F=mlyeW96V7fDjYT02|-=3z;bL(204=uoss=wX4T zNDL|Tkr>^@A%uG2>YD8m9aLvR8bz~#T%YB)({hL2Sq=UY-R)Y2@*utMV!nd4(dfh` zg+mfxG(*&4#vBVK4B(?AFnci(`n;BE*IL!cAW9*jwbv+}XRG`28cE1*Mufb}+iRi4 zyjEEEnrneeavTF94s3L-1$niNyoaS7!BqM!jxW`4tmv3OZSSnv0ds;C_rOHzR@Exa zCbfL8cb1RHmkxKp02e~Gvs|%P%$yH2wRaW)|a=K zSEN{`gEU2T(%OW1GLfw{{I0y)X1nJmt|b%hNgYZ9ld86cm07)Mds@BXgmTqmuA7u( ze+u(t^avRlaG~A`*Pu(2#)~=>h&06bqw95ib{T-vu!G6NiF^q~G#PVIn>VPI^aGBk zrY4kdR&y3(ubo9cnO0F0EnO5^I)})AqNzv(1d-TnC$8Rw%zMR%?xJ%^M4J_9$OSO~ z1!4;VD>W$OTgj8D4K6U)j0+9ac7gP7X{M|ux`Evk4(rAdiVSuzvU_~qh=r*OuL3x* z2!IjC-N1Ee71V%>$tO9GNV=zc*W+hP%ez)BxGCVdpcU<+Tv{kam6nD+i;-BtGKA;E z^iWc+%7#^xk|y~~ka`HUJet*^RY4clvbinkREhvmC0UwSJ{C3G&7d1IW0({YFc`LO zow-cs7`HaXT8e3G9HFS1DV`G;`Y4*sy6?G23Yrt7r?1Ct#u9%dlNF%R?MMhxMRLBc zFPuZ>XyJs3)L%?0)(q*SMM`)vi~y9STcR4Iq%qVm zVaU{JcPGK^n#M%u7MRy*2OVLa3+AC8lx~T63^;QJ%4BYg@_44u{(5Q@5%Xv8~%fK6roz7po|1HDG<*iPuVgD-jRMf(WY}zDqAL&q2+Q z54b$*3(PBU4UE7SDT**Wj(M5|S}cWm&9EzfGR$jBWjLvmB<+ED+Hu4=OeSHT^tZzO zCz#g^85z_<(Hgom9fl0c0OO7{1WYhGnj9S%D5htcw;pr2g?WVXkx8}JRbrmxD|fZW zV(dG;7(uVT3P9|6AwnC>wDc5_z&sLnoCK~>jL-yF!HLpJAtI`PHquZBwHT?0_=3R1 z$`puDiNq%{1KCu_MaB-Wf(|D;E0~9~n8$mT#CDo6!muSPvFAjxxMQ5sW-}~89bg`e zpIF5ZsZUHp^Kf9EFNl&H*s|Pfr4=xbNXXu??Glo~^)vvvj=y36(J&@yD)^lQjFEII zMC&-z0wp_6&OVEzg8JBk)Dcvcb1q(3$dCe%orwxAe`i$wmabl zeu8=I3eYl0!wC?rBqFUONgvDuB%1XAyrpmiVRg`FU!`Erz_IhRR zEFTW_dl|1e9&3}Jn8n)RV4Yf?n9<&{1)3tU>!Q83fgCxcxiDF)dsZApI1Ey-E{cK> z#Lc3Ja@*c4I2X)|@6?u@2kFBumQDishas;v@@{O5$3@ka^ezrqL4X`3nbQ#L0sX*YlZjhOe}D3HL#c$ zh?&;t5h7N>kfG~=Ir5!`yx6rcVBG}sSl0`W?gr-BZ4l;W=*xq7GNatcwXt=a+_B;z zvD6UPixELgv6yEuo~GFy@*9=K4~&PB^O_MOBg|{Zb!-AHCW>;?V~kJIlNe1fuPe-B z+WKx9XbxlH66P_Lg&i!U;xRS@>S$N}9)CW;?W5d6Fl3EA0@??lkXI}hkjQN-ao0&Z zg2tE`sKlbXs9X|J@9dnnxTN@kz{=nBz&uGa5E09mQm~x6!aQ^cSx%7miW`f4fq7Z# zbvzx6P$Ob=xQ-u!0j%$C2*)C%hMi6d9%1bR^Ta2%QLG=nDi`Lp8F@?~(%x4?o~aJN z^)>hu3+0gVI;;<@prBnBs(NnFN$DZtt{r%=%wnEbV4g(4CFVI1m}lux$cHLLLLlTX z7;DKmS^+{Yi{W6W0ov2|u3yJ4MI+dNu)P6eN!@l_i+Lg~OS}Gr3@FdkLd_2lHo+}T z1u)Of3k5&|Fjq=pz)N&|Hz5pw2P85Jcm(KQSjx0i%3*iQ(o8c;&X1GWPDTP7L%xDr zsFO^4$iUeifA zDbq;0Yt}-?27AyXJL{9SyE`5@(eBXjRza3jl(z?i*np99S*Ns5L?h%PJ1D|LYs(aG z%ApX6m*7nJOdf^bzEupJVd<9_fGh9Ph0HC_MVYVT=~{=w8S)XA7Ve;f(F8A+6Q9YK zMd_ZRz)E~%KS|N6GQ~=6O?~;UYYz|H2&WuY)|0zV*N5I5Jfk{X2TQEyVP0v2B3%*FggRy#q3TYaHaGt=;RSyV?xV3##9buqK1%S zEF^qXtJM(-Nz@rixvkfOCHd56OXn1ch94k6KrSWrIvHF8no_bxLR1%(OCs8=62Ssh zrTButwjBZTfplUil&vm$E_uU_$J&gxtNk&s567+3;XMUAy*yxqweiTCRC|d5yvk2e zF7N>Cxa;L0JJfJPd)ka*sao1%N4hVAABoVIbFJfa5*pZU$Axa7fy-wssUOi=>TT%k_B3oT_NGaFeDTRLTF&5$~^}(4mAP##e z{Npx3ImXKm>YfkX=?yIkz0eMh_B89Ts1`Gzu?>|4XHmP3SQ9aN5L+D#IjB=QRK7&k zwF0>UA7LmdOfDrg12x!=k)!k^102dW!4aLk-k=3zHty7IQ3#<) zUT;XglTIt~GG~>JlRm0*n!*llu$5fMUslWRDa>mygo)4mWZ?kwmeq4xTO(+v7yts6 zyP&~P#sOLyH21+g596=JJTL`L!dTh?%5VtWT_K0I<0+-(0Q0R$r;$l;Y&uypb{Yxb zrkao;LaJ;k%sah7#MhC=VEs_x$7c&1RY^sF(OtV91Mhcc6RJ-jh$GaFpuA@l##)V z0Ii`5Ds3n#dQ6*G8+VLm;3w=(AvtACTjp&{*J!e=LJ$Qzh=f8Q2H^&_LcATLfJB{f zj(mc-(Ap=9o?ArA*w7W~i9}szjl_PZ55;{qqhyVQ=q@UkL{w%JzAo}FRVlt8FzsL= zbCV;EI43bu;WhUI?!WnYsxmk>z3H zc|G7wfMs=GYwx3r)Yk1_RZqIE1poTG)*!2g8*!~P$dV^6v@sPD8J2O6U#tFN6NMy^Yz=8rTX-yHIB(l4yQF2k%LvbuztQhi%TXYUjqPCRD!sWT-xPHI< zJsi$wv-x;j<{pmb^XYstS;k93%Rvnc8ggNjq&cEh*(O-OYcWriAk!rb9T1O02u*t^ zRLFPIY1Ns2Kg;5DFz64m3~{Lw?#u4k=6?&i*cIln+@t}Rhh&F=uIQFR3)<~WYbFB) z=8-OB0h0*r=imiVVjh3D5X?)Ln1>)3Aw@Si zp<^*G5Xg5~f0me+?_pjT+TL~SiksXu7%R(q?ALQo^_=BBveA z6!R6hp3$?Y+fV2ky=tLOgAf=Q?VxIvM-^*yyv7v9jk}Xx;)5^|MU-CBTqkE9G82It zxZPbNanS8cxg>^?Ng>*c(j^g<9;;V3kdy>t0bWaQF)z!cFQ02!v~)m1CP zkCCi!iDKA=pb=_OQRg1!_4!}3~kHKYB)2^ zdOF=>otAGTfU*&gBHhD0jD}gCPc6`8Wxt~{xI9lJW{%i0fuW|!vl|DcXA57Or$ z3Vg@YcROX781UE!={h}T0HYd44Tdz2Siq2(!m!U$Dl2TKp*4^pXBWb2*uN1A*RasR zs9+wYI4%oBd+s&+b+n{br{7B5W*%^07RI9=G1l2u%yiQ>J=XV@>oFFb%aH3^Ro2cH z&>L4w{y--UIB!vxGVOMN-Qiq|0 zF07!|*irVZGBFwfs`O3ncp=B1Wcc8h(_>^XBS7mWba4<3nEQz6Q6_S-uMmZq>_$yA zGxqDeVM^EN6URARbV7_G5-}{tqi!+6jrnvmOuhL4jAU&%q0h)VVV5butH6@T@2rtH z^oDSaVn|F1kzG_Si729VT~fp-?Gl8R1g0JAvbq`A!N`KSP7slzi(&w^;Un$kBBbcp z0yh|+f|w2CVGP6}*#*4mW48)ocok&AHXp>nU=-&;FjPHQ))I7kL?^WgC`$mAEce+2 zvD}Mni=2mjP@5nWE~zOAz$uIq(hLR}CLS;L*=Yz8KMh7%VwWc={Gr#2B6@&e8D?Rl z&!5gsAcJtP7h4&(PaR^Zej@ygfa4`&QF7ruCr?Iwm=APDS|vFK@Gy_M^akU65@eDw zk-#`3tme~578O^mOfarFjVui^AR3%d2NP#$B?7?!6u_a>XX8kcozloj3zbAxVjh?X z?TR>Jk=I7!@>jyPL%C2BGae3Qp_AyftTT}=CO1H?n@q=hIj7UD&CRX(yv#kBZEtPx zyGV_cm&5~511OS9k~|-X8?kX96`T%cnVO5Fmrusy zNx#nyM>js$e~`l;8n~omFa|S(y=V{fRA%8g+X~zDIk&^U9+YP&^O%8#yQ8qrQAB1I z%f8leEUZh+qxI;1U>@rt^Um|YyaBwr;WY;Z<_%g|r`bcGQ!S{Zh;&|yeQ;r(9|`k( zEDJ0{aszvq!_Jo2_KrO*9K&HJ{t1`|7t3J<#lglm#=JPh>dGOW!i(3I{8oPUqAF0N z*Z2d^vS8=BOl(Fu6E#L7m>bL!vL8pf<4+~#^-IhfG?5WpW~Qv66qt*g!aOENfq5}D9$)ho zlLgytU|t+RVpy1eR0Ah7h>i8xc%1p`!(5n$ym?+X1>Zly!TdX0Ch%$upMVibI2a|pARJMT54UI5-e=A5!aTq_%LA4=VV=}% zFb~-P%nRsM!r=2K>QQZ2$Cv_x98~~eiZ`~SULVZUTAD|B)PO9kRZ0vP z7MM54AU>WuY$6SK$yiIo!~Ey=((wQm^V&$O^gT`*h-7de`$6grh6LJHU>g<6U1IOb_rSMVa2_a>9^qzB_ z&~kQ2E=_yAp}y&{j!~vLd%Xz)EOy-`<{^ak$BmX%!RcUbu?|U(#!aS!0R}!VIo!X* zHD>tm?h^C*!aO#`TXp+~4~ixhm^VPHg4)77El;vcVK#_|;0{(>xY62C*sE!*VZqSC zig5!CgB7U6ydlf=rr#V|%HK7X@4u$Op;rB2Pj#Jr7m-*eb$cHP1 zc}SmrvtY=cUC_ng`qTEIH9f;;R?ZXKmL6GS$+}HN3-k1ulRJ#%k@L{TZtOg?f|I)d z$hZ;a3F;>kFwf#PgMSjY#5{Mv$VkrX4lU*}QDhBe+;dhcKn+aju_KS5Fks>`Z*#iF zB(#{vswM#mo0wz>EV;tGO^hzNzcFI&H5zOP?Dg5oDMRdhqNzv}bk|5M%oAD+DOnv6 z-9_b+h$;Z{FdC?YAjK=D$Zs)Ec0j43E=xaf)5tifg{ZZMd2H!|d0+t5G8?AjBtp!A zSN$v)a_%BZ`*F%ojw?iI1m>~Wk0YkA8~d5gsqx=~5U_k$%(0Y;ssT6IFMFd0Cu*d2Hw8 zti9lb7PyR~fu$>~a-}|-By2B$RfX&2Q&4Ru4T^od}rUjoz2ZM_k4YKXPe*4J%wk?Mh#M`e=*ZmK$H0v&=Bd+3YJ2BrdW~_f zXlIY9S$x`}I}Vu_2Rj$jvcx>Lb8JKr#Bi*xWuY{1;&2d*2Hv;4s(vCfgZLoiP#J-RTEgb*}EFb_Kqn~YMASc&^?I|j{$^ehV| zJ*FiKg^NWFsff)lSeSoQgFUIm?ApTUk_VgPUJPGnOY*7D7XC&(DUg5(L<+h}90wB& zYOz1+k(jX%-9>4o5DAqPi$4=uRVlt8a0d3W2hq0{Mwwtcks9NZF_INu`z$g!>ohJm zWmAj1*(8lqlA;3SU>>&mte+tGz$pDFi^j8bz>=YQuwBdE$GI}KiFt~o==Xqsr*C-{}pgmNP97I zzf}&GX%Z&3JRBDmM~fAL*hqHL+FN*#IBd%-lZ68@xAif$rkL{w@|YI!V%ySdTT_Zl z#HRp6>oWoUi4V3r!ugy{I=PEtxI9>Ggpp1w1|d7{S+=nWGt0r~Wf3Rd zwW$y0b;gX0FwdK`pi4JoUzTMGc$3f`a(*OD2i+eOa~~(U|kATdr?204~P{ri08sFq?7q)kPg!JxSs~njB=EWagYDR zP4s|b_;Fus0&3dw*;QVy(X_BT>a9;;zQ9dUR>LUG+iVm7ya;;g4aQTzPZsu;aF#An zR5#3nJ`xGTIvB(>QJ;IMgZ+*p4Z%8@xpV?pLL@3uhOuj`G;+fMy9)^OCFXUzI`*NZ z(#DRo*HAn|^XUv@S>cAn%*cmM&s1F2iH2Xe>1^Nj=GOXN&aJJ32M!$E*(q~xZXY_h zpWn;mD6{#L<;;QdxL$8Gnnw1EL7K%V2h0XV=$Ij@ImZK{rY#B)bv$qK|Gu$hGD0C9 zYO7>28ICqL);A{;=1!2GKE4vnn?Av}n3sm5l=+z*D9I>J1-xNs_Vsb?Km!m^aL z8dGNBQ`8-K@$LzjHwgV^8p4&b+Bp=m+;JVkn7v3oapnJ0%(Kh&67zJ#kHd;Lk9h(1 z-;+DGtb#mTMXf0;n*&)XHnspT4E0*@PsF<eS@=}&uXvq|||5*YkgVjgxtsiNH^*Ma(G zKT0??fVHgvJDth~`XZ#bRG7Ch=YMM?Dd!jZ(F7b%d&8_Jogf(|y=1=88z;#+^+fE~ zS-h&S4+8z&u(^3m^}^50oadgZoK19SW;@NR_>$9}kj^VUN>< zh0nk|nGcyL2=?s>A{o*qi4#E1Vjj8eGCC3F`Lg;g8Ea|RLqG41`x{fxEClnQDhET5 zUyuvw4TA{g(QxJ*jcbM6=@J_u-N<5I&ae&#C}F-ZPaW*DQ&c)Zg7zs26)8uXolG=a zu{#67#U8+0V9$yrVJTu~C-O2joiB8WL0N#Ok2Qvd%rso1x3fepl2HhTGeR z4;?zZyIbbo-go5i!9%;d%aZvttv5qEbPK5M_s8Q|9NG_~g?S*bPUI90QgA$AiFqjA zll7(}opuZy+sgOw56z1|#+;b7FB zYjf2J=I+REPgA}Y0ELht21wD)!0m99yA|{QTe1bk`h!tbZf=)qVP3Ci1)>PiRc9xe zGIC=Lx&2c#su@@8?y^1>a)aiZd@qAD*~lw=`M;G)133Zn;Kybb4Z&Evi(=7Mf?hmM zdNGS9KIOb?YPZ|OXYyrHy3gQoDQ$7Uw?)W#9DmiHHR{g#@@ZK9odgU~OBb@Ib#fP{ zJpg&N87Fp><6(h$Sp5s!ULH6o3o7pV;0(;`&KMb;=ndv=^dc`FKt=M0y|KvIOW3~~ zb=@p-!Z|$~#G50GUutqU?GlZV5jk3-G!lg$w;{{H-ObHWd|+do16>3CzokoW<&-&6 zY|hFk62*ZM=kW$ylZW#$i6z@Xc~QC~qSDLimG@PZ;tK*p;?V2+)2Xy=ZM%9|j}##p zGiZ(Gi5U+eMaQMNvDi~>yB%(C_Ol+_d})T|bQW`BYyhv?W2xh8kj*#xlQi4RkPg^h z7^2&ATvhDCCno!^D&2i@v|W)8T5eTqTd;^p*%XX zHyLcr5oDrH&H*!qYtUwMv=`AEMsb`Cb6UgL@cnBd2PFRrcBh;a-|+CW>Y({ zw1`TTW;iTsT;Djbe`j}lFXztADMyZ+a`0f8duRWtryM?d@Zd5%+qC_4ma~pJ#n^I! zd4ofEMT;0^hG%K>5q^LgIOqyDYt zS9`{6JS#M8`ZI*H9=l*+%o#b@sB}%{OYE<+zuiwblH)Lx)4@bm$3f$g_&!E?>s3Q$9H;iF|xVNKrRmmO{lww*L}~yJ;nN2D5t11`CuhG6bCANJ+Y>2(LDIz-mhlF28vS5d0d0b$9Ve~B2lj1` zlS5mR9^$wpr_y60>_r=sJ}+{x0dxqJxR-20amA3B6e7MztP~=lvd1WXJx)DHKE$BD z^w=PV;rcpOG6Yj3_I$v(h{zd{4Hcbz7M+OakJi~+lJK5_qn+(xKF9_=&M%CR=P>FF zr~M(vQnPH95A)4^!&#PZs~&%lOwjF<)NVbpfQ$f^**u%3q2*p=Tg(FMJY)Ibq@3D? z^oFHLxR%G8Qz@*#OESzx**M!b8Og{k>mHKdd`O?tUNY@Xd(QfV^|D9eG>_*)r=S${ z$FEOViLC})^gFlGA9_ce__OK04MsWc_K;j@=g?vQ5#gvfA@>W`WeyY#Sph?Q{aXO3)nq_n)LYS6A2wmTY9UEbFHb)_z zYO7>pV>-uNxPN1#*B`~hpV@qtZ_MT~i+K#;ywCg$`9Hv$fLH0*H-JSpIPx+`lm5U# zMxPEx*$B+*_hCvt@j=~avofa~R08u7Fpt&?^WqU(A7CDTCdLal!Mvl1vng%g4L5~( z>tLShX-Clr%Yn<+Cv2g&(>|Y__$k&@zYu>nt?gd3WiZsIdLzy*;V|wM$UNP{Jh)hn zk5F*v1jV7a(n>TyKvi7f`)T2|POI#tn$XPZ_SUmCn5%a{rrC%SR z;+=?jI^qZBt&ilhNZ+;G*u`iQCwFN+h$qQfGtD@rgqtiekHr)j1)jKZLB%g&9>+WU z4MxUd-loG|mY=dOi+GPFHWfJ;&4I1dSho6!~rZGfsN|C7S0F^EkQ(^s(4eEwf>F-w=M8J~YzQA0`u>&CQUUsaiW5Sz<9S66U3BRtWRvDZ*KXPD#6x zF;JSbJ0VotnhC2$e9|<^$Jr#`nU2t$3d{q`h9EuUnf9lBM@s=Xl#UQV*GKlq5{PM+ z(G6fJMF<2pEo1dS%mOu2e?Hya)ChO^Zkh2KjGSJ7I*jQJCfymQM!>w3jYVOe72vfI zg5`TM=?|v9Gn<0nSYcdO9Xt{93P>owf*1~@uUh6Jm`!(gw4-_)^Ypcu;6-jG@YpS$ zq50OnjS{sKqkQ5PVV=?)$GolWLU%1|Ie74l(@#I+=+QFw!NX^saT>puC8Nxaw)81< zfqCQce0@9PfVFk{iv>x#w0X(8J)MtB%-h`9+}LTmqtPZXjzSDX@1U8?)(`C8J+Qgi zA54;)2MBEgZ*iym%FZom6bA+w8TeTtT8P=+(tz{Ep@krd0w>LorUfO$7U%#qaPCw z^qh1%oP2L*13o(mGOVdVVcOr8NM}D$9*r!aQYOE?;9DMwoJVS{W|Pw4irw8fL!po_ zq`h7=?2i<;^hgBOYo%7+rJJR3i-Q7b>f*a>{kb4Kemx&$ES~s2XZiaq_wt3DR~Dta zwlxdZ#YT^u$8i^rKYQkHj^%stTCrhvLYQpO)swoc&)iJcnpw^2s}u(=im(`h(vkZBJm*Gf#QlG zF)2iOQMn|d%^H$Rrye537X+T53Wnowa}z5W;uDsuK65=w$k_K$(LGKDXd8#Gu5^R( zsg~JrV0YXfVf|n)Z<=joY}rlb!wEV;)?4pS`rEr>7W-Z5$$~*Tlf5q=ie1?1od9RE z_1-j%=OQ%LJ&So*fa5$H=W5p!DDAP^k~0Oi=a@gTF`qOs74m6s|9p}Qv3hJ157SK) zA@u5OK9~=jt=S+&+N6+vx;b_VN`a&Jtr-N4M>*s#7|R+_(3xq##`M6pjA`DWpRu|R z+4LLCM+v=Q6xaJR>SMnq%5oPL<%?8$fp|ViX0yR)jyN$x34?cCPIiNld`M8b(P)cZ z)akSk7sjLQt<5c^kz1bw5Bs;bOU&bFEV6~5#l~(NJh1;j@eIxP?QYGMZk-tA6Srhk zsx-4%S>wK)Q;r@!a$qm#;lsDQ#Vu}m>ZxV!!$)s*%QJ3y+G)%5gTZ9Hk8dD7io#8% z8=E_Mx`%ntB-i%})}d-{Ok)fPavbv8+|Sw)XzPSD}17e%p26a<4Zn?(+Z{pAiiUT5r zwAYWv!?E5k-4Jz09*)jgR+b)x8}mRmXXx;3_2!)k2`2f5Wp1e}1J1h+ICCZ6$7b0N z#kQqK3c~Uy&!kY^0EL&^keLKoI68m_3_y`h3 zf!li@4V{R4+RNd1N3f5P;qJvd9q1C~GpLAVHyv+?oZ}w*cN<}Mn7Qe`Ne|oEfsHAe zAu|WHvOn%kwD*Ng34t751nTbTbq($Ok zeqb;mZf9fKQwkAYbS{ag0x%Efqv?okF~uuJo>MB*7~>)M#9_BM9E>>^kvg+{z^MVg zy5Qt1c3gd9$PK$P)uK@yIxrbd`r{#=PtEgv$U?*E)_7`n7dHme;qIZy)?j!*^)Odr z#i5NEpXG6c1j%)jZ}X{>%s(5Wjgh-=HUj)ejL@(>a|%j9fBe1~1V#u{`SQrb)^ji- z+?pNQ;SVrn{t(R?6WtV@ZEKR!8wPP>ur=#Rdyey-3yW&26R3>x8NfXpZy-*r_ct&! zFl96q);SJcy2)f8Up>sM3XkS6mNu&{%WZBPI(U#B)DrX1zgT6pRLX5`9XWLHaFG(4 z?;hC4hKF?<#Aqj0+`)87^g2bQ3 zij#w2;;sALgN_6Er3d}3q`S)zGD`1vvU~$;YL}DP{825pKjp80C4CNSBdNa#GsIuH>F|=Fy{DgIgWmp5$G3eNgsz+V6|b2e+pK5XTZ}khMuX=^q`>i91Ni zN+G(7#w8I|Krfl~C+n(8@dbg`nP=GJc6Wh`9-9McJf2NaS>27nm>o2vFizAVr*L3g zH*8W2BcC9idSpJHk7j%l(BB*!;8@mpeP_0g?P@sM8n2HJ9bMlYjgL~#fSsl-eR@8e ziy6{9+sKE#t$oAIUbYSAuqT3s*4|-FM;0B-hqSA|IUMyy1F)GXaA+Graj-s~Le-7o z*65V&jp0bL8~8Ns?@mEOnxsXpdjRw2=9t98aqqyoTTlwK0{*}j1h&#((eJTUD6kLq z`tk1OsR#K(n!R8$?qkNCt#`-Moq3Pm^Z~!|7BpgoO8bKjpIqhW{#an+{sz1He99Gf z_iZDPWcq^unhINdcvrgl{D9R%3!!E{JGg)U0nL{GOWT_VMp>QvX(}?|RO2p7Wf~vz&9-67Z*!Ni=MDEWa?B z2p4F_z;V^-i%(WoHa9i3 z)YXkYU0KuGoNcbF8@rzw=3?lAqK8Do;_-w+ahnBQ4%wp7lv%9hh{!=9;UhL1EOuq( zs{E^>k!UyxJGMI-4ne041k$NgIvNdxG8O5{XjA}>cTW!QG!l{=DkE@!mAcBKE<}Nq z*)YIGzISdR36LY;$Arfzc; z2dL)sF#aD~UG~E2v3c!deYsdK)}YOza@vBnaxK=9a*JK(wXrqAdu@I@TOB60GBeD$ zA;x99w8s1bT6MM}1l3-OVT?+QtV?Lj&sL$F#XEj`vBr?qf4cB+HTufsD!ag<70d1L zKDphMRd%#52s*cxUkoPw<_qD^heKayN}yz5MgXm~uyK^yVXuQ_0PTO6p=1wl1Nb-T zT{fLH>E-=?dnV+wBi;noe1{2_eQpeWfxbx0Rcv&&xT^x|4F?6ZP;U0vTt2s*FJspW1oqp7aVt!45Qi!9#nh1fw5Qrdup0S+pQm_>%ER6=Ll1ON|!Q%u~d5>S~^hCVn$PG#{ z>J0lJi|m#%8?ObQ;|~NB%ywUS5H5&tsWu!E!n}p`613j|mr3hd?q z2uiTp!j?$5s*+jSSXE<-+04AUphtd*L~E)ls|&|?XDX8jj4hE^O*MOtaf=NfW%mRE z<6lfwWE<-ms;dj%u-WSBIwnl$XlfdNx~{RaqphR4dF+0V$L~u6DZvHJ7JncXOT#%^ zNRd_xuICNx1L!6Pehxl@gM9(Mm9OMwypSdQm^EJVq}vk0+Ps)zFXmvI@W3<#+I2zt-ll#{(f($c^Y~ zf6DE2K*8g!8avu-0d`BRn%Bjd0t&P(@F6ImhCA%7hruZ~^{gTuh^7nf3=lY~dls!O_5*`6Xs$Xpmip z7-S32f{wuHc}_y*%)3loR=>yZU_m^E)hiTMzYw_C6%en8@HVxFkMMRKR!Cw&AHWR( zA?^qWAqQLCrEKLbY%Pe>@mH~Z3h1POfDnQzl&M*dH( zID9@^fS0QsP7^B;0S&9)-_VHKWkMkL zTwr#8%mo7Y9K6pLFGa5ky*(XpghGy*SkU1{l1s~6X2I_a`e5|2GO&jjR*Rsw3+ndf z+S;h2tt#e60~B&x$~BV-_Dsx&Qy!j?$WhL2_6pVR0Ip?XAqTsI(VdmjI1$+kc#B`~ z2E8zsu zf&W=m2%C-hdcpoN_!Cct!>kc4FAw-L>2w9lGF##?Xq|PL%(&VBndo+Vc)sv(BH379 zTVJ>n?}Q0%yrGWcN=}7Kk#!_3-#7tE$^to0{t{KH1bXxvOh(d;9p)O|4TV zPntYo!r1+Oe>hkLq-3<^KNSuqQ&mnr-!YmED`2zpj=cWIKH_x76JeV}lYdnvok`bf zN`gVa(Ns7bkJs1L)n_vCRJNf$o5?_j=Yw-9UNjR@^NNkY;%yB$DgqjW)i}}F8*DVb zAeb1oo~n?~8*;&HS;G4rsc_U2^`U2QsM60m5&IiY*&;G0M}0m2Yn;B-V_ zQh__(;ZT=ZYk0o&GG|GRS`9_ZR%1$*mt^2tWZ%)-`Dm%jQ4%#75Gtf|1~er`t1FdC zS@IGtRD;kTmkXe!Bov0dAsTg{odQRD5M9ldl#Q7%SwSI0hb;)y!6LYXP<|}{HLoq? z59P11>n>+tYz;ZXE*8sPSak^pukkzMPDcq=BUs)LcCt0?4m+bRw))E0>O^zwEO%Mh zI{qrQuZ(yYF|ZogWtb%}lnFt2M z;g&Wh+83-~#c#i;@C!j}a0-=_Rk0Wc1dQ2gN^~xyG6pKb94v%VUSvP$b_9dzGNa#V z6l%lnXw=n^jJRNMcbP3-E84V35bYeWAk<;OUhdR8T)Ii^*~Wycvpy9PN_0`zrCd81 zoonFS2mnqo61nXf+#GObePLXyNkv`k4n}oG<#8gi7dXm8&OjvKa@pAR0)eA0M7Kok zm6c(y-Qhxbj>Q*3$qBj`qdg1LfD;GW4I4?}20dPvH|2}^Y8xUMufNeRfEpoZ3VCz7A*!4%8!yBJk0Vv#i978naE=Q~EFz&R z)9AD$xLqM{)D?5ZVHo$i9ae_#YST!sE8+{dqTZM%;mxL^9DI$y;{fU00FKU>kVu3=DQihO=}Ecmth*Ph3JJK3 z$Cog$T)H9_E5L*^YRx_#pGY28!1y2kDg zg<_F9Af-}xUa`btnaX;PW32lD>&fPHm$C~eKEVG}MT~dr@~^6?s;SEAjKFtQnM#1e zbaOV_TvL;-Y-?$5tEmZv!j8zos#h$8wEWpgFenQj^ESi)W}QBaDPm(Vs<3Fa*xQ>D zkx(K472beCu1i&fDk46AEYTPV2VlYQI7>W!xJ}CaK7-b0s_`KR(B`oFJQ-LRVFdPi zbvB{J>9qFyOf5PcK!>xXtlD8}3~Tl5D+ZUl!s_>yR+N>(g;e5?Ycb}PzqYp4ULZ?L zh>17`W0I)~ws=uyu^3!T1>LvS$@F=4-S1;}20SP#pU>;}COm8nISXqdnhXSd<7+|L zjQJD36nx4Tmnxr28}(KBye6z=UYEZV9EPF*eyX*^jVy ztnN$Qw7>a6*gW8HD77^)+c)gk&K8p%s;fT(1OU^BCs~Vw07^3vuPZmld}dE`Do{}o z=%`8iBS><&J!JPMgXu&phFc|A^t&xAhUGkYdZtoF}nuT3D>vLbLP&pt-wmf8fA z_h_C-0hbmx$NU|U6t1<@Rs`4`jPi`m<3waH@CpfEEFJd;oa}mmz!ib8*OPHKG^D~# zuixQx+9SzC!0$0+{1IE!3yB0vIdCtm_iPskRN}J+gR83}9ZiMN@<;rYf#yIe6|JaC zR6q#$!!?nLXlqBhAsp?9dO(esuLg+67fkuVtFU)xJV9?wT?mC=3(kRRfYIHw4YlAW zZ!nMuv2;}i!`^Vf%LiQ%Z)8J}ur}8KS`xVoY>jYGTxL5LJYmce1%FCsB4(qHL+{l z@?6>4(OfmQ)HP1->X_Kl!nnnUj|TA3s;co%woRBZt-H6YtMCn|&K!Tb zXWF6#x%qv4WA`T#nRFXMAuaCw1DQ-?V|&nx-UMth7~CFTz`_#2J`xVs)@R&-lKiV$ znp(3HOUz8xH8fUM*41@&c6PP2)HP1ItgE}FC6P#b)2mwkY$t3Hjcw(G=6^ndGwi6G zh($MH|0)?IQZgAwMMOnxWD`x$O4>nt=u|q7E}+-Zb@T>$FWt(Oa#k+GRdQ3ft=tRT zzj43gPKtD*TSc2icZ%*2{YdmP(U9nOqF2T9#EZmh#Q$l(#s2R+bEmfPm+>?CettHe z<2Ukq_yhbK{5$+#_%HYogdD+#C^*sn#f2K7Rahac7rrMvAv`JU5%vO$nH)}s*AaD0 zbIfwgb#hLrQ{&Xb?t@O+kaZo-`OYPtm(Ps;<-%v&XQQ8!zv=#N`!Dh6D9b64=kp_w z9W+U+=tSB}r_uRzA@Z}H4$`gkKF-XQBR^I7{2W4ljv+rci*84LwutT({aEz4=qb_5 zVj^BBUM1daAGCkY6W)xDe;s`HSbpa5gZ#7nA%2)Y$$!p&DU={E0UAI)Kh^pCtQH3U zNq(j}raNYjVC;vr|A3FM$H)U;9~s>-T2DGi2X_l7Q9N2pB%_l@_Ko~z zCxC`D)~A zLe6B*)QpPX4W1c2^Yxi8Pd|J1le2$1mpF6P*&9z!JG1W0)HAU&sWXAo51!t3`mPJA z(|4S{{q!xT*PqUvZa>}f&S}>thQE;6C7mES z-%n#ZkUwAe{{)Wj&;R~^{kNFRC38q`{`SKE|L-TO{^>2*i)W!rk;}<4vWhOFtLYkg z1zj%QBEDCAk9e#2`{Hfl`^684c8ebrKP>*C_!04=;vM2$;@#q{v>V*mN2DCaGAE26 z`MP=Wt?V~9_G^6qjf>wpEIcV9Vj@93mVxVwh=M3dG0I#`G(<~uL{CbHff$L2loB&3 zBNk#s{kIW2;fX*T#7SJlO+3U)e8f)zBuGLeOd=#oVkAxyBuP>vO)5x+RFW!EO=?Ij zsU!8Ifi#jVX(G*}g|w13(oQCT-zJhyGKqAN%OF*zkZ#fgnolLu$aFG;%p`rJpUfh& zQ4%?n$2{=s0_5jWvV-g-kC7+HQ{-RC3*=Yi*W@?gh<#)~O8q5rkQ^e1$-j}`k(bFU zkXc8_AIKlcYvfIGlnj%%PzHC9jbszKiL4^`lIO|y$jxLextn~K?jk=Tzob7VchaBI z-H>(n(1+*`>2}dU`WU%|Y@?5m-;y`TLu3QFjqW6i=}+jx%L zxt6RZE67T6HMxeoPJc#@lL2})SxBxV>*y2oNpQecvWP4p%gGPPPsnz%i~N}ECO;#O zlb@0&$uE$@e<9D1XUQH~Os*hn$Yw~^g>(_Qk1nB$>AY-X-}GrydwaU4OunpZQs=~u z3GHpIEzM2Y#)kSjSS(?Qtw2yt7=bz%x{JpkFc_PX%>XZxO2i_Ll5m@=eZDZ{oj)Y@ zx;i={?6+$HPAvGwiTOhUPPKpgo*{ufw*Z&Eb!QfLF8zl)vxPge7w@E6p^nr=!a|!% z7&_AG5}u>8dirpDSF5XE7&@OnzAS$%_U3=6@WbK26GEGLS*tKa=L>B^?Q559Zkyj4 z3Dc*PiWXPP5=A6To>C}rsKn8b-?ic?>TjU=1J2)8^AtzqD)!kSk*96J;-T)IzP47F zv-}qWr3b~N5Nxc_8K!+qAtxMSaH-f~w&VPbbf8)%8u`^PS z_HTq;WLdmOrXiI27|96Ih7=-y4hKui9nWRSLi`vS?CC4~7RW;D(o1vn>1XK}GPR&kyltEN z7B3y*=UW$pKbH!9R>x4bALQ$I^)2aVrR35M1FkqdpC zRn*T)3nzqj{Bt$e;evKZTKLIIw7E{`qgFD08@@7j2Rr)Kd+UnS%LyW+mhCAB=B1=#gBXf$KLkO)5$Sf zj1dD#kh9|KV0nmyIUEbPEFa>K&-^J?ie_PmbPIj1C9ZxKcqrT5#|nqhI$yq%rn)Be z%<9XR_86B;`_`|*^{R{4#*T)#7BFCYC|{_oO!L1d0`!CzI%;Y0Z%^girHRE_!>u$U2NL;teP^ZOZV6B7uDKRQHR4P=OOH9SQ*Y4MQ4wWN7S>1t-@8`=5B z!g(n>FLN~yQ4@`zQ7fV%%00c97n)R*BXMk5Y$7rr|5sq+M)%=*rn-GErIb9qi;p*% z0S_pZqt%m<=~Rk+5%v=7#b}Qkah4Jdjw$&A{{MxFvv+Yf-eBO@ULD|9uh8(>6I4;695w1;} z`Wz*{G*JnCj@~orIoW9Mq#=3t>>+ylkY_6UpY547B)xrzOrJHo?R^xtyVU8LDI zX~;IUZ)k_Df6~w(4v6h36KU=bg-F4)jQ?}5rJ>O3{0aKs_W9G-uD%xcQFhPjH6im{ z!l{XxdxmJSsYRGmnvl`Yuzk+9(KbT3-?DT6tIIaB4G3mCzVRb$H)H!Awo52@8-6{A zZ3DJJYw6Ky!tqW^CUL+}92ixDxli1mrUvsP2Dlq2@eF`d@qh z{|_(D0jo|U-5m7F(Z7i(ur^!VW9wY9oTlkM$YKbKe}4U)~0 zSEU*06VfkaeX@PBFXfx$XXT&DzbcwhbaT-uMX%DL9Kvu^ON)n!-^ciD%TVO_88em3NG$&fhdHV%l2E;mZg>#ET36dTlZK$FTdI*w;i|NYCpy&`7VAJ|EaJ} zxJh_jI3axEush~DHbJXi>wL^b5V0`VwcGVM%;630IqrwtUwgEk2G8rBPduN%Vl(JH z?(6lv;`_pXr+#OP~*DtJJSHGoxNBy() zuhySyNH^Tsu(RRWhF2QSG#36wY)Xn+TJ>=bw%sVZO*pg_Hg?{?L+PR+rOBQnb0+1{)Dv?Hc!|wVb6ra6HZL{ zvP0c5&~d8ci;2Y(of9(?yCyE2I56>^iMu8~Kk?H}uG7>R>}=><+xbxEbDjG-KbvHl zv~1FjNv}`(xQpvDcSXB8x)yc~bluanqwCCN&dUZa8=hP|dCTPYCx15it103s>M7wU5JQ16M}bG@HV4Nl!W^}w{wX}3@NWP11XN2WhM!#yKB ze$~hIDf;w%mOf`+urJwH)7RYB+1J}Qt8Zc7^1fAl1ARC3ZSMPi z-y?my`=0K5q3=-NYkkN2&h>rTFYb@`_x3OAU(vs=f3W}d{(Jf#?BCJ9yML(vx&D3q zhx=daKh}Sy|Kt8IXK}NNXRV#}>Fn(6`)7YTr(w>PIiKaaa?^588+x~H#udEK6MFRweZ?#uP^_4f5u>wDKPU%zSn zgX^DO|ML1%>;FEWAMg*<4a^u=F>vd^Lj!vTULAOU;H&Em*GI2!y}s}I{TrMcsy0mC zaQjB{#$B82o7QbQx9RH}^fwF+3WE)Uvj$fW-Z{8)@VUX)2S2`%+-SJ*${RntspF>M z@6P$|XE!gt`Q=;4Ep@k?xV7Wf2X8%h+lt#>y>0mR_S?VwUd{LJ`QG0*FWmg<9p*bW z-#O#X=kNURF8f_8?%H$LsV&|uE4I9NxAt!D-R*ZTz59u~zqqIKo`v^pxaZ@0$-Rs3 zz4G4G_inlO{;l$@tF|86dSdGr_bKjcy|3%OY4^>!Z{WVe_r3Q0?c4O*dbcgxwqo0! zZ7*y)utnkf zJNJ{hKiR)4x@*@@y+3_ycXapTKWq5euE&MPzyEXf&*MMu{rQ%kAAZ97#7+Ow^(1+6 z*Dogj;)Nm0(9J`qo?7HfUv~ZS_FwMb6W_D-nea3FpLzM2*PkWNrk|~Q zcI&f$|JV7?k>}pu>)ktl@6hw)`MJ+O|10UQ)W6#Ng5rgHer@@+^Vc=M?)~+i7t3E< z_2QY|M1M2*o7eU^_g%ej|8JXr`^s<6{r2nq+Wo=(&HFp|_wHZ5f7AY3_ix$1d;k9Z zC-#5&lJ=$GOUajNUg~~n@k^Uty8or2mkuBB9=P+st^@lH96#{ILB&D)!K#DZ2bUkb z>EQN*dk&sGWH=N()N$zOp%ec$=igpCOb#zRy!G%yhj$)+{P5Flg+4KKI8-1YK~mv_HB^!xbltA0QD``2HodS%BepB-6tQP4AlxZ}z>p z;?3LN-1+7UZytX0=$mKW{N&BQ4~vJj!{x*A;nv|f!>fny9DZzgX!wQU!^201&kTR^ z7WbCvt@vA=Z!LUl;H|B1J@M9aZyk8+wYN^Z_2FAz93#hyk2#N39qT=I<*{3j?Kt-Q zv7^V%9Q)+h-`^I$t$n-vZU5Wpw>#gS|Mt4Kx4!-O+xy>s_3h(tzyJ2T9Je1& zAMZN8^!TRZ_aA@q_@U#kA3t^c^|}0iK8bzK1oiRPexC+pPX}Y^~pO=K6diOlfx%J zJtaToJe54ve5&`lk56-_EvJ*GJ5Mh>z3TK$r?;NodHU(o z`%k}q`t0ei&gjns&$OPI3(N1;Gf$j(;mj*%PMrDV%-8Q0zgzxp_}%7r``%sk?#=H$ z^6s?|yw&e%5eSIO{*#dv@ULuJ^R>`QNL1Z`ymy-@EC(E$=<_-mdqae(%Ni zzC0H_xB1+TbI-!|{P~~cfAapR?oYjcn)|2ae|qdsC*H4lfAaea-yeK``}=#|fBF4W z?|=1y_5<$+$qyPn==|XOA8h~N*$-a(;OqxqeW?A=|6%&W?1x<+_IcH0`6sAFclA=8wMr(PJO&`RKq$M?X6E(H9?!KQ?^q z{y6h-$H%iiKKJLx{`}%!cK-GC&j*0;IN)GH_j8{@)shh*s}XZqxw3;Rl2N%#B;`o# zNbCsJo;spE6*`iLr*saT4_lJnlN>q9eR@Hk8R2QDNJ9111kB?hU?6{Ynwg(D0{Q<2W3lBUze zid72LqpE7RyP9nr*K=n_$DKXDyzmf0e^~erG?P)1q_5LQxxW)HtilB8SHO13(o%_k zHzO@p!qbZEQ9GxSmfAQ~kwML=6eUU#W}=XbFjk;UR4gqOi;5*?%BdvgA}+vjMXG>` z<5a~WPNeED78!~~s^1jT;&~z}(pz*2OsazkuNCE1OiyIA=rCOzZ`Ddm%PcyH*<{g4 zONmu0F-v(#OwuS3NgNn6-7&>+jpGK#qYkMQT}(Ks)~n^LS{)`$(e~>w1&~EMWTBRB z9o3mjG4v#rmk83+rLI>11cE!LASv&O?hKES1z6+qq3|f zL*<#l3K1c(WYThEZq9NfmyG37*roK<)$A9zIXQej2ZlbctB&QWtF^zqO&rov{0F7T zyj+gzQs{4WB&j`+OvEdr)K_VzsU$iSL^)qnRFQ7rDl1Y(J1vz(smm!f8th!DU4-84 zoXqGtIdQfrDy zn6U{1Ct=K+V139@pLEHuTqZFn)~OAG1*5rQFl}$5Ic%>@y5+3SNpNZi@D;BSv?M=St%z?dqSHMyvmAEHp|3jvBR9Zy&}|zJ(9p`zO0%|bF$doIMn#vU5xWHn znm}Jqin=`i!!>%#{GOiqY+H#=FbJ+HchmG8BkS+rp8jtaIMLk2i|4Wpy;@R;zx~sN zNl*X7DUcBo&o%lV+`od3A^3gT$iHPbh+3$ohVnJErYEMQQ?&E6oK{QBEf{-BXcioWsXd6gJ~ziEH$|-m?LaX4c4ytP>2u~xUsl&i zLu-epw=DYdjyt|w)G~dz@O}y2Z_mF!k~J&DG8AHujMXGIcOU!OrH{--DTcuEbAo|0(|H6?^w?+`Bi=W4h5CytEI(6YbqgO2Drglz)kwh@X11A?M0wN;TsZ;h-0`I=U^U><&Na=k(2pafhgZH>Kr*mufDCor*>eo zW8~+c0iIWl)hSh$3`&c$MS~&|vmBuo?J4A)Jzx0^8GLLUflZ0T5JnV>u{@7{0KR_} zd@mxQYzaKHz)GZ_at0&>W_*|rV=)?w6-3rJ1WCk8T{JcL1KRz-UeRHeE{-@yKj%!4 zzbg3Y<5`<}5y>}0E)BYL&U1<6=0#Fx$>mCk?Q)R{;<52OvIv>Tn(j-@NCTvpNd`)S zCm`*ZP;1~g(=BV(+~R7UQ@!Sv2NfnSx{H=76d2W}+-p+MIluVTuYNJ});aNCJ(-@~ z;B+=jPp4SKO$e$sn?Q)k_qF7Q~%t)3x55V(kQVYOyD3{FTi8q|59#{}f0(ixn&O@38 zAR9Es1GOk}V5Vl&6?Lro=M(SNfmGPlohn<7JC}5vJkdMM;*a zWR<3hubNjSlIxw4%6%oYBzuFN>d{Y#*e~}!|OqDUbRxwLhpnE{qIL2TM;T@c#5np_DNOoeTg8N6;4*`0 zW_`S;*1>p)Lre-mOxZJtT`3`**-!~7ULaA(F!(KRoM#lJMAR*!MiG^Ys9c2E?L{K# z5;+DgCK7N?s_|s>5h^40}nrZRrs1UD2+Um64BN>oUNC)S!*l9#n!Uk>b8bgY!SOQ zw{O};cT1UK&9ZoJol~YPmR_$kLaPH^J&+kj?s>%h#7IjPy}q=IvgU5{e6z@$&?NZ8 zyo5*|5lI&bak2yhMEaL_#L6YMJolVq$z~!XSxD}AhVLnu!;r`D1$OcJ@@%38*FYHs zk^*Q#J!zm+Z%V4E!i)iuT&2oXplNoE#a27JVdG5=*Zz1ZC+1T96Ehl9l(x%dVy)Dj zja!X^PoJt>?W*gJ_@}joAGu@kLswK%zE+?*cXdDkM;it9B%GFe7V%7(tmCwVHcB3q za1ydWot0BLI+5}Kp(42qb3RL!$nw+&SLCUE;=&OI_)_2jbciw{kz1tR%2wCN8}v`Y zWo;?x#77>yEpfw@t_?rjGYhm65g%x$NBwi4RcwMxi9N{E2P{9eaLEPb!39~QrbW}j zx6Er1$?F#AoeLDrjWG?+ODdO?N_TxeKG!IqIgT>t|M#rM%UNkzGo&*P4zS z-3bWqy+uY$CmE-5A4I^j>`?y+BdK zS9iz#)7m1BZd-W&(h4fn2~^{%$=gBl?K`LDDuF@>BCn)u5BmtiCda;Y9^;pzl#`?i zn8=R%wq&guC@D+?vuG=+NZccl8YEJ&gx$yFKm{%liUwZ9^-y9!@E!$^(vXDOBvjHU zq7f0bpwTCiEcjMKr%+CgUuCf)a~URqUXshPE%|LVJG3&dahoqG-XZXEiKkRWWu7E` z(l>I5*7!zx=@rkc9~fBwOup_X$Rcne)j;2KlJ=P$(G!Gs8d<0|>Tgk7$peEb^@;3?Hlp=fQ%pJg+|%&;qKr z_nRiW-?_8Cpl^99J2hUSvpBWI82^dh%u#izU0dq)AiMgshcX zv$1Src1l*1?br14{ap8;Vv2`)vKh)}Xr^ysc2f5wZjxR@1ez7Ph55o6;WI%Z)V7(X zOrJNMn-0#6Xo7S~a9;45;9r8HK}j%55?VNEyAxu0f~f_mlev}2Q^_Q(N68qDPq8ED zjk(;(99S&h^x-H6YZGguJx;F=w#BgBEv=rvdt*n}hDWE( zdF0w=zP5KC#~DnHXt_#J7UVHij#|(24YTV~eNA4Ya^w((GmZ5$G+aJ05bq!Cp1N^b zNF|*s*C&_%ppMl)8lf&5o zR0RxQU?2v!ni32s%^B2g_4m~xqNYkh)qp}>YEBX$QkF#`4UXH*dZ2)#0Dw{Gpaa@*)K;tFta{2 zrsn3VV~m?oB%!i{x!cSILrE^Ta%I6pA~|pX786?bX3l)5V3UGG8oOAymWVqbqa8pj zE{4vbz*01*si=q(lvdTq=PIjmr?0)G$+gYd+|uqFc|>Bsu<-}AcB{eN<@I*CSG>6U zfsT#`cE7lSGi%bVy^%<7YZ{WO8#bnExnJjL6#xHxO@!j5Bw@22#MhvE2D;s{Qi9K7c{(Na+00B-&dExJ=hDRzLGNODcj< zGHT!1D*`YUT1(np&%Z%G{ag|Ol*@VGGE2h=Or`EaTO0{&OK`8JgqxCO9>te)z zr?YlxyNV@JwH{p?C}}mVvlkb2n#vGX)`|HR3IZ^%AF)(|tY{xD(hqc#vrO7RkjO zT>cwq7Qs&d#9%D#Fp&Gj59qq-Ya_2v{m7?y`MuvAIh!y4f9E#l%fBJ(atOt(1=_Cj z2p%eGH?4PLZfpnX6s#hpyi={aL|%Lb`2dB#44r3u0Kh#a+h9e94*X3K$QXm}ylR0t z-VwKW)Z5E9%$|J1tVCw+4IPOo)gJK0RIYyg6{)Fp4o>vfk)J8c;&X1DG4s{}TWr*o zF+M2Jd`q6@O<6w?wNgfLx=uwv^c5;mk+fC5uDFO(bi~9k98swp4KzrSSJ-psAx83K z9|>L9hvYI%-GL3%p`UNxKJwM}?I^@&pr?CBj&sk9{Kv&_=KWtV6clVUn7FA!vW{yd z>%?QPXYc)#nJw|k?(N&zI||P#Mn9*&M|yQ6m9=YH3$kGyW@@7HqJjX_>$sxgPPt@^ ztobGz02Cxeb2G-LW6TS+@%N?G3p!gD3Ta!juR6K?qtvVxpTo3XXQ^tY2gc~L6W=qC zec3D71oFj7h03jgw~4hO=C2|U&+u6>^LAc z4=NwkQmv&-f_~F}&Lx+WVPI0Z4n6=Sr{D}ck7l$HDn4t!n4Rb#Bgm;EWhau!6FKvd zS3^)OpkcH6g0^U^Ny;1VMX-3oWPNft-D8f{k;gDZ_mD(Q) zV`>S}gJMkft>B(bA)=1 z*Pq9bHw{o_ny6Z#iz++R>vROu!wR}?-D^6DOx!A6r`6<(_jbt7*gyeQ2}#*Bdl8<3hS z2=sASX6N20i?xPBZ5Wp^))or4#>zNd#he=^PS`XzQ#Eg68{5;_soq*asO?Rqrq&9M z+NsI@+h#|jvv2F~zim!5I)@opxx9>DkZ*U&&^q$QRuN01=z6Qh3LReFs#s^ycSxm} zHcHjW%KbbmaR^?B8E}2R<)KVbl!mC$g*Lqut&cI^fJZqhJiKf7_QdwostQbem+0v= z`l`5JU$tT5H6L<6SIBSS=;3gk&0AW87bizs$7q!#tyw>BHEmok2IUpAHg*3aeQyJOONo;#&ej)8mC`O9 zW{ZN{650#2b`QF##!bacP{}d(WUFzVORDQ^v{9RllwevyrQB-nH0Em^z{!}X2Z%=* zz?=eH1*7tz+q4WhqR!<@gXNUfHJJXtRVZF+-M*`((HM;c^}i@VM|s0#+f!Gib=Kl= zU)N>audi7%akjXd*)*i?mX2Y_BrxRpGHf6fTc!Tk7qsYk1 z$|bE{#yQ?pd8;ZGO;#g(K}LC5Stac0q%#^QGL-?kz*Wf5F18%JtdNv>k9NVKU40;j zTIR`X8{Ug$ly_=<(^Z{UPnboHsvIGUB0JgHnsK_D=hn6_bwq3vl2r*k&S$zSEVq9z z+F2b?hxyspDN8I`XT(y>$6Dg?%Q7~*{(24O6T;M;h=cH@+mj2vqr_a{8+2CWk=Z|c zAwy*Fy%~$p2#X7zF~|s5uDK3Y5*PL{=`b8Rap45yEaQEw6wv zcF=1h-c?HKvOZm_p3z9ZuB@?aO4%>Uep4nE%BT$D$gJmduxm&;)Uv!V7!y7P(994h z>OQ2-m?erG!96u^;_^1f_7X>|yn4cRXZw}vz{Dl>^cN#@gS8%Q`!u?9q^ExAL_aGx zruQ61I!xqe*+qIxsG@^ONmZ=WDl;Z(Fu6?}F;SCNsqNC4FuSSwQQaSOoK7akT!OVfe@zX2UbvTn0`~xY%VD_dB^X# z`}f;w&Dhz(uFya-Y0H`rXf)Iw=?(pY8DVPb9cpT*UuDYjJ%5xR;)_yJAuou zzB-m#H+VzslOqrPX#N|^m%lOpM|A0vwKoi|OC_$pdg(=;{{hP1NZ!hRPr*^WPHsfs zTdFa#>07i#DuBi!txT$u>omXtI=PA*(9#)NTBN1Fm(zYZ;5F3(`E(U&G3B5ZvrZzS zpTk{*6;ctQzgN?KHI=G?y3|H>mx^GPK7zSO81Yp_?0=ETn6DKKOBP`kmy0!{KM@2J$1fDlYe+7Cp8eC{2a9ydF-U@%!F(2?RB2^O1dBgCWowJ5G4f8) z)8RE8r+s*s+nJtM+ z5ctBIFkZ+RJf6$KXvPpPWF|6@f+(LH>=K@+9%$X(dVTdXLMMH2!j_H|uP-0@4=P)J zbVbLOe0^p<#a5(M2k(hXLexc)B6Sy$7>Gno3U=TUO_82xI<#Dov;#(#Ml>~fSI;4| zFvH&pD?=hcIOwFz4+S3tS1t6-o#UnpE}Sm!>6`5v`5gq=M8_2yZm#=oF17K7>taw- zL9bcxA726gv5a`L22N6>DdLMbxu{3BPA;A<<)$Ng>wF#`<=qQV!Z2_ZFr(2ii)wDX zapbQe&2<;N*Wp#)@fpTGUf9;- z*%CR-lH$A@@49Q_ zAJ)>j^?&haWKOo)BkC!D?}3yi#it%kA(%;s#3R{=C{o;GyFMwFVZbTsbZSI# ze093ftPBUHM>KRCujG=DlDX6o2D{D!sN}&fQ?fnGg%X7+fZ2phCCudfEz5wZH1C_v zyK$+;t1tU#1gex@3PW8 z_Nwm0$jh=4eV{oW&3bhbvDzC|D%OdMWD?}Hee~bC7;3GO2;{PC^j4U3l$18U9JAfg2bPyc)JmtJzTrVn`_d+BZFSnP4fAVP&8V?cy;%-j)fI70LmnHq^-y$dL%>Y8s>Klx+NaO1hR(UfLtD z)CmLMBrTb0y57MHQki0=-3rh6%;JlbWpI}<4Ksj#nYYU@$|72eB@pt@<%A@3Y}tV4Bpx61DXKc?W4Y8(ATfm%ryIA z%0}QHrKH5HY(!0%$w-Z`KISmb9m#vlnJ$bxTAOPSlOLfhMZMZ5cZx2X8yXhx%4 zFD)*T1}84Qw!~eo*OhxpP$OAf%fFy3jHEW}ki(QN5^G=qD}|vR^P=^X444pWI$ce~ zGI&McA!26SydC7iz7x4ashkcjG+m)Hz3gVkd!dhWSx z*NV{OUx$e}EN-J^!^qWKaOt`+y0&t~oCWnPNS0=^xAAnnl3FA^LB(?RGQ-$k8sAfSAMXj?8+U~J&D^Ua`rkQ#TgdXCmPQkrcP>Av>ED#vulY;#Y z)}j&vqsp*wBuCAHa>R~mM@lT%CTydV(E!lvq zh^l)E(K`c}M~XsiD&^#yv4;+rfCqFlMN&#RDHIIg$Gj{VGxx77nD`KaS7~f0*!mf{ z;UR)VY2T)anX=PU#%-RY!KLOtGk+~9a%KB6BX7~tjyjomWCcr0J|3QY#En4yYe-}- z+`{{^CQw^9AQtr~xB;yO_Ggt;1W3!EEDNm}L4+kURi@DFels5Ioo(CH6>fJ0+c@=u z7_vBk4c{1jZgfKa8yeULoA(kMz5(NWhi$#KxF>7Uh%B00$vY9|g z1tu$e)A9-sw59OjQg}Bm8Z>nVgu+2(9qS!nR9BkWEbOlGZA({=r)IBIzFr~@`ssg+ zNR}-Y&AXViv9hQ}S(wSwS&Tkerr{14XtjZc47ALE=sSw}yZejOfTwD;6bN`M`{0TKKaPG0S3Mgy ziq8W2s^mS=0ku>nRn26s3B>fU1fEI)hDc!9LGuJHxs;lldSbe5Qp^~kpq5xmkZUnt zc*!7`)Ie5w9v9hAmwjaVFJ+}Pz>J>}6nbEwtVdJ+8${)MdNjV@_&B*w)>Aa#_bMz3 zsYvAHXM)f=1C{0Z9n}?v&Vtr7a{dIOFi+(2c5<|w1xAPY1<_k9QY7zc+ z%RLdbUA?U&Rb6MRo=_@Gbv5?H_1ip=;*eS<-o~neh#Of>zm_PABsN2-zZ5o)240SH0IjfM!!~;T>3goRla_r4d;?*Yf7M5R%Km=sf7@O>m6|iWgSR3 z`Tt?4b{u()6P(RUHZKGVObH1P z2S^A@fI!(PB@|O=(?7U0N%_+_gw`8YL6)hS@wpQ1Av6dO#IRFNg z%dgql*N?yN@2%JS`s(#wW`GU2P*``v(9recg~IstLu)1{*Q}YI<}%S*vBG(ELRcqv z+-ZKBSrle0#Hp7HMLMGYBzA0ngn4b)zdeneTM>!4qEpp$HfNPKJ4GJKeuZ}L{Mzf)aa;?3QrcT$)ZU}) zUNF_bG(SoDk0+{$`Gjas#1lBZ&sdJbcmW~K?6+|lt}&ya#id~-*;L&=xR9aKt3FN0 zL)p#ujwfG7dOLV0lTKNT%qmJVBP;i#30ULS=r?loU}k( zIzgI++i+uHU|G;U@I0+bMmsK;KB*%4X2ni=dg8Xc>7l|ct1W;JwXplNX05bvEBmD_ zC}|;`sSjJaY=h%rMfWYEU6hHaskCloV; zLR!Bxt(bU^!{2nWT|{nh|FrpdDWvrlgnY(~ z^be6WBtsxZfx>AN{bUcVY%WhU18IoW6ZgN+mTE7j`wPBXcU89n#D8UOOy`ORI$=n? znq69QzyPHQCJlbhJ$G~I5r<&8)MXmq99YRRjn0*0e@_(Ea4M;2dV9}zzb z*=L2EFu}5hG{Fvk!Y}$Yq7G}@XEDxN9q?DsLiPbee1cH+@Rb4q%b&Kx~eCUmTRp~PtZZ|uU1DopV`=Oh(Df|Vp7A+!o z3x6?T{ylE&z?{FRCyM3#B}){isxTG77q0Eg8H~&9Ce=I3E?gX!A>h7`_nq{X5xm|%ng_o{t^cyjZHrVLCCLbxrXJmVVB@#V3mU~B*nX}=nn6)D;>K$Iz z?_K8=y>Ip~orm>!#^88j2f`XaXx>T|Vvk1Dz^zMiU^MK^U{9E46unei&XhGJFce-0 z0wMbuptgzMvH!>}3U-YNI%tha;vyBKfc`^=RBInsd0z|#FJR-S!6*ArC~yHE4$%+) zP@BU|_&8srWlx4a*dQ7z+$Bve6o2e(o^tSZSFv32ec0gk`YqNVVj*reAUQD7e0tr6 z4>I7F+1b&$F>Y!~eomc@ZtU>=A|*r-B! z=7Oq^xmXy6P#ZM!W=q&ovPhPYUUXVaOfr}P!H_ts(c7GTWGm=iDACOSQMhb|h9mZAeu$sT2* zKEwreor&C8xNJu98L8ReMh+PaVOFi0+7>139H|P~lIjqlS8OL; zRFsU$pC?d)2=2Lk_K&e!AHB5x{yuxTv(w}5sC0OOqwCfshTl94vPR<(cLbHR4VsEy$e;a@iG_(Dk1#%|~7AsEe(1F}hrFN%#8T!5sE&L)Hjnj(ApLw?m4N9Fq76 z>9llC`iZ1@Kw@`FtfpK}NYdL9%!nKqZ3&4ydlK6O$s<5`gX8s1;eep|qVNmM)h>A8 zc`atMml&EinGiDJuCVwLu1YSK!H1P$vCod1hpYaq*_WJc@aEe&m zh9q%86Amm3FW+4rZgX1=cNui0+;zYG&=S|cxTZ0<=P|BMoJPok%y3&TSwCZN$r(x$x)6EXSsM}0pEuEaPc|TJl9~;Lr=;$&XB&qgEhYNy$T9eeL zq)q&;YvtJ5=)%HA@4$#0{xSPF`T8N`+?tu$G?@VO5!$HgPIJPzTr8LYOFgYg z?aCblWR0X45A!)#ZrpBTcs6RDbr`G0UEsoq5Q0k8)xWY*50Gm0d})rN=(xb|uJx>B z5NrluflKM4I3j~y@yEw6bcnbKsQq%mSKmDB2_lU~u^5S$gP!5dbzh;(uJ0;7Tw2`` zxT{e7ldkblXuRuBiiNuZ9ji+Z7rQvULf*OG8!i2Q0P&31h5SV+ zW|O@o*4Uf81y-;?&(TfPH4~DtMO{3DjBM^e6Zl}v{ozjVf#+|0lUU-H^r+F z7MV??jrw5|GtJ@@M<<{;5|ZX1{c)`>++soU2tg-b*%~x5_y@mY=oY!!mz=-&5vieH z)YtWCork=N@qtbQs;)7YN31!bk_H)8#j((P4wvObJW$IHuC~A6{%6LXcK?}kw4NMI zMZ=r>?|!Ryd>Ah2>|YKZwpngBn7itG&31#qV%|GgvDj|2d5_+@*K9EuT!y{m6K`L9 zv+xhX2Sq0cv?&Vk9uTXCew_`^uG5Uf0!Nl$@Dwct$WAx zPj376w{Kha4nJh-h|d*-9O#%fTFrWmJzxOTozLRgY;`$cl%baqw^3e*x8Yl@_VhF4 ztH323MswcXcx@VDHtQ0N#u=EG--mz4AAb1ZTh|;}B_CUJ+r#w!hsl2n>Ik++vT^?{ zlSX({6m?qIeGqX8!-lhtP_eUT(JL~m^s+s@*In2DVewB^ZQQtupye=Dh@*#X=1H6v z8*%i*!g}H7Uv9+B_h5y*UfetnmPf3-Y?*4r%FDVb#L92jNNSKE9^EK+;l4a2i}KyF zFyCL+d;&VWEVk>(Me;a~^Z z8TKrI7}YZkf?vo+h7cAUY%#V0$GIJd+eAPx-21`8U?%JJKe6x7Cq8kAMIP^d@x^Y^ zvDOw}k-jND4ly$iOH3v{>J9`9UT3f^J7zdq@Q)*NX<$5LaKWycnt;>$1axuauSWlY zJ%XDoTy&g&>M4A#!*G;T&w8psrs4OS^k!GEUMJF{anuAcM$SWFWcs`CpzL%!)4s2$KK&jLr13upjjCMC8;=%bL*Zuv{ z3&h3CUx4*1Qrp>AdE4WNMD`#r-L%h5J&+P{yI-&O@lN3EPEr0~K+n+66}nQtQrGtJ zu1!!Ql#h*G`b)Pcy;R!N{7O6p2S4^R=ozTrN}F`BC!2ikX@4l8_xp7|!NCWX0`95v zV2b!bn=qureJLuO_Z}PKvhVDJOD$<>RAXeCt$1yt5c?_o6C1-kyM=&kMz(v}`Ar_J z9kyta1fQdG=4IMLHs;B7CzIVdPvbA!9j)j6{(L7u{1q(DD{aFM;l_G7)IWVcqV z05+WmrqiF6(DY~LEyIfD4fRXqF41!Z;Rx;x_Y%9S&74ims zkYJgl(IqRkVVh_}7Hrsg=7R=Aj}Idm*jYe6))1DBIXHje(E0Ol3^<1fqjPW>I(+sp zHCaI&=!RVoao+lL9+TuHKNWa;5T*y)b^V>!i@${<(ruc7$pI|H!+M9|MlU9<4Op%> z{Pwpu41D&DkH7Ds#Bf(edgEsY%5&xNbvZ6maJ``91>Z!_JJYe91K82PHC?4jJ~73t zRn9e`8wAg+bDr5J$E00&hlWV|1VHM4BxntSEY557k_LxTv4vwoxD7$SL2**x9KFOc zW5h7`vF{PXe4J=Uf^GPh(i@?hr1-TV;eb3WxgtX|g@QSi?wY9pyym!^keOX(9W&$CiJc12MsLSxUbi%Yl%Y0fZ z^1#FV#__mb;CNgF{@_m&_6g_(c#)pwa zhWryeU5Wd%!TaXgr&o1a-*b<~VuFjpdU1GXd#^*aX+KmM~cYz;xNSRdP2OSv3(K7Hm ztWy$empm)-I&;=%Y#YbDTeivq~M_g{^*gwR2B7>xwHLq(d4W<>-QW=BirGoGBWG zU>fM>yAMA2;B{W4@3em|-k(bL#6Fvw?zj#Y59}S;o7=Q$D!Jwzt5&^h^~R4);{pz* zh$(>1w6 zw@KexxD6#ESeyTfvra$qnCz1yhUuuAeeVu(>W!-^wkfi!unQ1?rP~y(W zxPRp|X%0o#xOauzsR;?%&HX*LSaNeTwB&;B^272&5CA0v%QSHn2oRt*2BYl~YFZBw z%aXB&)^7tfjYJ*N>A7wAKxSTw*ckD*wE=A-XYi)O`8D-uIZ-`yW5@1%HnFChi>J!% zW7Uw!9dX7(|Ge>*^l688^%{rQne6H@!l%*cHQ9k#VU3nnmMe0+(6@1m$8p5wa5}v~ zyFF1{(dI+4LA$><`==on`&(PenJf75+a30MKynzbN%0!?E%BH9Y?zR(-g&z$8I1v# zMK=!}PKaO;Ay@JcbL?;pMv2{{-tzg8ct=MZKWEgx;x$OFMG3Z=KX{h}Uj0Af&oMU? zh{hB=?-ByFSSa2o5&2-!K z0gQ0~sN(y@ClIe$LTryeDV>;im)lGyg6;Y@BXhej@5|0x9f%V+ha-}Mw3Zk90aJ95 zWQwLo4=9El2BWRMJT3l$>|2hgQ6DnL+S8uuNWtl!T`_r0xV$pyNt#n_kv?%=mgg^@e-a=pI-?a9=u~a!?(TJu<+@RkEe-)fHaehQjEequ7n=x;C;bsIkgFgXJ zp@I;<_u*U_fdmD4NTZXr^L%-7WTj`&Xec7G(DA}a*6{X)zhLJpKL_pr>Qu3v;QZr2 zU7BUIFaVFOTjh~bK_2MolI^bXE{`xicmNn+yDA4OVkKr;J6J09^pwx6W~*x_Dr^^= zT^rO=I9O&>RHYbTMH0mTj_B+hY2XRg6O@Apb_9Q3z;+9gB0m3zC~B? zNT(CO^x`4#AGWeSKHlx#pT zgGUufcC9#O2gLpon4{na=tg^0G4|u9=6)j_U#6%zH_qVPr2+azwIht)|KR# zMoyMvGTPcM><0t{M9C8oB$L#&RVCQIr4z#l;Q$!sfesOTzt~oO6mD)2>rUMP-3i@C zbsC+{S`_BnG7js!(*rI8L5@I{NSW>GC%SoxypjmI3q9&5sJx5hjzyEJSP;6oV=qqZ z+$)J&O&VlC-U|<6tzJjl)h<`U zZkmKAL%hxB&AEU;6RxH`8iP@{&1S%yghZK1+G}moObT7WCP$z0KOq zW+Fk@MlaS$L-R5e`8yyFDXxfaHGHZUqM;%NlC3E1{Gr*O@;lPDhw`@!hkD$i^pI#< z_*t$N1(Gg%--5>MG#Nc@*^M|J;2-o(i(}%Q92Y?V#c|014rg$0=|E*^CLO%#^B;?^ z8I?otvUU0HXQKUv>u$MSqciDV{ZsLOMe!14LX1I^|Ih3s^y1{>@z1>8@?si_JP-VK z1wU7zv=|F}auvWAQk?Mj5`p!@zILBWpLN;1jKOv;nJp%1ug+C)wEL?yy>3=Cnr#-3 zRx*WxUadKcHs{b%H`;6xLb6$NLWjsL*!nb}oeO7cWXpOUR1XtJ1KllGoQ%#M_7r2{ zjn0yP;SjT#-Da%qB(gSshVS<^U+2Eb9LnlVwZj1kO#-d98omj*2fnPupJT zV(59GYlTQp)WT?p?poEh>@(5&c&Rkr6^(Y$-+J_LF`sKM`!Yg-==^`RT|p97)u8U@29I}^85plR<4b(X;B0bzr~E0(N+Cp~u&F+k8aaMalbf(`g^!+D*K zUjV3tY7ORM2$?XnaamL15-FrMP|3nF1e>Ju^$=`+4}eWaKB)lMu-`Nf#uz8^zxjLV z8#uq?{D$-UYT^4hzq|hmZnM9Yjj4peJtbO`s+#%=yM07W$dtuLK896d!ST#vNTu z6+O{R^uefvJs7T7QCQ?Rq>y($I`9Cz=>Z+XlLYG12dwOM&|}gK^qBNw8e#Xeg&S6+ z4BpP(Xj@^NTpZ3w>_uqhBu$zb(m(}&EtCw-zaT8fbLY>3`@IHH=J!L&D0fx7nfl7g zHv^TkCC4}MONo7lUSD+qY4~Z9!UdRxxXEzmQ$(N%KF>2W8E{y-_|#yMwX zWKFIWg{DMa{t>4uqQKGI^7tnoTx%~yBc-U_9xX+p?Y6ZKe)92KTEJ;u_9MeIez0V* z7D1z+P{Q;H36IE|<3LI^+MNUvC^;iKy+LaL9}oIH26#hl&>B1l_6Gz`$ZfHY!rMTL z5bJUH1C9e-dKiDSo)KVY%Kc|;Nf9l!%u3=sVc z44)Wg)v@T&p+adQpOQk%xS|^o#*P7sGOj&O8b-xypKLhX*@FV;p?ZcQ0nnRtFw>&V zSKN)5s@ft}-mn-qKun2wvBxwzF%j4>w0yJDSat7w;P=4gME6+@Htpp*nI&#>e)Yqz zhoa+(63^#&HJn#b_$TqI&nvu&E&jJ`v?JVeiZR;~@43AEDdYm>yp1g`$VQumm$zPC zo_Li~KV=N%yoxQpEE^rKQ=a&bQvM{QJ>owi``Y3!WveZL7lyfe+tslqg)$KS{5p-RSKhS4ayEm)PAMz{fj?9 z`$=<-t!jDM#h;+;9M{__Wlt_XgnGH&7JkVnEDDZECTNs~tLqRLMt_Yx)gfeQPt-M# zqVhuiOdd7_VKf|!9m&~-;g1onl0zaqS0`dgLNyBdK#;U2;s>fM(yBs*^=j?uOSPv} z?`t)tLJ`ABH`PFofkSg$buIqQ64KF|-qgf8nx4KK?dZYV$_m~Q%ihL-*Q`JusWkKn ziS`$qVle)9Am1(DUziwkXl+wW7j2Fw$M@i4PqRSu_Np>h;v(j%)E4zjiK$}CT)|iV zCoSbq2@A?xiL6-Qh1)Kxo90TXdp~mR^0^X)_A8gAHY;WCfG?-IC-x|1yDzJkXi_PA z5?OQ`d*UmywK#}&NU5$#F;&1bq>^W_Z){}0Lr!Ef&Q%G7$Qv}UlER(Riii=N-eLxS z)aaOC1S~l>jh?BUtDUKF?HWIafRhk^^uurg4LEeLko2K>WuKUR``c&Veh>Y=M>I7) z;S$#?{S)v&{uLZOBXkH`%(R|Eo zFldVtZV4?*Oc3M{`E^6r?eFJ0V#KZypMF`r&=5&;)S?FJC+Uh~Oy8B4;HW$#W<7p4 z4t_RK{0Skf)VAkWY+jk?kRW>}`!)|0${!2-uB}E`EDI0#U&+@9jfHI|tQD_+{qR-g zyQc{cq^aoC$`dq2;2gTT zrx;DUbh(hzRm@Z??}-d-Te)IWPf*-btocLj5xWlpjCZtW%e5W@!i5dmo)BC}W66}O z*dOzxLdnEn-=+T$z1`bJGSDo7kJBDRvC~o<^9lKg>4eqCAtsT;k6p359)ZMf@8T2s znzDL$p5KQ`NFH~0)p*f*lNObFZOwZ3Bef;37nIo3TDVcK`0HlbJEoOd4YE>jm}+g7 z`(?A-$psvqWw-`wy2kK&$v!kG+G{9GtgKO9>S&Z_d*Kdd`Klz^2dG{uB%%MmlvcvF zJ0NTTYUdsD>IA@IXPq;ZRjVc-bZ(rn9^cl}+dDCnKfZO1R!F3(Km%_Vs)KBBbILqB z45x92!2=i8;j7uzvj$e*3?d?v+Z?yLfu1iyO+%_0C~JsLKp4tzPzm-w&L~N!T2jxz zj7}zh9$tGHLT6JiC6QtoI!qeXCl{z#(t@QjoecS5kx27dGe(nX+FLm5BCp zEjD5d4e3274!l>`CYQ6BOwAz)-F}bJACdf$Khjz2FU>@b_jPv6c6$V?uD8~0&K72q z3>y+j<-_%-&Yg8a$qs>mV9%73G%V;fGKZZd$sAH_%Ua_@$rUOPVR=%VW*kqeX%-Uf z_!Y!go4#v(r~e8O<^I(LjqWun7;DmI>RfwG?eZ{llTGBF<)BH5p$qf%1~$Xxh=;I- z_{!jNgrJ`iH7#<)<>gNaA63_!u~^`Rm*fbgEUh`JTPN(FTUvANt%V!y5NRzbWlzF8 zldmOhaS+u?8i)m&hFE~|K4KTtZe~&V1R^WZYDUrz48+0|Lf9I7q75ZnEoD#H`Fci9 z3;184AeT}X7Z+bfxef{KRqNdUv{H^4mX~`L<w!cuWa{inmV!oc``|k#*S~RFt+4u< zdhfMz#%}7aWjBSLG20eTJ)YmRa7Hw0JyuVuBLp<@-f_OCS!sp2`SZ04we#GyY{`)Xk=#wE zk}Qtz>~L2y+12{9@C}a5{p+IgZ(&6J@FRlh#=cTs{61o3dmz)MU^UzzSN#E>7eZ@J zZ!j4x)-a$L%IRtA@pdlG=A*fo3CfGMSr-FxP(lfv1LB+pgh(YjZsK#c2%SUpW_c0J{E}g4E|KoKI)Gl#DE9arUtr) zGdubzzSil$=k$*LRN}k#&FkDr+q1SAbPMx^_(W09>1L}+H}kl`IRWHXzgLe1ZuBkD z&E@4!LFcDXq}k`;g}qAQX5B?szp7^h9g zl7U$VLzV}lEfNPl2|03MOM+5`vxXYbBVShSNuq2oROOpNEy{581bHehH=fLaohPaNC2X7P#)U4}JQ~VS~?X^_$H$Nqe2aApUv@yPNQj z((LDuscgbJ;h?;#5XO$?Sy^tvAg#BrkFOUEqlq=uHS!v1jb*y~_=HBkvWf(9E9}*5 zOu<1ad#mQrk^$csV=6ECbCs72Bw~VZifNYUU#XYQ<4V2zg}+mE za6N@9*Gs&Q>ILt+PT^36R7In{14wyw)i(zzd^UC{Gwn&w=;m;QK}PyYGl~e%++#8sU3Fe4AvuUx}Mg zE&^TaZh0W+52vOhOaWLuR;(81i=w?4FN)C_+wrz=M3>IZy4k593yJ}s;C8qH*(0P9 zvph{7F>t`S@Kgz0LC%%qgx+-a%%wBWg1|X;km8ix@Q&mGK)n=(S5r`(bfRx)sEPle zqBos7_0Yl>hX)HmfIIbciC>z#^nW;p6C93K?p>R=n0L($2QIxjJfmgIXrV6Cn4yCM z67lQ;r?2~jd5jw0Uw$9KB)$#i3c9%uvKH}Jq0qK;lxWsVe4Ez`zI|Jx z-rqr=9pd$pY8tFtnG33ycsH+??MARBueZI2*GoqOKF7ShM2||ndxUR+9(j97ukN{W zy+o5#FVW;@@Ip=#&Ol3jy4lo9jhc~w+<%;k*xzf_LB@XjUJdQ+f< zQ8$^h3TD5ICsTWgHq#uBs}tI#8)aDssPQq&7KeDq=o2ek~{5YwWJ_9X6 zc*cHw&X zcA1a(@=Z!ooy6IDsLuwM(MLF4uR-v#w>g&BFks#qAYRHqn4Jb7cdb~C=VeN^a9%Ok zJpDImka&zjD?6ca=lpoRQmuTg))q6A^PpKTg2YhP^p`AB&7)erPRqdDwn)Kdecy%MK&h`sj04q ziA5HE!d~74e&a%42nR4K%*x%a>4s_fSbRSIY+OW^u{aFzS}8Og6~o735u{nv19?LV z1GB+5OHNM|HU;eg)CVxEl3fc8gk6h6y}=~G+o!;@s2V@g`{u~oj2h}1dg#=tWpHT^ z4T)bG4$RKYs+eg%V+M|yc0$|)KE3$w81Ze~hNalhs9;DQHA1s9Y+yE8JGNUAl{twF5Y5!5{yzjhPr$)P^ z6he&#l-mGjs~n_!qUYU<7t}f}1{b$SlJ=>f|IWWzaFa3;MNnx3y@rOg$mE=U7JdQTI+91aCoGqYex~z4r0WR-Ucc|Dy%bGdXK$lzEplp|Zxvag? zNfl`hb8!_`{(nithm^V41099BXJZeB4>7H8bviH=B#{a~gm0d-EN93uX<7s_9~ccr z8T%5)LL(qPfbXF&-qVZcfaeFfZG$4)K-Vr|zW96Lzg1?iJ5f2DxeXY<9F@cMjV#Wu zBi{(t;%T&#+$f2!pH}($DWA&#N^rQFG()lR?Oc}#r6=+AZ!0u2=5a`tDP~q_8}dX( zL{1UZ*+F%(XN4E=PAh3L&z(*N^d7KFYSS3X0gDgiFj~CapEk<<NZ_FLf#iw9`T#6b*0Ncg&Z0{}psW@p$bh7lm)V@{uMo7v&9S@p|G3%A;AyU<5&XnQ=t3+e;FWA zK_G}Lp1Pz2AU|X~4_1(O%Aw{cQB#zt3A*XXs|hp`n=qceg!}{*M0Ol>3E&4jwNAKx z1^btLeS>|z*vMer^?66J%8~un1-iSd?yxMc^hL)vZcK(&4)%F}jA7vOiJeT0^K({( z#uWCWYJ=|Xk&Ot3!IVn+rTxFgu>fgbnM8S=_}3m8R+|PJyWY-AW4>r!ks}3V zdEJ=TuQ%rF*QZ@ZRISWwbumNuf{i-avnh4Itu~Eel$np%$n>rkELJ1}8iysG*qds8ghMcy9CC)Qk7fTL^+tPl>ekrkfsGTfSWf97Zo8G7hnOyIC!; zC}gf(@edr1@i>QP{HU_NX^cO?>7i4lhhKvp=*($!DgGDDy^F6W3qN;Ht7YGh_BYNM zK1I2$suF4a54+QN9ZTyRIIk$j>qWT_G|K(xbixlgQz@sk zm1I|?zMar}sj}-!phgdO7ioDvt$z!bU8!EkuG`ht;mUy%krWC1&Imn~# zx8dzNw&R=V!{SBMLD$hXSZ8qc3%CgynOa;!eZzjUMegx=monePgct>qO~sy#DVcAg z6gIY$_r~k;1u65524|%@fOXDNh7n4BqZ}&;injJNM5rt@T#!acxrP0R>%z&X0R>mL zXdHg`WFr;MjvH*9fH+0Q_CWEL@9t<#i*xN8uG0ePRDzL;x0&>+gr^%5y5)F4ADdPH zuZ|@YphNw%;aD6<$}Hj~SRy*dk+lUzb>xn6lG3{=BQ?aPmS%OcyAjSjNz$yvxGO$Abk?qMnz|3c!m56>u*{(cWfl9wb119WAMS%K znV*LfEvAxYoewqY#JSle zXgjYL>+2lo0sF1E_`TERjLWR9FB|wWa3)cX*N1ZIYJJn`7_ur*sU~l|hwGG-`gRI; zHFQeP!RI)O3PmBew1;3FqMhDmy*sf@6Nk~c09J%{@`DN5so-;vUrUeL|1YY%DAHBy z$O4~Z$+tm?NhhC)ElS^E^PxIJf8?rM)AS3_9%6BD-A_irA|7R zDs}E3Q0lZ-TI$5w&qBXIIeEqfVH%dL>`EE)Bbf!YO(iMt4RR{$T!| z>#sLzuV8?;=&srw{G*ckV9h&hmwS?$qc%;-MwxyvQ5fSi#~2+IJ}z%pF-EJM#ok_R z6JWFnIr{sMM#t=9lVjqlkr6@~T~jT0b^&d4l`xVSS_U@?ojJzwd2m@`uQ2BQAIr|wDv?a^}(Q{-^~ zjZ#jflrStO9Zr+qAD577WHg>4Kjl=~VRd@KaRhuP#b$n`7gSWP((^Ap{}h=VFcjeW zbcBEXp5i8@VM=IC(ral)>(B?4{7h!A;qvy{a(2qvM0l%dj<;Hdmq6Ks6sMuECz%v9 z1iM;EAb3%MUF`_@!?7%|R|}VeuVVdNP}<&vU~M-4wMeXX1wZ8q%S7s40%-MAqSn`T zNMqHP2h;Wz*j9s8ieKI{OVXy#uGmlpPw{}KU(I=bSUuOv<-7%V!nd#Xwt zl;yayTrP&97iIrZcnNC;GV2cL%(+;+lq<_FbjUs@1oBa%)rRAh&S*3++qfN?5t2wL zG>zMf&R>A2c!5moN_;sfI5>J1=ImYXdgNX2qUrhStqZ?q=3Bq|CwLv74+Z}=DD=wV zFmhmu0KE-4^hnKU)Dq#CweYZl#58=i1~hP5Vh9lhA_LC&HU2Uc{FdU`UkiZy7k}|u z2;Av8a|;MA#zOI4TQQm5!?F|RkeR&Fglx zSPr-%37Q?~%LkVyZJRuj11hJp#kk8=O91r8n#_qt9G=^SRdTMFHUhOcJguOV9P6-m z#5-Wfnsyy4hXohT2vPs6g&dc-im6q2rp4H50#U87)G_iFQ6eOlb&7q8TLs)kN6y&- z3%|@L`vcxgvl}qG%b}bXG|P;ypcU{T=~3x(pn(;9J?%%7@*@f#YRd-AQ_Q3aY$%H( zzNF*&c@QYp-hRls>d6VZsdAe!0Y{J)|2Qpp+yh)kr1&H62OTOhmf&6HkBqt%KM<0! z6#t3+P*)Q-6tgW}ASefKFmaU2!Yg?jP6>Z0JjzQtA>Ha)^-es7L$L>w-idS?^Jp*C z>bg={)Ju9dUN3a|RBz)93m_+|y5T;pv;)49FQGiutz&ymES-3lm2S3~&ZkP<1bwUU zdJQC9s#sOQH|pgwu~P5Oex=3QWhJ=|i{ni?g`DiwNN!4lUa?9BtL=!(X4216?iHSQ z1rSP4QJR>Rlq=kwd3m~(Wyw}9{j-{C1?|b=i~yMyZRc__WdDaThFmB2lhZ@JkiL~O zcphg2V8o*wmyy}C`_xkZdb+m*l6T{b;6Z(mKTuBD_nyTlt0kX5?Lp=fwZ0M52ds6J zqdiZ@p1oBqb@6m6sBC(8j^l1}{ij{%RwCTP6ybgp2}73hg*Yts)=VMbB$Os3#Fe7{ zrckW#kR^!ChpumcYAX3a@H(t}8NM7p#kt=qIKLv9Y>2Z!1T}<6vh}$mq`T($YXGMI zDbu8)yS+}>9Sl~NWoWiNT;5Q!1fgw5J!Nr%?UTF+!w$opYLYGXaje+Nh0-%rBY+2} zi7CS3Mf@r;mpTQpo=p#wg8QUYAdr&w1xthC7GGf?YbZveMMHL=K)kM9+$wxqdQ0i+m7y$mcnX$s7P^0Zu`I?G0=YST~O+DwPC&#I40lrbs_%D}rXkaTbs| z(AGFOXGu6{_pqT8z(z0~3?;s3|At-shW$H0DoOaC1+M<1+Q+owW7;!XQ5(fL&mDT< z5Po5_FTQXXNj^Z;zb}+I;7*nT{$kSIh9zyki+pzR+2O^N=@TS;m3+nB>I~ zgp^WlH9cZ6eEI}biK2`U{RBeCWW6+xRGtXb$5ug544{t+T%-c$gHHnW9hui07w{E> zkJuS4eqMg(>LVM-+W!y$VgZB z$Ozu=VP&=*@q!j$AdJZcr=_Zw^`ia+lACGb8gUr;3*0;12i&5==(3^a5(+vE%XLY`50m=DJ$^KmR_nWy|>5 z+xiZK2GZa$A&kKo+K>@OiC#lAWXO7LiG(c@w#{q9c>D7g z5mZ3oJme^R*43{J2Blu+Oo5agJemin*kmW+U}`amjX4W)M|uL8O+EgITlN+P3z8l= z+b@2AiDKuff{T42TFZE>mTicllL}6^Q4Ea?_d2(m(hwXHWJnm9|5X!vSK#>#ktBFAMzf%6!kFuYH`tJj_?#1=P_(Z+c$qZHyWR3!}kmkUs?#;!9)R$%&ETZFZ&EgsB9zaL1%gKdbI-w$LwUohcu zvk!;b<1Swc`uDQaQ;7MC3AZPabB8N7Uq{>)4%vedy*c_ZODJS<#!TiAIu^s)n#35G zgru-mF2!Xcis8Uy0N!;w(+ARGBr-{qGw=8@C?`c!5}6N!O3+;ZcP!CJy`m5a7MB}) zcMrT02P`#O-T_b4p27*I+qi+v!<$uz4+na%243q2{$Xu1&G`pxoi+wHV$p&C5ZdueQaDaPiF@Qz7-?GEJ{#ytdI&{rU*MTIt@E{CH+(o^!cjT&^8V$AF}V3CC~c1LJj0^-rd z;j`R&cCPjmpajmJrD%JeD2IYZFruKR20V|K=K;h;9_@wbF7`@p&*0`=rgAk<_U+$V zT-oNn?S{>fKJVANMglR5-)UZ%$xm%fjJuPr7vFU_88d&W6fMb>fjtP+e&6fI1qFd~k@pVrd|K@85HBz3E3*bG2th6@21v z^?KT;fnB{Cd}Rseh5LyL_p3NA4t}3-TtF`Z;kfL_UrwO- zKi}HEz02-5>!)?V+ehtOs-N!9EPFqUlDL0ZeLwY&-*5I$d4J=+2Ml-9vgcRv=WlDY zpWkn7|DI*{{muIgoE_Mv@czd0&H9_|-?{95sPX=0`<6cst1{a6bsRID{^Z91`VDxIaPwnINH`}MsN8@={^L~RqaPV$<-plV} z{MhZdPV|cdY2!ZDZx(v7nnY;MRiRT3#ya*|YMR_$UuQ@1hFCZ(wB3N!dxM_1I{X3} zp$@tK=+Mat88bg#uNqmMdrNlBs*&`!N^66bSUT^$^=qH};MCNIKKZp<-g5W1y2DrPIW&YR zfJ`&B_+Ifov|TS0<$$zX$$V%Oj0t2A+pRZf_URpTvOYt0>+?WYfe{VD0yN&_e<C4rPvkdBQm1=Kev+k;5!?M~R06kY+r zV$r(C?M_iUZq(zT2IV*AI0(piIQEpzhgO~i`dKJ|7oXuSk|e93m*fG0?FC(iFqMR8 zdT*$!R&le@1x@Eo^{#z&_S=PjaJP3L^;Tl-_;~Wp32}^DA&Qa|OoJ&L<(K70~5*8Zv zQRtj0{n~&WG8wG^J<$nz184@C1{|(*Nb2P>fUGGd6KP5-^(RSQ1pF=bsUSA0{yO>f zK@|79>k@_M=tJMO`@I4C=ic?JyJIU-TiCAE@vg4Ej5zt~ziqg0jLd}V#2xG@ z%t0DnL-5?o2$p~*R&;g7bk%%PDu*qQsWo<^mvVKSL#+0bH3z-={F9Csp2T+E*uwed zt>pbAU~aPRP~>MLz?g5EO6WEl3Jw(~HgBFN4hNc_HrjGN(hc}B$C{s>jh8mB-#AlD zsDJN_0GZmG4#m{JM3XolvUf^G#5Y1`5;fX(`@<3c4L;)yG*&z_JwW?;A^`{&D`0u@ zQ{p5qIdl{uqUXEm4DhBK4>PmFp(_6)mkwHN{<8E zd$U}syVH`U7+Mh?7%>&iCAm~ACI(ilsG8yI7!HLTH)y>#2-O?1-8UqV^61>9^B2#- zJ_K9n(tj9Es5|&CKBNrdCIz)G!QT(@6hr#gxvr)jGCG#09%_8g_2zggqQ>_|YNE#X zTrV5&NBv4}qQQEy_47-uUs^xYSTLb;@qb~bxf*(=J~=LFM7_afc3R-pXV;p%g53j0 zzI{3<(f3*4#Z{?4L4H%0oDY8P962x#o%lt#o0N?CJ#yF%W=h6YV2?q4u9?>A zJX$0Op;i)1axZSdY9Y)n8wITlMVKA3E}&v5 zxyacab7$uQ$iPrRDlqz~FHf0SI^KyzpPR)kFv`>CoI84XKTdsF;CsRudE;xlVngF&I=%R#I>EI0GV9g42@O}bFqL7og=aGCF@`>zXB)q8*Wp8VePLk` z-N1ZQ7JngT#lPn|$4=SjiTXnt!ITsdCXYw(Yom7LDg_Zdfy`zE1;O)bAhr+=dz=ig zHGzA9Uw264e1%guR_hR}q(_DZqtU^kk#zGDTN$bagY{6T9t_sl_TJrFXWH6kw(jm- z`qVy_PLH+o-^6pl#-%ClN45@a)eGww`Lasfr|zA&?u8aIE1Wn@sn+u#m#<)$^T$F& zI97ZN1*a1<@(DuR{<6zE&XKo^xZ+n5vkQ&9>^Y<}jHY!##V7SO8QNiCBfQd=c`_=1 zs+}*DYVbHK{S2UUua~d=vc%rV-`?vEIr7c??d-{xRNs=pX1GJIYfa|<>i@Rn|5nCA zM4z!AeV)%7d^pAL@-avYJ7g0LLDrX!PKVXL(qB1)zJ?_Yl2fS(=rfV1ErD;f4?TxHT6&F5Bm27 z^iM-`tf6>jFZ3f7pqzaEFR6 zoBqljxLs%+kimMtt|GLX@^D7ZIW}i(_K-#s)o%_;l8?+p1PX=d3`%%G5z|Bo%g5*p zLT^D57%qh*UY8=0jWoPAoI8~ekFFkIu`bL14l)^YM?IA$nTVd>PdBak%x)#i)bA%G ztewS|HMgtd+An-Sp`3yC{`z#MI#Bdirffo;NUHJ2jpB-0UDrR`ZvJCOaT%pyHC;M` zh!a2*{vo2f@)$0o#6K{6%SiK&7`!XeD)}fTao*AifSU#FLM&r%fK03tJkQa0vcpo| zGaaaxzB?BGhy8+o_q|NtW4MpV4BYpd=z9Y9f5X2AUZL-8s6QzFHSPyB^d0q!g7}yC z9(s|!7jWMVxz>j)vdZ%d$j$l`?niieJNpQ`7U)1e=&6pNe2#sJxutHDe~^E7;QK1N z4}AmOccQ$^zu(Wld)O!0b}EnaBHa(+{uuv$h<}gc`;^p!`-l1W80wqm_iy9hy|_Qi z-+#M$|C4Nzf4_r&w=cd0dbFgfM}tk9+PHWh^k_jd};IF}!1%mm@uza?Oi!v%Gyc&#KpA zc*i8a2HgT(!?s=!J;KMamL%9akqT32c0g7P12~nzV?EBFn2%GY=k0=Qvoe_oK%Q6KgsV4K_P7 z=Nff)wxf<1@J1fGtRJL9BlipH$3w|2lHnWQ;PW)LcqiK_4S{ydkR8a@b0>@O?-u?& z$oz;J_z3PhgeuNa|Bn05@cS-)zqa@>=@H3|`)Oefp1%h7_w)NhbibwiFfVVy{UE{cfbSwBSun6*Ly&v~)c z?fiQT&)50$NBHwKjPiep-vkZ55uZ-;I`9tUDVRXrcn9PX%2Pn^!n5KCzm8{dop7G% zdT{YY;4o7iA4DB=78L~pVn1nrLkyU(N$!ZwIF6U?<#-t=moOk@5EmXg)}G1FhP>u< zV%8jP1ne2qpoU6a4bhC)N>nD3N@-%$CB~-W7w00oNK35wd#Wv5|3$ zabZ!EeEA-%0z2Z}7oew#BTlqSn2|dwV-}MsKbC+RW4 z^&L!$>_v)sDBaAOfJmFW?i-l6Yg2h@RrRAE?mx7$Eypx>Y7Fc;XCW}QWqkFX4dX-d zPSVZ>D)PbQMgo@9oIFlsxJh>SC462_6Dd%{Y=-q3(7#d-tyUFjYA z25dk|bf9!9>6M5DAW=(+p<6$#Z#+8F{^<`DZ|Y%B|2E!N3I*EbLWemnb{-A@G3~ZP zCad_#w=Qfncr(#h&S&^KW4w)HoX!~H_|ni)B&}9IkYTd+Y&T56xRC{1;^%@&JYhqjs;I5wbp zwY|u0rBeS=bIC}d0Z_aHGF!ePM)I2J zU@3V-e6o7&JzK7Th8(us?MYDkD30a7VPxtMkdr4^DnSd;UQLckM=Qa|guyG@<_%IQ zH_h7>nTiKkw*&)n zcY|_nWl#6qRQ%AV+h>k$tPgqO=8l5g9tf5C#Ll-~+HN%+x@~AnPvG#vM#jEw@a1CB zjF(*4c>8{Z7+{6(j>*NCaoR%dvmDD-vrJ*XCKK`EOla2XG8;Eri2oX(Ya#levp5v; z3%sGtmh#OH_(Ra^0Fj*tqF42V&=}8erS9dpKgL??R<$>du z90cf+U%Pi?$5#M)$-W}K zLNv6^#EaWsB)lj8w53QvLF zSuxeeL@kA7B9{aYoD=gK#~dNI>ALHOrV8=cSkdTnS>2hQ)SB_ksvRo^cC5-Qe9#;$ z!YLtO8EkJKVCA(3GuB`&F}> z>xC!go@h)}o#sgS5AxRJ!hbUF!nfGDlb@b{`^ii2-lhDJzZ5A)38Cyk3tJM#;@*l^ z^d2pn(_`_Y?P!l9HxV+Mv=e4PjVeSz;U%0Zh(SX*2MT4Y#<`IlhkQJ^#T#r7$OqBR z@y=LxC2K8M+6ULQ?R@)ep*nll+BFBK+O^_`bQ5x}H|y1~cXo~z-6oq|cT5kLuHM}z zH*CLmd%1n~EnCcO=J~agfwmqPDrv0B$fvdr_V_ONt+y5OdBk|y>^&W0k$7A;=0DmE z9REzDYrKM@f+wGmY{m(@hcgdsGA-gAk$1lWhFZb#AN^6*9lX0a!$#-$s%$!}G?+U@ z?jjxQxgD9Ia&UT8xTn@;>+tptuSvi2!$|VuFSg~!cJ+-PD%7%9_jdMp(v|Rj7+2hx zXeGycX!bZv*B?lB7ZaAy`dn>&XD}W-?hV2REa9OA%od+TtZD-EK=H*uh=x_hIjYy$ zj`+L)?~$Ak=S&kg?lpPJ%THm4ay&yc-m8dkoVt6uxx56K>A#vmr||%LcHwE}TKI2g zGuTvo^yIrwDtqFu#NY5e@oKqJNah9msNE5FR2-7Qail6#t5s1q7Cc%hl;nISHt%qF z08Af~oaPA{;fsLqAZYp!TrtTRlHvjgV&q~!QsEN4V1%)!@VEeE`{azT=_Ipk|I~|P z{|{ep0vOj>o(rGvoZ0t%=FGmYl4dlceVef~l4aSkG?pECQ|xTcijxor%S%WgAq!9v zC<&X&5&|hp3keA&5K0P(xwJTiVoVEh=w-Ug0;q@uHo$`_EKyj83rT^Rhlv%Fq zz30-UdzLE(t$KO7lNeLt%iAb^6Jtu4r}sBZ1=?Z-gqTtkahk_BDUU~EV*wLfSO%cB zX^YwB0d*XtO7t4P2D-<3%@#@UNC1QCC3AP9n@L?BJwvM5kQHotjTE2tn;j;H#z8

e*c>@9uhR;;l2XJ7CkWy{*<>rnLqnrt<=Uy+bocW77xBr_UN&Df4+lL897oE~O(=xnCQ63#H(ABtoKm4>{C z0a$+J#pUI*FPC6Gag%ABsdgr^ydAPfAYiDjLcw~A^KZOa=ZMN4NKQRO#4g*)E~qR< zAG*nQ==Q#JHICtK-z@$n@F#`erGI*Se3}K@-@hF(6KwniV2nP3xpoSPhQn*aw2q9;_SqMyARo*o$~~rQ_=pgHN9Gx+If9 z8;j`;NTX3+U*WMpswBYAY}ooZ7oLNyhZc}Vjl?U|;gLWu>AblL01{!60HpZ&X&o~M_AnjOJE58uvtMxd?ZyF74URX#3>-7=O%i@+!!MrjiCh$d&0;^XT zZzRAMq2q)RN@mW-G*l3v@!(XkuCYb{H49jI3Cr|!i3$QwzND^IBB?-)9;_5j9+5IF zJhXfF8h6A3dzMuK?JwEG}IE$@N$)9(UzqVK@`eJNNlg7K<~U(z%eY(3^BbVS`_|R0&SttObzf z=N{4t+^6JfUU2Bq*|(;%3pWo8(YO;jqmCpV$^Iz(ysD2!3v`e@e@lE~plJJuNe+df z2$P7IKG1!0)%wQRwU(&g8g$6+zSP)a;)r;AVbdo+_U>A4-xYh(={;BM%YBd;u8b8H zGj^*+_ePz$dyt5G1UlpH!P$@%rk+MH`&kGfA}zC$XvRgi-1J$R=9OF=OsL@Jcg%@e zV=@dmAbz>7u`T-t+^hMq zaMh{Tt>(r&J#i6syIRxowGs{)f(YRggN0jkiDq18hoHAk=R^; z1MCB2V)AiTxGUUw8Oi1sC1 zIK-rINpxr|W>l(*hZN!p_9vB}BFerqJ0^+k>k&=h{1mWlN$V;h%z`Z~HUlL-ocl*o zj#L~(0D&3Pkz_qO9~GmO03#{-fG0F(mpqCd3P*u0BY#f@3`R$_b}y=DVer%vQAVh6 z44fi;vhmHA4GitOeVYE?er)ryrTsq3Wt%tewX$ohdlbc!o;~;OBDIsAz4x}ixp#hk zFZ;Vamt3+(waI@bA@>c-7I$e&8jJ;hHW7$OJ z?Efd1n_VQ~BA2I2=LK9k-Kl!ZvL#@JELeFl-F;|NZ5xTAZmZQ6N8_a7g8osgVwbqW z?JsDuqF?bv?$&izx|tGu&Mumcbw!=2CBK~&lyG4E1+`mzS@4d%Ubi~Ze>%Nyy=J09 zu@$|+1< zA>5Lwr}EKCUxkG#%wAyzv4Ghs2W^QMS%29jJL^)XjKT+1zL)pW9jlPhbTnhnGi`E< z|NQ>GXy(%C$-Tovd#5tl=H7v&dhC+oWUJf$kX%ZK<@fiM2YUL;<-QANuj2RRrkDHM zUF_SY@6#Z5(gUzTSEzn`PXJ9%kmF>bgJ&1*f8q)oO@_&*mKG1hpZXBGi2%7 zx#be^nOkq(v?mz6{N`Iq#p@3244jn=Te&FGGhO|)65Vl>3#VLsFRHWB?ozjJCIfs& zIm0rwa3s<_W2w4JLRg-Q#Njp0X^fpP1hGBfu%=KTj3kaeK!A#nk+@Y92^$JXk*KM1 z^&#TT??TK8jCC^q*zn|@SeLCZJlAvoeZl^P0l6#T>K&?XjC3as%#7@tOeY7L$*m1j zuyi=&JZ^9~%r{(Ko$1SYj81RR9gq3#$6V3Kz$KN+R5@k|b|(?(g0D+`VqeAnFJh+@ zv(CI{F^)dP;^nv)@3MEzcZmRI_6zs52w1jk~cW*M+||5tqFLu zF31+zj5(X}kjZ)JTy`KAwmL&Dzk}yW5i$}>sA<+opQAl=?w`+1qc+>Za^OS9pDqvS4BkvC?cK4UHC(Ti z{1FLwN@_cu!AD`gdWC$$>vv*POD4KhOg^{4rAM@!PTJ>4llpY&Brvb!A}f_tNUrkm zY=S$>KPbeRW<_IYTzPni$=_WSD`_=L>Ykd7Yu@GUbNAOm<)%^PCi772UZ-0!$t$g+M$ge#QBKx$4!+9 zs1A2~UGAn$(WdvfZLH`n+ckQ#7bVs$Md4Tsawe< z8i6~V0LrRNA9b=WdFYql(s3()0xzSeGboKapMvts)@sRcC?Ub^y9tE|V)nEg6j76NKogKX9 zu(3BT#v|g2#BAZN*ahAO0`!TH*+Iskx0ng*+I!9J^&B45Ug)BUKjFURjZX`SbH8a! zBD?`izHo_P*>AZS#R^74%pSfed`DOc#|`+c_0PnT<)oNAqKvv zaXm5jeEMIacW7C+WGY)w;}+>It&);cIKVkJ(Dwk1os}?|;i7e{EuO&*cXWT;8*JqUJyJmK)x+ zaCAGaI`oa!%_Fd((v;6lAlDe2iNV9fE#0(bP;WP9FeYMiNxGY>)Lv|4q#4m%s;N;g zV;d~nbqlBCdQd`_efa)k-P;du+IaoO)T%dC4wl9o%}Yw6E={XPxnpZMA{L;i&Gd8UT-Yo%r{W4-X6XG^Rp9IV?LJc3W5s%iDK2Ylz_%ofq7cKP#}|j#;K;(ortmKNm?@a;%jRd28_WTh z$8XL~XI7_=4nGy2D~e;@o}3&=957p5o(=a*wtvs`*Ppt1_RnT94b)G>v3CP8lowuV z{5j6Gl*#D$ah#Rnqw!;Li4#M9CjOQ9kK+Fp*L)<-j>Oq`oY9ZVaVee_(z{Y|PbwAv zj+-5FGcN4#sQXFxDfiFZng`wNO>S0IejIm8Zb096IouwHTPm*Q0fcypHesp&Qj54R zjq{Zsr8bAdWL+{s<&^dvgrMn2<$T^i9Gor%U$@+H%lVMF@_oSZ z9D+mqfTJkox}-WqDV1QjlH8#398@N;fHUKCH70$7!I<4^a0QI%@l@i5OH-rJdQN-t zC42Rn?hiu?GWvy)HxG;r8_jRfOD_NZukYWv!)iEe(3P@R{=X0A_AG-oiSJ?DQ%&q) zSy*liNDjSYi%0T!JQ9Kgo{kh}2mvyeKIpGo=dF;q=doVN13hf0Jk636Hs7$6n^U5` zbfJ`y1)%@IL`C2q%LCm(W`^pFP{4q{k+MUuA2khZTWr|RE8@=ud+b-XR5s&$pxW2dr!iRchYfbK?%=`VR4rxdzcPN{ zxU0LT8^xkDAEtA4=-}Akm+fej9gxUaOv!RR#Zt#=_8NeIh-vuf5c5^FOZlk7jy~FZ z$~M`%1J$;Cc_~*c*GixT1{(qkj3$Rqi@)QXAym_k^nuE`K&G?mpz&m}DOjE=guCKS zb9Q#zo=Qe7zhsZuQn{QfH&*l}>U%-(W6&Nkc@Cs|lYW!l;t04Lvdgq&kH;hC;|FYs zOvYghWc#z_iBiOB3OY?8Q^18VHtivtQwI2+J<#JFlytIB6VPfcmgr0wMP>+gR_v8n zMKlD=PG>epoz0cAiMgUA>wG>$2qg2YjSecF6UVMs0{10i*ykWl3boaoKvQ55!ilDR z&+8(yecUspBTI2k(P7m)W&e?m%zxg~l?_R3v>g{+v0`A)^NyHo?=OTa`IvdG>*#EK z&uEyP%T6Q?x{JAl>2`Ah#EZ3Z;GiQGjoG`>c5lFRZJ|G0+r;Pbw;UIdhOR_4V2X!A zIL6(b9wI&v%Zdh6%_;P5nZR5srHzMRJ(+EDCIvA>mJ{X-hCR*WTGwcqy2#~8dVbYUoUhe9?b{F%0=W9f2QGU#=> z0L@b%<%z|luz!av=quozM*N0*DCEOYS73=>+?D5*u5j??8n;RbfgHXvsUOItuxekWkdsTmieTcV}s3#hG`Kz6a;o zh2NQi-w9snb(KG-pp&c-&1Ricu9V&25@?gNLxX_V?d=)DSm~cMm zYD-m&R*n}@aAF!*Ww_Fxx$TCTWfw?QbA@E4k{HbU;CjXi*|DPU!L17c11M7+ez)wh zgmPou%oO<0Q5!CQTR1yF`(K2ux)D6|LFBwbz_-MO#X83ESi~NQMMQ&+at~qs4rfFs zEqVNmPA0?Ru5x zZ)|^_E!?=9+7BHbV9^mvL46c`51lg2tI`+Ien42wRU#iT1-YueflmC39x$Xg;a|r{uO8FekSNP}P{rGve_?xxQ`4|2<%Fi!Re~!;VH3{izP~ab* zBSK#TpF?%{-{icoX>4iYg_uQ{NRXQsVLFuk;WVDKl~sf3%Z)%GWp-`Dwk@kz8f@dV!VB`B~v zBVf zCD}nQdn?d+PG>j`qw4%#|2oE;?{%!pPh(vsp3q1lUt#GIcDp7&JTFXAN}|{<+Z{uFgQ5xq;t^j*tsibU66#`%FFQrx*xXy!xUBv`ow#^df6*Fmv~Zo1ducRt->+3RkLLIbOG>2$FFO9Co(c{wD?)`0|j=Z7DmR|zxli9Xp(yLBUO^Ml|R2OD8-O0F;2^fhhc-is0<&!m}<0zCzrMVYG-^URp zP;sbA&ujgB`K#%L{*-8GHt)K>vcC{aUDDg=57eS>IFz2gsva61s(Jo(vpMP+AL$+N z=WUzW!tN*Ea=X)ZyUj7wR<{}WFd@E@${GYG|~I*{a7ch(ps z4&m_d>@I@a#FWS`f=jT!<8-3VjmP({p+2VTjyOF2^YV}F|93HPLQxy@*;vn>dpb~% zUDrNPv3R|H$9ef(ap>aIJYSzF=%Z6^Zh-olPe_ujv=}%x)C<=F(78TM8Mu z34TFe;qk2ND_nz%I(s2is(W1)i(R4;TlZZ$o**E_FaQ;eVRy=NzMtT%RR9&L$fet$ z>6*QKlt2~v*#i^XkEhHr&-vc5pLde;{JiCJNavD>!;;RW^O`b^NvnTBbWN^Xb2J7x zmqe^82BzIxReNP{h`(}JU2{CfL~9P?rL4LA>N?gJxd^Yoc) zU$n?G4xLz9F`h2~UZH!pCV*6fX6R-REg|;x+ zt_nBXvZ&a=%3dVyQ@$6WvFsH-$}Ooa+1Jo78e+YlsBd0ug{ zFDPPE+%-S^Gs3j;5DbDcYUcdctKOl;bn-nP8@u7b?X^oMl9xE5?2 zzU{hg@%Q)#rgx2uPwF)4S+!nYYfAVg#+;u%ryEAMlWSJ3;~S^5YQ4tRl<-#Np5$kn z-^*32$V|eKN!$`9y#AZg*MWngT|B}v4eQYG$lx%3`@e%)Rf1f9)B!Qi-rgSEEfLqp zZ?dwIl@SZM7_yeEAF@hzE7RziRUg-HF<3nY>p#ZNA-8X!*n?p-W*8ar^z;R@nOV() z64;N~Z>Z`-6K95a5V}|fc$x~*7*6wL%LsAb@YCK-UYUAav6CB?0b^LV;q6bKHJ@0s)pv!DcK3*YRT?2Qh((!BD zp>$k>6-bP)Nyw)s>*H~oGo0}j>w0Z`qCS;re^^zIry&C(*YCI5{1cywKcXneU-#rk z9&GyKayDqK)$9TD^t(U$#p}etntuG>x;%i)y4_!GjBUr7QS7j%u=mL3(~Dmqo=w5t zFv99H_mRJM-nPd4!v>>0t=M1>u%9b?T6`c9;x<@#?OftE7}s=AY_JCy3_RM?Qf2qf zEE! zWBIDSk@6hk_g9|txbUd5-^6pIU7+~Ys&ok1uzajJzrXT~$8lxQDQ9UYe)Ul248}ei zm8kucO4cJPF~i$WPU8P=SluKFE;83VV>Y}4^MlVOUpU0a2gx?r9Z!sQ+W&`!wM^RJ zk_K+2hNKkm4t{r$Z8OUC36$qNE*$Bc7tkILD*DXp&I|qw-hSm7k6)*>-!P!)GxJ*s zzW$fdf<@kb9v2XwIQPl5_W!bBH6!N<(Js?Gc;7nhKL_?2aAjcpmH2@8#0NV3+WZ|j z_>qD~d4l>5YX7-5-ZOb#*HnBQ8nYkecZ>+RP>Mg8XhivIe}mWdQQOtefBYYL+mQrN z;t%|l7)K@kKx1FUJ810RzP5J$l}3`wuVEyU>PV_%udGe1@e9WO*9~hf!R6QBUE7lD z#$I_2tsUh#k8>S$S`EU066ZL7$MZM`A9v;RAHPukQ6L&|W!*5ma-FW5_{1xnaX-_r%5G?;iRQpOGm~D-`gLVn)Ib8{Tv?EP(mpe#58E^mFGMzd_-M0 zLRN_fMLX+8i6`*3E1&=P5coZ;LxePA?5Bx72O-!T)5X=gG=2FfTs zO@hV}+|6@EpL@=ai;toOWw=)5R{*9%&WwkcVbmka3_=qX*<51%3OYrJ8mKrrMR^TY z3+MD3jEdERm0it3thyn&VR&{|y_Q>u)=Jloj9f8W=&Ma`n7rvdEuB9U0i^^I!M)bx za96e#v)(l{T&a5O$GviJaA~ZzI~F@w-*!_o3c~XHPz8i3LoRBDJ;81EnMTH-^(~qs z+4!PXYd+SMab`<~3fRAPgu{Y!$zjW+mQb0Y0w}0o%WB77Mn9cu6|0*-@q}vx4v;5b zVCoQ2LqEsh06LtTkRGos)zdu#!}ZBq-nYY8-M^*Bo2iC_n`er}>9MFKRV<5PPuEmA zHy80-I^5hd9As}6O~LLo*t88tilu16e^i4^fVv;v#eFw|Jd!{7m}*Bei-U`rU#vGu ze%ofecAek$bi?QmaZPj85+WOPqj($qHm}eP{>r9OAFu+CJNWTHi=}awD?rv>6I2Bp-X8L2nnrl`3Bx=X!->~8AXT+th@vKuLo&6SS z0|?u!LyS0s%;1D@ePhg-?RL8y=~gwk2@))F<&f_=X z&Qq0(3cceY4J_?JrTlFW2$57$ErnC^52DXph{VCS5UEaO# zL$O}@q4wuGW!BfTmK+a-BSA;ZbdS#ND^3);kfx}VTC;mtcH`Cc#x=89i}~LJZE1Qt z!libjrF~@#N1B|nn7A+fTk&D|1--%s;p)by(_l1O3IQ+%U^>@I-5Gx{{?WJ;kJlE1#|EqsVX0C{>55BUGxTWI4+(N%%VaiFQjES( zM`B%d25oKyEU$3p(?C$=r(50T#LmDC$ za=jxXz4*g^IWZd9UCy^k6HDRfO^u;F^<=WXXQ**gG`uuXYURtjBcl`T`|G2_&F1iE z9X26h*`_%TCW0J#$!2xyv_jCU^#&Dk;h>-}XU0O_s1TYBi$I_{y}DTxFe6LJMREzz z@X`s;s-5PbpLK|-GbGcZ@a(RGnxbMIsWzZs#NqhP%l4+(<$JCqrCb1zhTAuXTRZpU z2nZu?N?dpR?y)yg;nA&HX==H4`yGeNC|~An-pFw$I7-GfKC>~>UI(3Rf6F_%p%MC5AZ0%7X>QwHe9yKP$IS+Uft~5a z?ep>DYTOn+Bi*&!MrKzCzwX!yu#povo_mTZ*X?UaWe2(`7GuPYDk|t9AVZnP2q!!j@XBGccD4+rAw4tB3TA^eOEChf z`M`y>{0f)hq2k(SiO%`NiDmrsB%lNc@RBxVty7T>9-sd~qjG_r0%d_0)CKcT|93i- z;!}6scjsewnS8IOQ;F_k&vv74l#l2GB;qZNEtgggR7D-?wUenrr5gp1;X*-hxgYCi z{flL2JsjI$-@yK|&gvEl(yCHZvHTq2lh$<{D@SEop}QNEV`@~9P;F~$QYx^mBLWLnQ-xxoyOZ2#|22{u zg?ZWIxwN9uy`CJYRX?!MFSE-a(wkCK9@5NpGwJ)^)=7DoUEsykzK#N>vAl8DjqWr_ zF=gCpT<*8hGA+^qz~K z^)%>Z`8zZ{adI3+C-4|@ZOQmvdj{<%-Y<3qb11eeXhnY(oowf^o{nYl}wQ(Xd`t{oW)FHL)LRUAnJ-;?YO53$q*bnj?4w7;_ zR{E}vex>sQF(mYpu%a^0;p`=QOn5t>2;65#tQSHeE~$;|Kf#gj$N4hWh-3||XxiU$ zx*Wcv86cSiDV+$pVD`8j4lB^;6yXDwfEcK`$x}T6OXtP2Kj=cnT*+tq?m4?;$;w4 ztnUjeQ+)?6W29(aJiB}X<)65wR1`=D{c&-56im5nzyE>`UMQ=+&U#aO``)$AUM#f! zajoN`&iAX<8B7q)`Gt7`4u@EBHa1|z8s^Ig7fanyE@QD34v&D-*PNTr# zZ1rUA#WTzQ?UWH1=b~wQZASpgSvPU7X}fqCDni;fto4BG@BfglhYe*0YHdU~*qE-2 zv9V)9tCDNv_U9hVX>!_VYoHQoMD|A>jA$a|MY|^kLR!h-IW`)J>a+s`;_y-|98Sti z*WYifE_GS#l#4Am{ z$@Ltw)CG_FK%+5otb4KIX?XT~9`tBDmT;{VtLPfK{kjKr8lA96G*0D=WXK#Ft{9i> zmLdZKPO?v{9Tb=3Bs9FSz?EU4&B}*p-Ixs1pum~psyW>0&|S25y{Z0nxkq1TAJE11 z{Mv{xU2;>BMx;{(h!MH@O~l2Q*u)Cw$3uF+Vq{iPTKpTcBe(HDry%fz+4ARa9>021 z-qHTA=|vQ9|A)~+V_`b?5%G-V2A-MfRQ|HDBxDVeQI^f|gcL9ZAa`I4`hAkmX0?Qa zUVG5K#o_fh9A0hErwM|k#pjWHc_|oo#pgw+P9|6Z-a+=4H)6sV?{HKZH)Z(t;=Dp1nr@{^E4 zib&~kuXA-X(uqVSu{P+(zvx9x?S|3E%mM3t+jeYfS_9@sax+ttsfS!$OFz|mLovtn z_%6L&9};^Gwg2yD5RCr4{8DyH`sTm=%lFOZ-WGV--Z#D2{pBxv3N8}os-F8G%KW|D zpWWCfXe22k=+mj9!Q(3g{FbcEUdzsej#TyCb7>(i6~KiQ@Yy-=xJKt33>dP~kqhO_ z`tWA4O;DeJimRN0tKg(4++po-WPy_bF1pX}CQlVbU#U{Y<obP8GVQbtH_gv=ksT6mqSa55w zIYDH22Ae*x@F%maHP9zov}WyLtx4Pd-x4Rf)3yBDl5brkDm=Ey*M2(Q=l-K%p5j61 zP!aaF6^xisolb8A6M7S?o>^9G8bqT(!(kCo{G%|(kWsDF5WHL+2K*Qr2poaDhTlU8 zfiq=lt=@k>tF?Pu?9`esAvCAA* z12bz-kz^NVp|Z!LY4sWxapOoqsE|L072aE^Ly@H)k_+@dJs_pAZ+utG)Hb$XSUt`H z^YfNJu&%dl7-=7E|NYG$W`8(U2@nXhYhl<^-HZ7Wujuo#_VJBW8%=@puc54Hrie3D#}{#kT94@nq6KL zZlS?sf8a0ViBvIp1yKP$3;gIp#Rc5#^ows=sxj%U2+M;?)fx{otg+$1ttQ$fxNt?5 zBXp6nKzcL;5q_zVD0ZiY3;u)qD?3q?I-Z?LclXvaw*5QwR=qnc2OYkgO&+jjM|<=6 zqMXlexWVajg`C!KZXi2%snc}GXv?`}rz@4OCZ;ztw`|wz-l*3Ga+ONab`37Gjvq@n z{FHE0V}nPZM$vi-+`~_%1>35%h7SnQSy(Hig=c84`(5T1f0j3L)8K zv+Mx7syegq%ZXvLt_;>oy89<&f} zyT4vYocCd^T|kEAa1T4o{zk2kMR z3Lg8M7cpIaCKJw?M?QhcCGa-#e<>ajT8}wLE0ts~;zLZg>WXCC-fYC#-$jf))~d62 zcp`rEZFV{7_Lh>~6X~H+3c7Nkm@gGGSnT>Y8$EW@f!*oBV#4l>rMqKjpC0Xd6zeu4 zlp0>4#hBZ&7|OXpdb*^K1F441iyLEjm_`zj4Yh5x3))8Xr0bjZ>O;;@%4v`It`p2Tz-)#2Cc6TP?x;5UL30uq_uk7#yy^c5O9Cp*LEz#~|&}0LVAj~;_AO2pv z6}SOE?7o_Cccauj<8owXyfpFNBmMDyX76V;N(#q=k|7v~G!f-o>2rO)$cmIt&Vyj6 zI2+K0bTMcX%m?-bZVEgQ_(-02)r-bHJXVrge_WU0dwN;f?3qi82Ex z`#G$rbHc$5RLx2SuNz*N+1}Sz9L+e$@1uL*fAQM%zvOegaPC853nmF6zx~2H8k+Nd7b#-*3_|#&g{WSz<*r)Gnw;n_P zG_Y?!Ddxok*jrGI5{8A(Hum}h*3{52tP4ZZV2Hb%eKnIYkw_ZxTc|A7t;~9Cv@*(K zqpaM&ND#cTfB`x-(pSlrhnCT|N z5XN4Rf$52Oy%tZPDT(q*$Z84tg;~%R8fDSyn6q?9D9Etj=U7!)?A)wS0Eo2CNu-xz zR9NTO}@xI7pZn%2n$SV89!L7C3Q@Moih%-1eIdc$E6!F}barY;H zpC=ye$wty{6EjBxsHbg3{a*2CI<%C~Yna~WgKti>t=PxB`hwdz9GQnbSUdYdt@bm1 zOG_OL=!G%Wl$(FAXo%UD9%?oZ?6(aDJa*Zg3NQV!Kb`KUKWyVSzq$N_Yp>E7j%YQ- z{P);1g>t!oKQv}!KTk`S;XaBZ4m8n7356Ls7zcw^Ut)&9$^g3@srAfRCD}I@jAW6H z;t)cde+q;U>j$O7|qH3^{JyOZt(b?{&i*h?ROJm zaOeIG(NZH_?653>G-_A-%W6sg&THAF1QERLh7QRR=k5{TrTUNyjb4{Kq-)u`VqN7f zsq1J@yocF)7(B;h32-t{l^fOW_!WIl&;QS_w2 zD!CY>y3Rdpxgs{%>a|28vVL)K%{k;W|7^`EY=0vT-{n?~P7=57j&^)Pf~L|LkBNE@ z?!FK_!7CcWPP4={6#dnc6g;P0mb?2F{*kqast8WB7jMwuX%TI@8F> zp-`w45~)I0H0aGOhuv~CsCVozRd5JeErPTpdl*u5ovlJqDjZ?DD7_6cN z`Frvu=$Cq^!anDYGIN|ddGGqd`Lk!9ySGGD^K{SR(4@+EDugC7MsxyyD;4u8Efumw znQ77ywSV3cv47nWwLE5zIi~K6)Z?p(dh`yq)$B3vFnh&DWHb^UjYdbq_~Kyyfm-`d zOsriqu;?lHdmA2ub*q3g=!bqAwEdZjUz?iv@rrM~QJ5E8b#X zG8@!gsSGEeE(olAfJ7hEj9Si|+Zq1k@^Y zV)O1C_f%AmrSqEEP^W;M42{IS#cI8HzPvs(6y7&(3tCqVe%sv^ukrm>**e<(z0qx& zH+z_E%e$t#>jk%3YCmvn<8pReDY?D7dwa6DEw{W97*D0faer|PF6JdqwZ|yDN-w&N z#=4uikD-z}21i0NghL@k=Tof-Pb`IeHlub2%yu|8bY@|DpCsG7gi*S%WEX@(>&tX? zYSAYwby9RMvEz&V(ahDtRXATQ&~7%u9@qA8-`Q zeIZk-HdQ=$P-nIq4(lxj4a$-!nII&@t?X*?cd+7u4HH1*R;x!a=@B-6_Vh`ZRppZ} zoy2+vh9kldE216C-G^@^$4c_mQZf)oN>|IJQSo=a{Ak8dj6{lt%xInjcSOM>ZUBE# z3?6|V2$`TJuGcoiIBN)!F0R#r=N4ISy`VvjUb%Lr3i};{K{7l+`DEaj~gRdZW zO8>)w;n$b(C&&6%rrvog{z$RU)ZRaXKjd?Sfv^4*v`Zy^lMgifnwtYrNFf3*cXKpN zU$_s25{HaJ`Rq$)UpjN<_UFNcaSG{dJnIbpz&%1gVLH0k64^@m#(ILjmp>DGqzmaL zk0%}G^*5eO*jW$QZL(~$2c)YSddc zeCgK9l#V%Br5F*GJ=p0^x}cQ^+Z~4jo`}iybG{-aBb{0I^GB6YzOIYZUG(wd_Fz3o=s8w{#^KYL!e|`6w#s^Ur$K1JYg+_%uR;B~(blf}n%#15 z{qP-~CNbk$lPVu5fBL7dZPHqs_VW2BEW0cRbiqhOaD~EH0lH{76u`G$BitYwA#6Ta z{=8LZz%rr?6}K|iuZHz)$_$dt|MAy0s{N_n{g+q&T>P_(+O;yWY17D^v?gNW7U+=m zVeVqEEz_Tiehqx1A@X77QR}M_J{tRcOpJliHWCv|AuwrKLF9>LN{M8?RI4YJzrT#X zC@6yyTERN;*a9bA8l*MEmb7j;;jyFC%I5SL1~slw(gW2@eCId(g0HL3SYtt_(QNeD zyQ~o(5I^|p0AFK>(@6mqm%dJG>`72Ce1JA*=$V&Ej%65t_0P~^fR>$ThBbz0eezBs?N>$MHNv~PU84}e?5J+SnEm;M^^=^QUD zOrg$Et*`iZw2ffd3M5<2k1MZVU3>jqLKmtrgO3xA`?n43ACBV&x|Uhg1V8c1{FlUF z$L57=8XN2^#>z}GdqdumS7KnzOowL5);gGbh-xNQ6b(|knNc`03SxFPADuH8TzN5L z@C87zPVp017vws;f^Y(sRcTEaj8`ZSi8zDNO<_NRW~%Npr?aQ*F=7HRWK;d(wx63K zk+7+C%WOQ;*wO1KI<@XlZES9bDHxKCt6vqLdfQ!00^{!3j)9?8A5t5Kr0n281xGz= ze^0EutuuZF8b7gv;eSTKE-;%x$0SsN>({V7gr#^3v>B7aa%0HpbRjkpRBTQ#sKGLw zQR*6xq=MeLsC|}9)w=6zE)8gcw4o@#e``coyiSw+T^a!Rg$Njd90&;`B^#l_7?C$3 zg9Zna5&=|0=VEo>vNvxUTN&;NUq05_YhkhWOO}1D#85eFs}A2fJ$vWALAGc4{#_^& zJ!*?=Zr$BlG})cH+auA!&ik-tGU!KCgqAugX4ElIxd^)G`*T0T0kbT<2Wtf1BS3!F zxrZ<&K!AwAx(7H=-T|PzW<6#E@e=kAoX-HoUSwOH`>kf2`#xP@R2eA>%{~a%+We`R zl71AiwDNe<#A!`qoc%pDXeAiL^kYoKMwu8Gg9x@(172ReV$7w#3xEZ@y`TnON!GLh5CR?fL%>J-9kF?d@?XTUgR2Cw2~e^P2;G8nOL-+P0m2`v^bx zdiWZBfZ5f3oA!Ho0jvs*R?kRYgC_nnf9;g;Z+I=QLHi@spb18tk?U$oNNeq_(g$!R z{FGiV{RJ@EAK*wISFY@iEP$qb?Mxut_1iICW?}Ye!HVPnX;NEPq~-&_tBVe?B9hQ^ zQ_wrG=*>;jip3-%I4}zwF!}Yb)K0?feDy3qyrimx}&WC2fzz%=A-R@uL_zac(#H{Zt_r6k_#KvrO`(XDGLtYUu1i8W2o zW{w5R$dTBaiu!_Vw=kd2IBPWoW)0{cBz53Aa$~wgq)(?`fpbG_FoWPb0+f?FO00^! z=*;Q4DpT}o+20?2xE+0%?H5g+g#2H3H{Sf#w{HoZ{m1q<(Enczyz!>%x=B}BomXHj z(NElc=qF-Z(n++n%xsPK-Py|y^|Degi}fZbg5f$9b9ANH1V2d2} z$Z|9q&C7QtSi+ri<(maijR_9OH-qa6bWa6MnH9@|wx}(0u&$uhn3=%=H7AGGyv3yT z05q-D7EEeHU8s}|(WqAIEEw_##3u|ygy@2%uUUl16yF*=oWr+>49_A!MSjaCo`dWI z7j+;dd!j;M6kMOO?0rw=4_G99q%&273+Q zd4RCst@lVo@8`#e;~Rj$5qbx@f-9Kd8&hO*dQ+x2yI~^!Otin&7kz(pu&*!lm2|x^ zm2cfM^4GC}fsxev(9uv${oJ$YaC#qA3*v;KZkm0&i>9YtIs>0uUh>uDMP0&gC zuIobOlxLuKa9gIDzhxH1v$;aiUx>N>;+?7K`k=SRR;UhyCR@So@$_ZvF@q-_NG4_P zG3ZM5ZmwoG2QBepf8wUAO?Hp@sLpOPWy_JY8&Q+aUL#!zJK~T~C~qo=-xa6ebU5SA z2b~(b2;i^dD%c{TWH*=%H&~8YKu;?21R4oR)JUG5D1~S( zi90^Hb9D-(zSj)g_J;k5vzyt8YkqNfZBINZ!M;<@I-FhK0kaOF6fNEeKj<9F*`@BE zNBI818A@kA=IME~-6b@kn4sKbO`FZ&Y$`;tE1o!{kVGX&>~P>d>Ji1qKF2CP zQQ}1K8+W<9v$8u5v(ZiK-JSfr%+km`%1jn)Hf;n6 zClAEHjb_-1JT;>7r6M>VM)rMC~-)hSyMMZj|NNZ z?;?%nOggzK9`3EghJ%I8Q^UT$a^$+Yz44LIW5H^r{11~mDlV(#c2~HkaqnG6s<~bJ z_I2<4(w-Q&#wk7eq0jb+gBbw`?FQtg?Hl? z5T82xk60-1xADxKc!pmXY~ZwLsyctNUA{vGMP$O=f~UMhHxY~x z?vW|ZKfi~Rl+!q?J?F{v#R7wo)zxGpQom+4x5|E5s71{h4cl~f^Di_S|LB!lPNAFB zPmIH7c|V7h`#-|(e{6ho5}l^|UWd(X)M_=e3|*xQ5obSj_S7qi>P-QG%+7D=vwwPY z^*Q`jddYjLj;AJ#=h%e}UvOHQR$5O{dX&}JG-#U|(&WP3t~bqEYz8CJ2HdEu)5sD4 zk3S4`LM4I~D`+S6iMW3k_yboS{?pgbKa}6M{Qm#F_|JH*1G{6gk&krP0#o)>EF~H| zrlwvw50cI~8!nPrqZpW@#NL{k9u$`pDPOwxGdw~CBOSLsm&?@_Sw|n2>h8pU{_KZJ zHx2w1+hp~cKlO?Bqgt229QMRUx`M&p>7U+q*kTnEcfZUIIoLmfsV*OlW4--e zn&<6=$d$0U(Um}jr^(Y)cG^lNL?8yFg950HTS9Tdyhb4C%#EZ$o3N0n)*D*gqb zo(Lk_^HM`9pe{^YewY^hq_dvnF=cgk(Q6vaS zXEdAb!ePBdZTmRfD=cAZyLbR?w;{IG*NB8>NXX>~7e93ypiUOI&si)`s`RM?OHJi> zM2B0iGpcF}FCNnapZy@lbd^T*(e@`U9MMB7YRfJdP{N%37W@(9>+WdOTrTjOc4i(7 zi!7wfc`E3ii+W}O_yN_dWN{Xyh8w>6yU8K2$mjCORB^Lg4o5u;_6yJb1=Y}vsa4(^hL z<^Y>Oa$3376rYTbc8NT7G`@yK!PY_(FfLS5@ttoNTiml}adCNBJW<|r9|&vq^yIc4+S2|PT;{J%Uq72Z`{c@X*Bw22-E}L< z+MqM;a`72p4hx9B)HOk7j1x*czQrH(`29h%KSXr6CRfu*cZzcb0tO81#37XV7NJ~a zh#P0Y#(=b~FlQx;yvC0~p6xpQ$_YwH<0J$~M98|-wTM50V zLU0wL8+KoGuo&Dtw*e%b#ajkfE7pKBF`xW|t5D24eL#p|ONawTZzkNI{|dXuWI4P0 zzr^l)Hx?FV$Ni>6PrWdF=|}{9#9g9r5QK3bH~D^``jaj|Q({6zm}=yN!eX6N=c|<} zvsYtP;0WT2{$suIo+X3HZp%z`A&n0)JzJ z_$Ty~XRUZdSafD4Q_-0E(+J}U*Fmvuz_+UZ!C|;l= zu%~Q`*=#|#Snpvy$NDOLclLq7EY^n;RcM8d)(T#e$rr9WnR6)ti6C%>C?&GX5CvVP zU3HQwK^1TnbrL}XI8_uTQu1#K7L%e!UN`ZvaxxblBjHA|P5hCq?5PgbdY86mdisjC zZrgmgF)`?N4^A|~8+Hu_l0jP}V3)_PI4DYTA}(L$jz@ixct!h*8og1&{-Dw8q+qcx zm>RL_e6dnEKGuT*K=9h*udg8Qs1;HTw^lE<>{3iZNbrb`?a&A!uM-@r%f8%$xbh4>srXA}xpl03C3K>d>8v)HF8kmlL z9>UVs>1-{9(ldZ0qQk*I z4Pj8cun+FKqkZQc?7^d=*6MQ|OKdjsi`qD>;aRL< z#TVU(J|u-7G~N&n26v&zOqM-Xhhvx115F-qphui(IT8lu-fFQ#T2Yi6m`r-JIT}j} z7_;OqL4u(wnJ~~M2~vU*qy&*PkLrX}(gX%|$s9FBOhJ=ua^iNjz|ztS=q-)#+As1B zRS)yTw=Z%qxu>}1UaHOP%$;TH@T;O7^xtE9)z?xJO+u)Vsrlq1kn9Tt& zfh}jMUO!g9CjZyLO{4D~pACLCbJbLOxYi?oa`V;iuI){B{u* zk;&}T7vA2qNMlrr8rS4~wD{8R;*(?s^E}$+4>|qV4Q&t5{fsAJ7$wk-Zg9B|lS)WWasH1kRwr=aF99KtF@R zvyJQAgf()8oMOnw>^|o7`F5Ed9-Gzd&>KuS)3mXN-r@4l( zq8;1`m~dt#g2UvE#*@swwDaw-~aZW#4`+SOC7 z`5tpwZd51~4=rFA(O0Y<{mAb6@+hEv}l-M^9uEFQ7GRa^ySu(?|0Z(nn zX13}Wd&fiUy^#$YCPMMSu88)yDHD+=H*HCco&7C)FP|^?-|(Jo&~>`I(F(bk$;Di9 z%Mp*qD{(1aa*w)2lRM}Z-2uDD!n9yB(6$yN@VKku985j}A5giJGijGh~7JsASW9+CX zzMK5MYwvS!ZbCu-pFi}KbM`s=?AO|Bt^Hl!bz5OH-?Az34!sqj9v=W*?hRM6V)~-- zwUM5?j=Z;f_`a<>AFg!2_sCs68$LYx8k(uDKQr2CmR40;Ol(Z}Fb~2`6$D=fy=F{% z&|;Ph6FgVE7SqZk1T1#oDROz#wqR~e0#z^4q5)(nn`a)F!LJuzlreEo9o7twtL1yd zMf_)47pNaL^t0k;_>zlq2z$tQtvurIX-`2(d@r^G_IrG9EcL_zZr>nSCyP3``BS6w}vP7Yl& zdhe1w>)YDa?dfHIqphx5u}p7^cjj`PaT`1T`Oj)whqrZ>FIm-Qcr`eu%~YobtJ|w- zE%i6~BofrW5(txNyyvcwck}VyP_3B89xy*jVd%=3Y#p-hw%%#|fb|E~Ut4v=>&D#_ zvVKf=5HLZVgc+b<=#eH*^;3`nL7ocGO^}IL^Hso%m(5Tac46cXLQ9Zs)aO(;PQ@75 z_o4kQuQpo@wFItyN@uYH;E%C-E(o7j(oEXz$ghQT7i$KVxxP6lr;Gl z=P%|}ZaFkxDJf+bZul@?m$#u_iuPGoEh^)ENIwZ`{iZ_GrA-QV0hsM$36Z5MW0)L- zY;#2t2=I|6BXt{sC#NL8MeV2&V@#U0K#kxqvF>CRr_FwX z|CmEbC?(~vqERf#vBbety}#?d%>^kDT+sJYT=84?bA>f6`pV*1f325i-n@^AmQ9Kx zhuy1)M@k_cc#!)v7Uhfxg~P_0XM@s~PR2Gt^3jRcmz^&-HQc|!jFw4*mck*iFa%-6 z6q3w9?!v)=6MW&5S?uJ1Itf~B4h5w#P^S-jH9vBBe|fSTiEc;-+na)#uYb)jQppY^ zBW;^=l;)F}R$evSWOLsPr6!PzT)U*jYI-}Etw#3nK7UQ=Lwm@_v7uVZPiMwUzD>Tp zzI%Kcs8$AFY}}$X>Bo!*bLNR6Hf5a@o^&#!WH2QsvFpJw5+OS@-7x}Z%jaGu!{}9! zkxtF=iNm9s;jHisfI3tY z5`i*^(Mx&8gfs6TJW%nBtci@!^GqM4YFx?7(`5l-(x_az$rATkFi9e?Eg@- zKhjb@v^O}=-{YP!wb*;|2orORexbOdZTWRM->S|_wrdPV?JWDkkC}pqG_3jB-apTU zs0U7G27Q1tXn782&;=qx6hw%fxUA|5VMv55*^^8s-GR>H930w~eoma&3F1Ve)!+np zOmabY@L>;cmiAVc2f)gs&Bn%rOXy&sRABZ(ydXC>x8xLqAv-4L4z}b>f$*f?V`G}U zUazDk!6V=>BmawCRw%*kAmI+sZ8*K-{`ATn zT7;P>+3ase`}LaHL-J>T;g-2=JJZAf8~t&AAH_H|9LsXdt95RFtOD*cy_ zV69j8j5OICZ#P+6mRuXn2C(LDcH5eUuR^;;&KS}KFXr=uPOg3;&*JBG^z+<{=#AAh zUj&z=bjLeuoP&R=T6KuE1Xm?MJ8~VggJ;0MtiEGCUyr7_*Okj5!*jp|O;vlAOvlEm z)dDLV@AQu4YBq{n*dsli`N?#p1U4U>UIjhbv{{;LG*7r>gosojUT4p5pE`T49C~>Q z`U8377Md#R)Tx2JobCmi?S-uv?68GR%Rt-4ci2}NwuK9uH_vLc?&cNsO?UQG!+wV5 zi#<$Pj`oMJindj|3e$$MYAMEI$8({vsuR|D@VMVS<~`UFl3WudN^6~-lm_9OQ#@YD zV+v0?MDkMs_iI?SeKIGP6 zl;zl&Z&!_BAf{pJH*n2!+k*T85^M{mQ~qwNcr(kko2e)zcjy%QA=y6Ig~o&)T7s@) zg&um?e2-Z^WM&C7<>gWA<~Ru@&~7UV)NvSNI>|TzCjlh;3BpW~W(w~o55%Uuiz_@7 zu>(=X)$vCT{R6b|`|7&5$g5F?m!t*Ub6cuiZ6$CJ7RCpG|CsJ6^)P!+yhrwrD>_}N zK}K{(6s4`rQJKt|ofGii2yZi0A!I>su~!Z6g3P3J3q6!sPNdphO1Y!B7~p9ZctAW2 zeY@P$3AegX=iA1H6FGnTXvtA1b$D(4JDh=Zq)_%Jy0YHP(2hRj7s#^f_g3Jwt@QkQ z!*nLJye+w;IRIkJn>5TCazPqY7`p?a<;?Y@Fn@b z;cv(R+12f6PBhES2c)6ujZMsf4BN)zAgZztS?xwnpUE`}^t~=I zD$dEyfCA>MNZt-Mm=l#s$ni4lcA>kehdNM)YjK8eJmkyDUs8|D9)9@fm%hZ0%w`|E zzY^#VP?a_voH>4c;W9nQ zwlu6!+4kSTKVG@LaiOyNXTP#g_$W0@1L9oLi08ei+JWrnglSxSFGxwYlf?&gqv>*&Z< zhbQZz3+z%l&T5FR>~wCJ+A-#~+g!FWi+$vxu@RF2|Azb^p9AtFVSlFfc1gRc1Cgvy z#_KDv-3R?HZYr7-gK4@u6ZdqqXMGV($73C@bo{(SiFd?1w1r7K3yNenboK*&^C|Gh zIFQP>wn6hVpbIo#n_AG^9`pwA61Cot%e3MKcdg(F8U}YRPt88*b?f>%+LjueNwYH* zkG;$5Q*5Dpq^;Lzi}5SWuJFdR+buB<;Cv9!43X;AbrH!Ek*u)?Bdjw5zC{+X^fDG^1z_12Gl11Z zzfOltg6s%1l!V}2jQWDWSL2*GW4Y5JM=TKw7zY74;FvRXPOum#l24e<$0&vDf*3b~ zkdV)(RKU%3$R#ji41d~OWAXuG^ahVNGTLe=hZyGeC_QTm?r3%DKVH0P>7 zc=Q9{Ek7kGDIAuePv9Pv%qH`ekmNxcx`;jW3b@HarUL7u{)jXA0rn{SE>qgrfO^3I zVl?d*4fAN2DWM5_{F816(@MWEu@KHoAPBI5aN}Tc$Akt>G=%B&xP0?s3mc+Io4W2!7lGxX93@~`&8K|!{WZ9{y6VO_rnsKwJD3~Nwm|4Zg z%~Nm^z#igfhboOCqLXXrvm4|UtF8zq%~t@0_US}lDXv^;XbOg!411J#v40+y_QIw| zhpXw{B!{QTueqDLQsHbOnh&SCGJGyj%=lLMI)tqxfz|q(>ZQ%e-lUwgjDcNBo(2}Y ztI*Zgb!peNU782F9_{)<*LS-#LtQM4%Q84R405qOPxxwiXO87^9$yBGxMewC{;$VAj<81QG%YJRErY5a-4Hc~kow)H9S`5$ZfZIX*ZgVXF7M z@w6mIhpO`(BRjV;SF#w{7KoZIUVMyl{Tq7-Zo!tZwabG`qow$TPFO}4brtP7sCvGmFNB+4ev=9}Z@IR6)25kajac)W zZWyV-=-F>>SiXGL)QB_}`?y<9@qK){x>kqXXM7MCjOhZmR70VbtVTb^f-UTb23B2A zpWO+UlG$KBtY;20DTjy68ogO>R`~u-r_4p=L4e5+LA9L{pNZXoP_x(y#h(y+^UdT? z4#Gm=@N(XGeba58OxK0m{4y48*yh=f`ue7pFWBV|&Yo@D<*~-G(62@8y$Al9z14nW zG)4y_iMT$l2R(uPuJlhrPKa@)xhaZFFbk(%yZt@?-f?EfTuE zTW0^x#+P0d?obmr%kTw`$h|nX4M=(Emg;~mlWx*BWwcFAN-nF(YP4CcH7GXwmQo9& z^wbF}jy9V$+NP{FYmH2L7y^;flNN<1UP9Zrn+h!wP&Q5}1FfdkNFIJ&k>HtdyoYB# zA#F#e=S`)M5Z+jt%pz7+?~GyJpf=0B#kTJ4{fMoOSA#R2o`GdyV&D59nD$!DHc)i+ zPIWn$e*G=!sm`mJY%xD4KczDpwBX!Z$qDv;VzgY|wJnW3jmEZF>BZShqUz8LL05)= zHt0t+!1dAwe3B!!aAF`p_Hf-3%zov49A`fZ+Y0aCz76><@ebXX-Uy@TAfk`}oDhdQ zCrM`UcZkeDT@`{({N|8=PTWTC=*M>umdq-xd|I+#GtF3CqZYelFWEQQciItXs2MWq zwfk+7aTFGg);emEDaHCcbmliFi3S0l4Omh{V8TN)@VN+&Z2tJi!Ola$0qp%Z%zl?O z-M~_J(*A{fb@+qMrciG+ze%Dk9bu3OR9m$pm{m7sHtG-B$gneOLBhi(EJ$u!t5zth zwR%bRLij)c!HR>}!2#Cy-u>>Gi!LIJ$UCP#^O>nXiaJG(qo=T%MymOyCcVRv3=9|b zgA`uG*N~JPO6|`@*T}LZJDQeL2KO3^L@+-N?c*DOaMwcQajEBS#0UxbPQ*)a-e9Q^ zR0Y8imGa8#*Ei=@Upo{GS^;`yGvPSOzBT(z_L#1D!@kjxn>Ry^zLm+b zuGKA_L(LAxW}l~^3f^DC$jw0KFj?Tl^G;`4k^)e72Td}RUHW#GhL=AVoz!aWY@$iZ zn7osAoU$$WcIdWnLaCpQE^G8EsGF1ccG#L2$0R%Tdso5PdC9VLdhp`TNX%dfn7hla zR4J;p+pWqBdmsD27Db6ycdcBpy+5MtWo%@iup|ZIKKUE?RvKs1+(pVyF~2H|RsZ_d zEGuNQYD`6AG)3!?B)c8rh*Jdxb|? zw6#|xZM(LjhFB~PuV^z#ofSiyh^%NeWRj!VHw&yd_Z%dnfW5#uaQY2_6@MA-*qaEKqz; zLEtvt42uN*6B>!Pz$3L(quUR4y$K$vZC!5m^?U1pB#L86^Ej5Z(#`OTww8OlQ;9@V zd2M-Zf55w{F{EX^)!I*cdH*^JX<5tGu5}EoSd+*X`+FCKwNzd{q3Yp0>&l|g7HDZF z5cv=42~HXG7EvyGGT#L+K}|2M@t$L=-7gx(ft~XHZAMF2f{|o(^{(hySbJ872m)hLsk-;H0)QI|; z@7W6=zsOV2*t0d!DS8oVKa8KZ>d!w14-2;Tr8I^MG0IzX?OPIm4m6hO&ib_mr|v?X z>9V~6N(Q-1dm+WX1*G>@hb?wc__{&i>(B*<_`Z!zPS z*#JO%&>`F5j&-|@CK<;h2Hz+}u>$UZ(=%GX0O$xu_B?_L04i)g$U#q;M=l^BafVnE zg0L(F4G}RCIpv-W-rkj?nWIMsrn{aVIkK_$hORrGemb>rmBIn!H3~~1 zlhZcgu4BQlFYvZNX9gOKM_4^qE}l@opHfc1iA={hHHeogKH&Yp=D7gomANRp>rmGP zU|x}nOAr~2I4|ghiVowFkoHvvZ-TSN;sD7-(3O9$Z6+mBJa87A*7 zU|P8aXZr^bTJH@<;^reNa!pR|B=ytVyZHAhW|;l8`K^;zJ;7P{p{&yp$G>> zpzVB9Xg}g!aqbuIVzyv^0Wqtm=xBOJLy|ACpAz*3b&%^(n zke;euezyw;rVf|P!SgP^e_bHz34rks>>~1=T4vYAIrMN{G~tORLP$OgH%v6D3nWrn zmrd)^IjvR)$T5xj{mFzOAcIoO?=;xVQFB!9m-Pmn>T|= z^_x4!9~eok9$6Wg{khz}d()=f?@x@b8BKIdj%{jL^@+D*9N}1#H_LrEhyQSOlNT6e zyT@aPBGeNHWyZS@u590JEd{ z3ml!|#+vj2-?;K77qhxt>x>o;tn6uoO=-33bVfiFqUv*->kg{2neNZ>jb{72jfYd8}5Ktk-X$tfU4jIG+rzSU_g@#e!o} zC~CDrL(j1YX5KA&qSTJ?{dkkJ&oFBbBKowRTV|z}T^H;X2U@7wCiY z_Q!oo`j_~`qII;CD#4lCW!tlXF2YY&s{>-qh6ehVc)!OU;_adMK^h~ww7uG|$EL;D z4hTn5su{E5%cFWhtso>nkb0`c zN5DOV0Zi=^yb5qD&~c&4r~nd$ci(rnU{9cMI0PKBY%Q-YVF+)8AC7QsJF5d)+t{V{ zNA0o*JFqKbyAk1aCvYslHy4~TeHT6i_#1~^vP|$SKSq;eG%3;qp$Y5XCH7X1H9L*N z8hjdk8Alc3%V_uUa!Bd6LvQ0}zz4C()Pbek_W&Fa+5F3^O%j3uW!bKYYh(?~e#ZBA zn`Kn5=X*OGWc3*fVJx}?#y(QdLIT6`Ml?Pdy7pS{Lbf9hzhGwwY9!hBb#`@kLO z3$poh7QoaXParKe+P`d9jPPF^w2_%_nkZ_SR*O8hdKHgD8yI3Tgag*`T&-r*TW@Sq zzGFWJ&@wA~Xm)3CTE z)23Sz+*L-1;1FZ2R_`xCqb&^5>7p=fMG60aD=Y)y{nXaM6$s2A!S5h30f`T23EW)x3&@ zS261<#+-sN#~>XT@(r#j7Dii(J!@ig1Y~o1MnTF@G%O&^=`9w{InJo8IT$Mj4H%XBM67W*ns1z@BU> z!QYbBDv5zh`?@!F27}$3`_j9sp8xZY?Nhg}O~~C%&^H5iji#k1X=U41zH84ir|mYg zHM4x%lJv52lPS;<>c4DNHZ?F_DvXcz*rO5sJFGi~b=Aub+KXjta!Dal^k~CbI^k^t zF8NZNg|-3jHeFp8-He#9tP&^?G_|?V&AP`EeNYOg2L`G}+o&B!T!3dc$D51IilKSB zKatG#R=u0NGD!S7s&Mnk_Q_}#-f^(nAr6G&x2CvrpSZiQ>UhslG-LT3IYj;DF}y|Ml=r!8c==E{rL#|OGwEOxJM zuj0>kM2&adUb%cjY4(saV$%lVNn12Rv9iFfP;Pq>%l{GnGjfut82PXAHRQqkLu@~A zB_%LA4(Vj8Bo7${X31h=;AYo=dj;HZ*yqk4r-RU!&cF1W<0bfI$tfsz3Zn%ztx=U|;7-`9=o=UAU+X-PE!<3kyfzyTryA2wzXJP#INQ_PY)p@+V^payig z<0W93;kT_-kz_yr_^v~@3S|DPkmvyCi#9@6mha)Q^zi2LdPfjjW`N#uS+!yZ&%Q_X z%-Bsvon2?zV$^vIMjg^bA|^%|(;2-eV>jBhHgLkxRy8=-+e=$InoF&{9kDDFNFED1w_M|LR~xIa&(&xD`|2ORuXSqc z=1gYu)+rv#%tLqR+o4+>u8!C&7KafK3=KXVE+qq8!X9OvM(@$+14z^1kUVaOP^btv`A2S)i9cXu86I5=r974#J2?zdq z8$>h>0{+7~6Kyzk^8CqD&pC)Ae!)OMORis=ACQGjP=_Tm)^^F;XKtNpn@BGhn%lm$ zed_6_r?$U%`+~ut`8y(i4r3FPeo~z=$*|9u-w{XzN&y8dxlV%@bA{QxHir?z2Ie@2 z(V^El4Nf~CZcc+$dd9&nb}*xZebd0UAo9|{9N>dqXLLYyb~xQ0ug#0)W_?Ct7fZ}2 zv2WVg78}#qz=;7JVV&1TCBmFB%_WPbnwza$qC*~G*b)D6&$AoK9_{9e0$b5LTY!@k6XfsrY*;3im;zyV%+2 zsy17pkTpKhdh_TjUwqG+A4sVou zu>Rxhs_HMzVb?k-CN6ajHEjFfDY>{Zp45sL~&W}-u>twGE zX9nQI)G^<`#hE|Oo+Dc=V3yMp9a|vPWp5`; zoIc&Px@q0rNPLyN3E{=bLb5NZ*puM8qgX8weU^yBF7&~yGwRG>&me;i)Au9|4_`;>IxA*Hs1=TvDIx~H&q!CbNvQ@#@ieF%}EDicP8vx?ZG zlTc07de5Fe132yZGdxEi^-Zl-*w*qo#2>A{nq7JIV>|?jy?=Uo_D2Xp!WkXb|7XzV zu(ZBfGCGD#mLc0iz?AJrhPb`a!_i~W7jY64Ek>! zgt#Q^z;C8rB2^4J7nCeQj$v!#1I06)QA|?hWQ|E>^L<+{z@?S;(c$FSE5gX z(%5GU;l8kJ9^*VGIfH%F>M)EIjC~lAgPem-2EEu=Fcd`i3%r(Ac$j#!)QOYzPlP$; z_%-zTmkQY1r`!T$NikCkzwy%|ZffVDTNXu5A)@H@dmDnM_!%eXn+ZwRJS|0_r7nXt z8ab#NG7M_j4(*NFL)urgKL;6@WiNW$`tuNbD8vqdN!2^#30FNblMV+*t2XOlnUgs-AdY77dzyPTaO+M zr*@5Q>+~E=7TJH^#56Kd)ci;z-*SsKzhZ08sZ*6c6MYTET1e>Iu(bPW1i~DzTJi1C zgSs(;)+*V;q;od`b`|!Gc_USy6h0i%u!$;>^;i#EjCQ-;3-hfWR!h5aC3FJOo9D~r z5Gd^Urx(g+;Dnt2YBfG>(Ps}@ea4v?v(LP~vavfd6G^jMCUC$=k!m33oEVqAZNrsE zKM{{UWStY1Pjmw!m)=mDb=dm+di$lP*IP_YM%fy3ZY)_QGg%fm+Y$sj-E;s<52Tw zKPx}=BaM<-xufq?9Ybv)Of@1@sB2Agzf_iisH6Qr|59l<a!9YeMUf+|<|X6T zEL*jAQ>#{fK)0rv?P>CASWCxHi`!(g>kjHYE^B%6)?uAL*VpW9b2w~%tv78Lx^gJh zI{B`P&CTY+BO3$F-3Sb&cE2Xy58I^~sMTH79K)u;irBS_S!T_Fq)HJ=1$ zMWv1aaFe=);&upSttBL6q8wgNvCz)CQICDv&Al&Pw6Y#Kf=eoQyM_bK*{NH1v)VJ zT|=E62L=bE;anh@Nko?=6S=O@fEfHGYg%dW-7YcwK(S*#dGiSX|6%b2wAuMtAQsgB zr+Hv*>KI7fH?XBYq5S0&L5Cc*$|pZ#TYAx+rGI`h&|J8N&jre=b)dRR%4c&qC6G#| zo5#a}>8|5l$g8!nORhx59g4|n)ODuflUbx&a#WNeNJZsv*em57c{!h!vSuPine?hN z1NP~kn;g_lun=(U1nrMUVz+p)`_&V>t27}uJ@p_%z9qW8Sx zlKNcGzG1qU9Gbh?zt^S+>{ZCGMs8h>`#r(AMNdNw0B-{81h*)Ur$FxUt^p~ziJ3}* zqL1ud!U>O1JO%O&^77Iz@y1&Dd`Sv!V!E_ip5!I=c+zVqBCt7V8A>5U-Wy6C$ooA* zzWq6G2pNn6Q8x%k{J@`h4ITse38W&q2~=T8|6)ZtA#=P+{v!g4iVS5O@K|$#5gw-E zbW?f}5x>p$sDPN<(wsZlvnC&l96kEurYR(;N;HEe$3~)+n<-gm3Is z7FzMaVROgo-OC2A-GnGC$SqF){861%tAQB6UUbiouqREjwCB7egR% zb0`w@+u&7&6{fK_H9=KXk-e0>g4%>xQG@!t3MgQ$LEt)t=&zlk2;koW)QnF5-I*C@ zd$C~s2SlC*=7){k|u5?Jr2 zfOSL`AsmT?h8!MeWK)ExL>3(1Y>f&|P-(BCf?6V)shUx!A~QT*K&+TFSq5t9%4~p8_YzXf%;Xjrk(}j5%{{ z=DQi?fehQ6xhW$Lf&na3$jD#BUkL(k4V3G^&$5A+ops8^kf@F}&`hYzNA*9b^VX(@AfXA+R-}%vPSK2xd z;|RhRU(JVpe%n>Md0b;lo;hpB3VhCwfF+i=V763yoDRPqVY~EkMxuc^9DFgT5d8wQ zUfr1HV8BVi9}cTcH^H|Q@F=R>O8jv69Hu-E|4{j%Ku&=@6-rP2C}H6jv)ey1GxL#| zhKNkzZ$Ce`XQvv2$>#hc`=&y5J8PQ3|CBtzh?@V@9}a>;wxd(3;>tFe1w?Sn9M zzX#FaUx_D$MK1hj`<(;vmyU(|DFC1_%&gF!7tmvTrJz2XDH^hhwh3#KGZY>eZp)^&<-~KaAIBdKR(AkfsSlUITpVS(kv$9CTGs&iN#y6?aR zEU&dsv-rE_i7dfS0pBL^4-oHnFNm}dc2_hjW;4t#bsloFYe$%YkbLTg zEPV`fu!M|S_MFr*REU^@LlCMSXPJzcJl0Iv{2)$DQb}zI5LUTh&?b}S7K4zg#KIiO zZ zb|sg*=Wp*{tp-e7@xKRJ_UxHTCa3o7X*uw}S6uY@rypI#+mCn&1uiq}jUT8Y{}t!v zNsq--saVi~Bcf7^(sE&fo<;mT&GA^Enyz#70C1kq>&)5gTXFP+PVh~LczVc`QfYdg zLC6H}syE^4nO`dCFn#*P3y}6`O-6%qS$*+b{3i50&6izsU8TOH7V!8;#96OMzN$%k zP#%*GYQQuHPYq-Yg&PxP=kUx7j&s+lI+gr2(!t=A7CP0ZgbpUp{jqAyv>M!-WNUn0 z2jl#NJf?LB z7c17nM)7h4?&BH3eMoWs{N2(WV5;D8{+iBVyj-y_+bAlaIDb_i{4zfq_y=x>rsrN$ z1~^C1SNP9lFZc1bfjN@&OX;s_`XzV;Nq1bq#L*tph!&(y0TWk3=xvj`Hv5K(x&55>EwZQ|W`0PxRy&=6`x47e<1 zkP(C^-{=X{!8yA5TA;`Pnh$q~IuMG~(jWC~Qc@V&RDEda84(kTI;4w4|ABOXuLYDf zVlvoTH_Em|?W-DNW_VKcFFVGUCTBh8OZZxRUu3R9@b+)b7 zaK_l%*0$7mR^td|-w@RLQeQWiAD8xad-8Ft*9Bv(ynEqT!}iQ{W8^fp_Kk{-l4jKB zQ+=$J|0Bj4Jer}$H42xM*(Lm;5+2Ib9>VscTN3O7r|5^i>d`ct7Vm zpfx9L@+%K;p~nj=C5b-bZ(6 z)jC+9#SLkL_cMvoweXe;9|q+sF-nzcR6(d8GhlP%W~QVArMihSmms!^&I`|-5a~;Z z{{h-2j@U&G6Y`jU`wj|Ky8S)`-OP^9V~IIGtx;O?q|vMy)&PA@g595Hz#%13( zk%Iw}Orz+tOAM|}8Y8AQ`l(?(5Pz2FBeVL-;%Jdu4kL?Ns6?6Us~wrc$n#Bhr5@Ob{hj4f zn>QCn9tt{xoyGwp!Hl&Aje(HL)V*Z{jKhP%|2*+Bl5KMNQlRv7&xAl06*@8XOlTH; zLkLwy2vs%7$YK%Nn5L34TFKUxN5(#UD7kLK+Qb9wi_y-}mX^`ZXzlL=fmH={HWy25Zd94-$R3L_oiaK}g?+uojSYH$D9G_6TVI;Z@Y zT@By-P53vH{Lo#J9Fufiby+$i582(JE_+w8OEwszLoJoo&U7MI*$H5|=bf=biy2(COnZ<8SOD zM8!;jW1Q`aJdhOB23w)xO@ar6Sf|NdjR?g7$_kES9vn+wqU~sJT^eeOO;xYGnRVY3 zSs8zA_MbsJ-M2Q<8r(B}=+^vXU?BcY_Cu>Zk@DGYam8-jg*eRJ{;Yeq)|hCG*l%?- zUANP|JD7FuM)T2r3)XBa){|fQV0D)V9JFo_(P~`|ufSVLl<$B0=46b^M)@aliK$aMk%tIEDtt)_sk!ir~(rC3VqfLVs_`EX57M?F3 z9|R2pmLUHhTKMV0%jaKy4iTx(Q#`ukgx zoYt?7H6I)++;((z;ik3CHz7m8^sek=?}qH9OP{zpb!qp8^knxZrm3Ac6UQGxv{Mg+ zPFpo#H85pJV-n;D;6fOc=oA+yl)=IC;3A^0I)3{6>Ei^;;h@KKSCco{B?pfk{b%-v zSsnZJ^z3`sf$6VItMB*Y{Sn0P(rL$7wXJE`YZuYVh9uI%YgrIb86`C;AA_edLLM3% zrv(g&=%|*`Pmr4*r(<-qhtnO@UOs#L`1#`$uzUI$n8!U`m<01Y-H6exp+4r5Ww*;a zSFg6`T3bDXSFUZo=ZN{0SN?W2f*_D|V$CvlG<|CQ&CCY^HN{uju;kh+*5ABi$Ia|2 znLXUn=8Gfs9+Qmn#q4r8e4SFPYOz{$K(kvcS}P7ui)Z-Y;KL9P51VOWg!^aS7{q?@ zq9AoH`-pS%YurA`)MTOjcAkr+N&JlaknIpN->#Q`lzwIp)bH1GI$mW^ZG8X*hPEwVG%7I3Xw>gG6l6+SjBN z?V6y-QvsLo)IP2Po<9la>TKaW&_m)-yXNe+$=XFap%$a_ZOScQSXB(xvdhcP#jGi_ zOI~?}T}qkd6MYv|)ZFsrMMNo~+iGoFa8^Ki`bT)%+xa@CzWqApw@><1^>P>RHa@4% zZnIjz+ZOf}e0@FztbaNO^Eu3pbxxnh>2o;s2BTnAhJBp5;7e04HE@HF4;ok;{HFptc*gfY4fs*JD2iZp z!D~Xeb``zBo^0NTBmkfE6g!G;Pq9?=e9Sj6x(Tyl@{6DS_=^6!?|Mgj`#bKsyMM*U zKld+_m;?P#m>1^*LXIWO3G!Jhe2$pWFO*T6&lX0g}FAif8-4%Qfr8|8%4BZqDiYM|*T?Kch@*1QkYq(EIE8jZh!SJvv|T!;YvR z*Cy5H3K}nUUhA9&s%6+~8RjXCv|4d|9`HIx-IB$kcO%abz5pFSKCmD%9mCtD<{5&^ zj%Y1;qAhdj%fJw10OkW54xxcb7fv{OrHCY|YxcmUcUVJ@|F$ZESmd#bBTR ziaRPd;7E6{-+RY(y|>f840B;V?-G878rXnyRBAbeaORbPK66vG!&+?e2P}z>Qit4e zKsy}INTyH_J5b9oPY`c#9Vj)KMnnDpWm>8tQ8jr09d`F<&|)Y`qnU@Sh!I2Q0#AV! z0#=WNz|=s}=1!eIjudK?MD5(GQx5TOICcrvio;}JYHIYvl^Q*&DoxQ3-Zf!UzkLQ$MiNOk~~koPCz zMcAHEwmL?`oMnJo$5$+HBt+A7o?`gHN?iwyU_)L8iW~q)a6Zm{@&47<4yW#4vHbq! zEACGXU%UDdP3zh#m;K`G*3CMCdh0fCJ^PDgSFUY^-9g_&y8n-$M>R>^)kw~u*AA25 z8IC7o*>G$$f@Ef+CWP2y9g;;#ASo=T)8+H0PoD((nPTc_n`3!A4m-gE6cZ}N2wu4~)1XV0#- zb%R~Lo8Ecdk&V-v3;0IDQojx?HF)500yWx|^^+FsVQ)Vy`C8FYVZ*?n2tpW(_45N}U#b5?p7a&n4O) zCrt^E*7iV)BLoI%cJfHint*qG_ud0d!@CE2-rkJJ8}ICkp%$mk8uIrJ_Lz}1K6URq z2d-G1cUfk?5sbS5FSD6b`LD>z_^Q#>)ZfITF)UvMeI(a3AS@~4gC4;G0Wz}pXxMWFZb-&4%4X4UC(EKsr>>~&x$q((R0G@lD z7XQ?35nB+1fi~zEqnH_|pfwM85LS-ML@qA2A*9GWhw!5!-)`#IWuSLDN`43^GCjyi zuOl3z{~3ErM|b4!&0*jI9qD+`@ZrqOD~&eo(|ex&=Z|epZn^C8Lh91XFUvnLd;VtP z@SwQ^PBQd2@d9344XlMd)TS$pNBm9)m;pI0pusOJMn74MrEzJxyG@BGX3h%eahQoX z^#q|g{75!2d+roZdifhV@&e;TFED})q<~lp0&V~2I01v@b(MIzCFe=Rs>NjV&vF9x zwgxHT#6GLr>wgPUKt_3h*-znjEQ1euz~$1tfbB7!=(Kk-gJrxuIG&%bl$=%PChQ>- zN8As(<(=-mVEuO&3Q{~Wkw}|$*wTy>#1%eR#$G`SMxA#!A>b~xQ&>G%JkL$x3`ng1 zhBo&>?FLY%(G((nx*BaFO9d*$CUYRQCYr5Sy+QL8S2|*TTYI^Cn>XR#Hs+~0&03-&~F zg=7VteU8W$$UQe=6H=xzfh0KS#c?bV%gY8A4n;gJlhNk1)q>;+=E23=K4J{Q9o(&?MYb~-Y)8TKc$J6*k`dp5>i9PL-+*=ta@B9*Xida!QHk_)m5 z{4ajH@MVUPh{_%Y5w&AnH;qn=+aCk8)~>iGjXKLDLPcqxz?!NoLfxBkUcX!Dz%RSxQJ@~7Oz2oc8JoELh{p-KZwq3t#*Y&dR z+FiS@6@4=__c}{L?wF;fs^B3eClqIwG zZz#HE!fobY+hC4eKl^Yx!}n_Phxe18o{2dHuZ^5QA7rJgs(ovu2vYg^*jwmWW48A8Nb0V(|tNerw1Pa(AXvy~VuC z-(JY2BBtDBS8UH@wqJ2s?g3`m9WN#v8r^=K*_P%e;YHQK%uaS|&*^wcX`k(brFMeg;;y;jh|drEO_Q9GzrwEgyeRv0%U zt4**9Qp4_X&vYNmjp9V96bu^jlS!Qs!2(!g^$iRwi;L1JU2RcugusoXUq%({lMgauHI1xcs%;30fI=wS}I4#@Lpc16$!4#AP zrm?ww&~-5LxylIJ1L<*i4G;vR8TC8%l?w><1e z;MA}d77sZsiTSzFE`PsyWhn&BtlBb?OnN)wE0&x5xoBy5&dH~O-kY&mGJTu-`>t5s zVz=FDu&i4dYfAmC%_bW5@rPG@d;*2u1b8Hx@WT| z1D&bf;k@lV>|y8>V8-ih%*e;rQHa!8pONYQlyAGlJc{`CVJvGs9O6 z-8*#UaHf6hyI5p!`SQWpy@S>2pd4vlb47pG)JVy2?3kf6GS$_8#hT{XpAD=v&Hk5Z z-LhrtOe|}v;}np{1#;t3wI4_1bLhvgG%W1F4B3MRHI!4u3Z2>(KJEuSdBlr>WuXbX z1^OudqYVWE$~XJa%Vj|JDU%BkWmAxI%^GZsEpW0|`Ul@1tzNn2-Zguw(f2RIPB*(p zJ2CpZx$YfnI}DFKW+<=O(LMLO(Fra4F#opF+;5Z+`n;8Jr`|%VQ8!*qP;Nt$^>{1P z{o~2Zcp^I8W=tkqO$nytCcUlzO*Ou-i4+3M0kVh^%-|zmrA$zO^wO$OO%uXq*610< zTvYMiVlJW`?C0UOmUL6w!6n^^r5j8ABf;QEe`({=ME8<|ZB6Nxw(tjjH?Vr$s)3sa zS_bZ4H@bUSq@2r@Bg=M=uDc(XZXQ^*ZuP(?xy(k-!H;u7vsZ!s6@f0KeY4;Q9|x%M{0LAdr&b zynJp(`bRqdLAaJKATgYhfxcg=)A#c_fc*gL4|I<5XL>!gq^KaaHjVe-ap@mg-4he ze{;^@2YjZ68{swvFZX#-Zk0G6Ep(Q13Gl&JP!pZga{ZN;`xj9T=j3#b8uNL8Lt(O4 zEl0XsikJJ6DEFKw$84ag0u3%8m0gM_x|4a_i%=Hb3eX2ZVfe8l z+WJL2bHCDoHqkSB<%e^(p!bqbC^Gxp-0!MRX8?~Wz=_DZ5FWMBqj;9%9fa+O{t(y& z<@=MOKfI{~&a!12=ePOYe^Y-%c%J+AP z_GS?-XhXgWw`ebaZ<2qzDEC8rd93QirXaXTg z7YT%eUZef6au4t$i25p4PEVDe73Xee&zwg3^HcZ?cZ1mg`wJ&)!i31-^S;{}ix&#< zSSuTDjm28&_g&Yonv@?&<#MTX4*RV5d*JKIZ=+whA4wTh=eJ&SpY+%01K{rEx${+H zuFNNSx7sxqD1UOkJaAXd-MoD6&C2UE55qaiu`cF99%U8lQozKTX{c)R3x2Ko_vkdo zpo9yo)Q_vyHt`4{%W99%*e+~?PV-SLdtQg9K#Nq=QA6Ndp#0;tZ&KPsd8*(I7*dNH>gq+J@wdgeW zJ&v)!yU6Bhyna$#pPR*`I*#%=$nM``)X=-{|7)yooD3@;QLlfOUqAMDbRA`sz3TOU z;@3Y)*MUEfaEdS9^EH0`ab6w>C?&6C>3gsmb(%;1gMZK5;_FX{>%z~%$BxTD&3(Jo z6;>YLGH^Lf3)ClMCCxce?&Nk+&d|A>m#g6nsoWnL-uLj&RT+}%uArbSt-?;xIX`z6 zzxNoR8+>PBOGNqZw=Vxt%r#y<-c3SVyq^TOIyV=;|M8!x<^4-Ud3t|Cd1!^O*r{Lh z(m(Kiz3(5XzZu_4#dW@yYEJU&2K2WW&pdlKFaIzfAG-bz;yr8+zkcjv^d1~=VVC3Y zVdz4P&`0@u==!7T^}YQ1bP@dMS=$l8-H==x;=d6Nt7s#SfYrQs3kQ_KgY$j7Cycs?jG_4+-0yz28o;}+N7Fdu%cUSB*Pex_buJRfG& z>kadPujBV)ed9zKDFf6M4mm;V`(E`r<`U)=Rye-Dhx|)?J${Mybj^MLrOux-Rinkv z)siqx3u-I(MKzQ?`M+w}{{^=T(%3?U5$Igh_hr0yN4>0G^YGke)GG9~GgYg@%C(qy zO%);eI`>UHv!>yhV{=#6pZQMJ>JraDl@#g=f9C(ST+bdEx@k06y0E49zF@SA1MsInoy+Qj;(2ZuR&w| zk5XJ;G@p=rQe0m&pV%+?ylGuLpV-gU>y7hC=#r2fT$d!><6Zb#(ysN10@o&sd^*v5 zT3A-6IeD9^r68IxRpf;UG25V{*4~R<@sE5hgPl8*L`lU~0lu~Y>$mvb#}Mo#cK2Ub zty%F%rs0tbea}a6L=SnP$gvD5!lI4_%;MrY9v6F!B3rYfJXO$8UIUwF41Eln=XzR! z7+J0hFkHWp_kCG{s*gMB*v`GCnGo06K7L*79Y$R5QLm5l>&L_%f$JXidWl~bdxsm> z`_=20@avEB@?4+i>);z=?e7=+fyNc(`uPIAzg|wSIawQ1X7<204Nabue!jMZjZiO( zajNa_%;!c?S<_TgidSvM}~!{gNzGx-=Ok= zhHrX2rtSmzfGAHDEGqBdYhCoqBj^{tZ&;%_{{CK+e}kPvvO$!meS?>m)bjZS<>$~u zb`kJsX|CwW<}LBLih_VeOxqB!;a!txm3+McTEXh&JuR7C^> zEpfH)7neVFV{LqYhPVRp2m%=DkG!!Cz2>9RC-D8eN0S|7*oj)mxZ@)ILeD(T=O};1 zQ4!BjH5Yh>#!d9oBhss=N6bF#_)Avssy5>>>Ht(#Z~y!=Pe@Q0#kXnI2UgBMfLnNm zbcD?qKlmXQtb5Yw-a+H4JSE+aqFDF;MB@kDP;;5M&ZhZwb=~9o3iUd9)nG~0bVH3% zy`JLN#kz+Lpoys0yZH5a8{iq5H>mdvzYZ$^d))8vJqxc39YNS)Ui1_BOZ1wrN*}{h z+@Abp)!0G?oG{)X0;s)<%b$R!MlJt8uqPXwETX*7!Rh_NcKGT|s$TIYM3s}4FDwGS z4=gTw0v*I>E6O&yW#~JEK1c5r`rlXIp_ctY)d&|dxn@X(?;H$OL(3|X}s0by6zgxSg?1@_0)6kn5TtA}k=o}yKRrk-YN)Mql z?VnPbb}g~V30W)lpZT&Uq>tCiHhOOOmQ7H{4+Z+Ep&hknvgFHH{KO9$p5X1koL7Fy<;j=i7f};@2w|?rJSOxQ^W5tihk75| ze%#BgJRcZ) zBkq4*y-%x`d?*WiAGm)pB8m7>K5g{@?^66&zC3b+bR6Ge|$2T7Z0d1>q6f{ zmbY5|Cr`Hh`SPSaspV&%Oy>UV`yYqZt(O18h04>MYV04fy4CVOd@@N1plfqb^v~k* zPwcLj|K7s#8jO$dnFw1u%Qa{kp~HOq8SXzs;}0}7=~Y?MqxlFP;`a@6uWRoW_t_DC zANwlZ*X*s$AMM-J`=oDU{)y)`WBk5?=WF-h#_waF<}(p*Lf@%hJBk7kC!rO0I=>35dT0tr_w zL)g}2;hU8gIv$nxtoZZgg^mZg1An|`Xt{VlpMMvAKV%_vJaxo>_T+H=iMMQn(D6hq z$)RekmbZLH=y>88$MA)op}8gcitBbH;i%7QUpMz8SJ`UwQM70N8Lr#apAq#4C67PB zzm4YP-($>$ZZ|(8Z$~X8lW0!9Kyw1R*1|dY&-^~k$xn*=T-VELYI72nppa?WBkKJr zymEd{Vp-un%}H(}Do-)e{U8(7IoHYW)116Zef|=Dzcwe~TT$nvjbtL1hBb|l*3`L0 z_h~M^;l9xIPCx8wP)mz`u^JfXZj3sr-?1UR^|flJt2Lv;l2Ip z_F8){;c{zj)NAhNwgvxk#N2lkcqcfXLhoy94C+T4MA_SFWu?3D?P}S0f|uo%JMR-Mboz+=4chZ2uvbef zfB7iC?!tAAxIRGFkNi$tr#$Mv0&bgs2gxq^-+B2doS#`Cd$8Z(gPF8;F2gKy&r2@J z`&lHGa2vHQkK{N@L3YSe2}~>TDthP7x+~9sPSmc8*~1keW#n5{_<~l=W?5s6m9rY3 znZHx512KW#&w_Mb2ZlL2PRpKWj+ak72apLsejF4<$U1^cO$C~4o=`rXXkF7Q@AEWy z3~5iaDc97tHOt=@M!e7t`A@(V2C7D#-fHtmCYzql-=3wfa--wm@3>vq$kBE3TW= z>o1@XR>QC8I+eeeUoX6&{FHjVvHT{;ddAmI0guw!`5yk3rEBG3*{lp==D4LSXM0c_ zZjH&KNLD6m+?Wi{m0x}asN7S}mCsNn92`m`0i=G>bZ38iV8#1hq&XkR#uH5=UCO}m z(i88SpZD!sXx_`xHmub%YJC}`FqD|=Ky{L0#SSj2J4MyK{9LUzoH1(`*LLQ8D-O(_ zZm3S4d!lsw`Nh?tz9bU*UW)bLMbCl}_K5dE?_*xYD@m!GFLKy?kNF|6@t91J{1H&w zXuYO*PAa~1s(h9vKeFdw-am&%<8QQk(Hvjc2Nd{WyWkxEsU>W3Tcc5bmO#n!pBB&X z_n87_L&WAuL}RvaJmVvoHup!^<%4|wa2uZOf>FaQVt6SWA#TIh&olmnvdj41#mh=} z{onbrmWB5I+(%LN9rIWW&G9+fxm7I2D|IYJ_5xUp|35g6xnH5)p857@?*ESZjo+^t zLk`{^;iyI1e~Pjr4d)pj{G0k0zFPl6_^%hCMR>o>V#TlEdsVC0tLDBf_8$hUHsC%2 z>cjO9T19NRLVFc2E8R8sgIZY)!1pMt<1QH5zp+=b6MS8@O6Xp(Tj4tPDt1P_{!4zH zb}L!B4Deje1zcI=6SXhz?D-lVAiv&S_1~5P_@G;9U)zsC+c^1{31R)pf zDy*(b*GN+$o(*_xO#!~To^HCd4LeHIlQv-Dqt5G4C(f_=TFzIUw6@%+5rV}8{#v%6 z#?xm`tE(C73m9Gj=%Ag8>iYxM*B2V<=5a!r)~0^W$J06Z*x1-BNkd;scioA8}fybnS4BR$h(c@5BWrP*mzaE_{wC|QygLu_KI2~&n)hf=-d|cfEmz(dQ$GEm?K!Cv z*)KP;S8imUFcMbn)WSM{=KRHHVIzEaC9FP>jD$r1{w8aW@A+9j z%H9b2SIx`kIIPr+eBYu4{cC%tGTd)w`~yF`8t}8Lne3g)Odt2ly;B+E&}{Zj(Tb1J zeVspd^3;aSZHIq-#Pn->r|3ohmAzBLYZmkma?1S!-fy`{ z^ku%rkTNe(YVzdcFga*r8yBgQO5K}tPWY)`U;4Y!fsuKn#!@45&(G%RBkQ6gW0S$% zzxB(h_b=b!WWr}_s3Y^#*u8E}=}5T$O}xikjW;x(PyE7zS+KP~TW7WQM?TQq?>JWo zXKT1+kJzHDHnxn^spa{zu$r?xSX&r*M{zq#=Kspt!YIC3{?zKaz@eM@+*afNod^D{ z=8vr&(MA7={Fw*;hHYoR%ZUH3UkN{rvD6&SYcj9KSMyPN0qSEE^$}H)m!yoO)3{;H=$)?hqznfXzfV{(dDu0P+`^=~}?d<`_$KWS|tm$N)0F`Ty; z9_;ht{kvVQ^9SF4c>ekR zFFh@=r@!0>_HR7b>|f=N;`wZge`F0#F?_>fc(6}_=lKtw|HFgyWidbhrkxv=HS*ln z;CSErkM{htZ`-+k@ZkC8k@vmT_WZMN+__vAYHNJ%mIu$-u1fr$ee2GR%6{T4sh?-JF?OF@&M*=F@+zu=&(KRz2qA&JV@MCya@imNzMS>XfQPH!&|EA$np}3O|V9 zR;7F~r77iRN>s|jlQ@?&dy@Nmlb)S)XwvaX7bcC;U*060ub-YizUGxlt}`i2sNb6u zHEB}xxR{KXF;%0mEN<1PFOF&&b#qkIDBUY?Y{TX)oIKDGzYYA}-j*$F)ZKDeS1=#m zg6)5g>owmj;ArR^oqu88!tvwD(K%z&=0xXkvhBgO5u8Zo-nAlk`RI(vQoWsPa~FMDxgGsB}dZk#x60im3x>5DOonV9BAa*gCn-gX_mCjn{KRAEnq*TRD->~LCMU4viqqrADH`tJ; zUp5Le?1O=%P?NJj1=@IoXs; zr>Tmy0>RH{aqCYa_tobmKR94z=f?*h{qmpG)&9wsOG>`{C$)8d^5sWA-JU#td~!-w zmiw0z!(%hEl2gXte{*tH-h^4PaiLIL?5qiSS(6``Jbu#nNAl9VYJYMjKS33rmK^Vf zGeeKWO-`Mi5y}j^@yTiNqhg~oC-XaV{La?+NY)GCiQ~p5O~`T^YX9Vkl9DG#?!SEb z(MP}hUox{&QZh4BQnK!Uk~TIgC3W1y%Twm1l&4irjTs*ajUSU&kzSEBud6&UC1+M< zUNt|&7Zc)EA^-jhrE#&opO6}gaous%)5kxYlM?ObbB=a$MtbsiweL`Hd-Pwqf9p(j zS>(Qdk}*xh{atEis{0?kC-iT(#ebK-qurKK#r&-!;ENdl{8#jN#lDnfZ;((et7+x#(nE-nhBrs>eM!?i=Iq8HZ2u*yOzA zCzGQ_v)3gr>B*$14DRlUau>PvuD8gkcf2uaPo;TdQl3ijMkmfqe3GBhN|>AQWP(2? zt|X41Dk_Qb=52fA`A58`9{K%8{`3+5k*e6lnpjTf&wjSBtY-EfP5UNy*zb1_wLUbv zhQFV!%9%E^X4|yqr+H6J`~7KuI?bPEFR-4Ks~7$#_nWz1F5#;t&zxP8keik3eVXfT z%Y8oAdn)($bN@8g&$aNmZtmRu!Lxj$FRO{>SK*4d@b+0Q@ky>pE0|hPT;LbX+<)Jx zO3LTgA7;9fX1eao$V_i=raSYO;bu;qSv=F9IhAm&1mo|j)@cv%HxUJjXzJ9d#Z&#M z<6|bdVrpq&HKyPL$TiE zSa&ei{m-%P%2@YOth*=Ht&VlmIK}HkmGp8;!02$s#F3g=P%|<6p`u5NR1qbQl+`>@ zx2tHd$lF!)TG0nZ{$CY6SLFTYB6nlae<<=+7P-Gwq?+iWw4$j+eo^-Rz^O`3&#KvzeK`A6w*ODrZuXpWTu`>(t*VNjlvh*x(7K1b za`SMi#-@$0dH$h;554n{|Io9E$u$pE#U|7|G;zP@>?e)-&;lQuCtJ6sw5qi|GA*e!oCd?V~_54%gl-wbn^iW}bVHdO^P7S)B{%f9=( z?~d^^d@tnlTU@EBv7z+Y=}XhUl-`p5P0qDMm%Wnyi}V}m{!h}~rRL`+rcX$pmG1wK z^dF}mOCLy&s!QLL{)g#)T>8v(uOt0hy7y=4&!@kW?k`GzD&2cD-JPE9#-zJ(>7i)1 z;%v107t!w4Xm=pmt&Mh{k9K3C-T3Gy6Wr(ocTPem#)*U@lOj!#sCmyu{xb59{BUlR z8+k0^bwvgv-ghJJipa)@7ZsTw@xBuIeq>MNa8+p}DlIZK;*E}QGnC_nJ@2s#-c8T@ zXOF{Z?qi<2i+jbGIoKn&$@@Kz|6b%WBVBfOY)iqHHhgLGmp0SqZ`snQ!`s|!#DDrn zAnydGLl_FgKxRjy&G*8}EM}`)A2*AdP~VB*B)mnKR|yTrhK{ z(&wMVK4<2fnKL)wF>~`VZnBljpT-L(oFLpcQdz87ILUl|B8YC9{liK z;8*w;r(~{^J13a@8tIrx9I*+{`@3s z1i$OfxZievx9I(TR@SHgj-iP8O(gIMdAoK0pF!xyQ-Yy{zv8X{e(A+2b{==W!g|VI zu}aeFyuv8>qH~8IdH%ZtEOB0_iX?`ey06DXlAOAAlR~&xatg0C;yk|M!Qb=u2Nzny z&g1-jri$NXbn51Xlbpxr#SrF^X^GC`v)D+~iVuGuZ{^?o%+;0Fkn?yvFIJ6H^rQ5` zD82B)+lO}l&x5zxV*Yyjw|S9OxY2#>!v*f9#OC z&+{04Q~UYV{~jCz|LjOMS1d&4Fo+%b5h`6O#7XGl$b};a(~ZmXG|FoL!8mmx}+j*MIG({BI1)(>^;eOxjZ)49oe{`PrbHG54IjsX7}t zH7_SSI&E%R_S9&O7#FJ$X8S3!dn)EvhDwaQzvVo7ZQ-~mK)CTXXhY!c6 z=cdn?6PuJ+onN$IMr4Dx`!`>7?_`%Q&Cg#_nw?#`BtL&?Y4-j9CoU-|EZ>N z>N#2C67PTYUxrr{m1~Rcce>$+`8^-ck838Cb;#Kh#Uj^$Tp5~rlargBqMZX*Bqo%~4;Pxg{SQ3*LQ zKa9yqhzccplOLXxzgGncCB(D16^-`Sy9cl@BXhfX&Qj+I=ijsL7|K~yI(^)iioTFi z`|sjLg`%BG)9?S?{OZt z52M{(K{u2;2KQ08oA3HD?jG!Y4E`PPU@*ja%3OYjaEy}|^urm(d~VJd!!4fjDKr)b zJ8_o;2VrS&29~i~V+_Ci@&Cg47N**`&{$(!Y+Pe91$2hCOIIF=p z`gQIJMz#}SDZhFZM-7VQ+>sLJ%p-^Vau8*V<4cd?S!k>=E(&hrv)J5qq#Q>-s~eh@ zS$>wA{|a-jH1{fVuSO^1oV6Bbz2&gMxE_6ra}HA8IOnLsyDuS=IJEQ*+|90qIBJ|S zQrEq3KdTCH)HSi8vApFSM$U2GN%iUc;)Hl!rS`g%F7-}HxzRlWFDZVnM4ecr*N?HMoL<76XiVbU zZX7y8p3xa`tmNjWOK#|oo=&uo3#i{X-(>FBI_bC@R7QWZ;K5yJ5_f7CDkdKro6SP?EYSRcb~;9n-J$8u(HSk#Q8s!-29(eetwQN z#`&+9&mr1iod2r1U$eJfmnQgcNGASa^MA|SM~v@SZjYk9asDyYAR61R{E}8Yx;g;E zjwF#oJn^)8J?^I$e0q!KE$IfgYbyr#7gk4*JeJajonJuyGU8$y&iiyVD1}=+2?BzOrl)zey#H6 zKaG6i{b!8Z6`qzZKBpY|KQQ-B#p%DKocpcjv)g=Lw%86C-&EfGcg=l_JSQNN0ho)W zO+Y4p1NqJc%g9LrmR9chq?=$ZG{IVEf}<9iU~MzOdECONJtjD6i3!eX^QlMb2~LA? z9TH4%)|-1r@KxMLgZJ65GY$D9(C)gRWSBtf8*&nm8#zI4S6ghg zl8L|8o;I)&9rnMf68T@lu7=SQ%1b+??Ed#H#UB}8RJr_}DmB_d?fARQzg4B?D~?j! zYee&KAHep8IngD)OfM5=N1yzEW@-K0a`lS&9J12AYVOx9&NnQc!{+m*@h$T?Vtj`h z4f|H7SO!VvnEAX%{v$R{i_pKH!9By6&)k;#yUbl^oJ*V$&c440A4TgT=-y9YDPx`p zJ$?o(XS@`l#~%ylTNw2|5wj-|vnLU=ClN=MBx05%;?xIk;ch@m5k_t)aJ~6#K=&e? zp;F98$#aC>T-+7B1Y6PA2z`1Q+>7Q!(8HTfgzr4$(>tR4bK+(KJn4*wZO9?QuR9Ua z>(E>D?39@+@!M2cR`sAzM`ne>e6jf~Fx!Y!uSt7k7|0HcBb} z%zO@6Y_FNW`rioSLs51q;=fHRj`;6bNR6o?{=1gqG2BV?EazZu@CwYMT_>SGVt#M{ z7MQ!xSj=~uBu0r3!%}mXF_uVTlvn`gQO8N>%vrd=+|`V4lh7Qo#<fe3lxQ(Xx`zF1@wF+$+t!%G|4|uO!Be18@TpNW#|rH>iFp3GKoMy&_KZDg*8b zUW5CTE5?f0Li+tdCkgvT>FBvAH9Z$Qy3sC1Ui4W<;dzx8y}Ay&RZ>QbW8o$9=~1bf zH6*|r=5tf=GkUxYZ(009^kqr(Yahao&F8LBeOwZK+$H#_`P^6Oyg+X5DZL3@y+yA_ zy)b%|{}^MU;-?4ffl0LbB>F+QQza8@Ao9cpQg+6WdOFeGTA&;1AMbnteoPj@8J^DYV|4m{fDfc1Oi~p**->~q9&HZNZ2L5lE&k>_^ zIEj8%{>RMy9*fcR8&CJE7$z5oiYvGIO2XpBY`(X*%o{J36z%q+L>lnG{kK(Vi z6sss{F1GFt#$C_^pf(~K+DZ_8m)9287<~I zn<#It(@g)B>$F&YwxS`q=%;=VXx({OX(6i^`%R(jdb*C&_ERXe+_K(NoF?N&i+K}Ln&NCV z_YR~q#XYO|-FC(4b|T3sqq{0%Uoo8!JdA1&+U83pu%p>kRcA@BL z6|&VYfyTmW%g;h%jd8JYxpAd&HG2m0=)Z2mbrzdyKhN37u82J9{R(Whm|Mti9@0pJ zJ1mu>Dx-S}ndDL9l$u>ir0bqT6Q)vY{V>eC?9M=Yr&4S0!fbn*OBttPE3U#~V~P2w z)}~Tx?Xa8?@>H9BOm(U(wkE8^RA(bOpX#V~raCRg9a!M0?n$(0s@q1Mr&3eIOif*c zo#@q6x1XBg;t<8)jW_qx^f*(!Z{st~Z1prGe;s$Bv4nb`hMZGiIjKxT&hnX0>ii;* zQL>%JSVEL+r!h_tC0l-bo?4rRB&YFzGqpdB+$O=T=H6j$$&hUviXRyghL$3B!s(o) z?uT*Yb~<{M3d6{GI`VuCCI!1-w)y7}&vaVBahQizPe-G~{9q5%+h8Z{k_ z8V5_wT}BGiDXDH(uB2a{Zn`v`@?ODRZ80n~))*HXmst*%n|p=1SDJg3xmTlC)6p)K zLe_pdtxWEXta(mHCevUGZEU);m6kG{zTnTHWHOz4JP*&RyjG9Xsj2H&qXb&w4CKJP zf`i{-|8VxB=87dO%pXJE&MHAa9B8S`Nm8jy=-<|DD&u#!0Q z$zce#p!50EntXPk$@%2%25cw%EUTkg)RElrw4hn!@C*zy5|~8}CqjNX1S+4i7~kH4 zx!BuT)YRK>hEeO-v#2Ba6dH@|trFgzMI9x;GTxg-9mz-bf0niSS=7{c-18~XENV)r zFErK|7aNxwR~lviXE|#u{95EZ3w!thY%s1vr)D8B`D{QpX3-bih8wLco9ORmnFW~T zyn`HPQD4O1M$wngaz|6jS#FHtr$@L3)g#QpO8f$h3Xe(x#|~YS-&s~ z>v05k7cFR(J4oA{<=(QV>M3SJ=?lVaBrnS9&PJnl!AD7bHhT2}ETv9oQww@az3^Civ}iW^ zc?hd6;s^znmBzw*K*9Qt!vzA|Fy2;uo^?R)N{`0<-4@X3rU4W6ulBo)^$| zF5{LxFED#vK+N)yJufhOUSRgT!0dT}+4BO*ew(MV=LKfZ3(TGu(8}I$3b5yQpzL{p z+4BNg9C4aGFTkGb=@2%dz^r-!RvjNo-N#-&S5hG)|a94u@d{Ep!e!ybblWXbx>^5H2*<7#ACt8&?|ZX}@zA$%|UIoWn?7ZjC7B zP{!}UP3CSU7jr17sJ>th<^4K5iuC4C>H*lsXmbwby#PBY;~d%o`SIfQ)XP#1v4_`K zxl=z|X!TNP^-^f{QfT#3X!TNP^-^f{QfT#3X!TNP^-^f{QfT#3X!TNPv*1FjmqM$T zLaUcTtCvEni$arsp-H~bBwu7YR%C6ki1w4tZ{Q^He-Y)3hg!QR!ukzEwZtM?;&nK~ zn2#MOvi`To`rjhc&mvmi$M~1nyXuRJ$nA$vW1b>3Rd<8tFl zqwHQ0y^^@j;?ZoYh&DJ0ZbB1^tiLXz)N!~q$}OUHE;&Wk`ihXiZQN>oMb_@-nx?Uy z#rSzHbur#7NGwbu=W{9hFf68~=30xJYx19K`Zm`r#$0U0O`bLo^IZDMJ8-@EY$S(s zsf7?!+nh@+Ky*Xwr0o=&winwRq!?Le;1kAr6r&F>!lYn3%nDwI*~qz=TIhti%rc6p zg{yFeF`sp$VjC?KQy20tG#1-i`W{zIPox<1J+7FZC>zd0dd2ia+K*Gk$f20J*aNGL z3yn3##l~g9%RF6f?iJ=8g8u>E;h5&O4NH3# zwgrdbS!%f$Xw`cc4e`c@#On1J%nvifsE~KCSgp8%sP&-bUeW zp-+F5T)pi)O8nQM>am0x?1rpgz&LDp3H3M$hRr|1ERS(O@LkC7QNwIXT0%Wugjy>r zp&ld<1%!kgnHD|73N-P?p5Yq%^1Ffdb|cVSe{j1CDhlea1-N@605HgWTLco zaQ|lsHwC4@cd&*f)Y0osiPcdFb;L}VI+_fpD;}F~me}Z`1WEn^pVN#DN~o`KP-C+a z>gx_Xr#w(o*C@04g;M0447n)@#v{p6YVagXVq9H{Y%^evJKnFNM=4TOnE6&bg5J&vgT38nNna%<*Zikz>&O%`75q7*qR4?ActrPc~ck#MI| ziiDX1AVYFx+FokfUP_O12mO%5%4~eA8NxW+8iALgnHOLLS(Tx+X^?eim`x3qA-!8r zYaV4tuN}@X=3Dpza~B#l)+$3Y6|*c%8M%{NZ{~z?(vy$ADwZ)4i-l{EMj7@*Y%prJTZWC5&jze(nT>MG=moNIZ(=pR4E@x* zEwqa=dI9C<9b{OB+^(^ME=q1Rlk&P6@s^>JH=#znW!Mm;WFy`(TL~#M*_PRex6DSo zWj5k1Lq9tSss6o;^^hT_3|+lN$)nJma^(LWjKd<8BmZouv0ORw{~3(1KF@rBv1mD# zp&e#Z4`?2?s~pQ9|2*c=<;Y*m4}Jt6MweJ6H=jb|T#HlvLpim;+?!gETlHDa|C$-9 z&n-7iE~ge0Wo$;+vcmtZscQ%;Rcgj#V!_mqo zwZoSr>_#`#I#oG!6oRLy{c<$_Rd|}U>vHM{>7oBO;5lZ~ed|2R zkp}0XOY@L<3aqj)^U;cV$XuytK0Xi47d0QBhqOh_!RKKU(%}XRzmb{RJY?7fwVpE% z8EOrBtL0qlIrHcrW8pjGeIC-A3`ffcDGk6jg+xB`X*YMLQR{dWXxb&Hxm5+_74ywU zv#JWpD;Cp!E6}bSSZeMvBN~d&JZ9Myl(7NMr}ir-V<%i_tT8S&){%z_#;A>O8TwN} zsTFdCxmTKdmAO|_YZd62Vymb2D`@-TI-~aXRG?{HaEImgDAvA$uQq*f7rjgctL~X_ z4=t;LuQsH@SDW!rUu`N_k-i0w=v`K%#gp_b6@0r%haG5Ch3)pK@Vb;D-)=~eZ#N2a zNpZ4PFP|IACp!?xCtq!@!CUBd1>Xu4@(z}^!W&kuypQO|EBJyV_g&*X<0qEZr{=z| zeDVc{Ft$Uif^UnwbQkwy#NpB+aqCLlu0Rkk1~~8s8-qe!rFRfaT|) zmFTC^3cmH|=_}?wWI2D;+^<>qH%umn&F3w1A2Ggd>AqumK58<2*TNrTj8wtip^LQA zTw<$qrr=*mTQ~!!ntPg2_NS88A^(}?e#n@QBrBa+=ALbQ*!YN1U(73=Ip)@P^Gc`4 z+{IYAO6EuMDG9y>OR=bxSP$i)+ zZC!{njg+_2T1_RbM(*|4q)M9&RbpfDp{1OFyOb_1g|uiX!*HK+$XA>9pjt{Ld*Sfm z8xwi+|H0h_tJ<&hUst)wvhVX zSIPH2h1A#TDx^1=UHrSS166#tx(WA~dmnPBLIQW3D%-(Qg&n{LJ0M< zDXhwTMh@LDoAx`Ox$_xVg`Ur+mTyDtc$`oFD|ZvI&1WnW51Wa9J}W|fd`H)AgayQQ z87j5~^a1fuGoS^GLoUH=VK>VGs9+@m4{vo)Im=}NUImN zD1O#AZnED<`$eniXCqK^t7_uE4b{(9Tm03g;nj{byxKIp+BCe{G`!k$yV`WSnlW<> zVHzwRtMVx3kr>doTjV~T{~xz_9=CWNw|F?KLv23J z{}cG5(migmJ#Mi*Zm~UXu|00FEwOpi62|RA>?TRz|0QVhN!wWx54o`qN}rdY$$e1Y zaFzJwYVHLqF1DEcPc zh~6%t-p|2i%D9AjPlrbtT`XaZ{RX^EPL^7YEJXrWaBCfJDfvu+*~n+9Nn@!=btzUM zgpaZDC@M`tkZI{PRoh^5_qb=8+6=n}tSc)qw#TAy~3QKW?rMSXU zTwy7$uoPEViYqL|6_(-(OL2vzxWeq=3QKW?rMSXUTw(T*y_LvnrO9fgY0*mJzlx9A z;7XI&N_2AuZfWUCliNy@+e*{Yl_s&3Cb3nfrK`}+2z$L{kyerCBTyD;6&5KL>RZ?< zVjhOl&sFHBsM*IVn|-W8Kjqf!V-@--)>H4R&`D7`xeA?>dxOQc(Nd9CtU?>d!xp|e ztTL@wg-+gL-Yz?{nvxE~Bs6L@CGCVN>1r$KY9#hCZuM5HDP5wo8Y$gy)>yBx#(Ir4 z*2>oK?jZi!1F(j7KZIJ_Uqe|$odj7!S;WOgodj7!S;TtsyvBNsHIyX@_j>cu_rx{m z_5f_A=GTz(VQz!anmju@(UY}SJ8Mbz4ct|X64zS2thIVsYxT0$>Se9f%UY|KdYft1 zQ!o7bGxc%=CedHlQkwc^gbav?n_TcZ9ii1Nk`*HS=vCKbN3%qk;SkL46r- zK%Sz$j5nYgqP~nb5O)fcy=pMsXt4Y=ke@_+HZsO;AV29)YgP^9CmBjB)|tkxGrOw& zQVIBICccgwCqvm)eQ8UC8X>GRS*;^)S8!Jw7aD7fi;c^TD~&W3%XC1cmHoT2at~cqeCzoN|s>k(KkL#@-*IVA! zo7~o0J+8NUT#wvt5mNQI9=VCC$Mq(+^_I8wq?V44>T$i*<9e&d^;VDT$vwOg{$*W9_$=FW{acW$(~bED0j8*T2~XmjUA<_`UY)ZDqz=FW}GBjlsGbECgU zwZq(5CDPovk-3s`b>;Mw>k~GH>d{t+{g}GZDEpcW$)3 zzKzVABpJ<`8<{;R%zMPv#7fa^sJ&ZF%w%uCGV{?_=_Y4~+&05%vKdyB&9Iu#iedaU z!)h{pXks0PkgUVt&mP*Fu+4n*U7!gKA%1oViaJ5l#4bUFA3y?4%)&^E(;td$*!=H_ z>=h&)Uu*15>=o>T&mfH^q)jU9733`>Ecc68%O-Y95j2 z(`q)N|MDp`&ZTv1L;|~^cKvNc4qu0*=2J#5vymD7U&DFGd?Vv7g=aPf7a18%8X0Hd!)OJrGOlJkvyr|?KK0oDjr2zsp~i0;>6PTO0gJJb`F5q3Dj ze5}YO^7%8UodcW5RS(pf=q44FN&1a>#S6f>8n$wK*M199;M)S2+ zdz96cW~7G?n*VdS58Kj=JxqrODRna^6v!L;PtMVQN`(Hu4Ru1H8O?tKb}AJtBxPhB zl2Tw5hhUF#&hBx=a8r4v6`X=vb!@gXP|fTQzlHn0@{Gm12%{JSG-JVtleIx&z=BNu%kqUbs`G($to^-$&#{A$rxC_i(Xq-!U&7~voQTqHAG$a$2(%-h2 zhP0p|V{z-dK?@r4DqMgxTF{gIaG|lrxCqT}q5qYCt%a#GE-@}OE+fw^^v(*i!rUv( zy~^CHgI4_4Vqscn<4Q%V6D_oEafA8q2>uASB-Vna?c+9yJ?wgFVc#`jtmkb((^8xk zY%F2WF-nb&Aq{lwHQ0epwxCx?hMxC26@ymTTIf#|11k_vv%eO!^snI-)wrEwZ9!LiaO(tR3mQwQ(O6OE z5n9k#N{z=TU%K1I|JX4Wax9{|0du2TF__t9AQUX3q3Ddgg$=@ z9<#LGBdx9I^G%qCwr^#wDCU#mR`y}ZU1*d(Z^hd0fhF_^Tj`GmpmyhO#q#fj^Qeoh z)*o$UwM_3WG}agw8=05mztXr4o3It#y8(Bw9#o4=iqL|%&EX+ zxDOd_rSEtf9;EDBO&hnOjpP|^q%3ITAZ(+qw|b}buJ!m^IW0*1^e>cxe*Z(*qx{qF zcflJLQoG2u((jWuES_S!uebP0f)8W1A*l0KThWlK@M&z|RxTRvGUiij z+xWU6pV>zBt=pVO%&o5*+xWVnr~10FjjtPW&t-hL4GDY)K8ggkA&1wX&IWEn1LZEq zQf)&6--9~mwGCUUklF#e4O=Q|2kbUyk@;&M>^5wv!sy)GHbzPd;1Y8$H7+x1uk1D~ zs={c;>^5hWxmVMox3Ti3ysf3~wqaMV!Up3y%lUfxyKQD&x1r(taUZmIk0Qx!oO9`N z4zNCO1!^z%0h<*bU{?4#Ztaviz`U#n>Wk_DTIFe|onr@(Kp&JQ96$o+piUAUKmu2x zRyGbWo0GrRjSny*laF?e9Uv!1oddSF@BrVtNu51x*P(V89$*(4F?07Qsk{AH$OG)_ z!^azM?xz(G>nh@QbPw%84hO9ioIwiq;tq3j%0Y5|0#;ZUt*{*=KYdUqO%5WZE~tIr z2kC?4(_~MZ(R1t{J;Fh6A{OSL_YAsykQA?A9rU&RD1YLizA_v|R=qGA%W#ynsT5d+ zy*^wGiw)s~P=UM9?&yu$x-0C0ClD7e< z9d~ER+fC;z`MK%zkwylLrzh{Tm4`lZbs2XS_fqzes~pG|GgyU11=*vk2R->hT zXr@?WTx`^wu8+}s5`5ga#C(<-mst$UE#wMwuQc~6bFao0^|A641GO)xk8$`U*kD}8 zT%eEf}5!{*=`YzYRiDN#-c#`6pFFHvg~U?k{=Nx=z-hC_4}R`J$L$XVP( z%rB9jSjbv|`w|vu5bh3!;U4qZ9}Ky>oYBO*%ZVXfY-n&9#u39VQqNh08aD;EaX(F*yPQ84v3|ruTKF^ak(-eZ+)wJeSZ%li>2a{9qY2YWigL#VH)LUv zKr8jClfxC}&wfbeGh5M%_(5G&)f%e7X$GRLrIB~ zij-on#lM&M$Kj5ce-gRfYh~GM`QK}Gv6qZt#4rUWk@`N% z;Xc!uedI8Lk7{!tG2DWbiQZ0nvLDSJ3%St-#-X>GC&(upbihb}bcplsVHVoEADwA~ z6{NnORy++>Ihl}kKiFjMO~ISES+$0&Zo#e8?0)L^1Ni6Y{C@gq!c*sokdvEmPjCe8 zRj%l-&%yoN^+tb8&ebCfL3R$q2=Y{qFbFG+ti9uACpqNY6XdHRY_X6}Be4UNI^I1< zd1ImClzr}loWOz+%6pJF--W7QS>^$Vm4k{C3v5(u2WfXhP;KD^fR};`ut)yB?tM7H z$h;deXM~&0|EmhA)2Yy6X4Fj#I-LrCWbT(N{4T}DcsoMcoaKS}l;R})rrc$;uaoqc za__)CoMiOKQ$~;Ycx~pxiACHON%173M1>i!r#D1@ijfrw+?(~3ao`}_ZazEo79+sh z@CW985m}vNyr=N37M@#Q+*2B9!{Xp9ETz^?k+;jR94m2(-dtgJ$cG$WfG2tP6gm6= zb_5q;w~~pY*rrs- z|Lc&mlaN#Gu*=x37+9?pFCm9Ev_fv~v4VZ(z9E0~WISA;x6l((q@<)sEsz%D@MDm3 z;_wIN^FyWOzkrsup)K;?so0pK>0L&@u+@C_pi8Hb!)3_sHCTq+PE#*8;f~;a_cZ0g zpK|p=)yrw>MQ+v@VTaz;>LTp1kOPWStB6qT_cXaB9_r-|+^%=Y^A-35b4zDVQ#%UZ zN(^UceG?(OyWtG#j`L^e%o%D#?m}ZRF`QwXJOHKb>{&J+PAcIpCvRt1b4Y@mBy!KN zf3Lwk!}=TX&_eN{g^q)5=I&5PYNr!+p@C=6H{z#WI$)25xg4Cw-DmzcXnkj_b)2DI z&f>0BihjLvLMtYIX4Aw&E0){xzzmvHs3}sREzAD}^ZAkaa0dlGI~70DP;AVmVXKAQ zO!{y$cOlmPdDtbke7o~xckt?vmSRa zxo45j5h%Sqi+m2kdSrMO`4BVm>4)6c0k@lvNzAt2<%bcJg)`4xoYU%y}U>8HAj;hq6l@rfD5W@&@i1Mrm3Hl9W%O zQ5w}@y3}F1)WII+2Dig>sl#-s!*r>`bg2VbCGk|U>adpHK~65=mKJp&nULE-PVg~3 z=|B#IG(G7sJ?St#=`aa&n4WZ)o^)7S?mz-5gx_T`NH;ntOFxuubkdfGVZO1L@^(`D z@+mX!5NXjOUkxB@2(ZoEr;$u2Em}U^#*4JdPTI9X_L&d2Z@Hb+>>bFB3UITY(zV@1P247T8C=qd@hkA?k1h)r`N`rYwqX&%= z*#!*?%w1??7c@SqmmXT>ZO9Hr$XPtd{%6Q8L6_4E^w;dxCk$U%dCFH-d~SOaaC7z- zH)joz>M*)0@+BHBB>XV5EpaiDXHN&|4l}R6133!@nKwbc3%JCJB!^wT{3OMs7; zX8ayLcgg1v)L7y!IqZXy#y!e-6LOXfa*7-l8jFLYxF03{d%SxbmeS|mY!>G63^~>u^VK z&Wk3+>##hy=EYO?VMrOhcv2bS_Z`_O;U$viJFvi5DDw2Sm*{cs+8axpHz9Y0!5u-j zH)M)ejXijWvYZkhAuX76HFa4#$)8Yp{VB_-1ZgFCXUq z_)wOs@Y}&EPnVSaD|G9H8F#G|kCgK$Uimbad_@bR*UVLfkM^`55e zHz1neJ?-*qN#4`mAHzS!{~F}$nD=c;(FbP`=eLn_FDx_`2e0F%SAr$MtB}<#SRT9# z*-HcK$D#Rqdc*WvA%$)8H%Y??AM$78EWtd z>0*VMqlF+lKOt)x9^+HA_kW~)IzFElqFp&FUAos&~$92{Q zavlnD_8&6Cf@cHDtdmf%Lov`N%gtF5?>O~CD#&ayJkA{}$LSg6!>I~*S}`-OAWp^= zmtmJup}aqVj4oi0y>*$oIIeviaM<3x$IWZU`IdCYJ8pG)oI1URdz6y_qtUnH)GT@6 zzO_UcGNvNW<5t(l8LKEf<2R^!KTf@$gR*AF8N=j3W~@+}@ILY!gz=>KKJx5=s@eC^ zkQFWD@zqszb zPq}VFUr*6hG1h!6E%GcM_Itx;$oU84?Kb2a2jq4gn1rT%KwZnt?K+SX){tFxkhKEH ztvKEXjUzP4>|l8){@Ez)4CI^&t%}{ z{4(VHGUWU+MBR`CSiJzs@)R2IH_%Ku~YziYe~9Kz=lTF?o;dn){Wiy@HP zcZ{xL;JfDmI7&~^TRn|2a#|2~f@1I!%^eEf#hpTn4Oz1hjc%@;%7;jS3H zNesk`PI9u2x?pw8nFu*c3)!Iuvne&Vjv==;RfKsz*KbR4MQ{Esj+h{0POey= zNrIPX9a^8sg*VaRHZ+_PnWb$*x3A+Kwm4;P+mHrj~I@)n7pC4x8O63 zThJ1uciL>-X|r{w&DNbZTX))Q-D$IRr_I)#He09f-f`Y(Y~2t%i^V&Qt+)bZ>rP|q z?m*c(tp$m)bz1-FgEuI}X|r-#1-kCFTkW@7?W0dfhO?B^e!JCvyVbsK2aLr>_1A5-D!JZMUAc9Zeu7XaaIGO=w3GS)4Q$SH5wpnRGpw4(_(aDR=uYey5_^tcV3TI)m~ZbEjLLvF=^>We$kf!mPV zX`sf6o!F~Euanvz^0XR281j$XT6ZTkJLH{1mxkGGz}|1jsypP~Gsvnt=($}Fm6r>LGG)8oEL`N zSL0nEp97FPYM^p>!P>$Fa`?|4W5eL5@FY5UfqdSC>TNI3d%gj=nHs8fTp*vsj~4Yq ze(3<-qy1i>2fPFClm81?={U%3+i-@F-GI2+F9$ahCw&9)chRQ!Nj9s^F51)`+}yke zrA1woF&T369^{rh$hR}tgyrm_q*owcMIpPrAUEB4U9>V{rhWB7?zn?0OBd}c7OJ1> zqD}R9U5r|}`Ij~|5wda!Ws_NZF{+1R?S-6E8`M-6E$aqk-5at$8EWLv#f*cPX-#@} zSUK0ONT@!g3pu32B!!_xjE0%!RzJ>)jp9f1`=NTAF0+AM==@Dm;&u_Jv3)nP%77YW zv0IB#7Wbht%IdaJR=16^x^0xDGmaDR=k5-ue!Lr5?SUF)X=hvt)F_MZ36!fFtzb5V zd{Uw8WH(Y8gxs0})sJ`E$g0~$R`kq_J-U$+F{2^GW8?V`Bcg|K za|bu9Ry;^@EM!M3+>Cwh_P1aSx~(_imp3Q{zZgKv!X`2s5WT%L3$96UeP5P+E5pdG>i1 zk>n2{_Xfk0jL>$eY?ifZsnHLlHnzbp~rk~Ah(N1m9H1r^Feq^ z=_27H@D9E6MMkRfxof<~ddNkjO{p2F%KtvPbdeo;xP3=uME>*{$e%JYI+gzzW1`}x zE|4B|kpfe&As49&g->&eV5a#`wD6j9U8G*f1ND*#H)FLfQX^O4*LZq~5$SCh&%F2& zwwIfcsS8%*sSA;v9+0o+u!?vtVc&YaOW3gsu#HmirA0BA)xCtA34=|$V!`dTMv3Q0J&=gYBit-?ZRSW%`%|Ihdo#`-73yqD^TNv9<*yB)Ofqc+9^ArDMb(3 z6$`n;#Otv!Lyu`!53QB7Y|PMuj$Om8Hrr!kh8`O;^w^l82TfxnZT5|I3*`a(mJ2mv zWQ>U>_b{p=6&pFw^H7gH=vxm|`|UyB5+Qe?Lya4I(6Q@KV}>3ZG4|M)p~uDyJ?Ikc z9R0ZgJ>`utgWOSQY>(N%9(rD6!k9r%ldumxXc1+%aY7IJBOgu*!v$zskBu06&>zak zH~|S`Ct1z65ke1katJrSi36XZ277Ie(@QOk#jQC`FY+G`HOJ{iqlTd7IK3wGUXyt* zGQWk7<~Y4J$LU4dSza%4eh6xg(`yp$wN~6~67IFO%xXGTr56bkClVGl$6;)1ZuKC& zNLW6a9sjdug!6KkwCWBPkCR5 zYC-(g1o`Aff6C7N*3?u#!je(R?-U508$e9OWz_gg#a zryX7OSY6Y*v>jq2|A*j3>{vhTMgCfO>!;Q5F0G~)4pT?{)IR>yKK|J7TQJsqw3gLR zDfUCHW%W~Q-5$SWf*l*M(boVL;0$h!z6NacHDIH!0ULdBR)bt|wgA1=K5J;BuK}z9 z{^Y+8YHTw={;zlg*a7^p1D7FplR}NY25j_&Rkko1eGO0wh1ck7fEt*O93{G^DE|VHvbl6dyBVjd$*C;TQG@I=(h3@ z)JXLi2iKQ;?AfG;{TDXH$`P~;J&<~SH{SJA!0;?z;r-G2!9keA5 za(^srkqwNMX!E4r3uZyx4chGCZ7;;2siujpk|1l5V8kKA3h=EHSbf4?Nf{GQ^E}5qxI5H33H2I^i^!^ zCa1md>oQo6`=)RA2_KJ}9j%aiGax6^A!pJdyCR|V?LPX}3psV}-M5y0AFaFY-M5$n zOFgjE152GBdM5S2QV$fyca%De54s`N0EV3mhz)_vOd+-%k~(Y(E1$?o zkdx-H4tmI>111Hm77?Fc_>?Sy@R^azj^4QW$QdKhDEiXElFe#%1+0uzFx zDjS*;OL+OvFT*PIDwekxwUD>hU`ueo=a(E6lKgZ+zAD04bU2pr>J?aLKF8uaghXPy2o+nR#l~+^5nH0gmT0jh zT5O3HTOzStu?h_NMDC8 zrC6&+n{cO+pWBd?J*XCu%DbJA@fFm&sl+^NztpAQJ56CzL+JDc#VhZ4RQHrvw{B$jHRVau`*6U8kxAm!7&&KwnOep zh2#b1ke?|?DGxRoHwA}rvvLSoIrOJ64@!Zj(Az1DvEPR5-GkhI=}%#F{S$axaWcz( zAGRUwDa`@NcFPZ@duxwKpU0jE^DCra|IXTC6 zi65KKUE@7k?iAKBuE0;t=e~srmr@IAOi`DE@XKFw2|$_qi-H{`YrsNPV&9wHxU zh<=r0EaaXC$Sv`H9%Z}+hmk`bmYI>BvEfsV}PiH7L zEU?^+()|K-?>bbAC_wk*W={fSHUXQFPXQ^$K}J=60rBHT-)_Qm%F9Xh;5n!mbpO~s zs2Fq$*#MNCoKHMIfi1!J{rMK#e2Z;9I(*8XZ*k5i&TF`1k?{PHn9F!2I+EWcCNU>3J70r@IB& z2Mz})(E{dl*WoaAx_~@n!`k2-pL37sOf~6VfErm<(@%vUH}gRCewi#d1e1cjFpGD&Ba7a)mKMiXb6Q*`Y$Uc?+MV2+ zEIjv?zt4$Vvh{6|hE3>pKWpzk=L%3c2qTa^I<6tM6Ix2sKqpdn6?7@i64; z66Dv4A-9gh^OU!i_9(KB4cWg9FJXUbX^(PWMk{KO8)?xV`5M8>52c`0%4aC}8N3s` z2|q%%wX{w7-!mZ61bE$`u+yDQKa3I>yL+8FwO< zt(MmM3z$T!sin2D4~Euy3TB$mL<_$_Wudi_3i3lT=oQkVoxTpYDF3w64{0G0qxxUn zFxCf|9Ygl{_;r-)3S{O7)duTq+*oJh#ya#l1s{zV>u7fwaE9LHZMijKT!Tiv4mm*s znS;Ot(&Ant>QVO^#X;%+8gzRQR$(93&U0g-{;t0U-F_8b zMlx&A-j^Zwcfrl{n`=q;0#s{VYkiY$F}j9Z{n}b0T(JZ|-Cy0hpKPyBjTU3f~~`l0l&p7j<;>%*URcMGzc!mlT{ zy?zsUyAD~AgB5a{hBu+lcW|E}l_u8KhTu6Q--MRlfL*kaCNvWt+F%Fd*N`D6p&{WJ^n#4Ifv3?%zCj)i``@6J-vkPl zZ^(?I{|zM7QJ~1=Zy=KiPt7vRhR#EHv{S-UzxYzK$AMR?`3`FK4z0&Kpfk5)YU%Dk ziXOu(W7RvTO>Rv_sxY%d4T_n2wpf+U>Nucq;B<1h0N9iMbh^XpI3Qmbfuc=KXOETm ziVi$o$5Ydxo0uj2=}>+Nkd<;kR?7L)m4~Ox%sgh1wA10|BS2Ql0r`#(WThOCRWU$T z%K6iYeLk>J;Vj7m>*RL>o79E75i!qIm-%q)bXI8311?P730$P^i#6mDG|cHf`vQUN z`2s$O44=-41d`e#)aG=b(|&-f)SWXlFt33=)BSY{*DKsWYntvqp}wp%#=Hrxp6+kP z{SR>0QK0bTAE?;^AS=y)tTY3%(hSJXP@s&q{s6@UGD8bw4Tk>*xb85J^=3fUn*mva z;r~Ha+5=f>4`hu!kaKu|3z1ZR@VQSJ$i4s|dm(|V6mDX?JOf>;FHj`j40_%^z|*L^ z8Swwzz+TB80MCVbGw5^o0@)P^{1`2C1~q#ac$1o|&}nC&l}QSm3j(~25!?)F_9&3G zXF%zBXHc`pfUG?Ovi1zf+A|<)&wzYw@n=vXuu~#|caifMluOL){s3~06L0~XFoS(e zgMjRv1agiOkiDfq&YA$Se;@b|J;Dr5nGhFFiv>PRjnCkG34tpVu7vky_>ZZ16+Oia z>USydadlan{3Ygf$@_rolXHMis5@t^W9CdJAm>W}w+Quo?pp$Gb3WqF2)LsQ*jFeM zoG#Q3u0syY2tKLsZpm%XOIvHyw$`X^tr7aaiHo$gMr~`2+R7TWmCb}o z$Nia5>0BUVZXjp$0XfAH_%ZlxCLAkJ=F?`vtG$4%>+ol4k26zyoSE9=%%s%){h72s z;=<7a8`Wi|nrBHm{vXwR7gU<*->v4^3Y#>f)aFbmBfj^kd7i@gP8VD_8w$8ceL1li zGdsS4E0KybDfKbnI)&`k#LVh(;3jxuCgm0LHs=C=COmdF@N_2+*u?3~GvTEK^~C7` zK$-QD6I;#%3N>cYqI&>k)@v4&=>z;2Y0gqzdKUB%GpFSPrA5zzN^&deZ4#HZybH*x zJs|5qfUMyHiqoct0m7+M&LSy>|nyY32M)x-JJv6M(dlU?QRzBt^o7t3j0ByS9dFaK{`>l~ksAkqGM<`EyVwe3tsRh+ zmO#Fw17+@dHk@z-D4Z}GP8bN}>kRNFHM8Q*pN-tu2b4Z~HaxH%C_VLTq{mJmEAD{O zQ_oiEFM{qOpAA2V%Y3x)*+_VD2v?9Y zT(K0m7#(u9wvpM$5J`vguYeCS9-IxIh?%p^fsd$}6NE5xb`WrthFPt?Yt(n0!u1L{ z;hZo}sF`~ZFmFPJ%vPyB8>ucXFFF?ix#P;8t=u&m?!rZ-`s|>eP&JUYKbu&Ate;ui8I=$wI-G1a=Y*#%p%E~RFXHTB&YS#gEXlmZ&KZQr1HE8DR&&~qB}LIRKJIoc+9^Cx*Y+EHhT}H!-YKm4LDcf0`!@C$f3YR z^bz-vx7UHoiFL2G^n10X-%H&U`1evrX9MrSET^pr?8!KkUAUBej<$t4w1q;U_o`bZXLq5etWd0m-C}vL70In45 zlowp^*m=NhXi#&==SP6TV{??p=D=fwhsOv{{;vlLkIg}6;4W}Dt&cxfrPf@PT60xu z%~h#2SEbfmm0ELEYRy%tHCLt9T$NgLRcg&usWn%n)?AfZb5&~1RjD;srPf@PT60xu z%~h#2SEbfmm0ELEYRy%tHCLt9T$NgLxjFivKbLd5j?)*4?7dHGhcAZs;&tkncwPMyx96i0zyQZwH!G0T{A9(~qXKp-+-GxC^|L zi~RVj)OWSItU))PM@e@8*Qt5ELe5~sWh2slp4Rw0WXpcqm}ubhwWnrRGt`)`95`P~ zH=lC7j!QLCalUfkd|Lf+e?D@UxNsxkwJ)9zH;S1xazJ)M0k?r`KAede&J@T=gFs{w za1MRqd^l5F7Lxz@aHg1rGv{lm=WBWA(`La%Sp=?E$ekdVpOBoWW-?!OlKG}Y+858K zW-s&SQ?tW?eW}y=aI!#=kn^eK4?$~IW&%YvE}*wM1IWruAS*M0tjq+m{{_hY7a;pz zfHD$UKnooNWK|*XCN;A@6Emv{fznzzZ!Gz!zW`e82C_aA$XYKT>ob9@&jhkQ6UZ7Q zpOGu$#07ALKyKv#-Ua=U%IY##%`*B}0L9J)a*6^_G?oQA`d9$n?!^3{RwyfN_Vw#}uy8kTT*}z=%WKIm-^XPF>b3d_vtfs{1B&*{m*{Xh+BwolAk+ zoKk-Q)V>_p7foOR)V>JVPa%Ci<|bz{@E+$%;JwUvFFKaIRv~(&D>yxnH#Kt z++YRd1}lG|_FoI>zj|Pn8QO)^(K4XS&@QB=NST^?11K}J3#lFOQab`?QKE&^&eOmq zb-9ODxe%_-2hLS@xCZk=D6o*4l8}qlWhu44keZ@bqoybwH3eQdjS%=S^CSxyA(97b zO3W*nEm=r?iCIR_3uzG&_i=TR`dUbRiOYJ0PpG@p*Fr{!`+=L)WecOxh16FGa2qmw zA@#-GEz}n``cPj`hWfe~cpcokF!-dDCAb@oU5Mlt_a>(fcn>ECFQf(~{2c0f5jw_U zplGd&RQ@kg`7h@|ZNf#g)K=(LOI9mHL9+C~06HH&7uNc)II z+D9zXK4KA4l)P#0AZJV+pq^L-3S<>1kX4{SR)GRVcU??h&=V-%&=;!)yBOXZgqgLV zK|)iL7Q=Nf<09JZVz_P}P~^j6)twfr?zC8Sr^Rp} zXW1Z2&jWHJ9#Hhy#c<&Bz$SGO-dhasiOYO7i>z1-2c835r0$}}E>=BuvFc8X;lmxc zJP1!Nh7S(`MOG|EgA#YqU>C!6;wvNK#qgfEuT#i5keD~1qb^1o9|Up|J5a_%i{ZN0 zfYQq>hU+c?ij-Ik*PRdSiv(B<*A)Q!NvT!4SPYMS5wmC)i{UZxMKki{oUQ{vR(b<_ zG5fIu${z#DT=WvwX_a=3}2X0vcJ;i;Vx^rp-<|Xjw66CG83-y+8vgn&YPVEMArYlfpdzR3aCH$ib zS15c;;cE32N-m)lOPIA9OQ^bpRxD6@wB>$orQIC>a#p;*RD12Ew6DFGrPp4n{q<7qsh4U`y;S>X`ULW@ zl$NpwDE;zM)uxuh75ToLHg*We$$mgixd(E}98mP+`@y>dDBo!A2k)D}YK1cIdcR3Q z%XmNB(gPRHh4vpnh8zZVBhPa3SQlU~uslF5i@TKN0eDs5DutUQ7G=*zLt>2vuxFCl zH)3rCvX&Akt7|wzOd+=|VCJ?3;BB*DKthu{LUW;rRzC#ov87TWl{-zT3*#V);N$U<39dg@>Te8$i({IZup!hx5e5 zSNnp8RKh=m+&=6-M7g^AoFqmpP7og1^g(z%yN~7%T*FCCx_4B!o3pya?Rm#E$?#jNop!{mirGw ztL5ZYTvn)grKICOre^8;mXq_{K+Yima#I+Po5Fw_ke|!R`SZX{ibZC>mn&Z_r`24B zd7JYEe>qgG1m1(30UtDc7_Qp~Lb+Z2#HM1b=3?O~`bkh^by>`n6@ zrWA*Os}yb~hmVljQJ{Ryd4zi34-{^EgtB+>AEB0jvK8%$Bbpg5O-7GlCUB+FcBRUSm6Z25F5HO*6dAP=+CB@cf#xfr z?O~wwK`WuKm__qn2`*wOu9fiTVfdqvR`3`!?*^3bdXH&pk5TqR{$rHrC?yg3u!w&EK_t(RFgMh0PN?Tj6oWEWr z+XltHfw;Tivzws62IBVdHz?n3AZ|Y9RSMTo(hbzC!1W3@Ah9=)TA}|0R5}Qhbq-G` zeV!n1`!NfBo`5pPfzsnV0hay#MrgYY$i5YztoP8ff`L-M8#S(+pt1|I(3TT}DX*NS z@;p#zE2pXK0oG{v+em+-w)c(DSkfP$ zu{M$ZPT-f+EG>Eylz$B<>uEPZnSuT$D6<2|Jr2N!Bz@Y;VW3FbP0&i*WoCX8?P3pb zox=4Bh5nmp1rlo$e7=dcAR)Jq!_DOL5K#DSvr=-iQe!jJ*nx|TgElKQHj~f4VwT=y zGvz%DT#Jm_0#)|{WhAu)s=f(4jS5sM`8IJo~ zw3pce^^W=5(3{Q%E@zy+jb5l5aHVrIaJADnV7}BT0Iqbd4DOMTz~#=xKzc3UN@pT) zHK!TNGr+yvan5@Me*QPCInOD` zueIjR&d2ggthtNRqjR}6ca53zy;+@qZrux<0r@|)X2xrnea8*DlD}W_H)fYMI>DMf zPHBD7ntj^n0&5O9#d?c1v(GnglQri#r{~>o&7GZZV zz)9r2YR!de9s~DHb#8ZRol0ktGuf%pqQv5Kc&Lltql zQ#rp$8d~tieM3K!qYn}$9n)yisM1^w(UeD$`t@z(sSIpWC{-0SDZ*TyN>)# zf~rN%G{V<9w_uW*lU&tn?8(?tby!Imr-HwNx71!eq3iLNnknKfWs_W1Vi(${YE?qs zqH)6V#%m;1U-7)wLzk(0Q|%H5`Rfk; zigTnqk{2oaB=87r8kDjr-VC|yR$KNO4bi;am{_%%g3w4pg}h{1wBa(-wj^hg3kf5o zo2E3Kj49q4FVNJc!uLYO8f-$1$x8ca>N*}+guCHIlYhytaApxH-^#yM!-x5k(33TH zCMUwNLYJGtASS8BkOm>0DoI1)NgdRa*RX|$r7-1dPRsNp zID8r<7j8E(ib$y?zob*a@VU5&47eRkLajPV8?V_^Nis>kkiOD3CV^k-SL)HU#(GTU z%F&Wfkz2yGrhQ~eE$n;Z_&?x;a{e=#vdBWynnmi1%$HuR9_oIOI}I*_4)PleR%t<| zpAqcRY6dIqrZ|_4shN6vZRMoN^+hE^ii?ZJlvmeOSB@{QD!RIU!r-E!t1HJ>RM%BZ zC~BylP*Gb{Ke?jlhMOCz>l=#7YO3pv_xOsU;=x14mRHr+R2O}synK?xHCC}<`Cu4n zbWPQSq9KDv4!OQrLS^MsDywcUDzB|5s;ayhIFaP*iY5x$2}L*Go}RHH5Zzocxx8v( zQO(47rl!``e7RzL{oo==Uy>-AP*GPosk&%dP3MO=iHU+GlGPSB=N=0>j zd3`16Ro0PYW%VRe()#jSD!_4jQLI=d)%x3~R!l6X%tWXwude$*T}5r>#7m1B>MH7r zuAN#@eLVq+CRUW!H`L-HI0-qWyt<*hiV{w)tgfd-6KiUV##fcsR@UDxg&~)>)YnYa z&{Jw|uB@sk8ecPIYD2wbsBV011(h(kTYk5EDOcV28Ze|6Tx-J;v9fx6RRbv&fl!H4 zRbD-*p?nf9WKyXq^>{1TYZ~gps==$4D77_^Tw_5pDyy=(sJ@}PqG(!W{bU>Tg1Vxq zlPjxg>T0G=zP)JLDNy#uP>^&wW9WRK~-B+H@T*PL~gDqD!-XB)z^r# zq+W?%&BXd?QsIJv{Dir*B_qW6$u+Q_A-kk-JW1?ZB zX_b^5q!qW-S11F4czg}nl6oM^kR6W*V_ld9Xf6c5y`sFfZm{KZslZgLko?wGOscG_ zuc(ET^|j>_DyEdz-a@V>#)3)XG4VejEdLouD?BEgKe@hs>IW~oY}&MGgC}T{nL-;G z4Cc#3vG)WxPV&1*ybMop$Z=c_zD2VQoK8+2x6gEOy2>gB^lbJQa_7xyjLmv+M@%25 zFM4%9?mjt#8|2P(1~N_?#5kge+mGb7mh+tRo%cHzI2Sq>ITt&ZAgMoqRJcqv;u2>l zcVP{4hC3sWE2YSj4{^uAN1V%%8hb%6Q;@ z=K*Jlv()*%v&dQOJm>txd5v3I7COt_z?tQI$N8@Fi1TY_kMlj}XU>nE-#hm>e{?%J zKXUV&Z#)0y9C401KXv}Y`GMQndC58KOn2^e-gJ&R$DNtZecbS}&Y4G#Io|mN5^*CE zbUpXIJn3w5HZ%HoogV0E=TFX`o%u+|L(acC&pOXIe?g+|a}GE^L^G{KW=}zmRy#A0 zx?e%cN)I8L(XB|?z0}uN={df}y&PY69&{R=Z#s84-*W!h+3y^5mbqQru5P|t;1;^w zod0qD*X{21a8Gl4I!V`Yd%3;cK5k$4bhn?|-#x<};GXFYbkA}Jxo5jY?m5m|&fnd0 z-S@fYx#zp@cQ0@+bT4u*b}w-+bwA(^b}w^>xW#UX^H+DMn{bD@!`%_?NVnAep!*^B z!|q4i%iWKva$cmKh?+WmxkjeD(oo%>1mQ|_nT z>)jjN&$yp;Kj;3V`+4`D+%LFabpAi*zuhmnH@Y{u%Kdlu z*Y1C~zj6Q5{jK{u_fGfs?sWGL?hLolo$1bU|LET3-tEqIo7{Wcd)+ziT=zbAo;%-N zz%4q9oZq;Mo!>hD=`L~P4ww6#yBI&->CAS1?)=L6ckX_Az*)(yB#&{M$TD}i`>^|n z`>4CZUFkmNu5wqqYuv}(weC81y}QAE!rka@ayPqM+$Y^Xxqo(_k{drVX6-*6APhutIYQTLe3 ziQMkr+_&7nyZ^;m*#GVRkNdxFl4kCD9vi#^ualSOb@sY=UA=s-fD^2{$vM^DX6LmP^giT$*!zfgx%W};W8Nrlv^T~Z>y7iuyeqsb zy{o*Bd;j2F?R~<##=F+L&ikbIDeu$X_1+EMXS~mPpY#6F`@Hv0-WR+tdSCKx^ltLX zy_>!9-UP40o9IpQCVQ3Mm%UrODsPHc?bUcwy{~w+UY%F(HF&pr)4bcf+r6)PU-Q1s zY0`Ii-}Jua{j>Kk-nYH)c;EHD=Y8M%f%il2N8XRUpLjp@e&+q$`-S(f-Y>m>^M1uC z(7)yk=-+t%>HXIGop&dvIZyZg;LY$Fy_w!D&QHF}yW5-XHF@`V_j+@@x!!%=Ja4|Y zz+31o@)mnbyrtg#-UHr)-b3CpZ@Krd_lWnXx58WLJ?5?QR(oqW4|%P(j`NB)cu#P) z@Fs7wx5ays6LtU0d9F`$x+Z5Ya^~Syk5l-(7dRi<^uOi*v;QytxBc(<-}S%ef8YOs|3m*r{*V2i_&@c3 z=KtLPh5xVqFa3Y>f93zX|7-t0{NMQh>HpUMoqwnQd-h)Zfpz$etdpL_3g5d}E6ZwA z)&$e{lkb{*1LTVxUy~l;i_Z$@4}9ZzjIRaE&-;%v z|GbWw-wpl~GAqh_;TGq2{*(Tn{6G6o`A_@L_ z|BAoE-|4^Vzvl1qcl&$%*ZsZzK7YS|z(44};UDr3`$znv{xSbe|G57*|1JOT{(t%Z zpa0+f|M>swCj%#N126D{Am|k21)YN~LDwKZC4U_fwYFfceP7!;fx6b0u5=LYW!&I`^D-XB~LTo_ywTpU~yTpD~J7#v&{3<-*Z zl3-|%2!;j2gAu{Vpfvbk@S)(t!AFA2gO3Iu3q}Q_gE7I_U|diZToGIuTorsg_=n)? z;1j_$!L`A4!6$=H1)mPC4{iuP6MQ!KT=0*<=YxL=z7Tvd_)>6Va8pno+#HM#CIl71 z#9&e|Ij9W29NZFA1yh3RpeC3ad?lz2>Vo>9A-FY|7Tgxx9(*X;T5d1LsQSjs7C&5pHp9Mb;ei8g@@XO%ef?oyy9{f7^kKi}K ze+It|eiz&s{63f-{2`bTGzK$+S-~HJyMns|*5?NI1osAWg1Nzc!MtF8upn3%ED9C} zOM<1r{lNplgTX_=vS4}eaPUa*Xs{w!89WxO3RVYeg2#ik!Mb35upxLN*cfaIHV0dR zCxbr)e-54so(`S~{t`SJ{59AbJQqA4yb!z?YztlrUJkYguLL`Sox!WYYr(Eycd#dT zJ=h!U3-$*Gf`h>u!J*)Aa3nYy91GqIjt74W-s&{Cx}mBn7}ro+)48F#a>$TTL+pEO z-jwq3wKdhSo4h)Yvv|>eC0lvp z4BiTT<&TRJ$*+ivoyXbSRG4?(IFoRNz6!2L<)>g$%A9{iltBKZ$XIvU@X;?(8WX=- zU#C@-7~}FSTDUwSR-DeMZ+XLFXH6SsH9vZZKtO&{wA$Y8erBY7p4%hImQ3HNgv9npQ=*hH>Nc2vy*DekrLC)>$3*?G<|jb?1V~2w{?|uU8jYnyni$S zZ`W7hS1W33>KarK)fP^yX{b$EDsQa_Ed_Ozw}s|zb+o1G$W|d!PNA)^y0SWoq-j@H zPZS|nTY&6}%=Ob4_8a$Z^^<8jp-pp;vXFz&A~^`nCI^vCa}e4z2ce~F`NYb~;l(8* zOS@Lo)gu&`u<1fZ>L*v$PUuQ5)KJ$ICrxB>q2|Vz>k1}<-3?V|BsR|RSu23Uei&lj-OY%_M zWJC>hiaa!e(-;dhU2E1-7;~qw6;<`+!b&B@CByYyQasGQOZ|yAPUK(7zp4}F8!Hu7 zbrGf+%#=rG@avm$$h)gjK}=nQ2F5@pGz_KJFq#!LX+|^V6-^Yq&Os;;*f9_hZrpm z321PLNd=V@tsvH{yVDEBtUaPYgPC2ct?zmrb5hk+6%*_8)ufZTc~{8kR& z$=;~?g3$=vTPhF-6YIN<##kpFh1ON0bQMd5rlTfx>~=*%WmO%ruSz`fMx&Zk)aQ+> zo+I7i#^j<&c*Til~9?$H+a zXp4Ka#XZ{M9&K@twzx-I+@me-(H8e;Tkg@8-eWAi$5{MhEdDVT{}_vZjKx33;vZx2 zkFog2So~uw{xKH+7>j?5#XrX4A7k;4wfM(c{9`Ttu@?VWi+`-eKi1+OYw?e@_{UoO zV=ex%7XMg_f2_qn*5V&)@sG3k$65U2EdFs8|2T_(+_1bWj3zTlUxri0S?uF1_Hh>b zIE#Ip#XinrA7`RntnB0^MF}W!jVscY5#N?)Ah{;XK z5R;pdA%+?yLku-ah8Sv;3^CLw8DgkWGQ?1$WQd_gNwLLWZ1ERc{KXc3vBht?xgjOR z7JsqDUu@Gaw&@q!^owo!B{uyMn|_H+zr?0rV$(0NX-4#Xr>IA8PRrwfKix{6lT|hFZKsE#9FP?@)_(sKqObi(t`GvTO6H&UwQEJ6eYQ<4%B~fZ6QI1Q( zRECs9`7DXjD~a-15~W-crCbuFJTyvqXq58MDCMCMErv!ohDJDsMmUB>IEF?zhDJCN z5spNJBN5?9L^u)=juc%I5spNJBN5?9L^y^=xf&kD7#_tK9>o|Q#TXIgYDAQm5m8=7 zM0ptzr92`^c|?@*h$!U|QOYBult)J89U0*m8Q~Zi;TRd=7#ZOh8Q~Zi;b5F4BQAKj zG{R9D;V6x8ltws8BOIj>j?xH+)yopYqSQvDQVVf`&0;Mc68aVo32_w<32_w<32_w< z32_w<32_w<3CmMFBrH#{?Sm4-!nRRd9N{V*+TE6Q_;8&(GR@ddS|o-Wv6vWP#AISb zXg6XqF~W$+#7H9s6IQiNj5J~}G17>^#7H9s6C=w)(x!-E)zw6)#bMRlgjI7BR?SUV zH8&BGGm2+Kal)#(39IHNteTs!YHq@+xrtIEiW7DsGcn4F4y)=Wtg4%^s&2xnx(Tc5 zCakKPu&Qpts=5iQ>L#qJo3N^G!m7H7QI-ayEdJ4^D@s^(H(}M?gjIJFR^3flbvI$v z-Go(l6IR_#SammH)!l?ucN13KO;~j|Vb$G)Rd*9s-A!0^H(}M?gjIJFR^3flbvI$v z-Go(l6IR_#SammH)!l?ucN13KO;~j|Vb$G)Rd*9s-A!0^H(}M?gjIJFR^3flbvI$v z-Go(l6IR_#SammH)!l?ucN13KO;~j|Vb$G)Rd*9s-A!0^H(}M?gjIJFR^3gEvphb| zr~-*`Miod{g*Rap-h@?n6IS6(ScNxX72bqZcoSCPO<09DVHMtlRd^Ft;Z0bDH(?dt zgjIMGR^d%pg*Q=VM9A>sp~H;0pzk&6C)%dAQ?$=dS+xn3M1H59L#*mNOYV z<>m?H-X|KoYZ|=IRWbuxDYNe0b(Q|7Cf9WObmgQe<^J{M4V`Z=N%_}JuJp(7zpk#b zQ@P^3S@2F0yqzZK1Wtv;`c=Uyo-D%wYo%blMX@rH2dl~E=rLY(gLhkHXBNo_YQJ`J zO&*J@rj!?V(wAQkdgfWABt9#I{PFy;cB+|DF{wOX3(pdBj?JA`; z{$dLCqC#6z<6}#wmLAp;hRnZK@Tgb5me@qGrBq87%BO~|Qb^-3rZ9<~af|V`rBzE0 zTe>iKp|z`LpJtxwn6G75V<&}O6^a7aElfpSgvP~XW*EdnldxO-BP{+A7XJu~ ze}u(9!r~uc@sF_h&6H$unVFL0ZRu&IB(Yn3BW-!jlqBvJ-$;vZq{V0SHvBCA=(+wvNn4ZAI`(b=$D{6=Rh zE;BkCZ%c2ZvthUOZFDy5w){qC!*0uObT;g^{6=TPZp&|UHte?iMrXrr%WrhH;xePN z@wVkRIvaLdexs{lw|I@NhTY;dx*B$i*XU~4EncImVYhgVu2x)TbT!@#|U(Y<(EJ~Fx&c8ka8T-Yt1GE2`gi>J)ev&`Ztv*j!sSD^jq$dURL#h6QD=20>8 z=$Ls-%se(`9v3s0rOc(V^h;yum&VdBjip~2OTRRherYWI(pdVVV(E{Hr9Uc`{-{{` zqhjfgilsj)mj0+%`lDmv$HdHKY8G7tT~=v6Zb+H(%(yZ`V^owOc@4S+K!Tw;l$mwP zJ}Z$u)*-ver0l!HF`sq9KXUx>x7SuVeOT(iUahL~`f64h2NH#F5-MeOV`k6sZ>gx| z3`&LPDNGPLkH4$ypYvGz9JdFohjz$A=r48&(}mU016c8VF}wXfNRB?PYph+?G0R$O zxA6VuJ#?^nHykwYuis|gzrWPH=M|dwpXw>$!us-Qz3gQ74%VvP&DznY z+&!$;?9WQeD_Q;cbygg%k2`T;AQe#NS$O~H;%L8o4w&g*ndr!RE+QKvgQE$ehB z@8Z1A<<;ihmUlE`?nN zbh)t0@GfJ!e5%V$U8=i$tIIFD{ISdZUDkJbzRUhD|J!wB*V?XgyYA}x-}$}ri}DBO zkIcU&|EB!f{O{!dI{!}v`2}MO?kM<4!EXzi3hpmhQ}9&5cBt@#a|vs+-^U8DpNY?4d@jYO2%od4jdiR^f5I7RUC+by9B697U8HGUh~I_8=%ZC>D{bTQ`= z_2GP{z5%CB2b?(_aN=~p*^!(NaXBYD<#Vo6U#Al%M_fSYvk94p??>@Xa6*clr^^X` zHk|@|3pgc8LR_UGe0&FDOJE!51lal#wwHC`_Igsd2-o2@g^M&NoRrEbQ~8AYH1R%4 z4hkKg5bS`Lo$vG>1;jg#cqO=ggc5}D^5t|YLP_pFO743Rw~yk@xA9F*I>&N8ocII5 zEBO?BA7byloR-HaSj4#;-vquFQLc+fUGhGeP*;+A5vgA+=i553d?nl~CxLLfhn($!%S1ib<7Cz5dyBdq&uwe8J{5l6v8T}Wod4>d9F9c4 ziE+!m~g>AahZ0@a=5i)iQh{JFW1J+3_DyC<(gOow@Mza{00|8_{Iclv>Ub|+s* zu7Q6Jkwb3A)}6bOt<&G>yyb*{7`uuGvd=fcD34!q9UANiVh)1tYm%JErZvGWyS(2@ z`|YQ03dH@Ld}y`1ldr?+5&f|XzvT7|$Sv5Z3)O;uIO7fJv;Vy!e~>NB_&*cIcb%{#5+9e=t>4wAcQsq#CWR@q-&p25VZ(dm)ghMlv}kWVkhe%mD! zG56DNyd|=W5N{Z_w-3Vqd+51DesU*s@=fP#=)cS2mvZza|H3`UAMSo`8O{NE05?zs@{jMGT?CD)@( z3^8bF)$3`u`PzO(e>k4@GkrpzrKli6^n*8igD4>m-1n|I}SN(X3K9T zchwhOmRjJ~k27QRvHG*n{QwU6y!WU5j%P~i?RFzaqQ9+4?(9(i`*vqH6F#MPawnY5 zFZow`tP4!ABzIEL7i<44eHYw+B=(b9aX8cTovsHNWjV=LZT?>)#}|r=(X7PU7tL^y&Q02r1>z> z-^ZD5Wk|{*mHd5}e>=k|lb#vBvyrJhtnWaNNIsYP;n*vh{pr$dgwNdsI-9gpW+F{p zN-C$~NiIlk=f8{g%ip;;xg@zFxmhs{BJXE##<|P~^(Oy1!i=Elzhr*V=z7}Ho8>T+ zPUpjsyPb0s_D;@&HY@1c&rjYdy$&4A{oToD=-avD9lry~C*kC7$U*tF`k;RvBgTGo zAjAI!CO9@svxegg^ss_31&{+^rgw z^8(E0Nep84g9hA6uhJ9xGZKjF4<=9D(KBe{S$bYsAtcX0rM%1y>}FP2Mn!$7(E+3` z>w(gqP}{{(=L^EJqy>sBGWw7h;V4Aqjr3KAsMoE@O&XB7p(sL!4BC<$#?<=Ao01$) zK2OhcoVh3Cy3f1?YKX)1O*>`efrLSCO!>BIx)7S9^G8o?1er$tW0ogWdx}E0Zs-q} zYg-|h@Ev2jR%d{@V}M`ygl#Fbo44ezFSE_I7L$)5gU(m49?4b7MbJlTNH|vXx3m$Y zgrYU?7utmNr!gZy>oQ}WKk3Z%Qh|61&H=ze(G-(Ej)JEQhI3v*tB*bDttj+}+RvMk z8>e3sswebGJ()|N@^6PpFi5$wmAV~CwGlKbOB>|HDulB~w0?~T6#(s9j1x`MI z58q!YZ(2V^LSgC7NNz}STZlr3R7LmbMnA*7%c0~DwB&dvqo#e_@DcUD$tT6fJoq0n z8fEB0oZm7hE;_`YiTh{gvgAszaIYQh>q7b(Zdz9=h!#|siWQky9c9cJ`v_UVD$m*4 zUJdN2Qf-dV2mPT}NHNABNDx!!j6g(Z=_^0ecZiS0R1jiRH<62n;?fUH(f6+w^fXaU z5K5{hX)Ypeyw zY#Y+*1ZbDSN#BmgPnnSl&(bPGeZzW$dLq865oM!4!DIScD%EBt?dO}hWw7Q#|9G@e z(=%?g&t~*b3ws=z9*<%aL21?LDVb=uz2wUs;R^{9U;VI~8N2Agues!m{M2x^YHkCJ z{zmAxwB`0mzD)XYEyc#NR95+uo=|feDQ&Z|;1Jr@A-Su{h8alC4=dk=RL&$nn#oe@uT_ z%K#@IL6#h1+&BRFW&6Unr=T$`7djUtA4oRY-wV9We;Jy%^ve6G*GK99&ww^llXv4H zTIE^Hj=zDX`W*B)o_r+9{q2pv<|*<>O<D@vp zCaapw{~)fW*NClEQyn9g9p<^Nqh^H1^-&3EXPC4PM+(5%1CU{HO(P7R{e1&+vJhD( zdSEwt@LkN09n3gV&Ynhxed1%0mYRrgEF5}zn7qstia9pIcv-b*6Wd1MXs#;0(%mkTt~5qZbU!HaCzK@4aj}C(OLmvd(VVG4@HRKTp7%5Cyzbx*5raKm;=dq_4gKiTSo zhP6NfB!3eRMr}osJ?^d{Gy0^5XI+FHMGGz4$v@2zw$q;cRofAmN##l26NThH>&VJnFGmQe_5LtI~ z4&Mz1r24b;=q>xdbboAx==-}FqoigS7=@qc!+7CA`+JtR`7dTv8EN1KL-L!+2in5L zY|IP%{zKt@##(2hr+25sJ!OQE`$H?yuZj|bx%d}TGhoznH_4gFUG6D13z^c9#AN== z+B1K#laaF3o$-vl9}PMaTsN4D`fOh$o{bQKT__~B$|#py0<@ptT95WrD{0}nl?N8Om^Cb z5s<2+Mq3uRpP9zL!llnM1Gc9_W8|KEi`#=#=q|H!LOsGBQy_9pHw=<5pv;{K?8Xf9JbHpNl8xlJ1JV{wS!kq4)GK#k zX2Rw#9q~!Bbw}cMOMRg>Yi!y`+q7gWuUOR~-=TXjZzQvc?SDi%m>GKMJI(x=kr?ey zD=mi14x1l!%RI6D>a(Bv7fiBJ&OEv7S&*+!TWQMzo#frgU(%=dN&YfhiL=z%PYgol z)RvLfadNVSv2@6Pq-_1I{+QxaHCgQ?43+84dcL*xx1G27ztXbhB!AGR?zxRwc9}1I zNFcZ_VIRmPXeA}>T;nctQOIkR`e(o`&(T^AYu?RwBzn5*T_u9#_= zY;G<_k1}Dif3-`cWy%ohAIvoEWbSr1<+h{2RLI;+jJ-9ce$SSfh}|7cDK~uYrcfd6 znT5zfD!-d@-u}Eq{nP*Xl7_UQUFc2=(^hnrq=RiFOz}PN7R`&5LTEJS$*2XBjxASqi`V1dy>dz6-4ceGtu`Ol}IyK5S^1f7}U0`9XXr+ zwF9#x*-G=aN(Wgd*48tSFEy_-OQ7Rt*3>*n*$1*B&WwB8ik*{xrd4t|MeInR^m@*m z0(DBQ7Ag!wNWA9toS93)81I^QF50~b6NaRhmeKS7GrF=?)k&GJdnYSBwz4*BHthKM zSrdTqyv#SfDC^*|MtOI8^vNN6{a6Wcgf(#j3x%&44fTP$MF)MCJj~VY%ONYGX=j|D zR{cum{c`)p(HxaXb4@pUE}$17LT$F=D;AogZp*GS^BRcWcW){*+Qu=n!q4RSFL<9{GoP!yUc*5m0Xy0r5WO6chcE~ zWIk_WzZD!SI_8jEmlPwovO=%rVzo)%l+bP0-X+}5XMcuLFOa?`TIP$%!L?YvzzZ1X8|g*{v5R(&tj z_2zA4GP#!ZKLa!nXDp-wGb?#I<$Zy5Bfr-f5vz-&LbPqNl15g&w|Ep+A6AENi&k89 zZ$;Wg@d&3XnU;& zZx7`eb+dPeHMZ!B@7gDaGIuEN?I?3|EvQ5I-W8GJ94r|Uy@B5$Ofovuy-b;O`R4I5 z7e@Q1@cVP-Ag9zdo=Y*KU#nKccceD8BX-ouH>VfdmqB`Cox@VNky&2$Brw9s>9OY( zwh=Z{ZDflg<7j@mD_3(wiCTNiSn2-`cS~8De<6+YL}psF9U^nQ++91O>*bpI|E=1~ zt<<(Pdp|9bb1Y^~nE4FzwZ+uEp7qK31E>5!Zp!}VQ@G|HnZ=%IW@?YhR~3G5m@i8w zuV|T8n=t3kX^#q3igXMca!9@ewfSg$$q8|9LeFM%8*N5zJHScN9Nq~n{AAN2Q%$!` zzV?L3h9PsmEA`%<)H@iqsD1I6`FRq;>YMA(_C%KvU zTacZyYi0}5jBoHrQS`LbgM8Y^nV! zbENn4?d1UZ;@mgn-9DA+`#4K!A1+6sp`6{ZgZ!e2o@`kk%VP^;*cQo~>{{C2B0$FT z{dCNr`)Pb+1*?VjYl(_XhOgZjJ?c5&QATzUUNE%gb+F&Q98nV zE$ArcguF!Fn$t1%#VIVo$$5ugaKI_!(ssz#6#Y{<$^LC46{ce*!|{r9uh!yean4e` z;WQ{KJSqG2^$R4De1ZJ1?V`2|JBGQPvG_JBG?no!aDU6uh>m=Bs{CgBiyYG3ftU^n zS7crf)6P6(3x2wx4_^`oVCpUsh&HNwFD*3(smp$yDSKAo8p^PPJ+%C^JX;81c2Q@; za$@d1b>069j4@8f)SZ2uBGb39>+e~~DR~-%NzOSoXC3?&iTF$PpU&w8)5+tTocYU> zYU?MKp$xGtC(*;oy*K7*`E?miNIkZ-aASM3^8`=g%F`4!O20=rDW84r3#hN><9^M| z^8L{4E>RDWk|FIPS+09;n#DU|D>UgtB68;RBf#ynQ2DkmdFjS1DZ8NIN^$9)CKr_ZDbcy2zfD)IMLKG`Bdlh<9=v*ryGRw(36Zt<<*6%&Vm4 zEiy$VpSE!EkzL{tN|sw_@)2U>%>4$^i)~hb%|2~Jcl(OJYd-hZ_4>o z+u0|L3A5S9y_V1-AGfeCo1gliqf@&5KxtPe{R#DaG_PmL2efMbggtr-ce@{3+ztQo zK1F(k=vJy<^?+V!an%U$0*v#wXT2q>i=q&A-cc8zKS(`KsJk;t>avtp(TJ&ns zXqfHp@Wc7J?K*9)9f)W%oP#bqgcz5ab3$^8&6=jo++GepJ9e`_)SI9fPzj zh;H6uwRoscwiUO7{skS3_clZer3dq3f1jT4F_CI*2ALx5f451RS|b z?l}L$a+93u_Hy#A>}ZjjYSxF^Ny~J|h0L1RncSA)TDlNc`O)a=ZJpCB`Vb{3ARpWp zhxv7@#c`Up_=NMC@e*k*F%$wbf?JsDEcdN#_1=tN*ZNhaa@B5P6P$PcO z<8JxkzL&A=4n6rgQ{m;-0_O4w`vbgtaguyL^3_ky$UB6KUuXq|}umzfrk ziv8th(+qWyE;^!=QDy2UapeqkIeA<(b*V}D%gt^w4obgQ4Tly_H-nqrwjU-=sh1E2 z+OVqs8(C+JP%GR;$jZLT?T9V716xRQo&OEj)&9u^ggzYUxN*NdA<&eN9mlt4{aYMyyBzLYRhR2Oq1(iUuT z&*vG`inO0|k#uJu1G-DR<_~gjE1Ez*&6nKub(H^R8_M2u$vEIKMk;diR)3_%5u-f| zAM&);uKD)G)1qD5e4T6=F1NF0k>Offf76=+JMc{s9!VQ@X{lO(Ficc?EkYOv+kUh7 zw&mPb>TSh`Pf{|u?ZC}Kq{+uj5~M}XWE0T26l-qntWOjFblVbS{!QoD;7+)RCoUh& zypcMmfRyfC->y^HZPj!lHDwY$u@r=kXbwWrz1qXbS$J=SSyq1U!#7RQP;@<@YIFOO z56cfXzIJN;+1pyfcwZ zCT`MGBYDhhldKqnas1 zKFLQ(SMQqQEq#I9J|#CUzG!S8$>@nM=kkr?@o46V zTq<_zqLu#IXpt?@oBmpyH4WQe>u5sz0yE;o4j&UHTYtTsUiO7>4kzAU!?Rg1OL{pz z=j9lVdo9qk?0rP^{%6CFXH!2$pKO`P0CbFa-{nnQD{B|Nd++zJhCe<*g!AaZpO-Qh&aVU)bY2G2UaS8Rk%K1rDZBqC^J$nDU-SPPh>~<^a>3zx5z2Yz_%$%Vsx)G zkDM(jtVEGEAv1US&Xh#|Opck|s0VHphi4A+byw~VE6g0Oxob*dr%WbH)?BH#v^&#k zo2S^!9-UvEN8xJW4NcSk7oq{=FFM@7)^gaQgpxJD$_Q> zE0}x0yWr3Gn6HPazBXeZaU_l7NFOt{i0Z%XIaiG*t@}807NXOb6QTEEdYwP%4xmttDhABjKSFryb?o2dqEUeL(UFxQx4OwElLewk{gGxNRV} zTSaqf`5*&?gLY+FF-P3(#M`bv>Gfp9ppVhD%=#SKM4Klar#LZYdP|a$-Xz-ter+3e zY?3XQxEE4NX;I!v%ZmEQK=u6@O`7L8igh)EgO@5bC44!Gb|19o0Y3IiGb7q7cC%?R;d)5nF`^_=UL;tO=lZqjm7a? zR=1Ecv)q~|?q(v6oKwp;F0k(APGv@r&G4ud*WUE#(mDoa@{hY|3CuXa+`wY=y4SL` zt$18xZcee5AyO_vD;+7fF>j&$F*#v{Jzw|aF}+5PQo}^a05j7o3~1^xLwTBOj{V@t z9rWppImwxP)zi_9rsI9)8ky&~{kpIH*16P~fd4VZR(*-FkJ*!+;21!Sa$hrUNNX7p z@!!G!b#$W_31`N7%&oz@h0YCp{a_uQa>5~ICl3<$Ku#?=EY?YS3tbFtD7i>*+s;}~ zzGeH1^F5L2Ny(lj95Jd()P5c8PEE&qMWX;NPX+>GzV4*Z9B4e>*%tXl?k)*+Chy3ODD&;)s=cm>Eglau@mA^w|2~{uJt^H}vccwT_T4*|{Vuvt^&E znD#;OSE1%1ndzYxpeb4WnAQjTaLk!zDqp4D*he^(@`x6#e^QoqbqXHIv!NOoq{A3eHx>xLhYM+gX0)G zM9f&_FOqXygs-3FFJ;*n;ptBAVkETce#DXf^mkegY3Yr!yCr;NpCxWj8G9(%d7l=B zIPo_;yb2sIz%x=GyD10Mqh+tEdg-OujlD7CgLd+o8AiyHCq#fiHiov<|5iZ_}}{L{=QhmBh8X`O!{y(8~8vmwS-aJE<>t)wa8g zx@y*BbN0}FOZJ(Z&euimr=(T%K+}?ulR$aPnU3ACnH78CmwXvpnmZ@Ep`o2YE0&c< z4*OR6lV_Cy+FFe4wI$RLQWM&$c$@Uq`2;~Xv~?LL98S&$zpSJ&kI9vqRSM|3_RQ-l zwf9@e{SRl6g0%9#%2!!4hX#eZ>Aj9U=tp0G``{y$icz1JXqwf#9AL>KC%`~X&# zyvUq~NUQek46@mhFP}PUIh*%(bu6^IPNem>ya`4f3HuU%X;*SH(1|~nvZ8el66_rQY zQ{y0frS~8~o%ZcQviUJ1FD$}WhC_1VtCL$C^a^x4a&TDNs+v27A=Or;CeUt>*)NogYSPPRA9_u;4B^e2G-wWQ>v4 zlGR7kvbeMl4%5#4ox)|}Xu5AQ7I`c8G{_^Pclt2dCng$=sd3#SW>b~gmeZwlkC@4E zn11pB{N&twY7413fcXYF-{dh)C}xKk=Ll@U1v|bEsf+9zbJ$VwpiO%V>8@gIJePT& zrPS(bPC~uU%wJ(!O4vpGk0)13c+%Ts;|Xm^DfLLcIM>3gR~`fxrq(Jiqi*dUGHpw; zRvGG}hottB^`M3DXr1mfW~@e|NFk9KgqUV-J)&>XS|8^|!KKxi_91B-42mTRfkAcT zsQ$GSFQNyWhY#QSpn=R2Q$vjVFU5_J^mA`Q?*Wn*o-oBw(sE9fx(groF{U`wwA3MG ziu*@qJ2yeC_K)07f+kB^-J0Ob`40Cq)ClKYq>jw2k;p66d?n>b#}<0q2YqoXI)UtEDv+H_ zk=7+QJ-n9ONR7xIJ*f}&F%ju>a6M%ri%c~w-{jlq+F{DMzf+~Q>8dnALY<6u9+g$3 zE7Z)`&fzlljWJKqkG8r|>tjE8>79~5S|9sqQ?Er7;)|xO59*kaT54 zAHrun3CH}g?LW}<<%w(TvHC!FhSs4L%zAM~tKpuqRDJX$%zDy@%Bd+T1vT+30GW{% zBOWZfPdrrXX7ntZ2kP;tghl?QXWiB#cQzdPhdCq|JB9W;bEcqp7xFq#1D}1=W4@ zEpourZ78Kpk{O`+UZb&Qv**d2Zd*uv^Bw0eu_%SncLV(6Pq_a{d%4)&r&Jiqp;`iM zBi<5vYRlWr_!>!1UpT>0VG@1tTDRZ1_3!h{C& z5{$iNHdY@mu}IdNeDU~=Gn|h)H-Yz0@HJ;8@n&Belo;&mO54p4n&6)o;fc;*$>J?-FI@=WS>AoGLg!%O|?R|aCb2iyV1YEfbl_Asfv#J7s0 z(X2&UsH_&{OWHhbR5ABOFMe5c7j3BrcyC8X>c<>ovJdPG+8#Q9v|Z>a zl0i;fL`%gkyCh#hV!R(6w}-a>n4X4zw5y81-Q?RZZ;=`D41hvCsn=utsTq8?^FInL zY~OE!Ss3cN#wu$j_hP)1R2cPOqP<4Cv$Q11ztNvX7Z(lO%AICTUFKEu98|FZMdo*uX?fhmoEroU)q#%R0W0+L77H=lRPTq{l-YN6To^ zUa7j}p^(1_^R3Bxe^FXswS;cuC**{dfwH=&MyJ$;>dcK8N~1NruJz4Yc-)?~Je@U_(1Ui9`nrgt zXhUgF58CR{j!V6?w3=D0*3-;2%^J4!G)H5xJ)Q1ZwC8f$UHba9dk1BqeIw_#H;>$M zCXTfFHxHGAJwMfgz@)o!cnb&Y#MV;RNlTJ^N$FH7S;=nYL!6h9XrhVmgl|kwYn#(m zFxKx0^UejDwr}Gd*RLVX#y3$aDVc^7U#|Yjikywi!qI!+a2A@xD`uZGzAqz#pH8k! z-VfD#BAd>ncF)wAmxAO2gnAq~`xsQ&PPyfK+BW{u53QwN+fG`mkzS|6#jml?dM(iW zb|AkVQ}b^4vUQQ)>)Nj2_dt# zYeM;%O2Mq|O4$juTy@L1Qxu0X@vI7ZyO6O#>C7<+03z9x`rGrEybkWGE8$9=%Qn#Fs}ILo)4rVXI7dt zwVkTAY)kV3dY`P{-eoboob4-GTAtG9prU)9GlW6=Nj>B_&7RB6yQ$dLl%7Hh@75iR zl%d6KH{q~z7K7N7GQvN$?-Jb#TdZf0xU@z1%*NfBo!7!J#0V*W(CA(!2PyxKnZo=N z8(EslQ`@P9`Dr_3Dnz_h(&LJLDD9XpV@MjIlI}!{W))KrS<^$Q|H>$G6JdlB=b@+W z&{3Pr`@M;@+{_I0DtykR_41{JI|m+T=JqVk-B`ugbCAw2NWXF}Zb(wiBq-W8$ogd6St@eb> zmd{M{jj?u`6$NAb=glZ9ls)XclW|!)p0?KpHA_s==ZgV9GZGV1_=ICQaZybz^hkfJ zB$IT`7Z@P4DqDE;BFjPy9E^p9bnuWW5(pQ3+%YTmSj^!hgRZ-w?DNvU<)&q@7D z%X;VNALqa@f33Zhe`o>b5vi>De~gZy-^qPv%V(=~mL&@@`XdokBE{NamPn__Ia|51 zq0>D!yZO4Q=LKlri(G*U1<0Ws)<$Maw=H*-pVV^m{5H3@m5%to=jp#g`fb(0(cwg{ zYdu6?;M$@=TrX=aY+UCF&CT`Aj!6!BJ(02b$XM-{kbQ@lkw|GH8M1W}xJzWC=p5Sj z#NN%YWuL1^1!M&Mtg*?=m~vq^EmJB;o2KUaTeDNlTE-WeNw3>G>VKslNPlpNG|F_J zG#m4F;Ww7B*Wo)^T97s^&1pji;OV;mi#XhA*Cb4YR}Y@j(1untNH_L zJfL=WQaVmepvlUdAG7MMJff>MdwRzyPN~RW)<-B^#J@jUTrVBJo)(RgO{A3m(2}c6 z2;h5N|CfTi>*c@B%|;|oGsyQVINyfQHXw5lGAdq`d?+pG30u;*Yh#$4%yXDNM@LUv zL-*X?`hBaV{_w`zr9b4B%j}`vas8)R8}CT}+l>FE|9T^PiBGMM_MGiN!Azpeil1hp z#I z&aQ^%v>z1RQ@+8|JD%Dn<2(r{v$?mL8?&~m)gW(|XM6dd63f}HalI+jX5X$Xr{S^r zAC%_UiiP&eTz$O#D*wngn3r;GzpW&n)hlcJRnBc67m>v7#kugilBfsRuW4RHL)czF$Oi3*n3T^Xe_9SJ@yz=G*M%T zn(F_~+5OIGeVBJl0TUq z7h+74Thpg9jW^v#3xdrn7ZYTY_VvH8Ji(&;y_Z6LSWmxrxsEK9roUzUIU zar7tsXEEom6kUIU3LO2DOf*^!e`oD9iE1?VBe(z1SIzW0J*9vCnB@G))5~OCe&iUD zZi&!{(BH60t zABo-K6Y;4yDvpU0;-ok)ei6Tl-^4?esa&;IZB$#;PPJDZR7bUv>Y;k7UaGh1qx!0T zYE?B(jaL)YM0Jk(o?4>LRTrxtsLRyl>I!wGx>fy9{Yc%Wo>EV%pQ&fmv+6nZyn2Bt zD1SASpRq=)DLlPXSQlvio>&d6AJ$0LA8QmFf;F1G!&b8xww7&VE!Y;egSBD1uy$Y{ zvrkz^c8pzTS?ng(QS27h(d-V^G3*DdW7&Nk%!+vp-kPoDZFyUEhNts%c9yr}?btcq zfp=l&QMdir72cos2M3n$RqR{-HUFC3=HKz}*d2b8f6wmnANUXK9>34;AK3%` zD}Ts-R1`&JzbICU4ST3KD$ZO{JQYuFu7oH}xrLIVr13zdozjj+C>@mNxk2foWb#-g zOUdE2lzvJ-USH|2jNlEF(aIQ}ri@o!<{8SX$~4|lnW4MWb}Le5;4$MV?#HjovvA~qC~I07{}hK*;_*c`9t6S)Qr9p}eV-C@WAdXQa3)Zi<)Ut@tRuik}joR8!KG45hO&QW>kf ztISc}S5`rus-gzWAW!l?_Z-OWgd=bCD6LTT0MtklN^OgBcSTxvtd1yqFVs&iRwvZJ zK#Um6^1Go1hC&06$LfLdzrj3tSKgI*pJhYyAt;FxTIONK#3_Lvu9Tp1pxud6d&<9_O{PL)oe90y32Sc8ReXEUb&!LR4yr>1H-;izEy6Bsv>}}EK)>^SP?H0MQu?R$kr6t z)<;rB#9=hm1rh1SO?KTJjZ&9=f(4^x9BD^Ss#%l zdb55aNAzO@M4rfFg<^mxU`3)x3}QnBRyIrw7sJ_bF+z-DFNl}KOKg-FFUGUcVxoAR zjS(}%4EC~kL%hLW0q?3QlSs;aVHZ_}y%Ydc4TQ&EFuuxGgN5L`VqvT%v`qwXH4=Cl zZK8)Nb~$QH;82Amn4*Y=Blc)98j?6;Mx!#ks2=rARVyxpy$FP=kHlyP`iSBaQvS6l z`3E)QS{3i~Rn=Ge<08uLN2Lx$$>qurBK1|?NAK5^-%=^xvjBR^wF;r9{A!=}MWA>ee(=Lru#Nh$Uil;V)aPZ9-BEUgoFaY(8ArfVKQi!IxD`{&;UTZ<6E6ALdhl_)$QXZwD0zTIa#VXd$v^FU86O7S z6)tyZF>=XxtZg4{dyl3`PPviXXwqXzk}9Q3%EXiSY+EkNQeKVnDWA_MMe+`k-}1^b zUD{>xsbw3GdE|M<_8^aCFv_#>8b&EJJ^@Z4*_T^waeL%?#(Z*HAx#{$<4x^N<}u=l ztaop^tBjS4R)elUM^#zIo~LWbc=@l`0L02Rk9Uy>)nxqR3*ITwqXgP}4EAI7<2c&J z6YT(+fRKn_?8j?;tNK7*iKN=%2Chnr-UEl8z+#Ei5|1S+c|jt)(QXWc+7fwX+j0U2 zjbEp*!r4}MQsYt!y_5vVjtvDl+h9*g2GoETOE#YN*!B@^Twf zwQT~PKwD)E)X~>uN|aJkvAUzw+A9AXC08FRwHKaMuJSEOBW_C>v&6mK%0n#b%``~g zNG-^^d^E(NZcPJ2O>4my+ed?T6pxxU%8I77q~hjuBTBUSJxp)$vJC@6G1Dt7;PbqaqNyWKh z9gZ@Mz*+^??P5 ztm%y`8W!~?76Yq#GmC{~y@kcW<~qiz!oohz{9$FEU;(hSPqJ#TwokD@Slp*s5UlRc zSTL-yv#?ap@pG&OEb#LzL|WlE|8rQdp|D`TK+F|s$HFH6l7+!8|Ar;NHowXeVV~b& z$*|GyvHGyne`2-x&-`cB0QNfC6>N4hRvUJ^1*-$w-Ig_im2S@(!-jWf3Pz=BFoAI? zlpSMJ<3Oh?(-9B5o+ZJuf0NaNbzj2jV$^B{E~x40WYl{u#H&B*yb3rctr^)$HH$_U zyhk=cq$g#RX6DC4`_Cfl=VElHz2Pe zfFzpz(-M-}1-O(7`RYazT`{K853*ylhT=#EHI|tn$*Bk$rpPixK&oq!tt9Ow*|Q3u z^XymyNUm&A4AS`c;!++lpnT7Cr$PBa4fHXLs~gJQLtkYJkSlCW+~2rLP58XN%6qp) zX-!v^+OTZLt@PC$<(92jTN$>pry*C_|8v5qWR)wqTzeQAPiKiZe=)}9prv5ov_iul27kbb7=CX+N%Z(UM)Lq4RmO6ih!coLuE z%VpUOXBy>GKA-WKYn4Q*gf&oNI%#WP6jnBRk~LmLkN;oTiJ+h4Dm;pu!r$D5@J!*h}#O zB6};|u#S8bAB>CnD!v#O^Hcno1x8l`m?cJ7t1&B#vZmwA3?+kEW3;t1M$JYlBbhBm zUB_bV>|NzuW{=U=IT%5EUwNN7DyuLKYYjw|V^Z=tjJ+97kEGR^+=U83Ddi$D(H5ww z{TGa)bRv5=+BlZ{Z?If6`?@;%d==wb(l#`rF`ZOSDy(s1l)UTXi|ixSfL#5%i$qT2 zYFS?HN3SYXr?zS}prvZ}Hd;s8HW2zuTa8x;r&1g7UOqFva6qeu#^%tO#^8y1GYxq6 z7nhMC_;-P$ZcT&neox<8=zMtk8P$yLQfodM zssUY%e;%gObfV?{J;&ww#_*(krq}r2-8Pl*$tC}!q-tEF2qIR5 zIdWHWN%E#jIX|q?WAjE2$ha7cJG7P3XI!e2q{<_ChsSxW9UEoY5^`;nPh$?5OOBms z{0^dYnI@lF=978kImT;L$h~$}MY)WUs7aX(dTes3THdRaUz3wK6kJ{x#=KIR%y2(5 zoEwU>jCCvJSzA01tKHccBgbka8n;0%GiVTPj8fV~a$HMVQPM7w-&=P?oV1JVaK00c zq+Mi>IuAgcw1O0}f*e>fRskK=6@2NA)eIW77jj9P$C_*&OR{;a$mX#mo5zZ59$T_` zY{<5;CacDVtQ0GzDb>T+Vg*!jP&#)?FV|b8_;Yl`z7ugst zWMg=fjp0Q$hBxNQ<}e@eo_LS>Vn(`z`H8t=E~|>U>3Pf_^V9QL0OqLi?E$d>vuc5u zRa?Y@#A30S1&a^F2bcp}B9^ckn7>}iLc}t$4D)Zx#c~!VR)`gtgH_nvvbv`s-=TGx>)o8vh zl;-OUG+*Z5))BPx1blG9Pd z=_s;;qrq8Q(%N?D$4Gw162DszzhjBtam4R*gF-fkc64zT3*At2BwTSDriR*QU z>#@Z3y2SM);(9&edJ=KH9&x<|aXp#1UYEF@OkA%=TyIKTuTNZWNnCG0TyIQVZ$(^h zMqF=5Tu&jcHzKY#A+EP1uD2nsHzBUKG2wa*;(7>i-Iur?N?hl}^)TYP0w0BiG^4r* zyp+86Bi;+*eFX77ka({W?+wKJNaB5U;=LL1-kf-ELA9*?O@a^0Yy0U{>&Y z*vPEKCb5ax!2e-0vlUy!7G?)eh^>&155bAFCqvi~W$`1L6Sl5C_FU z<|)cV8RYMfIE2~V!uO(OjGsr}2cJiO=vnXT%vi$ysq8&u~Fpz+Eni z&vBj0m>Kq_nPDrM8MdRDVSAbxcBGkMSDG32z|3%c=B+kYTQDm%Rc*=a)K+S1X0NtU z+cHNrO-*O6YKGd5d8qBx4mh);+6`y+QS))mP<1q7CaO~q^P2iPE1bBZ5LX0o zMJ2A75m(HKD;C5ROX7+ZamAXrVnbZ9C9c>JSL}%^4#X8l;z}jriW70gnYdD!xZ*-w zaV4&}5m(%aD^-Xq9>f(-%)g&v3h_e_KP-qJR>Th*;zuRoha2(3llUQs9~Q(9E8>R@ z@uL#)!;SdisWwnkm_l3;#1#wTiWPCihPYCRxZ*}!@g%MYwY%Dz*${86)B)-c>`M-L zs$|oDH3=1I)t4A0XLKqfG7}l6DtO;RQ7-3jV!Z4|~k})nL zHCGG5um*%-A%tPg3B#HahJ_P`H6;uSCk(4c7}kt1tT|y=Gs3WN!muF1umHlaV8XDf zgkipfVM&Bx{)A!GOh(573B&vd!-5ID{0O%qNLv{Qw;~C*IN??l;g&*(B}h+26IQ8& zRWXE8W`t7agio=APZoqvmV{4MgiqFlPd3yNY^f#KQA@C=mJmlR!GT(WBejHhY6+F7 zB_vQwaH5uwNG+ijwFGBs3ALYsPj#pz)TNf-MlHdeT0)iI;gc7&1aE2yK7>qG)DrBe zCB#!pNT8OG_&a3sp_X7zEg_y-LISmf#NQ#4548b%Y6J1q1`?oPWe5eiBlk_K$ z-20Hk+Y>THki;jDtS6daQe6{FvLZ~1CAs$@Oo|{`w}Y%}BiVnwPv&6KCvzmpR!FA* ziQZTxl4&QBX=jpY7n149B-5@W({3cw?j+MyNH2SkOnZ_{JCk1aBFXk7z3e4DbC^GT zb9ONw_~-0qe(=#LWg*f}hXun^r;G){Tjvn=k0?h#KT$qm-tgSPx1->_bCmhQgXb7> z9aoOCs_^7FfvcTVPO<=a^qj&70K9sT>x^;+*Ey%0gFnuBL0D`1xGK{w3uS zs{wzX&vD<&%4HS`zn^aq|E=;Z=ndrt`g~PIRrJgPL;&_{ikj#TM2HB`ND+znXb}x< z8!KX=Pvb>AdX0%95wy0b4O&;!1+6dYqo3DQG)1p5MWkTAi|7K4+*Nc%-dvH3{r;jq z^l84x2Q3tZ=mQKB!;t!dcmY=)Ek@&zvKt{~ z3L#}{LdrITlx+zq+YnN=C8X>^NSQ`R*_x0tjgYb}A!P@Ws&ta7Op>Y$lB#wjRXs?m zI+9d%BB^?gr0RK+s`eyRnIu(NBvtK6su8Y`-Soa#;C3+S1?BPrSc`lsJ>Rd z#%#hh_;fW=uEVD*Lb<8jWCnP4;U5gjEd^gaP;M)?F=};3xr33gyUJaRUHzco3pvU? zQ~v+^^GQ+`o?VU?6$m0ywTH{~~YB0f|eqR%IXu95{8 zuuFv^;KwSkpl7BE75zUmVFsJST$rP$Xdx`n3$zrL=mlB{EA-o}g*8hMHUd6H!cN$+ zL}4%R{|4b89N>HADDd5L;Ut{UFLW083XpISE|AE|qB3ONRk*=&au@E9wkiU%g~CI4 z;2ckZFGUG2_^>$&Z{dwTtB>%(^Y{v1$g!WmY%;YXbMkGgO>Ieqha0}5ECNL!Ybb(5 z5YDeIsv~cR2w`=|^DUV?-<-(v&51nUoT$AC@_&n=Ru@iQaIxeC=SW^~j^qXB2rsxK zJWsMn#uGLW4L}=-Mxc#FW3;O#q6ylSY?Ef9nP`TZlr7U-G#AZLpDjcSwA)mX3QxS2 zq9yiQiB{NeEn1^z+(xuP4Yw6-aekUe!};kVoz)W=A_KMEPPD^*d(j^I9YsfYWIhKU zy!xV(=!D+C^u((#I*ZQOm+fD`E3X@i5#2?1^hh&BCZ4c|=)t1lr;q2+i9xVj2aCbL zpdn%i_J@k0*q10H$lou9uqGT{eaI#P^;%{oeq0$Pm`W5AbUQ4A{4M%1ynWfo$Rm<0Y#7L&0*MNGl|YvMKRzYc#wS20yg zMY*PlX(*TUEp#H^LMMzD?_ozVP9YadLNzPe*G6+`_fLrCRVc@)HP1ph&Mikp@WTmSBwN_#kK=jq(c@H8BFE`87(k`LC*2c7x<~8F_>%7NBi&P#bWan~J^rM70!a5%Bi$27x+jQq zPcZ48>ZE&WknZV7TBj*#oe-9N$bRr)=4C-6H8hrj%^1RNg%Dm zN$V)2brMPIgpt;%MOvpeX`MQxb<#-dv>~lim$Xhx(mIKxb<#=eB$3vsM_MO?v`!*v zoi3zxl1b|b(mHXZbs|aYB$C!qN$b=kebb5b4JUn*Nctv<^i2Zkn|RVUZAjnLCw&u5 z`X-3NRNiKJ-~Nz){frm0GrrZs7rCZuUPlcq@^ zO_M;HCV@0f0%@8=(lm*rX%b1(gp;N*BTW-Xnx+nEnjq3NX{2c)NYk_>O%p+yrY&ij z8l-7jlBNkFO_N5NrXy*ZbkZ~(Nz6q4}T@p#V_>*?w zq+Jq8yCjl!=}6ioowSQW+QpZ&ODJgaiX_wBVU7C@0=|I{gp0rCmX_soGUBXDaR3q&YM%twsX_qk4E=@_hbSCW* zOxmRlX_sKqE^SD=1e11YL)xVyX_s`;E{UXF5`klQQ-i-`(TRzyVFkI&rFTJgKQ=8l zvnY?P0}hD>P1F3Cp=FCkeyn+VS_41Kl(L5pfo;+k!3Bs|6KLE7bJ|_u+o7d!q*ey% zh69hAVy3$r=KZx41z6|`EfN8*qGp%@?=EMR>1qP_=myU| zXlxJctP0JP08DKR3{J!QN?E{8d3Wg-3afEwKNOhv?uU56eGpS zn9c8m8EklkAfFYmTmG3X7Go%_FrVEE$g9Q6ccud|BisNU9-T4&U7%mf5?Jp8trZ51 z)(|rgT`+fzcU`hF3$v9iM0XKAK=dflGej>Fy+-sl(Vu$e<@Xl~QA?usL|uq_5cMM( zL^O!ofXx`XIm zqGd#n5P6I_Xmz6DL}Q57BAQIJ z3DMNTK?4fS(uj5>+LdTeqJ4=DAUc@n2%^PAClZ}fg!(a?LG*2+B}5kzT}E^b(M?3R z5iKQpfaoW{0C+V(rvLq|#0>dH=HI6(+PLO}AbYw0clJ5ZO_oA>N^qd#pHmpII8!1W z2TDmQ7tJ@G(-BASRmS`~R9Xz2`uzV6l^!+euc=$d3`xi-)=-GTE1&=()WCbHMrTdagFW~<=0x&s!&C+sx4 z#J*wQvjQ+n@3pOx zrf=72GN^3Oj%(y<(o#deehvM3LS);*{X%}xwxOE;6A$gEjSL!Cw-W&`>IJQVZAlJYsA>wfFOl+aD^zRhPd*km?^58wlN0Wai5e9(V74tMGa z92>{*zG7$(+;cD=!iVxu_19#fWKja_rZG1c5 z!FTdqd^azp;}4Ny8uz60{$dSeRz=1%65%nw+6Xt~1rb(;Oh*&alhu8oSMY;tIFs zPTYh0^AH}zYw-rWIXuxj@gDeQKmnwun7_iO@wfRryx+bCp5(j0kE8J5cnkjNd8{%o zrmZV`leTVrB5mFIB-&Qtm|Mho9{eTRdh!{x_0scC*7Hx%@}t#IezYCRk0+q~Xh)PE zt%>sUL0W!DIo+QR)AJA4^S_|yAEDB!`r03tP z=ij2||47fjP0znw&%Z;@zf;e@OV7Vs&tIzN|5(qzPtU(!&woJAe^Ad~rsqGT=RXX+ z76ogi0c;ETzRO?WHh+<7-j%;hTX+5%Z9Vu*jU#&c6fGSbpmfwcr31w%KTwA918KDM zk$U=QJ$;>?zClmlq^EDu)3@pAJM{EjdU~mzzE4j-pr@DV>3^fdY!;QwjlZIo_;tO+ zc(VX9>8Yhd<|rK{rgW5;(s_}dK3q?KK~Ep4r;pOp*X!vU^z==7`er?SyPm#7Pv51d z@7B}z>*)vd^fEpD5PGUXuu0=!0piVY*qG9nJrBOiqcA=;1*2ng*h02~zp9sRs$RM` zXzQiLqf``+Qc*nkNaurpTKq^oezYFHL66_0$8XW&cj)oE^!QRe{(v4|rpNycKJm%) z#8vn-y#(WF>&Z1t@zTFJ~O^o@G@COv(#p1ws- z->IkX($jbA>7{!5K|Q@pPd}umA4bo^9{p%(Cxcsjx?T#};%T+*NPW9W-|o`4W#}_% zmi+J9GoPT>gNC(U+A+#a$0#?YL)&Y|qxIv>`tcV1c(;CBsvjTHj~{<-t+jY@+T!Zk zcC^0TqHjy}?cd?^GX(no4S}BZBeZ_V|876xnU0ZtfoD4A|4kk941fOD@#mQx^XGQ@ zGdm{lnH_^MJ6phxMzygh_H3-oLmP{FHdZD_VlcC!jiEgo zD|f;oYvwc(V(C3W3i|O`P8f ze{}h?zZ%G|dB)-Gh6KD7V*DC+KfI~&4x7#1g@?_1@O_=j=CS$geYSutWQ*8h_5oYM zma=7RIa|S2vQ=y~Tg%q5^=t#%$neh-c-@_4=h;Q}Is1Zr$-ZV+*|+%9%uW1Z<_`WW zbD#alerCV2hn(YOU^8yPt+)-h=Z^5hbK$Ps9o~3e+=u(YC$Ab0!Z%_=co+}o2KeX2 z@Hn0TFFox)KMi;z-h?-U$6l(*Usj&0_~#GRpY+5wgO`a5-u>{$cU@P)8#;xh;%_x_ z+nO(dFKG&22Aay{S5;dhmn*zr|K(iDrN5C&!MFdc@D-#_)KAr;>M`}WdO|&k@4hI? zV#Gi8_aA%-Mo~%-e^I@pey(0tzfiBJU#efJSK(dhh4+G_7wltRuXrYoH)KGSTPPj= z41;=*{{I|b)7?UQLW_g9>}XtLH9w5Hk{<1i;9IAl?z9~6>V>!e46L?1A0CKy`k4y+ zf1Y&4XgXsH^MS|eVZ1~1v@2=nmBN2W-qVSffXZ(x%lAsp+Vm2t5YB?Dv-C0*R2CK9o3r4Xq=3`%N{p_g(9@%R!Ry}!av|U9 z41kZB@$Wvl^tDX+Kc5lsGsAy;@E55rID0heqcJ?un!-ms1%8JuP^&HBm)05{<8A3H zp~i27cEtNgo$!89XS^?j|B|q+>_heu+s3xTe|#rAP{qRRU2ygI1 z_@m4b_?CaljJd^H?6w6M1c3 zm)GO4d{LlS9MU zo&RKsqYaT-i9<|E{AWdtFx1qF8uWysX5{qGMosk}U{c0n?r+LSZpK70cVLEMZmkq^ z&Tg-rx?szxlPPxhMxNYN^Yz0&U+vz>Bdc+c3sj|%D*75L4} zadt_q$E@>PHG5vyq_(g9G(CLlnge@lS5n$DzgO$mcxhc|?699#`ud z+Xt>JUAODxvg~!49+xlHbg~`%W>%HdVRg3J7WMjpS9z|@WxIE}Jy-3gMBiD*ULMe{ z*}_>1Z7#jAu)5!uuN>?$ZF!sO56AeGg+v_Nerxm6=3VQ)Ied`i+{&|*Ze6dJElNH) zwq2KR8VBFl`taQc?z_hPu<^U1Rfl)gONzdKbElWhiDvt=qvHG9wA1 z5fQqyWU-;BVc6HNwD7a@Uz$9$?Lh_K1wvL8c#%pn|h8w~RA;x0^AMc|JM}Ah} zfG0EqL!!L6uNnpU4KE2R2^nAAC`|>qPdLA@S78AfM0i#~t|47!^;1&~%?-`WZMu(d z#>fAf$1U6yL!u$x_y`Jj4V70c)SKj=2&k#70W=_MoVlluDq6N^`25goL!UcZXV;Ir z?gw^j5dVCgN|{~@#lx7seYTzPf4^#{X5(IO*Yfbvg$HBy?%2D0%Z4%AY=-Svbmhz< zkFSq(@Y$F6vi+zx=axPJUU3&##^HU$cHseV{+J@qr919D%OKjpKI<8Ce4 z6feoT1;4#>V$+$2a*w7jPW|3JX;Sq3(pQcgE}WL)|JwDf`(}^G zS_)J}dsDvAkd?E?>d27wD9ThNfdOE;XY|STYnt!ZD6?nJVSY^u@&^sj!7|bi0p0;D ztCuG?%*`w;^oueZRa0ex!K$6Zg!uw9R`+k9kTWMJ1JKOjH%n+JWx-1{4*R+uNixM$Dq0`Mt?kHchb&NWX@S=r60 zZi%It<%Z4+vJ=$CvwY@v?_RX0{(^!Yo;~*X=6CaGuuW;3y?8}{d*5G%iVs?j9<%$W zrJa76oBaNPDz3k+*>|&Rq1}xkAH98V*jpd2w&*>tvfcTTj(Z!uV4c*Xdbch0Ez&z4 zsWd8~XwQR(>vLXz?WLk?Z+fm&xR^h7hhgkTCXjNpbk)(R$5Sf}T$_2Y?%dzbFYbH% z3&YsS8m5dLXBb;N#^p)p%9`CTy zd-U0l-U9|)Fcgcudhbf`$13T+!YSF|F~mhiqL&jH8xtK55Qs88G>kp)C=~t0E}nedpYI(y59LcCAdA-ql<(tlNS`u!R7dto}D$QAp2?X7Fo&Q zAaj^GTN>gM;}WA1;sGju-18}|d7|>9*+Hq_Ma6#GZPRnS)56TL&($7~we*W~bw3W- zv_JaTuq(B$*D(aVG-a*9Wy6{YyX(%(Q0H8nb>1e>r|O058lz$te~|I*z57v#$Aj9< zTz>QC-#U&zHRmpyJSoKXqXz2XMfKEsH^$svax-miPOmfDJeGGk6V~gRN58FKdbDlM zBAR{t)}YgyYwWx6pjUtE*=z6oGIYee2lH>Q-+gEE@Tof&eH9o!d+~Lr?7Y7BoEoJM zFwERNJG5hHUCW~8x3{%jwSB@Tslgrlt&iRF?n<}F2R5(WSUxt+>}AWhj?`KiIAKT1 zwMD=7zTbGtn`JJEm*d8*ALSAMtLwdimEJBgxc=rmV}8At>{=UpK2fNta1+4!by;TA z^xVcLFW(r~?d>gJ51!Sh?CVGRFi%1ogOda#>N!~&%mD%lP$Ambi9o+5*dPr7z0ZVx zjhkt|#zYJZP2`1q)p~}yhT0{GCGq29jUAebK73)gNe)v}pm)#m-c1X69Y3{^p@AXU zT*WRkBpBk1Pk?TXX}9}N1oF|IAUA)k@lr46==dGqee~np4ZUylvYBUIOKmfya>26Z zMKjY6#vg2ya?|4Ve$k)3@%@bU3!DvRb;dVmuH2u=R~T$Ev=zW9^k6 ztgat*T#~+S+xKP9*_^EXhS$t$DHjia_v@l&Q(YR{*NV$O(|B#;dG+@nKh>yJ(&nPU zC+0b~3)?$k{`y(V%wL)?dXV`q+g(!a%koMu*4^kd@a{La+9vx~Pr2mXV#4B>GV^)o zojQFwKCY*T&Cef__wDU*ZQkm-RHQGT8j$7dI{VP(HD+10KEKAtbIX7Jhbr@TJPvdJYghtR1T7CyA` zwA~WgB(KL;FE6sG|AWg{JFfL>S5T?Tlq2UlM!)><%hv~;+g(<(d(ug9^@F_`Ni#nD z?v<%=!>_md^>p2S!A-2X9Y4FX+r0Y|uS^{E(-*~;A{z8)+hprr!@w8Tlue2reErh; zS<82O+kG){$k50-8EKVsFPtkI@TS*0oTZaH~H*#-Txd*)y`2IVSxL?Jv;V^kQ$eR>%jd$*gr zcJ9^qy@M*f9R0<(Q_hb810m=~?USt5IgkA5`mx^{Z@74|O0x&^C!MI2@!IiejhuH5 z%$dL2U_QqCO#F%iP5XSdHqa{0_NrR@^4YeIMZY)vxw=PY*qgNLV0-d~iQivKy6WD}FyY9` zsf&FAEc-QneU|yTsquE(kDu?=tsT32>x=8%V`e73Id9j2zLPVP4O2@OaP#Ls>E6F} zjPIy-ts>LEygKxaPhKot^3j()mPC2^2efhuA7Q!Sy^Ea#-iRz#e*=R4gaJUq*c1O# zSg9EGLB+6U$=LA*N0V_(+ekU&;$m*4k9Ah(krwzSs{G!Jp-TBkq?L%YHOZtJyiAU4 zBJE*`R1B6@MvucdzG|gLVti&}-?tO*Zm?W@&w0;V{H-4|TlT#7y{Ra|B2{6}WX%~p z;e*{xC+7~km;2+4)UMSWUR>e2W_$dbnY-TE;$8TwlHic}!?<_z#k?6S%qKUjd}qt_ z=%9@qI^B)?aKpXN2QA$^BPrN#?}~=oJ;!$Xj*r7KOlww{$Vto#0yxLYj?n3n+jc+ws_L|J>Q@W>(wBbFbnn*2 zMP|Llg3+sz_s)vwT(s}OgL==!O-(#xI5qlyy(sf_LB9^k%*noZ>0HvaAJx*?8Kw2U z`eoISw-*#o4}PnI@0%wYB|7G1rZ&IlI>j@ni>*!d{XZK5TwG4v^md!Nef61(ckHjM z8vScY-rGxVY);G^QtUgoSSiAY#ej<1Gmk7*G7;5DjdrrFAand{cG)6XdRy z^Lo`|f1TJ5gBnZ??sw$aN#8l)w_HkV&G>fvtdxmP$+>N=H`-OjW#r4T9(`AT)jlUM z?dS^4XRx2CN>;T`djAu^z3-&(KDpAI>)(QIwzf{2LwTQBrDwKU)NotHWv zsu8?$ec#AoHVfBXY{PmC9y_tDR=;ZFuD@%(t;l6c*X_4fFTYT0)5vS)3(CsYFZ`ie zV~2>vX-#Lov%|S;e({1EzL7)oPZWnawLIHxd;XBb_}tm^+Kf;(FaBwcVb=%KkJT7F XX_JlEy11}O*U$$Oy-Rk!!r1=-)9IBx literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/Ubuntu-L.ttf b/data/themes/default/fonts/Ubuntu-L.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7b7ac7dd51fd51eac1e7773d182de3f8779c3bf1 GIT binary patch literal 415552 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

wfR*ZX9EU&5 zqBtzxOxvGs$D(**S+210IdWdKpC!BF7vz{|<<(>#56FF;^cnR9a)G(P;ea_XfcJ*c z4dgqZGo!#aaP0tMx!^VKkCGkg8A_=!|9ZxnMqrm$;qz6py8^bhNM#Pd2moJ&{35ZP zC!RHU8xjM)bP2g|T5qKq8^mIeiZI2ls?_=UuJEpHk}>TfmrJ6)W;I``6d15YV*zdE zkzM3+X*}5GNM+yDfUf|bOy>t;e~wkl#<8DLUaLB6m1f%jI>Y! zj-wTskNf&8Iyw;WmZ)E%urod=MwTe-l<4XzEeTA&sW;?LwcJkcUA1Iv1eW)&6$i0ODEy1;4}}zSup|6S?X=Td*<~W080!lF_&Z^R@Huo8AP9>w zNFh74AT`oSL_)FTk9{mKm)Vu2r2auCe=0kE`Q_seYUb(PAUCj21Ympqw#E$Iy7K%f z?7pr$K~q3^gECEiNkbl5F&3~DkpUYLtR-K7V9^TD5cd(w4ZdhHDS6s8@@r5k-OJtq zi`Lst#TBtyh0KX{Q_2L(mBZ=~+j2pE<1jhYc*qK{SKORnuc|`B7o!ib^qi>kKSP1q z(TNiK-R(!11&ux=1yYbhCZ*_(mzuZOsi9q3*7fth{L7arP)CmJa;X+q#%_lKRn?*S z)eI;2&yQ_xH20)ybb_B2CpdD{ux=wy8w60&Mswlcf#cN()JeG9Fbi7g~Ls8`QR3 zyrRmuQ6#2t3%d$!Mam?8YZR>oqlQJ(@b;Yv4)mIGtJRlew39iKnc|NL$tEh4T5h##Mb)NyR z2OK!|8eshc(kCN$v_Q&+(!+2Dh#9H&G?f8x$x!Q<6PEZ!|2S z-~&MT0d#>AS)QxQ5xd%8mos+SH*YFcs}v-mULnOuVkS=e<_NI@XQi~N`u`mo7`vub zzP|5g9$8)7_rH3^LdUAWk(nKtsO-J$6Cbv2zNUTF>3GjO+Sf#WOnn}ZPG?M4yrFT_jC{Z2d@cx0dUBYL2RPSu_`!?SxBSX|&>qLa}I^F%8qNwgRXk~6LU(9?vR z(LPNUD=og10SBjnUZ&X(~7Ss7GJA!f8jP#ZSnZFqphAgl|kHD&`Y zB<~LTmUl;A$kXDuw8mSW(+6+@;rUYq$M zs=+$!cV+I&Ts?WyEe=Ku31$oM6{iqOm(zWK;IIQM3qVRe~JO01sXsNhjl=G zW%CRQ#vM5V?5zKs*gU1~pHL_8eyk<*ApA>mU8mRQv0K}2W!VTfMC+NpyD^$P5LFLA

QZczd_!49_6@sk@RrDP4ySlbOzr+X|)I*;Qhz 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 z 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≷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 Cg`CX* literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/Ubuntu-M.ttf b/data/themes/default/fonts/Ubuntu-M.ttf new file mode 100644 index 0000000000000000000000000000000000000000..443ec8b76d6f65138a3d050892a052e5dda00ae1 GIT binary patch literal 341324 zcmeFacf4##Rrg)peNN}zp?B`xxlg+HoEs+-ha89C0FrUYX<#Htk|jyCKiiirRj|q7mMBVTASG)JQcV;fi^WXaiRkLgFvv;MnYOP;w>(}^Np{($=^NB zZ2a}Zjk)kWx4qNlw|w(YJ^j5@@PDY_UvGc;iPO(}>A%0xnA%sU^(XFf)64Gq&o}cfXW`2JTu{``OF($*=; zJpaQFe!vy?|BvTf`Zn6XC;2aYFfaQ5;@^zFU(VlK55Dp-kN?KEUiMAey4aZD(+_*V zqaN|h-@WB)O#NSOY0T4K_wYyF?~2VAAKccM-%k1dxht=D{8imowLeSw4^w{rh%2sq zz-wRd#(y!5M}NbZ{!OlW-sFMmH~hgpzyGS@yuqs*e@@Z#Ng!f6rWA+v2%Ko}c9&o68%IF_+fA!QJ8eBiHw* z@oj9T^_!SM{Zr<4lx;PB)nwEg)_)R?-quWOcQ^N<&;Q7MllB+z!PK5>E~C!9`kl;W zNd8IgC+pWWCu=X}{jGVvIqySr!&*>$oIYJvJ7R9rxPouD;<}5?f0@eEUdFdCn(f*f z%`NJ;;Bw5M(Kl}0r$4QtsC|R>?#cH9`f$&(efqFt{)2wKxcGSOvu28fJ)!njX3JjB zHm5cli~}^)E-`uI>*gZzUSjiq-ds}q4coDvO^%-VBI*tpb$whxz>?Z&(58+2FW zOItVQI?bgqXxV=Jr`fB$!ps}T%?)ZV<^7(?`F6g>*S>oe<8}{|*mn;z;U4Wi!fdUt3FDjEvDNrq<7#|@G0}Kytk1e?TgAU> zyt!&Te~WSUsvt)> zUwyY@3xBV9ucPbIxAomW{9C$$4qBZ#`wk{py}agKGNW<(A@9NytJ9J%jjb>Ry}srh zo?Uj>hjp9cSM8bRC()NvHR;uh%tc&3U33_*i>m%>-YtI7o_Td~S9C4m zin+GAR$L3NoNLOZZzs4)UHw7%{=_sIZ!uFZ$EB6)G_^kI6o|E<8`X=30{_4Hn zo&8>Ut2*-fnS{63Y{+iTWjD`hik#r18+`)#ed8D)9CH_=HQ3s$q&oB=bD$*n#Sk4 zK3MpI!}(EjBJ-i01- zi;UyF>Nhe+#FtIiT)y!>u8Zi?iaGum{k_E8X5-sDf0yg-@Mn#w=vxiU`fi02Kde4m zJiP`kYhKdaQ2#CXamTZ8w8Xj#t2U}Tbj7uQG~nI>iacu9(;Z$G`@;^A$+dNRd+D(j$mT_5DTw~X&H9k=NbDF|8H7{xAnh;zIR~r z-4(s8#;W4SdY-B3|3UW(n`)mfzE}TC#*usD6<{_O_NHvMi)!EId5ihx+2HUOupzzy zZhhPIYS?J?pXdEwaJ`kh_n}X>A+HZV&o91&{$FHe{O62UdmVj$9(p}Bj^+0Y&3Ry^ zUwfjtXYH}bcut)2Q$ynh8Y&bN?zUUE-(*tt&U=2*nX%# z<(zpL^TLVxmuc@l&?g&SHdKKuh#&t2jaOo;J{6fr8FTSUSO}kMALYJ-EPRId&*c39 z{rntu?=fhE@0Rv=@%|$6{R8*so7*z~cwkDe{%_R%D6a4G{y~(x4tH$)jS1s&AO4=v zkE`fMWshmz7JoF?yJy{hnK53{?}zd3^<2L~xf_7RFXw&=jC>9CvSw)96^wqD=``*} z9`2GY$%n>>yqDKckjL=+I4)$vj?cHb3)f!9nn>gD8gnT!da3NMLtMB9ejMV2@c+8z zJUb6?KWwYw%NnPwTxu*NpWG|{U-K?`)0kVC*SJac&%Pt4>Z2VOWI%E%Sz&IzTg!xVOXOvC!MhJC%w2Ew(b}B`w^7= z0^@gE=Cr=Wqd{ZJ^KHz9mWB@(|EIBAe699mF4icG>la^ZG>flERvMRZryput?b7B& zwOR3HuD9EEs8jXYx~UIa@P)M}o5$4NT>P8L{kNCK{+*`TxOeeKjmwI!G#1>?E51_y zV)6UBEWM)n8dv?7$@7NdtBt2o=8@bV#Qh1yS1n&OC;fn{u}{98;;S2*+`mJ)zvup6 z++R`rzAk9Ha82KzLf?D2zRUGzT;J#Vui8_JuhgDNJ9nr3TXDY;_sff~*1kb(H0*#-ie9#V2U)bA^ZfK5IO!jQkJd*!T_P`%9*|@!aB%HXcixw<-R3;~woK*__g}^JPOdL; z{TA;IbX9bp^DY_G^&5=kZx?^x_+xC_r<=#trsl`(UGws@(9v_r)K`n&tADllWaGZY z?{R&y@f|Szjp*R(O$t7spT&2${(19Zp7Z;zT&tE~;z9W6Zem^*;e7uCb52Jst;{K@OlN%SaW_zxA zSnV0+;g)vk;Qbh{A467lxL=HHu66K#(i!RNe=Bq1E%U*8t#lKxZ_@mrNd_On&+=L3 z)ITt{!h86SwVLM*YrDy+Mwlcdt>iG&YCP)0I_%bt^=o^?T5aJvqVf;7LbA6Y(9|&- z_JfSz5^5)H)}$5?@;t8{voWAAinUr^%MN2q9~5hi8vRz}PO@w3IMyT9j(IyZDplkz zx}kh-qs>(&i{MOjAQ}P{uNIuSVl7Xv_EvvfBjZ`$Esv74wlf%3d=l9wY!^GV&RJQn z_1MzL@YdFTO5B_?LgGLTk`#7$8N$Tg5XyYL;ahE7cJOqq_GJD#Su)fXA)7KO9ILr| zwKFtl;_}vh?LgcVi%!PC1iixUVyik2TCCAFL_N#j0PxV&eRBc$> zAC=FwT76YJT0S4IUfKI@t*^Vw=o|*gs)DD>jV*1*vRcQ>O0K&HP#rk=0Tg<+c&(OY zC*Z6kK_Q0<^}kkI+Q0Nvb18jLYw@%t7W%Y|8>{9}iu&8uKzojYd2=G8Q$eR6};sQl<)+xE|so+rYsWZM@? zD1T-k%eN=j;rQvHeL*oBhPBft?I4!f5WF)1rGZCfV5s-1!8&WvR`2cIR#m-$KzLoNh&iisiN?_w)?~~y3Y*Pl zZL=X#^q#$;jdyh}9{l?7w&pYKFPOIJ75`~EHtm`|&pk6J{=@WbIxr5;j&Vs{uTnl7@E1PbaEuOc{HtCMpA>Fme^tkRCNhi|?9!vrl?p4vK#> z$ILO(2=L@Nv~(FSNw~)zPUc>4a^NlZ)np?&85XZn;V%Mk>1$cnDiz#y{Wk=&o?9e zCv$Uib5cC1q_?!`t<0^8e>AtY>21tyc)qQz(Y&E>^Em^<0@&gM=$-^JXS^vBIzNbhQXy!dMtp{ieCfJd*S$%~hn2GC#@JN1I2HKE^zn z^szR5oOuk-KV=?Q{Ed0M`6<#Tn8z1?ZJubJK>8%}MA9dlCz1ZNc{1r!%uka()jWmt zY38YDSC_%&SO$9#8Jq%xleSNMC1uzW59C3+ArB|0^W&&q5-h(z%dG7?hawEF=;J{RoMEghW3= zq8}mA4??2tR!`>5XmcCuN z4D33^v8xi-u0A}w*6{6`VrbV9fn7Cl;)Jz8WY+?*wfqxn=cm@H&#VnUvKD)8E%ULp z!zb42o?07wW-aQuwVW5$PF`B8cx7$iEo<>^Tl;p$TC=;>Ufr`c>Je*^9<`R|zO^mhJH;QfI{QP?^UarwKVo(Er^O$#I{S;_4_KZ3 z73sz1Z;Ibzb@q3~@3K1kN7Cz>?-ako>g<0Pzs>6G-wVzcn1b|%wT`QME6TKDzd&#V@em^3~#Xc&)!q`ncNP6t6WuRr|Z* z=gs45|EqX4r||xn^oh0a7Oyf-s(rtBrFn9#C|+THx?V3{Zk|$akv_HFD_&-vR(D9B zUJr|xm}k_};>G5f^}KkI`I-8h^jY;)@pI(=?m(Y7SA;=tlzYFj`_Lzt&3-y7u7E-o@HKKzhm(;<|Xwz7tb^=t>2aO zW%YX(&oD2qUr{{WyrTZV;%VlU^@kQuHLt2)SvM(%08tTs+>qq5iVsr_3+aUs*iPys`ee;<4sU_1BZW zx&Ef&(dI4nw-%2wzg&L@>09gXDSpztt^WSvD)TG#4;PO#zgquT@d)$w`lpL4%{%I! zCw*uA3&q3CyXwC~`tJH46c07;ssC~D5cA&ppA-)^@5A^1AoKqE*GYe^{@29=%m?b< zB>iChABy{%57qyrxS#oO{kz3|%}46rBmHRozlxtQA8XV}Ki=3Z?qfdD=oR-ipKQ3r zz09W?!{VOi(~YFKhxtrnMEdKEX>oV+*~Y54oB3R0morA6#~c6S<~JHAio2NKY@A=* z*?ggKQE{gq`H6nyC;E|}=tq8{{~!2?+(aZ*|w3s+1PHi*CkZ0{8pwayAJf3YLu#9&CTXUnWYN@L^m{V zDDveno?TT(tg&Ajy1~*i*pBlJ+O82cq4eBAOz$-7^(M_J(004sABfQesJ=!`<)00; z+1TtcGTh;{xV)*t1iGqGgZgH>)!l&9MzcpNomRgCN6EJVulNRwZ4(+t-cm)w8T9*| zrqk=R8H|pqT1R{9b>XkXL&CAC%+}fSt_Dc~T_g+ax1rPN_j|Te%HQrXtX1gh zOILIgXp_5oScYD2fZ&`d+3&lK;|vB>;j%52vO%idLv8^Bg?78!6?Rm)81V9o8i6OB zHZN>dqNKmEK>_|0nI$oub?11~>IA#|xXJX73iCE#eNUJN6VaD-^W1D#Hv9Ag8sMge zObkWL=o(^$W?A0TKE=qsVTqNXTKS>xyx!dGGmvg`qhDfPf3v%}p$63w_|c{82CrHg zopxiBlpa@@hrIBaux67K(gw>F#9QCR6x|O4vLFdN69v|1LMe!n=S~Y2uOmR*Z0IGx zqPQt~6p^!aY@?5D1l)@MA(&Rx2@y(>SK&=4FGH`R*ggm5H8nQp3@{uRs5e^eazwf! zdf*`3WfPVs;>+0qZ51kP_ATZyqR4^9M#@j|W(RCSR`f@26H>_lWu4Z*A`|qAB)yTA zmV!ld2*!qopmtkszuV@gZ@|D|JcDd&{e_2QZnp+-TsmH2o_H@li;AY@32@ zYX&R#W@i(Ol9WO0W|?CHa2(1YMDWw=cc^io zcBrKk8Y>V;kq{7_W!O<%3tvc6PtRBD6@S8=HW()$qa{_`>b3`z)v#MxLy=0>blctb zhNc4BExOU`tTC^ol=>+nZj@0qD2l{h$LZUizytNagD&^TrVc}k<)}K-(mXHa7v{kT zk%%63$-;-VN`M)q0I4t-(ghVt)uGZ}x2J{_zzjlf0_wRO!xtG?A6`=ZmKSMKxU!I?+*K-r#skm>0&*o8(G-K_IH0qBYhz%Ij@AGS+~`-B*TM=!9T*zT>da}(yuv&t3k4x=yDhyI zHH4O(VR%=vsiz^gm}fIe;uPp=B}*ml!M?RL+HX))MkKRDJj|j7L&e-m&t=VN;@%Lo zUGTlUQ-#Gmi5lW*pR0;=FU=h_$Xw8d`gK6Gi0xLrdU1Gfo)MnIu`3@mOkFUKCM~6w zY{#Wr3Q&Dm$Jq~S%wzZoaDO1oV_vpQp+Y-8b~KSC@E){7Oxg~;L)*YSh>}*3pIO#Q ze6!8KZ}^_$^jh8k-P>q%580=xh<&6%C?GaLJefOf2afBDQeh7W3#V-kT2X#l+)(WNOabicQ(BUxhmdhIgZLpRH>*hnz}t(QgDIc$qo1I*w29yh_;1w#rgum&OmQ-q@zF@`PlX#%-{eXTOx6dxx0U z2ZbFZdQD(OOxbN#C>_`rA8&$r?gec_WpH!Qg~(P%i&eE-25Vb2U4RCW?)EkqpaBym z!v)_Rln`)3G$qqAtm*j%weu`thM7`JUN>7VdKa`e-BJNvmOYyeZ7DCynm#oEgUs$2 z=v`KYEm$?s`j(((RP_c@sELT?#V-qCB78vG<#*i=!=bD~tBrQ74?lNN14S#DmYp`C z&*+v?qJ)?!S8>2a!^AH7$jYe{Pc0{~e9uG&O|>E~=D-|M zKJ`0wRw{Nx+I};rpXI=d5{mE%iWo>F2YX30 z^t+xY1nsC%3c`EnMWIkB2URI~rDAphb?Ao5m7-#6u#~HGSpybw-*?qFRDhZ=s+jL# zFw_wG*khFyB7YC#L!XI#h`_$VoDdf=9&jWOus04>`q1pLGNixGtTI`35*(+pyvkCt zG8OvRXRhs({^|+F*1>*ZLZnZyXx--F+SPGEIR8vZ-wVSa91g3}R_#bsD?u{Og0Skc zR>m%WRCXRPa)uZ>)z@m#bPf5k;HCu=k2X6{22N>7fc$6@)$3-<<1y-NdL`z0%|UC^ z1!UC*m^UEPCPO2WyVH}8qQjbBwjRNik_yf@`+Z9tz77Jd=zXW-NKCCZiDP!1&oHGrs8l8!QdP7}D^>;PmeT79$=o20YJ{6J>fl3H0Qra1{l6!`w26MA6e z=EgwqvX1uV@>=*}g`=&^y^gQ-WXE;N%;LKEtQ=yZ@?-62m4y8wZPpk2mE~iLc3`Eo z$I2X=6qBW63A2W-H9`@5nniSdA25Jt^sL`;QHL(G%s|N0b*RDf`=BVjlI7JIUt5LAWBwp7XnskVpQu8~bEV-KLKaxpZR zQv@|4e8Vs=F%M(X@sVh2jtVNvCA94}o$E2D4f2bHdH(e}vh%QO84h+#N1!C}AEH4!T2&Ol<~~)=(KBLrqAZAY_x(Rm|kR` z!_g-cD7AN!%>C{Vj_ZrX3_Bl*&B`GbD!3lVe~17B#UBL zH3D;sc_i{e$p(i=Ob4|m3w6--qz(huuE4ro7m4+U1AItBB$p*%*Uro|M?g`9eGZwJ zK=p>vrJqt_;oKUNgg*3FXy>u?;4R{>7M$&b3XK(odF~+eZBMZ57%wod*9U1?Pcn*b&yE$HL3va{3V?va2nQK)nwuEi zsvIIz35s>7(&Y|<>_mlrPm-rR3XU_ht4g-hyJk43C{t!!-?8{@w^g- z)@@owD!1o{{6^5X)9! zJ$J|^mE9r{RF=e)-A0&Xs!guf2J?cObiuqPGl)L`Tsu8^;)Jzju>QgJ5Dn1SIZX!3 zcQlw?fOLp_0dDd$Ffzajj)QK~F4QF&U6_ei7;6nHAz&cWZZjwqFlc$5<`9roE4Va( ztzMJmue>R}0X~XO7w&6)OBf2??1qu!Sa9fBvl`xrZl-S9R?}zsGW7zfE2XJKK1?;# z{Y(&WD{3|dnAZ{Gv%85i1u!SFjOnpaspxUJHnM=Qc7YX73#L_7x(~$~#Fni+q}Mv) zG)(QGtB6Mj3a=hI8k=(lMwFi5Sn6Ag7Z(p9iV<#tIDYkt)_)$lh=F zT+LgIy91Ok7iuE(F|eUBfHJoy`wa~0H6c#4qBd#*lY~)ZjC##1i9)xR24E!nQET>z zX7nD+^f5oEK}-UI$UNwUa9m%=ETt!i&&nYdswhwcm1;`gO9u0m*By*Xph(KezKxW< zX^WxZB1}*yzRFf{kxGaRLst$2p|uOPq5clC3JCQ29dTYq1*P|I1s;Bc@(USI7Y-&%P|&ZPk0 zHbl7|OTku??;aV}DuJEU7L+K+{J}(9BN8$|P(uo?TcT5iFX$pcD*^@2u1U*hdNd5M z`l=Aw)v6Ryidg0@+hdXj<7C%WC8J0`oKBLeY}ML2KO*h~U>>-lfR*P3jCGky#vgxF zRe^7w!{4?lQ4+OU6@e8oo>z8mz?|kTZqfns!kc%EoM>pPBVa!#<^`Cs=!^sANvq*G z((O2yr<_Ir^Ry?%q}*q7w%0_kI5ofo4o)y-t}!n}??%05SYlq-#w!&7vg$pU=OMXG zkE%2}jyz#K?BRAf6$I9-lNsZ>mbxBeCa)>Npip9-zOUIgMprouW3I_lR(*okJ7X3j4g?Ix|4$YxMAw8z459Br(b217Vr8#y24X9U= zsak+%TYpJ)DL9$|hF%hC%;hGf{|?R|2aJRo)@VMsrQR?uea03f78OK~1w0_pZu;&( z3w?+Xfvm9(F;6=P-XZ3(gvNGL9tFWeh%v80QYcHw*0NvyI0~ck8K&Tp6Ur!f_RElZ zly}{xg#qOb!X$~~Fsw?(@raP7Wm%u)Xc^YurP`s@8~Xw)&kyN;l}l^wLt=z)U>;r# zf>bDGlWI+1MNHK>_|o&1Hy7qbx9$n^x@fD#ygo}JSXl*2Kqo|y5D#V>J5+X+h6x!m zr{c2$?KF=waf@EeH_*sVhscjGk0o)t6M=bouNBFLZTF(~u-gj3JhcNj_>j@^@#2Ue zFpq5^D3DK29FUS)Tv|^JOml=o%p2N45mThq1W7sKS=w-#V9V$__?i!cT%L-O=!&7- zkw^9$loI8%X_aa?9B{Ym(>3N<*eOlO5*5od^d*dnoYCMo8w4qILSJ#v!{>aB&_&A5 z9W*uheK2oOjxzG>x=C6hAWeu{*AB=kxY`LB8QDXxF128 zH;9Mipvx`h2UHmk2qIicF>jl_elyRK*zb>`p~XBHS4E3xAr=k%v`m6{GCPA9qtfYx z)GQqr>&0oYQA|{EtpLF#tQmbT8LWPQc|qV}e#szV*(pP>=?@&cMaon!7cTRvZt}4R z^Lk0_F~Vep$bJY-ju)`rkvs_dqS#}Sj*$lz_wqwZGm?sO9ICO?ilNo}d2pOyiJd1g(`Yr2J zi<}`TfSGuIHcR&N-W0lWS%QB=?Yj|Dti24Eh&qU#VL zi66ozJNhKdbYN9=QiMu}!=Ta$AMBDvra@9*M+XkbX{O*0lQ@d2yj~a`&ei1?dFTLO z8kK;Z*`o-fG)e_UUJ7inAc)1iadzK0g6|xBvPsEN;d{%;Iikp7_1P! zvPuJDV^;KdF_0liJ;s!>w*tD&t{LM1Gqq#R>rOXe@|yNri56O&e$okgtr(D18@RCp z%C-W#>(OyMdBO(FI4n05V!Ni30+(Pu#J@{`IpqL^$fBBNb5u=(&(^z&)FC9Aqt|OD z-^JH_7%EBgkq&@)9Wg%pO?SXz9xpluPj}E#27kc92+dJ+(MLSwh?*RPid9v*#{uGQ zr*Y;27J(?G4RN5z&fT>@s>d97?%-fi4+k5YsJiX8B|95|Nm5m)zE)iV1MGhcp>E8` zaEI5j_q%jl(&Y7hpu|B>8Naa8_TYX3WkV;$Py>UQt?=dh&d>v4q~u(@ZS@DO={QS+ z!6XSi4)%f~XOvZ3j#(U|+?Gi|5ShI}hScZ_naLp<#OI2MssL9BV#QbjQ+P2fgXt-+ zyHVr;MK0znwy9vTWqA)EoE1PsIX~pp>1XMX5k@dvxE6y8F0;&#KL<|e`b-vngBg6Gah?$f3Tq%i73N)i3)~b6Wo!zc zyg|qU6Z>xvdZE{fnF_!tA{sWdHf~J45~+A7yI7w}x=W#6%3m*WFg5?u+!o@UDRn85r|(2UtJj(b-+RHEd|e&Wv7M| zf&g$zBNm8dz`IFnT3;#zVU{Lo`3zIyL<`|E*e~+X35M2f235{D$w%2JvE- z7Dupk1$qqEX>0J%8{YND%siNxy#yHcp=R57`edZz=Gp@iRTLQw4Wr*qZsPd zvd&4YAfyN=2J^He?xolovq3x6LaWnHJ7KS#xJ^4GII}~1g>6(&TS&sZPH(`Bv&Ou{ zI!i?~bCQCCM^tl_#X^=V7W4G|Ouu;&=2^8o#5@m4v9_I3G}J~(oXV~PeP+J_$%hh9 zygO)@0vSoTZNzCpTu;f8G(4PVViKSlHgbx~vD*!rnz~7#$Uf0o3R^z*G`XHLIN(m; zY-|FvqHMrO`u=E)^&@Fu<$JBV^ul6ZyPH_d!#$sJ@`14d>fjh48j77LyYEFf6`(SO zvcSotw{*D;aeRiwVj)s26ARUHTC>S03!P~iQK%K1MYH8{5`j0Mo|ps#k=b)baNHXt zQD6a5To;#>Lo5{2tj?p!8Y|Rl9l_oqY|)C5RVTL4Q05v1Jsk@XKUt5;pQ;w?6XkM5va`@#!aPz|ho8GP0*I>;wiDN2li z2BX|SsHC;BR+^XxNl1U07PxTIhF%s0SWZGK*@TfSOyn!_BCnOOxD^zO5ixFTz9-Zx z+7nHWebulQthM2cMcIvlv4s~@n3^1)l3p|%Kn*ij1a8qAVV%p^GC-n&4g>(V=Yx5C zmva*$_~L}{Nh>3T(!IqxzQjCF!lyh6L6D_s7RMSSg%Vt}B2WmUQI=-qGsYC)csNr> ztW_zerGYTO<_^pDv@jXxqdYxC%X~DS&E}IyRl01e)mrD5jHlWaEs;&TyeVT{MGW1xor5nzDk#b@OZ3&k`!xhyWp`l!X`IJX4F2 zH^Ru3gHwnmMY2<%8~KsnN?F_nC=ZMPhKpq?-jyul*uB~AStll4F_0R+Ym*v*UD#j4#-s#br|Ql%E<^31}INtVL(r5HkoKG zt7nCAzF5o`(`i+@Z0k^YCF7aZ8=D&+U7Rt_RW5m3&I0f-8iInhsw7V0oE^=zbFm_( z>YP6eopArI!o2)GjxdkuCLIFo@QL$gwl$mBuJlGMk=dIX25mc38cdzK$&fF6y2y~` zHMq_Ok=wQ#GOYWU=&()DI@r+b=PZ*}Zaddza@Wawalf7U9GE3=C^n|aPE1vdjyIGi z%uUl&`xu0g-5}CBE(|SoE)~F4Ep6;^lNXkfxY$Y2wC4?kUO{g_j0N^KeF=i6DYCYCQR?ydIlE z1d=RL^quOrBvxH*GGKB&ckqUR6S*5rP63EQH$7a?itRVg?;LAy9(l@3B5g@s-2<9LgeZ3?j3Q!GQWbKEq-uInxSqKk(Xk##c8%_y*FBuGr zahdhAEZ}sBk4=khD&%U%-Vlgnxec`?SH)Z=c1$sVeKL-Qp&#Is$HW@3#2JQZphJb8 zpHM?S4)L2$)D8!J*K1!13^Pc?OE8vUM{zNR?FopKb&S@^>wy=Nv4^0-BRq#p6j+iW zst^yyI69eIt@S2F5+B%wz_4$RmWx@=}y+WP=OB`M#Kr*q}?{(V=|yJA}~P!t@S`M z478(wU2g-G5|l?Fj!RFQR84`s9fCFr6yikKRX)QMOgH@#zY67-ER#agqq5DUYH^g$ zX47e&S0$&@t<`F4u_((XxZujL&Mz4su|2MVC9twhaz?qzC2vdlg^z61+U;#y6-H<} z>2)gtD`Kk74TH#yj^C#b=8f;`7_3;%c;qb0s)1p@an(7*Gl%&L9uEiRc}%oRUievP8u)m5i5*<~Hk` z^@c0MG>R36?l~}z$@Sd94?=nZ=7B;4H<6t?or8H$O(SsY+F^}({hX1}`p+42f)Pc< z&&~{rRg%gQ0{t=md))xv~pn))t@!48Vr-`>3rvV5P zGYM7^TPJXHEE*X!ViEX6=D?c{fkwW>SlC#R1aY}yqKeDwC0r7QpjMW_uo&OhU^K!j z#a1ipUYo=1By2I-qi}#8EM*0X5s0wHm||ewbP}~VV-WRVLsthiEk6Vw~V#piS7PI3+w4BYhx3{*J%c^wQ)_U_*9Sp-<=iW+WV`ZC;wJ)#^@-EviY6K%NVL!NM ztHKD)roEmBOdzl#rs`Y}#$J5#z5_6C@<4Zud7}_u7v{Ck!aNJw{V`ra@FI-bnx3L$ z$efOE5h(P9c{t3NqkQ;E_6~5*vwl3ooT-zMU|xSP0rR%K&P15kb0@uY(8<@B$NBV> zCOavZ2dRFD%WvQb^U5Xv*t+jTa}-%bXCI$%hT> zL=nt`!m9@-KR4nrZ!$F{U>-1A%B0AiEif`=s{%+@uW0=jvI^Gq$0g>$Yxy`V<_!a! zdBQyANBsh5)a!;`$DKe~;!m+c@jdw+9QvX)VkHe@<@ZCUI3~k44M6bvI5h75Srv;Nj7;-j_eF|$Wa2`*q zS>;hklj&rFMW#VgKoo0s9%B#rVwyIHt#<#5LwIMSIqfrQ=y=qGY@jUQX-#>q91J<~UIdyfgm> zLBPG@l* z1alUdI5qv${&oO?5Q#|Y5Px65;M*A+?;biP!v$O{2j0iX#+`#ePQhyaTJZB&KUDIL3w2Bjgz+cFc}T4WjCf4?BX+m1@J0rCdkv3g_nMW zMJRIyKRtFK)L;pX*e4YN;}#rtBp7ubeeCL=$v!~yf>S9#cZT{jv|Vt^e!aRk)1W)pk%#hKyvL}%bUCjL0p z1m*`xJOv7I_ev00yRfUorueXHH=&s+ndnd#TnQX59yoIh_9K3GF6UC;n-6lgI}KZ1 zHNsxph$g!udpc?m#QOcna6BGsAA>Nno8lsxT_uGfr?_RlVjd`r?V#wpT?z*}s6)Ut zUalERYcF(@2+73ODPwtfBnG}yx_uZ%=vE|8C8s6u+d0FomMCd3=E`iuQA}JfL-2kF z1I+>l+b|B zoWkDQUImCDI zSvkZ)v5dt)5T|NN-%AGb)pt?{=OH+WLBje^IsEP@h;;lHep;{-;1O7#0WcV|%S9Tc zVG`rVPlG8-oG2Y98FCVY<0y^hiCDtrX&0*#5gBKVlnAGz3vGHpGfb~569J7vL zFvSc-AsOd+a25_{?3OSsuzF6z6#HvA2Im-bAsr@W1oE<&&Vk$xGX$V0Aw$EmPRXgj zV*6BkE}m*A=?2{_R$|LJlWcn~-54EOS<0h zIL$YnGs;yi?UOL%Wx%GhM|x~klksG{8uTjyD`Kk7#R<4^(N)5{#bbPfx00W_OcQ=& z0-xADt?Cqr@$AewjhHe}X%|C(l4=5zs}Lv**vAU6A{Z~U-(ucGo2$%}fzLe2$#z!Q z?SZ?%U_UzSE-dEx3t`?2!%{7AL@OT*gKo|Nca2WMnIm^NnM@pO)g^P8bb&lqX==@( zfHBi4N6Z6-i5(O%1?g4@EJz|hrQJ|kdzegdYCotpNpcwlWjgjyMi$&Yn1`*}CF)oy zKekew;13@mNTU$FBbK&YX+l<2={_52iKxiFWUxM1$1u%CiqSbR&znK&IYY?QGz!2x zP>3)@o|9y2C*aT$k`C49#5^{lz&dBn$O!ZNMTvPMw(IZ>_$lTSA`1iJ2@(R8b0`~y z`03aLa~aUk2~cFg3{4>Mtmqh{pu4}fwaSB|i*YjScCefdS%|HJoj3t+P;9XX%p-FW ztZ*;s3z^9w8pP#_iK+mPKMKuJFHAGk$}$)h<6U!c9$L)9rwA$nH{Cpp0h}|Kr(-47 zCk4c?VYgalU|yO4Iax5Xn1`%_OhGt_vv{#gCsDM*;9_Se7~z{4GIt{^*v$Mj98W?F zFbe>fY)I2&Y%x!$CRCDtkb~D)c*A)fV7%ej=E|_YR^t)7KzR4CTw{!faz2$|-<{#a zRk!dg4yReCwfLm zSj^*&^5L{_A!;F=b(sVLeXfMFNeU2 zn5uJ0ItoUYJjMm{R!56|v0O=8X|2`Rg`iVK|9 z68*^Uvd&o_GC?&Lxnex5{+$HIbRGN!q@FWGOikl(vjxnGAdYNd=kDxrc2=G_sIICw z`_2Itxjft@Bf}kD%dhK3Ib4im)MhGnW>JXo&;DT03zkrpN84B=Fut*X_=D2It@v{Q}uQGS2gW&cTu$VvvxvhE!paY){AR0%7B^P6f+ws_9_TG@Yhh zW(YE6w3Gz%+%6iHtdB(d!tOK6fGFu!X+>7i?rglbQcs+enSn0k-6RDgp$1cJidr*P zz<(HZ*_p#n0pxOmB@f0^T>gXZgkAxP5FrAmoM+KpA+tcEjFW>rou6c#TmP4sk{i9`J1@uM=T^Th1jX*mh=qe}!SG-uD7`>heoI zhK9wt8)y8;&=2SHx%M##t5h{&wDj`a+Cve0OR~@HRz?`k?VyM!%10=7cTt2=DO22Y zig||I;yfy2#?-Hv$Kx1dbR9wLpqqv`FndHc6{EhyI*;cPZW~i42tWnCW=W={<}A4gVb;ZspkwaE~ZJ;Y{!^4gm8+#d9=6BgpMUE zZ9Kc0>X`#9nE!oui;>|Dulvj_9-0Z_C0UTq#7+=!lr7vr29;Y-Hi>st8%Tm{@Tyh5ZIYG z&9(v3G@r)+m3TFY$I)0w#yLEkz0nrCB}@yrjbzKs(%tz~zw#Ig>G1AlLVtE%vw7BI zh9HxKEDM*DuK2K`UZLEITH>L$wkoPi(;2s|x0vj2t0!)TiAWdN^vf1`2sPO1^K?2v z_+!Q;=|$WbCwzTAjF`@{(bVb9CdrJhqcS3J#^$?LMhaOr2dmf2gEna#@fSeR_>A3btpd%G%m z=C;v3_n0q25h?Nh)n}q)pEXE z?72=wU`0&Txh$VVlS`lBgLym866W>&QM?=p^I|X$F{*;a5pSCl*kiOL?=fUc<`M=H z`x+>W?IC4XYZo@k!Mq6bjox!0AP$))g?YSo{T&>fr=tFj4h=fNjyw1JTNsvV2h5wf z{E~0Rk9rX1c*L0_KUypnUg_B1I>bB-ScRBv7@4mKhr+@RN{M-vaU4!0Ab+Kama>PX zILp`x(4RWutlo{JZAJas!#Jtj$WBZ#}qGFkDO;IX4UH4e$ ztPj>POj}dMG}P}}t{#S*RXTS_vOJu|U|wQJIhx7NJ#v5@CR-KD{^}K#f2}dk+h$}e z=IzL@3+Cx}Md>IUV?LFbH(I)bQPdB&p=_G$&CzPQ+{d9G=LsHafJm5!aWjm2Vcb7; z{K(!cKDoOXfq7H(xQem(ytS}aRwNc-c9D4$AIZji+ge~|kwdH(=2c8oaf^B55i2-- zFBuGr@%Q_y)hG+13`FuWv)QkroE8f(FN{Go3@iAjb+h*Q zv0rC#Fp4>6%UjST+go5>G3cdtZ!rS>!Mw$2G3sq${!V~mJd4q4(k(e9{^zlfGY*8B zCEcZU2x?*{FQ*3Kb~@uX*8NSJsb^d z%#*~=VO51da&t{*IlDOuqmfp#l}^lNfEpHAg)jVu0&j|ZY6`Q(5jG#HyyLB%Wi?Tk zUskIM^K=4mJ}*lp$@cca{?Vgn(DLZf)2C0JK7PC^UA4B(FB#wFB*+@s#^c3e2Ux3e z$-8W|L5*P3%{cex+NxHI)$)kzioh8JR>V}D8|C1}jh-dU+j~JM%wxLQ$}vhf+{4d- zs_rKIN|tAT7q=&NLO$tZh_9GS@KW$g;T@om9eNJ4YVE>SFxg|wH_(WEuq0y6)X!^@ zgdY#>;Tk$G9_-1vKbVH*aCW;(TDWd}t};rD#h+lY{l}BfyB0oJN!+%!&i?oZn`T_m3wWA!hy!fWmVGR%INj8~D4740m`fzpkIou+`bl zkETn0Hi@Cm_-%Pk9`~bND4V56m(vvAQ!>Dz&*%9hPjIzK;_;;={V3_5e{%omA~}6z znMeKJjQxQsCgStXN~%4I#UjiuGUv(u2x#QXEL9FWitxE&qKe}lPS^oVQk1kX>?Bn>iE%U;y_0qqEU8!$2KHvt)-g+-SO* z%qFfTX7Ja+NXc7%MuQ%<2B#YMI3NKT_}m z1i^rcvNU4QNAd0=4Ve~3T-hvJjE=76nB?;Cu?~(`x%iML%Y2#lcQAiv*#s*gkGE&N zl2h=XxHA{Z$$%*7R%yi%`xaaC<9q6fC(m4xPGt5SEup5C4_jz@}Sp2F9~hZLhXh`<|QUD@$NSOx3x3 zGEZhVd%+OQJNmN7uyV&&v@^k&4O3xWS))?hmEjTGg3}B`vd{FiJ!1l69Hx`q@rYlM zyZiuCYnRl|_)%@rx0}%HgQYP>vwmJfEq-tmgZ;u}a8%AEFFNY2g25h!rP^RGZs{lK zfT2kd=4`?bs{^KoZS7+a_N@C({`%R>8bm2O-?GnHsw!;TLD6@+6xJzARm)1NTr=Q{ zv2i+{*>C#Jk!_}aMM<2>t^;z;S-M3U_lX=NNcgdp;+BNl#+-Fmu0smM(twoMRuL=6 zF66SXug^N_$e{TC?m}@CUmNqnT}VA=$i~xnkv2P=8WlmwlG9Vu<0qNWv1G9+;MTPR z(qS?02qVKL7rd5VcZgi!M8C;H1-RF}3^i zIQc=FFdf9{;KI|#4wmT!`&$zbW&z`>n2OJP+u#i~h)G%0C-Wpb2FLXUGm9MJy11+y zVxfvB!4!p_WHQZg5U*K0irItM-JO7gd4NxCte^VEgQbe`yI!PTV5f^MECe5KUB4e6 zJDBI7-UL7XJlo?~RzBOFEjn^U(o|%ygKiOC4#z-$%ehwur624+ph9 zHpaFA{oLMSmWVSZ_(e8P=O7&GW(GY^_Sh`}3G*>;=cCp5U~4(bwb#LFeVlBMCoHAM z>DFXx(%)Os8=!cG3A#J)mz>Hh>r_jI@viz6tCa`a5X0@o$)g%`f5Obba4q`zWP6rC z4Sm`guS#1o$VPq1IcM%NruA$Aa8D*nug~`t5DgI`aK-7}a><10vfghf&4uxp)$F$N zC@h!z`$zY8cQr@~9?m5l`zXJzwvMs+P(H(yy`zV7^>XXjv3<&oaF24Twrq1%wWzi1 z@e@anRwa)gzxbjHFFNnMYML+G>i5_ACF4gp>+hGIt=WvVF=x-JT=FpcRaMw@E6%`p zwyK@&-R)zZ2Z3A5)pS}BQ*~}KU8IX!zAOOqj=wQ6tlVM!kr_m?(ajOis=K3+?MirT zHk~YTwrU1w!;z&1Gt1|*{po~XRC*l0!c&%yhB-el%bdNOeG`1bd5X;F=QY$ajE=KR zx^Cti*Fwurjt_StXCIJNOZcU?IsM~oCNWV3C4n>{~$LCz0`GPF_W$F3bXz@i^&1;-c}?(o{d#}VdR{BUS8nWf8J z?Q1RcOYb8?Zw8geplmBYxx36K7#S|da`MG^Yr*;epBP6UIJS~IY3^L_qSL3gN7p&A zJIe+GP~?zmpktOD>@DCYtb;{)G9dFTKQ&$E`mzP~fv9j^T&|d?3UDLm^W|)uV+`Re zu?&XAX|#-v9>q(RO(Txl&y*u|w#U+8<=oQzx|8ZCnAigF$-gSI0G)}!q#9qJF?86W|U9% zraR&hR&qWbjF5BApNykPly9ZmyR-SWKiJut?6Ay-2&uv@yZlx$NM?BDws)#ue$8gG z?4(`_+uJ8j2%R)Y3d5mFYo}LXXYcf>6DMp&lI6kiBOJ4{!G1ZpzdzQdF^!HXw!2%F z8jlZ-U2y(+=bb5e-g(!*-u13`@x@i?vMrUeL3YhCemKQ1%N3T(y}c8hS*UWczTp4^ zL5+ZK+TI@8s*dg*J#v~u=W7BhVye!~7U0J1-xz^;r{9wqj>EzFV@u9Ju<66m_^P{O zcDZ?uPH~cYYcgJLxmb7y@O5{dbJFkx@`Zn6j7BkMPeM+YIAeDopq77RGD3bhu}G| z5T7e1syHr{$!dE!ouv9+GI)22>ts7Vetd;JI8U%N7RoVl_oj;onA9l+9ZF&YR{Qi6 z13Yo$TzLM@Vtcl=oGtR5$%*Oq_G0^BYj=x(!(+C;*jb!DfBV>ce!(JVlXX6k9XQ4g zL}aj>c1P3k(ft{Nf0T)V{h0)5I@q6#8BE-;yVIS?4&pYO%KJMXpFA?nmSfIe@OEc* zWO2d%-fS+s!)9CN2TSpRU5MrW(mk=a81KxtrdXWgZ93_g;JLwbx#IpL0Sb9&bG0L~Sr`#XOM^v{*j# zl8P|{D@W&peZuYvVFK^vZ21V zE}NZ>SzFsSV@6wZb3Se~I-T3K0{Z=x*aK#@C=mjISS*Y6yL>4AmKL-+_u-kqW*5Oq zvQR2n55N99))GyF|4Wu8(SodNiHX>Rm#4K z52R+r!Unbsm`bbAGSG!UYm*5}6mk?+4zD-h3@14`Lm)sPZLCUGohNJgh*>YC9|AD236lL42pBr0F8wZ!RMl?s8PJ~t;4L=XZ8 z3#UWTkQYKQ<%{@h>cX%g z)%#r@D7#V&Z})I}zz{M_ao|*sJDKvt+)i{{7&o2#Eg-3+1VIH_d7^RzT9(h{#oB-y zPe@c@79EhnK0jO|o`kPH74v#A2j)6kz?Jet^1A&}GLQ@yvlt2@=saPM-<^q;W^zn@x!TEiYAzJ#qOGVYZEp`FS6BL%t?Oni3koqSW7uFU|%fq;^2A^4lLl{z;q@Ic@~BhC;t}>#jsy|`Y-Iw|3xtx z!!$JY2Z`-A2IZtIneb4u4CSeFXm17_+P-z|MC-KuY>=A@vr^WB%tnq^}SA$ zRN-}CZ3aiF-BFX^e|~pi-jH&`Z$%BN`gadsDB@0f3JqRgDX*cN3WXw()^?8_8XJ0} z2h{rS2NpK4hsW%wL(A|@imnE;nfHhUtkr=)*d43H0OpNiT|ZQ1w}xc1RF9e^e9e_H zUqGtxSTNDUn3m+i0=gj9&9I!|HMu?J*l_ zc(9=|2PLSF0Z$TUAK4%C`nEg;#97Ydr!7e$TY z-Z+C}ik!fY+bdGiP?QOXkjg8YWbGbRavwOR`rejY_v#IcyYe(y`_00}(f+H5oWEx@1 z&X>q!f(;dhZ5%ukzdy;%o^~av>TGqk)n3Xgm_h}oD>GfVa5U*jta+&%GOzu2UV=oI z62Ybf;8kIlHW}KZflJQt&D3DBB(e#a(s%TZrA4(-#`VIjUrf&bRVFgnVKn`h4CVjQp-d?MRxH431fF$eEwF=6_qOqTp`+XXW195CWnx;>2P&A8A2^WvL_hu$|0*S zWE<%3o>>!I*ioPKTg_GB>$MJYD(4!~;bbTt;3Nup%m|ze&5UP4+@~tcLvYG-8c!3E zC*XIdL&;1s9FnBV|sjeDGaG86F*JFU%f~=tA_)tQQ z@?;_zq|g7N-iVL?#RGmTDop+@``Olj(FDHd<7aD-kLy8yY%bdd-KzlWch8 zP4VHGM5EQUX?QA0H8-|2c9)k=S8%#A(}hc>tAkZ{{>}}VheMo#lbCY*dART^C#l2_ zT-8-u<02+ZN`2~;`fQPR{+;?P z@GSByo2riq^(nhnpEXnUA*DVASLj_rec0q*C;v2gVe&VVznVNZ`P$_9Nj1*m!GDySZp7`SAUnZV>@8!w8lg-pk-NM75gkiFg)RS{3j!k@T;=sh` z-gxVcdoH|n;lhPCE{t6`f8n(Y=Pvx}!Y?nJz3}r3XD*z+@XCdsUN|+WoA}$rdqiWo zv4%<2ucKp=WABaq`Slmxc>9evFI0}*_Qw6MFC5!CwqPtZmK}?{{?zNAdi}AhMXx{d z`mWa>e0|&NL$7ze-u|oCeQ#TTPeYd9o5u~i3J+W@&-0X_(nk%17t)umH2V2j!u)EmJ>=xDI zs*kJos6L^3LiH)tKdPP-_o<#zeOC23)#p{usP?M9qS~kW1e?qH*kURW_{+>WL6p9E zEmeLmOx;bNZ}5EIWj>}zDpI2#Yryq|q$52U(B{QdLPj!?nJi=_8TwNFfSSgrXFqI3*}aDN0i%WhhHkR82KhOLbIF4b(_Y)J!eZN;#TA zZPZR3)Ja`56Z|%ddT2KF(i}*YdDKV!p!ot?NQ-DO4bUJhp{2A8Eir`lSP6a|L4BT~ zz4S$TmiE&D`X(KvZ_{_^d*Fy;^lxbO@6!o-kxtSN=!f(pdI>V?W%>#IlupsBbehi4 z&(Q{t(7m*SK1_Ge$LU-2QF?&xrjOA_*jMNabdY_C9%Wx;`ylJ~u+Om1v8Tlo>{)t{ zKE*yy|4OgWXJ|V;%)Ur#*q7O7=^=2|P4pr9EPb9v={DL%chVNxM4Rb$+DJcRU!z~r zJ?wT`MH^@<+t2<59PkNRO>5~E`W$_ko~EzRmuMe-jsA(gO8-L7p@v_l=jjDH#0+#Z z-9@`0Sy!>u^hvgstzj#3t%HjeE|}lnH*YS~A2#BR4n?ViuIDJ% zs-SXHgd414#bvqEvA#ndWy5mkXxH8AcXtkVB;xFVUf1qxU#m;R>3~j;OFgbe!@f-i zSh$5L7ectR;ebHeBA)H280Z{XGuqcb*x3Plz!Jrc+Lg3M3))9DN?P*GqbM^yA|Hq! z+x_TaBdr>a8P@pLj4U4<6-N+hx7fLR_rs&6*l5JpF&eq&f&&CxI~wVVNF@BR~^@V@c4QR*99My6Z}0>(cP_vBT)My64;`V`3sWkU&3KaYo(<&ncV zT7{d@o&AIPdzn^Me1meS*pg9UnEM=?_OUJEK0BvmiPwOF5#`@Gmb{a zkR1**pb`sp`#|XFz^L}9CZLrEg$i*AZ!I{;UHI{}HNnF;T9CixE!x&353&lH4u)K& zLh!5irGpzW(B6&6I3sF%cZCPctsMU!MXJbG0L2*9UMrIdg-~BFQ$C;nv1s|wyg(7T zb8W{B1$I;*y2$yUY96UGtl|8Wq~XfL+`yoo`d+ex`EI zn^?K+{($$aX>WPA);D{>Zl1GmDnXKW&l)ALY!2PE&Rmtxkaa;)`npDZvQh5ZJ#u(* z=c?TYa=G1`I)~Rcpdak^&04eDw_vadjj43}dn@kY*_&xLo4v3t5r^<;JK$rx`VZvT zt_4d6kKo}ydDp_h0|IMXf{+kwAONIbr@V#}XZw=%yN8!>)}~Sr68~(J`C4dH@UJOId}EDdoKeICl7TcJQXhVY0b%kO z{A=pF4&&5rk&ZCN=o?>=965i7vC5N9>cDvZr3xH9@4u3rZx znJRZsy!-ZuwB?R9(ueM;lJ01aNV&~MN7ts?*GL=NDx}+in@1wjy0vShweVa$vPK$# z+ps+LMg%GB&I+cW#HW^(@QQElI{QMPL|uz>&O`j?It>>8y-OP38EVC?ZF4?gx7wYg@G zx)uzM?sYAhJ-QPYT7AIIsu6d`ye`LO-w- zcoskyT@~;)ksg#bpdE|gR=kU-WR%GG6p;z9mNp;4m(ZU8Fn6*X#}|UP0Eh9_%;iL- zi08nk(#w!j+ARQ;tc3#F?S`o(e002J;c}R%s*+AqS#v32P0Pg)K@gy|j zgy0r>7EjCgfpbK$G+{~syiJtY2^_-?ODnJtKzb=$r%;YG(n%wJk!dQxX&B~P68K+y8D1JqFL*SdT>A63gEgII4k@_E9;1cIgrl?{71F`yNFh)fMKH5DAVdN&<(5y;I{^0);tTG zB1}_&IDoJ>!EN0G=+ai81K0%Y1x^#)q5{$Y>U+x`qFWaNJAqN)9MJ|XPz4~5+i-pR z(*WvlJIcM$4-5iGdlT~748P4MflEYpIDj0m33!5N3+i&$c3>ZH3PAk3!vONT8}4^M z3!Em}ng)>OR;0OgKX5iLhPJ_d8`A!e1Ly!Y07&;k$APyY*5J1tY2J%8@9hJS=DkRB z$3>!@h`Vz+fHZfG0!Z_I6@W6|KM0_{_rv{uq;Ws|K75J`PylIt1pXg^|3~2e5%@ju zDA9w*fJ;OVIe-oTWqIf+0PYW=EDu|OI$#a32RKT!3;BPP0Oa}6LEr%ZX@2w^(QYk( z`$v%9BcR74y8xv32>c&830x+6)CqI|$m>yreQZB~xQ`?5<7ohCKE53QO&&iCoFe+z za^MQl9zW0vYyqAIUIO6$aU*~{KLNi_yiN2;2ap3c07&PP$orEB_XNT`(Fbe=_5w)z z3Ald>>3#}vKLz(s!Trf5qNk9~rynKy%rL;uqeP#Tfy2NBqNfc2!acnPKpsyY1uhbO z4(^}J0h@?EzYxX(BdrAnsRQBKm4CaFl2t%KEjZ zfXhVx48Q%mfTw{`;5dMC>__~sBi*lC0hIsiO#ssRm#sw4bpz`G#CvWZa1yvkG^z!{ zKsT@+*ahqZP68K+4rqZe&<(5yb^-f|T8I0>8sF2Nv(a(veT#DN^J5J0@|ZU^=N2>U%J zum-^W_fY2VjRMDjQ@|K-i3qoJ%m~Op8pr{Cz%Z~0*a@Is$MyrqfwM&aiuU@x6+oGe zZzVd>0lY`_;?qPwKv_?20UjXwA^d(+NA&Lq`_iKT;=O!@=qE`3C%8U!mgr}G0N1Z{ z1ILI?Um`k#IA`E@c97^7xc=pG;1toXkoGx*dF?RK`Ex|CqmE-p_tz-j8@q^pgLK|> z5WR)`|D%`aVh%V;^q;85eAj0^?;^~*DEGU_ z^F0U90iaCpA^rD`6I~^s2|&58?gxt&5Q||>3Mh*W0_!sm7TYyIagef=*TqLHk0%wV7cLIo~Jx5IE2bKf7 zfJ49-F})UO0+7ERY3ok{?-4Vkfnfk)4M%}X#EP6iH?SQ*nnj3TYyffq%215_i&3@` z0;+&Dz#d{oq-i<~Tp(sP0#6gOI*8d&=F$g<+0y|094ND+iC7uV<;bTTe&t7jOT;Q< zpbtRa6{7(1b{c^?VlFK)_aHH8IWZY|d6B;lX$STa3nJYR(hA3kMQ|ToLoAjf7Dv3q zR$|b{SQ2ijFtPL##46Lk7_rPbV%cNFst~6dVQbbCtGh_7{v@#mC$UBXjuL~;#hUgL zYsR_x3b7W1Z*2nh0dEt_A>SE;#M-tKYwrd4d6Zbk2H+`TosR-f1N(t7;1aQ}%fx0L zC)V8oYyyyG_e;cPRRM6Dg)+}VnP(whPa4P(>va;FgY(=tfc)m7yz>Y!0y2Pb^R@!J z0OUIldH`W>MY^{h22K*&FiPw;)ZsRSxeZ}% z8zXkR7C_jIh`VVGvCVN}cRWDs&Qrv;JVER(_}z_gTf@Y*8G(z$?s=Qob}i5iAg%4V zzZcg#tN`-5?-Wny23`&X6& zW5m9?0f5`SJ;c5S|9^Ul*#2SQ3E(*JHnFe69b-8AI^4g$3D^sqB=#?3#GXT#=dKVN zMHxroKZ#10q$C(sQb-hpR<)5I`dvu~ij7_Zqk5ceSB9z=N#q6`O--oZ=6 z4mp5cU^_4hAg|}GKnH+u&m+tWeqfN;HxC0Bh#gr^>|1@neq!H#7C;$}q6|k-hNH;i zXcK@mk1hu`5c>|w`<+d|PGa9p133Wkzk3vT2{;G54ZKI}dj`Ns>=?>*EKKZQ2{=jY z-}Vsu{yt*Ik;Vz!zleB0I7RFv()ytaSPyI^_M(%AJ)5Ojo{F&{*KHwa&pCgZ-BmbXo0pRv?xSd5E&N_iA0C}HX10c>> zq<3~da2j}z*e}um{C)xVUmOPz_ZOFm{n7yVfhJ%ffVjUz+P_5keg(f@!TnbofTw|% zfD6ET#LiiPIM4ws2etr@0*3*FdCdXz0^5O60B+~ub{^$8-wg}{TY)_Q@;iSFI7{qx z(CT%h`#REm9e%GL2T;y21KHwtoCgQ#c_czCgy@j}M!Tl|`zXkWV;QkiE{|CbV2h#hG^#IcOk5j}h5>N%e?IPTu zJF$!BfcJ>~rxR!bmIK>?r-7G%_lW&A4#54lNdLD-fwzhM&IvRDaR1$Q;A!9}a1MBn z*xOE^7uXJr0w~is=rRts@tpw5Ier?rOzgj`KozhM*aAEO90E|k-y47&um*tp?~ehO zh+RVZmyp&axL-mZm*98lS>Ot>KP&|H68qyIunR!`e?(gEAgy?_Zoi6@a||a+%nbCy4zu4Ir<-?gS9`uWFsE68Dqtb71$Y8D1e^vglfbM%6|fN40z3g6 z2F{Tnz#JzIlAtb0g;=An&-unwOr_}%3ys_M z==SPHb)rsZFCDgTvhTEuqGel=Su0R$>(w8#A(Od2H8g(u#MKi+m1&E$K;uiYW|qa3 z&l{|+s>x#5(yLmJ4`y+Z`cFE z73=`eVYMAbN1S=tlK9z-vQ=QOz`x~gGu!YkJyUs!+eH;d?3e8|mE(I0<#^McJ2Ix z_tt?&T#t;7j;?%i#Q_{Eo?JP~N}k00Bs=*@0fnV3)93VQSx0ly=|Y+lKRkKypg}pG z%oW2SqAh`;(1@SV;mNZHiYWK@wF71Q{;fBA&evqGOk1it^@~9QIHYP?MkXdYkB1eo_0$5S6g+flhq|W zg-A&`4Rc;wm#L(xv^(eSbBk`zI=mQ_QR{0buD&>AJagh@oWN)GG4S%$bK~H+V^@zE zU(6VfXD~V7s~&&ns7tHPux~A(RxsjJ4HSo157+N#^qw;2n&D-7VU{vo_yv zyO)%D)urKDkJMc0p1){)y0^5GC_#rJ}L)s&jNB+eI(W6h-uJ6>W~^Vs`* zxfW!K9-h2((1JF>Iai1aNsAxDl&g-rcETaEabu7L;~Vkag!$#J@{M?LKOT*C*SoaE z8;8;U){WY_)SVRB8xbPacY5#|9;dlNC>QK^ZWNhlx>GMw>-f2$afOku;sQL&PsZcM zGp8SpJsdj@ZsiWs#AGqXyKhp+_g_sFK7;^rm4cRmEb|5aCr@_Y(Ck1ebUs zR-Q9<8bQFSH2(>MVI|I}U^+J^9(n+0;6wT%>IKJMoZ{TGxk7}r*CCi~ioc7e`UuXK z4(asNi;J;b892Jofge#eAPLcdXaet7orfon@m$(?sA62yXz^1m_b$~xVFbqizdal6f*s`zNJS-n;*mwTG6J9LsM za!Y&r(pvkLB3H_jm{mSnBA1(f5%dS~_C1TItmJU8C4+Y(c83?Pa7626Jg^Wd*~+=eRg)@FMS4{sQ7a$gP7H0{eDwqfgQsw(2BGg27tYZc zgexuSjdgXmXPSB1vnOY=d149rVj@?jGz0M@6jDIJqsvs9!yc(evwW{e0qNJYi=QnjR#!x*s7AA9ZCxy-SQ@zrA|UOUG4(0$?@ z#OQ1Mw=&IISSy61!YLBdgcM#WffNP*Bv}ef1P)S0ca)78T%Dd0uTk#zIh$>|B|0l! z`72oqm+Gy}E?>XLh;6bRu0qT07Qt+Z>ecJjIt?q$x{6ziTs^Yf<0@(`c4e_pZh)6Q zYVq~rP3pd0PQNM&2`a&c9fZ-GjnO^2JJk26@V!KXO85}Fqwqr-9i@(qUmefaK)FH# z;VBFo#!;KE+E?|B4d1{&>py<{rsJ^uAx+=pO4#upM7vA5q9WZUQBy!-34X9W@yF*+ za0YtyW#iQsE7P_3o=Tqd)o6$x2_fG~hl#NVO-60Y1C8Yk8>0q4m=0;$=`H4Giy)oM zFJKdcitd2M1>yRl5y@CQHjkYZO}xVvZA92==vS{|hn}9y-z?ZhMTOhMLP%xg3#nUs zgR=B0*O0iT)OKArg8uj>cBjQP}Q^h9#03GK9=;5KhBiNdIi3_hnh{GJ0W-23o z1TNf)SCh}Ny1;9}3%97(vQDptguD1ne&bpv7NHI?{Bs$lR7Dw$mC*yrUkfBmsRpC3 z&sz*p#05@^AQbJ~ym_ambxGako%b3lu=y;3?-y4jJf3)kfh~LP+uwd};Nj)zZ$DSF zqB9)sTv0Q12FXFkrTBRS{H~+M=e4|~Y)bIsd@*O$8>m-DqGm*8&}m2%3k(nvt*sE5 zTy@C2Jf$yKz|mQg&jeOq+HhB5(YA{DK_Ou8uDm*1u-L*y`MjW(vcG^vVfxw;3WGvs zWvIS#(4?Ht9yBT%l;RGJ>Ixrsa2`8|rt$N^n=4&1r(}iEN^=~1tijpNOPa=zQoh;< zg-y`UgKYs-!;|v5k&*}=Vq2$9yJ(I&Y{x*QE()r3Yl{pZbSqbZVpm_xaB8F5o*&x$ z;^u3Ec77mWT;Lar8gO5*inl;*3ltxW-*ARBL3^-YyHibWW7uELSk=T#CS_VAN8Dp= ziaFB(r=}^odB(<@1?KOZ(d;V0cWa7n(%K8s{ar0?dpwqKRK@XVp=MFI@@Azy(vyE+ ze+7+d=%+`h3N!#spw?XE=LjDq3vp59fX)fmv4i>ZB~BsuUgY;4K4K#f$Z{!%5A$LS zHiFQ_ym9qfkXp}^X~A9D>W{^ri3{;e%4}Gjsq@Nermpp@^X3YRy1k)P%CdIYywkkL zEUq*&e2UDyE~GA8M+NKD;PTd2$BpC4s5&$>Uf-N@7+;NXJ!t4f@C9gj`nvX`5R&hu zv16FLL4}O5YRvUz!S@6AnRiQoT#s?vE6{e+yR)&{;W!2E1UuDaXCibwQKHdbz9HX13^*ypQRhni*8%%%>g1vTF4 zt5p}Q)enKO@HBdnO~qLV9F#KG4;{OjIfmiw#mo>6QKdo^_5Q{aP*h{#2un z8(&qL`^1^p_?g&Hj7zKIn6c(}ROS0lfVV6pgU99r9rBIJRi!)+vK{2 z)w@g-Rl*aG$!%-eE9$ago!vICK2+y3zUZm)n}@$XaFZz(4;O3yVO^@P!Gn)@s&CTa z)3PDZ2{r&l_8!5W_&BY~>3w{%LftxAC^mj%aFD^i&sDvVNUTYbgxRtd<Y%Peebi~p z{nT70$A*%ArXbop%Rlk2>?fYN zUD<-(ea}3STE9H7^9zTUVK{_5610#<9y~A5PQN)q?fIE5H1vh zhNRNPS5s%pYO{B>u46_HeEzW+tVEh2+ABH#nz%zHtE^Plud}N|>(tlUawvvTYe*Sc zPjha?-RTbqdxbm!h@SjhZA$Uyqwcg^QeSIzuyHZ7TpNo^F)0wV?xrOT9ZPG#nL%4J zAvMg;G%l!iG=&=LC!R4l;~sY$-z1FGdHwNU>dS(7ag@VQ-yVp5E7nuv4mPyA-FUM? zu{^sbG_ywb*0f2ri^}AMttDP3zVYibJEM}l&_07j@L?>osX{6Vc3ACLrOWFd6M`D; zWX6ncWzL9KsnZ;98ZF=m)@vQ0@$-&`ik5-e z^76XHjrZJp>gVdFky#nG4zDyd7UcOqZfkCtr8jsQ=O#k^9kI`S>_?~AT5EhJw`D2% z9yqZU>KK->Ah&UbJJ&-`!>km9;)$(vWSX3WFV}gi&{ql&?&0SJBl-k!0olW+r2P4c z0#SW8EGQ~bt-?aINFuvi5Um2X;}WbVTHK4GRzoVIN>=T}qd#g@i699n;bX!xAhQbI zlp1;&e~Qu%o669se|=aLGcx?baHX6b*KQTkSpxPVrU_KB=R6Y!*gVffKkIv8^+OM> zenF98bf2JN-$9SlkTYi}fXz|Vs_rNd?jY#E=eevshJWa`&_ql?6+1PN=6Lfa)^Zc- zeq)_Kbc6~}-S+>zx+VFVqIyiwl&JWW5E>o~cCsK&*Ym{Ci6K6;A5(0T#{Z?F0d*+B zYC)uleh-^Balpf#`|b658Ykajd%&kYJco2gPVeSi=;EdTTh0J1)ih4BMHuLH@H>E;trL zpdd1kDW=w|=f@!%Ir$WhyLx^zBqe^YW=$+^< zgCw8gi`N4wq=x|!W^F}}&Ktsnqwb8Uv{A0?Z4+PDl^OO zn_II0@7(q!sw#%Qv~6bh*3T{+cxuxOsjl}qbY0n7DVNmLn?pW)*whF)+*mn~3z&5i zKXTe`UDI;w+(dfmhvzT8e{sA>y%1enow?=NJ8t{(ZM9Xa_bi{ep(l8o-dS``T^g#E zTIZ|LouF6XBzzU)tp!ileI}D|j&T@?lKRx1Hwvlhrglrs!GYFb{F=QiHin@1GPD zh%h(jCk;VgNMST?O4Trb?WSmHrYdW1-7qhnincaA{byU+8fvd}E$-d8qV>3IbexhYK?PNMEEfSaL{1+;Q7}tnPsq`w4qAFrC9FgzR(Y80 zVIEfxC&T!Op`q3jiurgPR{1kfFs~Wk)rz$^uX^O|>(euSr8lvM=Wbt|tX{r-W~{5q zs|h%kR3+xt%Vkx4b?po7UPGj=t0X=2(7?b$L+K);S+%aDLTXvjQoFo8P+?eyZwnNH zzj-@9gLc-FlV;`8D!%5R;)+87FMEN5SF)hX;MR8#W<@Ujtim4KEC<%M#2)J`({wv3 zZ3p8wRAi;$rq>A2FdDU@OYvq@MD9=Ze(An@@7Y=BU_Y)~_wm8#E$Q@z=)j(Jb?X_s zf6LuF#6K*3a7m0elO7W3LA1jH^uaLtpq}EnQaoH+q*Zk=LqWGzOR8=`DD37v2Fkjr zo?D8}U>W1gi?9}9Z4O^{%l|E4-+^}PoVdUSgy(Pl=bQii)~R$0k!~Rca^?a-uhw>u zjwf5F<>~S?ucru$&$R?i3)l-2Cz);HcS!8OtrI`vvVu|V4Zo(fSvOWRX?jiTICZG1J)7O@!Uiu&+LM}Ee^ z*IZy{xlx>Q{$Nkuy1AlyUbQD(yrX=3|LpApX>dnZdUlOZ6Lc>T7C(4*-B4RVt@`W4 zL7gML{07!Amrc=QyF%y6T)9f$!HU$n4#NDI6c*v`yNDC6NPd*V+TIVsWlq~OyG`vQ(xR&Xn_41!_|v1#6ELENg%Jc zE2ds97))7qu(Wn)X4^=4qHI<$*Kps3>|k3kU|VgHa&y@ar|SF=@+fD`N2m;m%#Z{t^y%#>JD9pwxV2X6x24ISWqJHmYo`P zFeBovab|p6nJ98|eg1ecHg$DPKq-$#P5H(=Nin3fJ|BQEqvT`IAIdvs_l0)s@O012 zl|Sj}nL95S9auO=4iC=nshId7nBoo3>^a@8;QR&i1M;Ggo3UAyw>$6eykDxZ@@^oF zxaXa6GP*joX3)P=T{1p>U#S$8EQPV-Dxz<}i3wA#R){a{4$o0K~K)0t{vO zrVSYlj4M(XbCtzxjxum9m6^obWSPX=oUlV~ri^aOT+GR5Nh_Sp8#p7Ir;^im3L7z3~3;M{X=PT=Yi#h&uR#Ib`k@?hC ztJ)_fl5&zcD}3sC)|FNvtKZ4wvw7B|Sb7YUafkaINma!s@m4f+38*C?Ow&EjL&x z_!K=q4D;pZyh8CUXLWBn)m!bvIhDp)a8)n6r?c}z%W7(d?&;{bXITwfRzEbu@1HSL zubkVK*Du+%ESX%kYsr#_mnW0UALjZ4Dl-rILoxK@`kV(}ih!i-5}oFb!VWSpLxrWg z5O1!~nr4;s7-n(S<%%ChH)ZsA^G#k_j2_%#P%Oll%?CBX?$y|)CJ@a2P5o(z- zk3`pmJsf1iTgE%Ejt+{0>|NH3LTDFm@Un{#3svUn%z3AzCoW3e?lMkr-n$jT!(H9u zRR|wDaSo~n3?i5uk1NDS<*uHe(&PSKD{$F}(OTI(@jtdjuwz+`=&zj_a^C-xt>xCf zN5F~|F)kvkjJzAiE1?67t~-M5Eb-9|_>vT5~N zoz^+4yvKg6)fKHFn|)Iu6;~Et=0nPh`Eg}xPN{GLr;rZ=N`W`VFsMv(M1Gxsng8*b zM=a?~()^euo`_qDt%c1ylIt^JZ*8(GdLyD~#OegM>bqqIYt5pD5oe;=qrS|3INv)?1V%Fusi>$hYKpr{?82D}y@Dr*hDv z=ip77{HMf7y)bv4$`ylXvKDSK-ybA%vev;#GGd%}^B+Ce5%hdZk&deZR!h!k>$Zqp z{>ntWysId!pzP>T zm{D2G8b2QUptJ(T^87OM06+q2S#H_ce<3VHiu z*?NmF<*b}j?R;=&Y-VlP5U5zbA{i~icQOn`QZkoVajVO8lf@bh+VR~RojH*0tX#29 zZ!~GvmEa9ljIbPtw@y6|OP42S#1PMIZH1y1qkK0P65|-?xuxmHS6_y7fKxGyPnr`EkkqN2B6pipsJ4L(%b-tk8<`F7g~!8v3x0ty{ba1s!&B( zj48BQ`mD^X#egIfs$g%+>tRsBT9ti(WvQX_*Czf`SJR`o2Lm;q?DKIOBQ-0V{YcXz zc)f7OVb5eU_J^By&;BA?b)f4Lk3CRZ`;o^#(REH*$r!0Q2&) zgKe)&Ev}+dOGYpymQEB!2aD6nxk6EZ@~etmqf|^D;9wZ;6>AmFib=%6dj~jIIU{MD zuP9b5BVUr@YLwDHO0?i=Wyc!EVr4&(vP%mQperj23o!dBXV6hOD`E>7^G-Rn%&CYo z^sjwfHlx6b>Wc#J<@bD5o!e+oP;^N+Sh#*?;ZlpM=Q#`R%v|9%apQ(bi@Fp{EmARa zFg`itF0q7yz7kW&#!v#3O7F9R^C0k%dzO-DmHt3 zeBy<5hp}6R_ieP6a69T_q<=a>#ytChbCu1XIFIE@P%q}-qafp|Clm;U6>(M!vN)gR ztjE<%&PO<(I)t^c{ARc$IIXw{J8^X#VwzhCMQ+~}6;T1xJEq)Pvx!$;t5sxz!Xx=* zh9C3cGQZlc44-*s$TI*o8)5RrG?12{LDtP!Q)032(YkG&J38;Fd&0MneR%d~=HBwt zTP7~C;#+@q%Uo{j!#Ie#Mp0J_^*ygBKInJXbe)_RrDt62RP*K{HRdf;U^5k3$=GcX z3f0^U(+Vr)INw6?qVY_=Mfm<09DMN`7MSW5Y$~Ys2$E;Tnvnq8a`m#cx@ktPxnklV zyCe+y?|k@Uxm)K229~cFm?z!J%QS?&Ig7A2M?)_3+1o`yU8uT4V-oLR*xdz%3wa&O zn+z~GU~PTq%0mxb5le>OyE4q{H2HhP|F*KX2m9R^Bhj!=h9ZoMkJ=dnO72w0iI?j$TkVN368*ngHc5@)k7Pi@GV770wFXCX^gC|&*J zlWTssh7DCR&BR|T*K1It)Q!Yl5~eD`4LWo0KoEM~E5LZA6~(-+0?b2ZN( zQvut4{=|MFIG_WhsW~V6#ePdBk<>46R*D1uf&q`GSfBxXv@tP|j1ClQ(B4>$z_w*R zYfu*Bu{Az#bqZu^tCO&UDJzf`zM%6yvskJ9`o3=9#Iv zwGv-!x5mqKWf3XbRa#;nTvYIoSWsYemBu{m`|g@K$%*e5n9Si^D$x=$sSB*Opv!2` zuF@KLUFJ-_BluwzGhiS6!d#u+QB*>`dOrKqbJCEqUz-*bc{GlG!gryCQn_GQ9B{0x z(3GyUlV(^qU|VU{Puauyh$hhU!3_e8SJeI46t9c{V=UfZ4kxLO4GAy95dBEZz7aMkMa$RzXu0<(BD^@uT z>Jl`Gmy2U>zEQAK5O(jO@uAK6-8gt=1iW*4==wrJzLAtAc~72;rk3KAy*cPRnslUN zFu7qHV-sIh&zl{eWi#sd5?kj@Z8BR~ToJ0kcO;DH+nwt>eGfgTE7P@h8Vgse^@RnI zS*tgfB|H|JH=f_0G6#b4X|$n@?=!YRa`73qN;LNu7a8p)opDi7foee141fWZZp{sP z=a0QSeoiSbW`B8RDi&M}QXKvSiYbTZp z>9uz%awR?4!LACW;GY-`%>)!&eu9vGx1Aii8cmI zI@QE5__`HTJ}vwn^1lQY`OokkVqHOjx*%_>#n5H0Z^f2q7}ga%LwP_jt2_z zrVsFb?ThxROv3oF%*Hx*TT6}kQFE%Mu43CZ*6OIO&06ZV)|buf>+?z-xq9m*v>Is0 z_u~JVSy6`~^5-m6RM1Zvrop#qSb>I$1_;s+Ln&{bp>b}bQYXb~umvW{!pl}qQ5Lc5o1I! zM&w93(ia(y?2L>>G$=wLtipxikgh@}4V0|3Y6@410|t$j^UC;}t#9HX8ih?E!pa1zQHs9vfnohgk8%;Ty=Os+r!u77I zB5lDoW|=>$K$uv{{-!fK?OJmQ7<)-IXYBd2EQMut@&q1{o$gzxpABn_Wx9T?-P%t! zqfNj!d2~9RWwCL97K<1Jx%Dz%TBT26)3dUV<2%WG?~=(oMSsi~cV6|~&c9S(Qj)WSzBr~)l>mo1w+Z~1bi z4?>@rDfkr`Dp5}^tys?S&>7cc^vWPxKxb9%Vszx-H+Q#em22jml_6Y11;8Vfep%#%f$YrqI%+047GFr z4{L7%SjSb~kItF7`@Zk{rmK6kT-~eHlB}^L%d%`^$+9gwiQ*-(6Nki#tt4QYjk=JM z5)4V&2c#u#DWyCLNpThuXb~lLDUD;pKQW=$CTwj=pGiuALW89D`_7pw$&UHAZ}D>H z&dix}&z$8u-}?LdZX7Lotp6yVu+WxEGy{FO4%!}~`AKQ$Ims$`1}G3-=bnfmwAC+| z1drDKlrj~y2Ayav@ig2ol5+)uwqM2*7=^ce5Zt`r4*p7TTMbE#+gg2Vmbk6%?clbQ zjn{as;E%y=t=_k;!DE@<^pC`A-B_Pr?1N~hTPmu4$!(l)LHXm6r~}>R?b>4a@yYpL zo}#4y(gp#F^CcwAiCzk_cR4$;cu5N+rzf6MCyjS(s)&vj-JD+@6?}2T%7Y z%&D^UnCj0FADSaRG)FWmOFnQ=CoXweavv+wl##`SlrL%{N?^5uA8{*_ndZh~Xwur$ zICX#V!^Pu8rD!mrLIYJuQ&V-*8Ehz1d8=p2?O)>6VZDY^eOa?#bK5L=&Ms>$xbCqa z;s>v;dgM0Tvz4aS&U9BXc+0gdTd@*XH|AT+fn22A*Wj7CY3)|GKe}Nm7>i_lwrH-F zADwiY_L`mH2qi}}yOIsn?1oK2<31~qM)b|P#hE#Jv>0v4b zZ00F!!jgU)_OXFW7fwQ<$_Hca0=Z?By0Vc2cJfXw_{4$ zt!TXK3VMSs%xjD)ZFYixt+D^g-aa(2trj@a)*ooI9dVhxIdx|T%P;(N>nI!*KP}#$ zbgm3-@JKsJNAsH6;%A$nncP{|Or~%S_2f>Wo-~`iK99v|FgvjKDq?FN7$Ea7_eZL$ zCCg#xr-W+~mU?YjyF@z4|5ZIuey=s2&N`i$bi#U1`9Sq1X8l;xzJ0q2gC)MOki6u+-mClsjDCuUv4;K^AzjxC|2=gSn6${5E-${%1GVg1Kfvw5e*>9aV`SiWbGEzW!hh4NH2%HjChQ&g0` zoIq(hs!cHb1EY6mGU7`{=8|WVaxzkYXAn#cc(#zjg9ZKr?<_F9%bQQ(-bQ?RjjE&z zfJ7D6eGD62SHr0B8UH`~<&XK_Uv(DF?I@Ni< z^TW)q)4jcsF1CKhr^j0EdjF%FN_+P0F1GC5JKfkgy?1X* zareGGrA?2%|E`v?6>C?A^%0Z~sUv=4fVtdY{B5$+7%&+FitG#;APEEw#-Jg%Ghjp- zL8B7|cFInl?34}RfGZR<1Pm_lrACXvBEwFi^(AL#mh^U7_c^&n)kSJmY($8rhYpoq znBE(VYD0~gXYTu}&Kpuk&GB^3ogE6??JQMl;m^H~?f&e4jvO2Cwso`zn{O*6hS#l2 zy~XLz;^N|3_A9(YOu9fkB#-Ta11ncG;>cGSj<2dYtTGp$`mRa}UupfjD16K13;T9@ zUC0gVqUFlh6u!KA0;O;~dm_2Kj`?*wgCm?hV0e&Y;n+?|#$1)dVXu^U!uu7k?2TJ3 zaoH7Cj4@0zufaNHu}>Kt(9wZ2AXY}ixnU1O@Wd%M{444cOw5OsXLVI9yr{|7Rg+4( z>J$Gh}R9bq9t zSUb7^UtU)ec=vqfpiemnJ9MPr&cj#V9CJkuM_rb~W`vDGf56=x-uB}8i~%nR9=?OW ze<#9$@v4x@5fPW5ZV1#6B3$-VwhpaoslT&P-O_@WeygYOXl1l5v^(GN;oi|;a9!WA zXcliAZd>2_NJ9_aAuXMe{pNNgwUJhfG$5^b0(G#jZg}pb~QEdr@64pt*H`|`)XW@i}pPhk; zEMEwQx>{4=WVj%{iMd>WuCGDcnwe&jnZ_#+&@PCGE|$m$++w2e&V zHqw&YXyP$~-GFx@eD#9PfGcd*c^wX~(U45liWTojL29Zd$5PpXGdvTP!?OWtx1HH% zTO~xZHSP+`Ko=WOVq;meam-*DQ?#G~^1Pg$yNGzc={XnuCyn#@YV{I;N6uAGRiSLd z?o+!QC4-f@AXvAd8*9ca^u!1(z!xF%aDK7SfWbuwX&=M-dr$bGgH8R(NT?$-yx#Fc z*Y_AZ<38cq+*?rN;o#QJBfsmLSkI8)==|)g4Z)1owSC)ceyhb}-9Faquo(D+iN*V+zmxu-$76q$HKlg=0!)6N*=riOqb1a|x5<6U^&WB2 z9KPmqEuW@9<2sy8x4iQ*b>E(A>pC3L^Q~0;-MoLVP~}hz5Z)cL{e7TQHz1!3;oRK7 zV}p(?{)ci9G2#WuJq+k-$t`~jcM&7RX6XH-+~N%T3T!fN_z(oFX1#5~rIVaauSYU( zv)OcZSqDuZE#P@AG9JJwC+ALsno@`p$K}D8@-TUpGh5&q{_&6Re~cad_sI{eTlay< zf8YJBZ|z?BJ3(o^nhSW`X1m3xb4>UZ$?ZnsXzMn&Lo#mjLuur&C{9@szY6a@7s0aN zKQY~{b0_EU>p&cEU4RZ7k^r@UCRInh5n0G62%tBcRkN9W9Dnvd_Sj?Z*>LaR;Jq7m ze}-D~8Qz{Yc?9+~BaA)!$t&pfr@TJcmWZ@bv@jXk)m8_*S)>qrPbHVzOJB*oMIx)c z+>H;iM8ObcFv11}QxvQ|wYlnr(?UA9iXE!K*wDqcwcfC|^053n9TO8BAH+BS$3^$@ zWjHQtky+@Y>aJygmL+(WnJCoZEEYScbi%gZbbWua_z(#t|p}#lpm>T?}yMwGXI1tSCm-TZ&%)BcqEJx7l!y7G?qU31OvO_depme1XE`j&kP z`w?QD@4V}N^kWZuOS%XmX_rE(1r+n3;;mCxBBxQOaLsz_lnRIklI6 zX+vc*8lLwKTi_=&3GxiXEryvpCG~)9cI5O2?i|HgjKCSZ3UOb|uK4kPjsyE3;>Q;-K)sM!PpAbDBkb*(Jf zv)@)$dHpvbt*lSp#SY6q!Mq-P#%ThM(MDLZf2F4B8yrlp=^6FRnuBx< z&f0XKbf+$r&(D`hJybn8%_9pXp^d$gLt?jjW1#n`WZdD6n)>x#Ko~8Z$zM#zeO8Ax z;?6nn&1Sbn-8p(^;M%e46%Y0$Bakv)P=9xGiG3r>&P14X#AnUe_97Gmy2PhQI{=y(K< zNs&n2sg!hQO0e3`7{+yTy0g01bUIyQ-WgH+X`?OfSM;+cdDciid2{m@UO0TD!7rI1)KV5g?g9%a~CXuYH36u~paTW8O zt+{#nX88wZt7(U9(Ai>Z9Arhf$b_o(Fe+AZf+~4$CCFHADyW%%7~|x=}>koM(4p|{tfGoKv2DV4syr~BH$Tz>G{ zuKw#&+3Tyfy&GoZPwB@uGz+tFNB5G!_(E9d56nfY zM3{^4EY-7NgXEg91P%5hUIQ$P9AFXsLg0!p9cBr93X{*j(rWlm@3mRBn{7+jiqAg3 z_#x<~EVcINVbvD`Gl0E}!cnq4Qzn5UotXY!H(PLrUyU9Dr=K zOmKU3IYW#K?GixS`_1*&g)3{D4s}$c{`Ta$4ePd~`U7rvU*=HG{|CEUwhpygKk@;c zZ?DO=b<>7zHuDW8hw>n&uT}K339?ucylEkxLTdqYsSG>pW~()w3I&bnP-M&}IYt$$ z)$CIYqYxK`R7<=mZ!qK{%(PRdap5%A^po`-3^IswC+AHyONz13K+ZZ$`N9{BM&@1E zpSb3lOyAaOX-y*0+8u$L0lRN+c~5!&$9`|`;KmzPgAbm%-FU370fRrj`JjOa40Y#ZU_%UqT1wgNboi__VdS% zK-{>ivMc}lnUP{)IQ>9rs`jqO9=r9{Teof9w&n91#vWO__R;kdpW3!3Zo$gqkFjHEmD|@?gC%`Jn_Tg27Kn173niSx!(hqe+Q#XgvuUK7Of+w>k|Roy zTH>cK{@%fg)ex1Gu`Wk4gV0ZnJH>n?&;5%pR1tqa|1zTRab*Po&=k;`KAMNvQbdF> zqk%AJ0EH`vgNDS(V{1qs=_SaTKoV}Em>t1N#zx9*hn3B#@N7u{(ljVw>L`N%`$@V0DH|*|^PDO|IYS zv)y3zhQqO>+YvAI6f0{&P3v0va?Y@WecN3MHI}_r9KtCGl~~Uyc@Mi&ejQE;K?z=- z%I#+7?f$Ug4#{(e4LlYG9K8V)06L(0&qnep=Ovi#xl@$y{x zY+1Jp;TMS+$>IXh$4APd&|%!N+cF2=@{#tg*-AyNj8~K=Dr|S<_R5DVO6C6Whe?42 zFAf-?=1$~_qjXf$(Zncm*@FYK1I5in`FN4d6z?m_#bepWvvPKphsRD|guP<^R4XhV zhv&5u>@d@Z4$t#D=Q%l~^GjvqI~MWV^{I9R$9^U3oKb)sU2ee@ia{p7*}dzYwZr%9 z>gm~a&+yuNc6Cn`)?VM!bNz6kFigj_g`e-ZAyyqOR##hM_HwG!X$|Hh*=9rp46?0|2eu8|G*&E*-83+8GaYY!|4qAE#;Vb%Va(+0=?s;V9;b1mAtY!@ z78888{52SLTc!P~HAzDhuJ8OAZ6xZ1%Ow!?$(7rW@lS}wI6k9_=~WB!@U*oi!0YouQbBKL|Zv6 z#DWoctu`WW95)aPg*(CbP(LFixqWYDpyt{gP_5P|-4bM7@GnfS0Y5~9vg7=^x zAinwJC4#(xWOI0)KEdl?nauO0a`Dmy#Qf1>0dpoO@|EK4+ZGFH>NJ-Z&Td2Gsl!*4 znDKwGUcTTfdOEiz`+}3((n()S;9{(yrJOdqt^e(Ec~5C=@cryIlVSBhrsjxmtbW6v ziUpyzlgjeD*fsJ?=wR=&669rRmfW{7K{((hgX=!KX5pLiOH<^riOCaWKVrkM!;;Su zXm)(o8JyLpeY2LxEM^QT(};aNPc)m{u~!g~;0o61bBV4}C{*f7Bs%HXnTQk$5&Tyy zzCu?f(^c@*kFR6}G0)<+!QunY=^*wCC-}crP9TU{4gX&?(8c zE?derZrg3U-FDpeq|Io9|Elh=#b~k}c91&g+y!D)i4c}yHYQjlFxWu0? zyYO#}>AK2^LO7Ueb2RxkG>;9+>dOtF6)D!lhR`P^ z>HW`1Y4H|7P8an35<05^!!Wbfj;?i`7kD+ z2z3`6JI9#>>%R1oG&h&v2)VP-$D7l&hD18j)D>y=rhKE>LPy%smdV2Nza=%|_r_b< zd!qhWXv7z4aGQr50C+0~T2hW`I?|HyIxQQlR=oc-VkG)_j6{v=k4*M<{oozp>Y+ z$nS>P`So&7)=7Rs3wpE1?F@Bfx5;0k_0ABhu}&UC{4ktIRF5JJdu_w!fE8ki%{gj@ zm`Lupfcu=|oEi_-Tw+7Pskg8!NE^H~t+&s9{^RZMYQ4>xb6ET)aQXI|_T6^aV*Sl= z1^EP!9|C(%MEbV$Ji80>kbCjR(vSG>4=&cgS^2QX#B#Qu4J6i!FU5dDgC_)rePfj_eGj< zD?o4?T8kTF!`Jz$;jsKpXDPh!E*7!*O(WE=h=GBz_i@-gh>ij)IEs}54<$rczIFmI zofK)Q=CE^y0Sqf`42SSFGIO8h7+i}uvni$Hv-;qylh_g>xnM_DV$H80yJSpW=^Dx& zkF~9BY+PH7#j12{i(Ox7ZfWGo&W^F7l9N$#4SYjMzUQdN` zM@rt|2nUU;1c46+)8rT&jX*XyI2<;rDxsa#RV=iVW1Av{ie?AU!B$IwblAvr5Sz!&!IdtoN{YC$_vLt;ia;Fxm5Q7*hK$S)V-*hlb02zaTRU(z*6};ky+(& zUNNhG-?NMH_H*A*eQ9MJcIz_AhIw>PH0@L*P z(+zN1A%2lN1tAXUSL!BOYzV8yXLwyDE3GSKq0ZXq%KBVcXh#94X3qM|S#vhq)tT7P zTvGz;YlVhUDABXT>t}6Qo2w=hXbO)YCC!IWeUyQY0w52ta|k2A_Hh+xH3C@+UE&{N z@8nJ?{?Tr`xDE`Skej^~UrLi#w)|+DG9i zI|?f2#9u2yIZZyFb<|{*^(J6nqOV}PZzTX+XkSE!ai$Q+THFvV0&rc97xYjSoegOr zRrxHqifpHc04nQ$-SCR5v5Ws1toS}~*V#SnI}7J10+9_a4EZaFRsZT|OH-xqu*nZ_ zLzz637#-g#;_G`BYaD-V6=BY{f-+)?v=V0oxq*NV=^V$`R1Yq6a#eXJX=D027%zsN zfP?@5MSN)_a*!rQgeDZez`ls0F}fTqLRMk81b;Ga0|HnB2yQNmjEDh%PB|4N45y8z zk#KLWVJx8xKzZLb7BJ6&)x007D(|?oTe=^^(H#IJ$jMixPhOb505(K0DBv+kjSKej z!ujgUCtm?$y`zaJ5oaKTHURczyGX0c{g=4*!swdNp!zi6 zzKJvU-@gp!_fh8Mh<(=y{65yYYu7h5NWbOz^AUyi6c~2V|947Hiamv~WV6vV&P<7= z{^a;byzgP1;B)QcVytAEYvsncZ(PolmdEPK^2elq6=Nm0l#0A?;}vz&Sc$q1NH2)7 zlBK4rm!&p~vUehjmbMRe4Dou~uc(*iq$qn7`*D3AoLB9oK9pB7?VIIH5zo**$fQwe z3wsm(09NV1(uL!%^e&unuEt_ES%IyKh%UI@*a4vj^C*+d z7DZU ze(<5uhiKj@@Xz=*@RTkR{|&4DF9-*d(_#4Oz6s|Ka9yNMw~_waMmlvavEqo=0Lllx z6jc<;k?ade`0JV)l}o>H>wBG3WA4+AH{?eUW#B8ERmX5aY-U8#WpermBokIZ>xLUk zCa`!xOK@Yz3?)*iFd|hgu@OgGDbbkJHKoTwL6bG0=)FqQ7;HqK$)~Dt!VLD{z-`y( zIG8o1X}aeH$}HwUf-ybi8Czlmi7;z=9UM73U7#MTQ{w=ch!RZi3kv*NJ=E~X#6qb! zzD+P%wd;$k)~{}8BGjhpb;VUi}VGv5&c(3qNjIL-Z*RUS($Je&d$msm#}_lBlarLq^-$mJ@(jV68m=tS4 z#j>HW8F)O}Wasq@n=bLV!lrvndPHkWgVzm{E>k?BE#PlpB9h0!-?$(nji`-LqIuB~ zNvSBRq9|$qumd1twv^93>X7`S1QKGh*kucGFPv?0U2+Ls?IjAj1UeVl_P8;G1C7=E zs{u8JL}m316fE)KKNDbM_j(#F!Gfv3d0izOsSL@RZoLbDW8nt?_bIbm8T+X<-kQ@u z$4FNHxqKZN*Q76>NUmY4Nl62a1PW4q1UJi<3<9mV8!kuJ5KDx!FeuMaYDjC!{fVo@ z!{unkXXusFq&D#I@H

R&B-&jx5_Sc?R5vt9ddB9jPoOCzJ4OT~nLrP%BftQoAJ> z+vY_G5vab1VTP25!0<~~=H(FT%QF0P>NyRB-H3azCyO3$e%DFqP zQcnKKQn@?pgS;D*AmPGZo>>T7_>(H*B0+r7x(~KC({rk!p#PTbedoh|+GPjU-Nbrzjx~VAi~< zZp7JE`()F=K+b!gkNL(X&D%RV*G=ZO^-Lv!tjpePVog&6nghzzptO~}xs`3*w%dNY zUAEgddtFmu>*gtgu{s6upFHU>v51v`?(Jp#KgZoph}nhnI6kJUxCw97I!UEj=A|fJ z&D+Gk5{uwUmy{K-9njx_>H;ZTL-|+&EtnsCM<}zS?Ur}Tgjz6GcRz`)+Ma5d?x<|; zPUKc^Zi=;ADGax?F6a#IR7+iM2i~T^?=NNi-R!j`R~0!_ES3szO9@z)+)`rUaMatV zwh-)xNeTE1Q33n0(C@UQy5jH(;us-6synY>ax(b;)HtR_hxBRHpP+F_&>9X^@GV3! zXB@){C*V_GRh@K|yc_jJKqHa+*{dAv5?@{;&v&{&QVyM~1T7noggg?>R2nCvo!P=v z%Gla86~NO5mqCVBtQNqMKl#dq^V1hd0>L10g**+_g%_$XRqK4f()RY-`mdBZ9LDyI)$rRPKRhD^o#9Gx!=84STh?9EaRm&B*+I#%uoegh#KhP4s94_< z+WP)?;`}7zxU3VL-&M*UyIHK;P^riZa;|Tw9IbCr=K;h!6CF^Ru2PP#TT$-l4sG2U zN`0tM(Sd!_)!8@56cpO@9cn9skVLfT^SrH$#7?80N#jfw5(U}-^2H)6${xGO+rUx= z9WThG3Do&(l#459t5)ZMuZwb$>GEz{qvA7g=hFGX^%2R{m6X-}QT&=4E zHA=vR?FrlTsreT$SxM^vj?G=u=!dpRl^NH?ArPgGWEu!^#*C}*!IUY`*VSo70@D{M zNM6YoqJ4Wt`mgOzB>Hyrq}N4l`8y)lrdrp<`eN^nJj~()F*u?+oQal1V=ZoxZy0=d zV&up*wbICSwXSQ_tk*TPs$nddO|NxVGmYyPo>!cPushJuo=9~z2D7UtF}9n)tH^v` zz+}ZdxbsGB%(88mHcZZF`vQ;o=W}}tFE_MDo7+EA&DpdWqvqg6#X0~!z>2cR4vRVK z&7iwcFnw8_G`B^a2cU@MT0>~|DDb;pbg53>PEqzwZM{g%y}TgziR9~runB1Y66KEW z*4BZPX-7fD(S-dgrR`sk6WXN^Y;*10mm@0ms%gUx$+N>|i$>y4z->QzdsN;PWzm>< zhY~&vD#2{7Hvi1KEQc!6M84CQt+)#vwcnRc)1*pH`R{| zXLt^j|0`R7dA(3r*g^?XadM7KbZA#)@t^P>6==vZuu1*B!1(rJ&bw*vuLCDy&{BP$7Ko{?@_V^*w|Pk?(IA%wFHq*6<(xT@%%YpZOttU|#Szc0MOT7>VAk z)9Bp~Rddj91ido{Xj)#a?6E^)O~eB}UeK@2Ur{H`Us2})#56j4w%r#3UQPn(mVqdeY}w-v-5Z9TS2)LTgcf*;x&p=}@xuXR{wCRmxW(yi(S zuM2Rm9{O;n@DU>ZDnvYZkfdCJd$x>=;h&W9i3$6J3ErK^s}g~)u64UjGCR{^T)}%2 z_YK;nS?07@10rbkVI;5@P5C0c27t@M)h==&*$c#}e*cjp{;I!s_i+AhPp&&3En8h3 z$)SFx*AOw3&-oS>jV6F%tVyk|#7+8ze*#_x#z6D|?=#T{M^|foW>2=E6J)6onkKR- zXnd&9``?VQ$f3`S(u1%Qe0+(TTy9pNF&0>EFQNP}@8bvS{O}e0wW#+)^?KPJ>BFd( zc3@qyk=qlNWl&M)&+B!vJ+PTkNq@%x=dp=xZim35Uu>7Z0Qt}W&BPNTq8LL37yxJ{ zFj8Jx*GRDmo{P*xq?u3$@x@12tdh@RwLyL6kaGFtaM|dOL^c{FAJ!v)^^B5KZHt(6 z%BV&1TdfX1+)fFyGnXzRJ<9+rj>4D#Odn{;H9UkD??JRQ)ZvIfC;!Qi>t%THhFzCm z26>}pjG-s+iZr&l>S%gxDl855T4nUT%t|e<6 z_Vddi{k$vT|K1`@KWp0Ma8ZX?T+M;iT>-bl=PL)V3iH>u3Zde`EQ|r86yze4Aue96~lEh1-@>MK~KnSacsC)&>`BuylgMyxOsMpE%3Z9u2GosEUm0W5k#gOrKB8KcsTAh`KGJp5N<#qCy z4Bk$*3;YlLdNGmV@6OGesFUZV;c;mV)SsyHA=Jsans37v3dEOjIk>_WN;1ROK*I}| z$7Fv#!@kPLMbn$ZpY5}_E-(f+pjjkI zM`l@4v_~gxMP6595?Xe z3)2)yd-fL=LmOKOm2$f?4sCj5CIW#CL4!`FNYsIe*DP7re{L@TBmrblZJ-uhTJX&ACQB9*bktCS!_wM@g4>>E!v-OSy$8 zKNU=%Bus;X5t2BFbSL>x!E>{2@$_F#$Jh^6cl+HIuXW*L%UOubQM<#bQSKL;3!pVN zuSujPx&=AHmdKEpv+XkBNj5|CbL=^!LF7JS9W*g1>ZFZ0S<(y=-%7e3@?7VdLh@9P z#m6x{vsuaGZJ9K!dUF+mWq~i*lZr(efic-AwXio^SPO!k0WH~RtqD{~k@=KkO1jRU zB0srHmk87E1=8w>R~P%(Rly~RgfDGjon3|uiEB%Wo66hJCY>1oY5O8(SF5+THy<}R z4F3)Eq&1p|+oGlkqoG`kcShJ1FqBL4hiH+|QA=r#9M=Ow30V*czB^iwuA zHeWU`d5$M;=PU7bv`mwmi#fl2oJI00XdUnM?YBagIQM7X< zO(xt-T05f7y$JoJwUcZU?QB_UXFKJ$TB`G`w1`D*d4~C03uq?a3pfU+;??RhvTsVD z!@Rat&9&tgF43gBd0!$h54`39>Cfx72A9o9Hq&MMa5ol$tb7giZlJ!Dzw}>-IVEK0 zkE-Tah(=Qmi%x>^6lK55{UUUL6ii-33&?dJZWX&&-V0Hu`lD%;5XY1afYUfnw}LAkFc z*l!m87xG_Sdky|vyCCr-Snv|SA6V-6yO?0r7*-o>6P9!mXde@iuoPf{R1la)@z(eg zz5vei0Vjxfih_(H___$jfUbswbL68wtPwPF(@- zd1QF_$Z>gkkB0F1LuSzsJ`c##*f*|$`hw(!AEBXx+*T`W)OW(3&F!9yxdGsWv2oSs zdAg$g9 z>-9npxKd?C`-+a*pwJrP^|C!^m8e&bG#u1kQiO57X7P2Db7((K*XxQYknYHX?7f+q$NHRU=Pfrst2u$f$VdS&h z?}ZyD=T3=T?_1@LWjzg)>j7mz}E()1i(V&&Fj=$H}gS5il z%n@58!1p6C&a0X|K6La(H$RURmw!}ljNW^K(6B>>AqkzW* zEr83rG%pD2B*OKs&~*^KKFKK;TjzBu)^TRxlNi56JOpyaq0Sbnlbw}b!Ef4$8h!Jr zLfjYuDWo=SLOI~cq8#3wm;00Da=B>0p_K!#qZD8m<@KTM2W9L*pcAB1%%dM7(zn!z zpUmKXl4gD6D(4~4B{!*Efg;HH0UWtG5sm{~c}vMi)CQC{xS*kxdHHT|25!<)xye?4 zotr7WaHn>~@XUvaYryfWTEndgE0Zf$mWE0LrU?nWBwG!{2SY3{Ax(s%5kt@dJAj+D$v(XPfzcHcN6@b`0;W#bb)uv6U9*+I8-3DQ^C%Tit9sxp8noY za%fGr_k-SA_bNiX?Fsg*>hMNZujvm()^6IINem8j`~Hol2=((g`pL{?uU6`3=@>kH zxZfmOd>AVlUdk{l8^thF`6@7SL&`TXE}K!_AV2@Aw*J8xINdsI;zr@cq>VLFnxQPO z8)JQB$ z-funH=$9r}wgtFvXcT_VFZtvNyHNq8oevGrLC(_q75g@aRo;$e0%&U_j)j2$jj5t3 zFVDR=Klf7A^^!1cL6wHTXbFKD8(WlqX54#Zv~ZAsjok!s+{^B3W5d3MALlo9pXd0- zH*&n=XA)W;e}vDaHZhl^=QTOr=kstMr6qbHbpBk9$EFE-aZK=H%oz%Boqv#~oHmD$ z-wtEW>%<)TS$z(@{#4wDT9@es5=^5U)kk#Yc)i^BpGt>Nrzl7B;3Hf%7WM6t{<6;7 z{#rF7-vYT()!iuY``k9cd0XC2whMAR=bez1Cm7{TUDDY?Pp3He{As%fk!0-pN6`ea zZ_6%zeZs-7KZxs~QIp8GhIf-v(pLx{3RW*r3*%0ZDn!A>(86Jg zYc4-p6oKr^j&I-AaQFV=^z`=ZJ?_TAilgjtT7!;EINf#k@65LF1b>I`zLygGO}4FX z3+eTHbaFE>w%7+oU>l-L%D|nKNm`4?qzP{xDr1mO*^*0b3p@2d&jq}krY?rJ3St@r z$QTEOBdGQ|5U~G>*0B%Nk)}1|X?KHKaTMKlOVFB*2?+N(1~$i`{%-3?Yf!JhMo}6Y zF+YUw9PwmTns?Coz94uflJ>9gofDYV;K?+*(1SM%?q0gWCMD`5evH=%ndZy&I-5Fq zoh$WBWNRXshTEFhp50oVIpoQK@ruk$w2nlbUs$ShANJkHg;zymsfjz+HN&}%OunSe z<}_2-+ejV}b?>`Vvt#8mIc~?w!;VFUG)@0aYwHkS{~f$9j!C~G_7ZvVpH*|I7=T+T zbmk~7>c`q*ALKM(8@_=C;4#Qf&|)I#(KxemYN62pH4r|lzmgHoWz`tOQ%l6))b+f~<($crzj=Ei2;POXb+?-1=IEEG}i zF0gCVPT3pe?d0SF<#fN;(F8j?iOfs+A_fgA&?zs#D;r6j3L~SCNiENTWKF zElnI>r7qu!I{y;oM4bnuDUAoSwqLzYl9@%F2efutDl6*5no7VooO1UeW5CmeZg^|+ zh-fFi6uLnL3Pply%xKCG9KTL+b~tjk3LLp-7PNkEsx{(!$i`zO!lafO`fJsm#}N|R zJmh;E>^^exjSdeXC*QhSrBgMfK!^wnQh>3TlB#Q%0!_WhNIZw|NESMH{Yl;%2&E@*bE!@ z1pfzV{I=eJpbWzmK~vVaL&?~++fEy`g$J~r;=iDX`uA{}vlv9Rn^ah?Zo>TB2NxX{lR{MMA>~ z$;-WrVu@_h6dw(ZMrE_X<_$m@dKy!hCuekBeCg#2FIK?|x+v=Jw>S}z8X^tW9$_J@ z{fd{I?N}+ZEulA)qJrr)r7I8pp0lLJ&~A* zwl-N~+vDkN2}3cD!8E{!3pTpb-23U$g&$K`&7*LvIS0L-4 z>9H%Cu5%bmJsHOm^t-#3(HXCN30vA>$aHULVJDXW;n8TM1LgaY9s5it=ivwfhU^>H zFUiez16ij{Vv_-#CHwd>E?YpU4P=yW-O06Xo4{sjg2i$^O{dhSCM~vMqr*H5{lC%Z zc9~2z1+kh2$!M~VLbL=UkMx?*<3fcbpkH2`dujefK8`@?qSq&t7DstO%FPEJxbJ}n zDDCFoPcNKjx#_>ZO^k`a(hp-yNi2G`U;j2LoAiO1%%e9^7a&3}! ztCcuy0A_NeX)KNBSk90pBTZ;H+Ts|Npps|~%XYa@DkO?zmrGEd(Ps&c+B;_8IhjwE ziA>SLCpMa}96-y3)dDnIv)RyE2cIvT#Q0Zoe_m;TW`DH0yWk($KbTxj3fnUf&H`n4 z*>V%_46@St8+)(J5~4wzlDsJ8=?;y*jRkxr!#MMB zuOvQ)(I{OnM@gYMT&k07Exb*Tf;UMJfN zlR58!dC20TTE2{_tY|Co_@drj(td4^(EG!@t)l2sy0q&(306a4qVEr@C4oLDcD<9rb}fK{>Hk zo&`12O1}1#7Z3@*`(GBgu*|6ia=cf z5n9J#tudY16>@Fyxf#gb5BobRp>Sz^qZPCfn5yy^u$irhkyf9Rl*K1iq}bV{2R;Kr zeifrZuVVx9W@r>ft?OlAqEZ6T@-!jY@nGiKh0y7+3m>H1Ae73k;MX3m?7g8?9{V7n zE~B{^BMtWjdUaCdFsVzvj$JSR95~o1a&`BGLkELUj@Fg0407{^M8s`khsi|>#WJmicY(o@rbf6&Ss z_I3mwa)A`A9BcI?DeyYssRv;9Cw$&Sf`FTzj1*%|XRH{}Vy(lWXfzZ?HWIXb7<0;o zmWQPL34g!>U(Y!eiKI5U6eL^mSR#O+;AWR|7s{tdpM*)HIRp?Y-U@G~=T>(GosO9O zz!IH>rG+g24L*0+WLn{Qgz=E2v^>cENb$l}Vnn=Whp`yJ6fn_;D~vUp!Z$dbK(Bus zh`w_KR%*~2b!LN}>5S5SIF}jvrgnkmg^NHA&z-(-;oND&C1YNYz*6=ioDE@sT^En8 zx@+9 zjj~--%}pgv+sn(m%$4;YV_DQs6f0b~`o6JT_c7@L>ZY>U@@1O_+9B$F?^3&uGApQs z@DeR_qt&vdvYA=PpuWTd@wRgxNzwMB(ic&`h$TkcX1O1Ym(3kuSTxlVen;$0%W-T& z(5q-RhwrFnpNEICX{uuMkG4P2JBa;hD6jPnv`VQ2cSq&!RG4#%#4)XgJO-3wH9|Ry zXDDYeoRRcS3^r_LGGK9tjmIAVHBGx-5YhN;6*J2+wtC?Y4zat)u82BlE(L+fGYMUZ z6H%N+HE5b~Ni$B^npGfY1>)A(@V)w3FOW>QqbiWD#3~mFBKhiBEjO$HzWBAl74bGC z5)Iyn%kYEA4I3uuKl^pGHRBuW>>BfBD$%{S+_LwETc8i8-wyysWg9R+bXdWyYS6BD zbTif&lTq)NES|gVdfhA_P=Q)RkW4iQ2e2-jp1U+(y@;s_$U|xPX7hO85&T|Ky5s32#W%>%^N^Al5vZ@J zD)zj{OfWuk-1DU8tmie4&hxnG3DZ|h-!r`d(0J#}O!z*?E>1W|9m5c$pYSlxY&@=y z%!ckZ+h+A>C^iXVDhVF!;`9rL0KEc6Q^1IjTi4~fW1vD%yZr=>fQ;ND-r_)0X2k1t zw`Q8Mo32wp&*dL{9L^29C)np=t%x=-Z7|uRflM^As;Awz$(eU6gS;QJc&|OD;reh}A zM9bBbn~_R0(GY>-4Pb`qq^?@js(2e3lxD2q^sFL=i9{ZO(*1H3Q5NURn4eYbw@WIk zr2)gB@lBZGX(-aJjy8dP9n%$wq_nYgEaRIXhL3F?n`r6H+H>JZ*qiIj7Q52UL?|Eq zZmf_?w3R)9yCbP&BwYkb?(y21K)S)5YIS)_@jzqB<4YDiu@pfEHg2)_ zqO%bYMxP*z=+Kk%)1LegWDg@f z>x?8VoaTEoAjFVo{XsbheL?+N4A%y!9Qj5$s1J`76@$@{wFaBdHH@Abz^ZXyC2(OxBV$MI)AoIWm>C__CG=Kz}T0 zDNli9t(oWqfZPab-4{((*Q9Uw+}6V3udK&e`~+VNezxpMdV z&A(UaiLBjnU1jp&TL%VieRy*6k=q6y#hua7ds_8+J^L9_KI=}}&9&||ovB*R*R$v7 zh7Cve_VnyMy20{2yS37}ssap}uNsXse{;z1F#vi^_+apYku-cT=|gakBYdzhzc28= zh+Qa156zSRPW?VTzeRf<*6aH7><(EG_+k9Mcz!?bH;6j|KMeI_9xpvl_Y3UM0{K+b zpO3A$PrgP=&$HRL>g^|9g4z!$b?NsH$(Y$%`$s^l=>EI-ecpanzaK~a_4_yR`uUxu z_F;YFzNjCo3iW9B+3l?U`{UaE8&>@OVeS3t{p$Cz+VDKT1Is<$llmX}nRjTmOZUMYqkev8x&15Zhw2dhi*}=b>(6Ib+^6U3{eSuW zzvcaREx!+Xv*LMb|0b>dE64xN746@owI9^0K7W8KE%4`pE1m}hU20$bKDDo2|H}DM zzaLw1zaP&xh?>#AVt&BQ2hWS~zxA^Fpodt`l;7t2n49hp@u7 z1!VBoi3Z{bhYVau($3ETR^p`9Y?-uA#@f9;{bZpgO~J@yno3(;QwS&|jved%5_Tnu zy65TX>pMInoPFB8IWo8cwhV-8nIEf@fF1<8_Wz3R5tCc20hGTweEG=*1Yo%HjEs*V|}u3 zdzX4(W69$qXcN3Y{7K|TAcq*BMR<%d(fx`Tad0~PmBEGniZ*f>Z(mn8faF^!=!hpE zHWBeRkzLkCILC_5pj3c%VNmQI&qm5Psu0|$q*K}vVyyVQiemG4?Xpdl45JjJg}AH% zcMZKmT9N+N>189w6+eJ==o8ZQaK+YX;XAZY!)ET$8=! zGZ)&b=Rb4HZO?w{v5AR4{?xO#q5+eO56gEU4}?+50UvW1PLIQw8wQh}nH6Db;oz7; z5slx2WrZAu<-6`(_|CoZQ@^<=KQlk3WH49YnhXs4Mf8I(#}$*52rqe zPJ2yl$M>vy> z_)C#*-t_e8>NNcF;H3xXTjFFWAPv4-lywMQ0d6^+P}sYA4wl%?1#k1=-k!rv>?aFP zyIa~jS?h*B9((7+woh-F_|u_x+!`6$0Ll(p(}uDB5%hirh2&1cpZ+)CPrp5H&r9Sq z=EW}{^bDA~6TqFW%e=@-dXU$3H7rmwd^xu&PU!8Pq)gu&XBS{9{Ai{bg}%Y@O+rqf zbJd1*bgdZ>DVS7*vCG9J2f<|6X-7p^`xn(JO*oV34x_|{#^LZ^Ct*?0$eutK7wrvlge9D z2td$ie#R9GN1e~k{PaL_AUnmTd$WE0Yl`ySzxlz$qZ>eRNEVSEh1TouB#RV)78QPS zRy4mt_;gZ;KCQt9Nte{mw01kY2fAhVOtQ;28)*+(r3PKQV>V}+Ey=S00EaApmgf;5 zFnwTjkU4~6iZS3CXHSs06fv(U${?aGGYSH(qmJWTU^~*)NID$}7x%dvL-Z|F?DG$l zW1XdNxYQXd5BTYXqH=VJ|rLLZJU2X96^`T(mUh;`#1D+mvr=mvxjvO z?+6%;O+}I#fKBx#&)8$5vjj~U4!IKuRx34D>oJ*gQr?wM<&}JQJ{PN1OJ<%z^A5fD z4yklUy7i7&50JPnokxJXmQE81cz9Axu%MJzlRo(*;gZ-i19L_r(XbkTJ7klh7*NG{ z)vJ_qv#s^FkcBe5Kr+;-dDAuiwRa#Pkn9YqR5N z2f14Sy96*K_+m8~b+8*a;6Ng11C~#5_;3nK|(h|P}I;x!sy(UZD*FD4bA&L-uueJFNZd??0>BH9Q&K! zZQQy4@P7Wu=|lVCuhF)hawlZON$?Ag0lB%uz=fe(1n;*Thy$$-Kn(AAmJLQ2luJQaZb&GR7mFC=Hq6?{5w&FIzk~|l_wPT zPK7z4YyBNJ@{tiOE#pu|9wvm2)Wp7nFGL8oGa}UwrO&}f>tfK~LJ%e0u0aUoN#3#+oMu? zo6qXBIJQ|0!mLHj$G;!r6)+`{&iUe{i@+uV8N5o98TSJr+i;NOE^9FR0eKJ~AzxzP zMPJ_J-~5!j5zE*3=0C&TiupT;Hsc*W$LB4L&u{P!1wJlD_E{Pw8n?w?>Q=9~{yFV> zEA~7$_)BDX)=@b-7AEP2;TnB{&cWZZ@ALcqpYU_Y*{|{Qz`tnsWh*Zq{3V@-aQ{2} zJoG&}ub_Uj{2b~F|Ax+~{`35Pl-Y-q)>*AAtVEqv=n? zwHU4qQaP?a5!X_9c8Fj5(9*L3l-owna{Y-Ymq)n~ehm_c_8VDT+l1&Pp+6Dj(s*`^ zmm~d&xE4jZ&Aff2KM~gwi@y*33AOo7aSi+9BXWXK0w+a^J%^W=Q!U;g(0f5}6(+Jh zUN}kkcE)T6ljBBWn@72T?s=H~dAZCJbuI1jQ6(%yaq_gzvS_{ksR{$KO^ z9)5rI;$J8aDGuDvN^4Pm8uz#H`>W~x;u|>s5z_apW^4&*Y6`o zIJIXtKaWbY$c?Jv{8r>lAzt_u5+Q7MY6GqH zkIG*|9Un&>WYZ!&+<(Xk^f|@9|A`tX5NA_Jfshus3oM7*rfgS;-6kbAWHZDOy?Fw7 z5QgRB>uMKn02_iw#hV+$(nNY9G~xG2u$2@s)k1;oK`DcHc!xDT#S&AJE~PuJQz(p) zj0fZsi_my2lo7Tb_~(HjWBv;1m9s=kVU3zOWhtW3D>CT_gp@gdf4*yKRg&xneYfQ( zxN)$5Fwx<%H^zrH%G0-6Jq_z_=v#fmx`M|lZ{iV-3x6@T(_>xuuA(Q6go3bzU&-fy zt($^}VJ}cHti}}Hw}YgHD(?z>X`*evkz|Nge5sAtE#(nczcdnQ9nK5~`t1KVV{ZZ< z*IAznpGC88XZC&HH;pu-eLa>&(pZaSS(e9}Y{!n{*bcFS*$lxpl#o#1hEgakP|DWQ zg|8)x0n-46+J*v7pd=w*Yo{(Px8b{WZ=kd{wAbVN{NHm%k`uVUPl@Nudd_*b|NCE` z$5Lq=i1Yj7d_0c)qFKO3haLUWHzS0^PIpN z{e}2&<*q`nKj|^@FtjmumZ5Vgc$^7tNRIg_LCZfa=~B@;U$-Ws4PFq89PG`Qebz#y z^EAvvxXW~Qg1@;$W9$UrCYcmk5;~}w=ZEdjJmB_3aF+9d|J~whIK)tN)&h^JdgE%K zi`_cI4~3h5qZftUfBcRKdF9Rt$$z@_qaUwNNd9Mc%*US}Zr!tSE()9u_g}*LbaM%A zuRIDk699nH`eZ1e9u{WuEOV*wl6A?*0o-0dLz-59)2<5|i^gFiP&6%EIM&o_;Qpoo zsMS^pi~@3X^=Sq{q}1WHqm*{$s%YZnP*bJfuuo@XqjWD$8G2w5e zsO?jq`SiyMM=D!NhX;Ug)YB+BgH}V(m1ztl_^%1CKlQ)^nDkb5^N~~~WD@=bP~ASF zXMx-lHbKXUW0ogeBq4z^jB*0kv?dt}TP+Feti?X7H-u)xe%v~|D}?pIVxmMXso-fl z+jG2ASWEt1Gx2`5_+Yd1iBA<9eQ8}H*c>@{%Ga|zG``iBFz5U0!ewGU`}3zvlB79e z^`Cv~;NFQ;&~#Ym0H8ANkLqClU*ynqac{rC>EZvt9fA>v1yV>_%YM8e4&Z^=tS+Zz zY8)ZnVyT)W0hWYUBss0=t^~(})Y(SwtSp@~imN4l78sz#+$%io8FFIgg+SaxD?k2&}3p#yI!KmBcp$Ww%EWzm5zOnwjlj)%O zh+eXxjGpi||4kSa9zagztZcGb^=G}H7fzK4&qW5r1~(sG2I^Wf6>DZq-au1hvo~ea zISmj@(X?AijyM}RwRxARc`B%df>r9(QB)6Ml8s&x1>K@k=t@l<7_kPe&e2|X-t2RG zU2(lu-(eq&&dg3PM@Kw%*HUrv(54u#A+$?D?9CgryYx<$|^cP(w%V>aAvl=7Po zW50eiRt@$gFn2!1g%FQ^!+9nJ2#tn@8~zCeJ=E>PXu831!Oa8Uia~%N+u;T)rA)F} zo1Er~lCy3zhwJ)+P0AZGvpyjlo7EFAHVFu}JwZI&eDMlsg4s5#L^Rhj8P>O;cKnE^ zjYy?J)roEu5581jyUy(E9~p0c;K)F$YD*<~X64LB#Xv2Lpisc4F4fILx1L_k5~YXTQVHcZkD zCPcv%YlvFC)DXzyNo`Y|`cW90kd-dG#_>9 z{&V62!nbU70w|NAvJhY}q*#6Pc71Vl01mdmo^n7U9UUCrUJB@fydMWhCP+1gJXHO!L+R1keQ&fwP$?UXKaP%Cj(mUy@P8fmptG z*%<27h|$_IHsztHu0*i@nL%h zpH=HB)k#jD(Lbn}x(MLc*ruY^eL^S6uBSw3$RR+Q3Iu{x5F(!ZU{VUYO!qYhSHeE; z=5o9%)>(5*Z3&O<+cdmqJl1-jJ>C@wmt)ezV4^E(1p(m1aMf<|1>^3iX)yL0?Y4j` z7Vwy|_igFgJ(bUF+SwniWMYyzRqFQ13m^!Dj6-yQ|6f=WCazl!XzOC#Xfbr~W^IGO zAVeebK=rx?aY!rSpjGma5-Ar=_Zl%gD*xFNe6#gWe5mye{;S8od-Tta-$^}n(6+8`Iewv$h7WIbsbhr?2 zoWN~!VhW@6C9K`ltk1w4@l+ zLR*5w9mbg9-j&0#p2;Nj1vtOZ7d6D+`?#-O;JOuIi(QjhKv>*@jGXcdM&}rl)imXo8=I!T|-lZ8)(h&8(-5 z;Xhd7ZI}L9f=_#|rYiYi-p!xPP1nLZ=fnM7S#w6}8mgx!kI&`YsjgtHmYLk!H+dqK z3$OGKOvL*p5x40x_)3YPiqUG*9@aZ0qp!9&kQyvSjGo0(SEI`tb{)3+JG1eeTZaN+ zl zKhk1v-bAhc^D68>vH#9wyEX{dHAij|CE9kY*@F^o{zB_A?`yrJ-%yw>JaO!aqso{Q zR?>C;Ru630ZsTqIu$7+)3;GJ*Dc+UOl)N7CS+3_?Yx5ei7qoS4=`G8zdPq*oMqin1t5QLne(VRnAi2)a-Px*=8G67sNEB5Q@>QsgtIS{>;{g@hbta{CFat<++6mFdAN# z^XL)nQYd6kETxK0SZHKk7Lrc8bLc5 zG_3=|FI=r#g!r_pw|{YRauJ)rbGb|4=5u8caLKNS9N8KXT@gN_@wn3(v{Ro->OH<$O~fcVL+i2Q2i`L1pV_)K5v|LEu9t;*KxqK$W4F+eDbrdq0o$gN z`EPcDq1YSs3eSLvi+3)40F%ArfS%VA7Jkekc3EW0R&Z;avwXm!wRriC6&EJ{t3Ynp z^rw{57gsMnjmX>6H2*RE32X;7%1}ocz)jM$czVyCHGrE%{ww^DtM&M{FKs}#d0JT) z7K}3heIT=1vNc-dgE@>dP=8s%(F?MR#J?|w_k0xi_R=$k^6$iG!23kbG&~qcXQ!-s z7BS}rFtSVu!jLlM$4J_ZpKLdzG2M`t@wvi)!Il?|tVpZP>u~I{n_YHu406(LMzX~& zo!O-`SAYhiGnrCFm>cPD%)#?Zo~3=id+??Je2PnS+s-FU^xu;w{a_^!1|23-YkY?IV6oWCR`9S$xS&-`1Qn(%sjfegsB!;p=7~7@K zJuB)BnWXBbVKzJpK`6+qBzTaKOI5B}Rqtz;xw7=`^%r<%<%JJd7o+BMWgxbBPtAG8 z2xB%qX4mV_8Uvllz=(9FaL(or>m7DeVeXz${`0N-YMZ+}9#do{)qbH7g)O&so1E0X z+kdO#0Y$jKqWpPg{X)(%#{@YosGT^n93A!=Qv-7ZzAK*16_N^|iGD%0l6WAw%;1BV zNl0L30tpo^SP#c+R*z=d9SsSZ7-0p;q;D^3_G<))cOXabM522U9t6BC2e+bNHOP4c zdjnoz62DXcKZsa8{%0~6%qY;)prfr#7n&zb@U}Hfb?=1;LC*=9#P;2*1$%a)o77Bq zFyTLv+q>FKynXOD9(sGVC6%VS0>A*$mW#p@g;Ni{oq&Ouy+wFHGYk*N&6Q-oaY^rm zjB`tF!R>J&ZOgesYI04a436Kt_21WvnBkRDJ`nn!dDmM@$j^O_Qwf#TD+52 zn9`=+wx^F+(&}&B)7SdK%28A6KGV_W$}toF+oq!mH(KYOM|Ke}TIb$}Tc1C1;J^v~ zKki@M_d3isLB#}$Bdepvox1=ybGD)qwA15Op_aZZ+i428r-KFBtqRjzFVUFDQM`yv zb4K3S;|Oai)UXOQtTHS6&)LMZdImav5pSoJwqmvfz87E(Mou}rp`_gxiME2~&7JL~ z$hkBhK;$aWwxJQe^n_$zIxKqSV-{zHv$VO8c zK?NlgQZFG3^CdZrCwh|DjC9Yn9E>k>o!Mn$IYnWfR8#hyv*`-d8+chzxDC|KpdA?9 zu*Rd@cBizBPEuG{JrE;OW@RNCsB#sGih;coX`-hnFGNu!bsvxgG7i^+lOrRO^pDq$ z-P6eB8uyG5HATQz*kp2R^buoiYcjS_-m+)Umc_l)aDnT){d4hKu-~(Y%6jq=(& zP$mH;KgkcI*)g-_*G>c$@>*ZHzhXLE?AiI|iA`_X)!VoGjdJh7d~9W)v9ltbH3#zH zK*2-bJyK+@ ziel5I>!wbi?Wwyx{BW)f4nhLFx(8mn5MI;%jhy6yKecIBU+?Zs>GZ^|-oi{IFjpL( zFIbUh6AyUe7Q5p?d0=Ez9vqPGoC!X!Gmx3s-P_9X-^mSSohCzcb8&q-U_O{JDK0S| zdXbxwGg;P{?6j+_GuE|YydJ2BO7Vv5_uGSdt?pcm3(u0r;nt-~foqousD!L|NVIj| zI4Tm6S52V~_>Vgz?q!P}*e>?tkOxj{d;E3yb`}nnG**f)vx7Vf-WsWEH$w4tf~7vxkzz zJtWc?D5#sXYruEDz!){*Uw%n0VxcD4cazKdS}4dZm6oI>3ei_X(WZ~H+bT_qshDeW zwAoN305&Nz_rO&Gi;pB5Qzd98Y;Qj5W(bIwI~8bWdrKm}T;COyt)$If(pIDaNEZwJ z(?$vtLC0uI#@j?D8daYLG+m+f`Hf^I6o3A0;WN-({qR7);aZbRYtouhw3<`XVj)uZ)*W>Ys(9XPDue?KFBfTO?J#-mP7i{?&wCHQSBI?11e4OWR82zP0ti&LIp)ZDDo42rU zSGa2z0J!#ooJCXPAnAY~kw#p?Lx#k5n)dTFDNJcn)8VLLJ0O+3lFmi1pQMcto*U+5 z2XG>D*W(DcJTxmUokdG0&@!i7hi5w39l99i@r#RcS#mbQ<>~$Av*t(5qPZ&;>Iw-V z|7?zh)$KV$OzfcRc8J_8ARsZ1;M_%*7U8mFU3m!*1(;D}oZX>fDQbCI$#+$QGAtc{ zS-7lbfvqr|6~1{7AK$b$m^SD7XNu<@3iU2@Q^D+Dt+RUs>*qTFm}%%3q+|&!F)8LDEcihLr;(bZZ<3j_rSWmshx~vP1j1I?gwCM9^mn+6`<07K* z1!%Wy?`4)y3f=3EqHfLIM3p;+!|K~kR z0=+8?gC43rPli3F9Xq~&?&Ig#8%FlV_nC;o8>|Eb$BSPg|Dr+T#av{+#_`+qYxWwN zJbSHxeX_1pKF1QkZ@);rXyvfEf155$n>+&u#S^e}DQ`T13)2_ah1mzVYkEVr)0LfG z_(B>U1VkG;@-~BsivcE3FXQjpW#x$Y_tmv$@ION+!j+&@N>C0jtDX@5D=^ewb@2bv zddgnvu6o^r!~IVFu9n8tJ3PuCO3c(pd`ri@10!RRpgbW5kMEAi^(m&a-Tu_=DSif3 zixF6dEAjy2m`c~JR{pH@8SCF$MQgFnMYMIBFX|I~R1NHtZO(?T{PzIC2J%s2*2za2 zoRw7aTh}h%gx~B%OcS`vQLp*{(@YQ~>t(Uew%ZwbI4sRo+@O&4BL;yaS8FB^>&du1 zg|Te+WWh<^g};u(qM>la88!cpRThAbdGlNPE3mFv8=H zaF3?=4*C*PNNn#*a;aQ4iqx!5bC=# z=r_XiS-scTGhK9?e(I@QH9lHKF0~j@=qfQ|L&g zJM>DMN$=Q=b>il#vfu8gyS3u9&M3Q)!sR4I!`*N+B${luNY7w?Z#)!xwFD-E~0nqEvBR$Q5nPWTVE7r+x`6uV29}8`<#`_ zZrUMi$^%XIfZxCylfn`QhrHlS2`fo0VIXn_EtCP0+w?y<)!=Trb_KkQB(JgY5i;DJ z?qB3~Z-`igdH&4Ta+P?^=5|kY4s0$vj=e53Y4b{@KqT)o3Z}!)Z2)WI58U&5oAz$K z(H<%Klb9nG_zehy(8&R3U#oK<4rH~uUCxFT5g@HNYs9ps8@tK63M@J_tmzFml<8Hl z2Kl>u31iS?a}=!y76@NZD3(R>E|}s6g^AQYLk2BoiwRtx;>Yt}hB@K$(%oZksErMb7Nr z*($Kt+SaOz-8uiC$&-`o@L*elQJz00SVEl%$>6*b6ikRmO&&emVV+VZh=M=rPD^rW`v$t@VuYof`#$v$o1fHa?rHA0Pu zU~cFU+1}`(AYJilTipOOhrRq_^r&U`b?F_zN~nGnmrtL^7WL*u>u9Kx*y{i-4(%odqXp zcy-wvsb;KBz22G;zS6b(9ZOptIyjJ@yJrjzy93=*Mc3K4jqDwZ3c^tl86{`~9)+(7 zU&p@lM{?5!lKOx@5jNX!nArYFo>9WJXwu+CcfoOQq|SRFBa$nSH9-2QnV zy4UM-`#_&jcl)Alhr{Uyu$N2k)LRW^q#7aI52ienWRjju`0>wQM;3;pQ0DoH68DXV zH41AU#t>|v^t!0WJH)9+HTra5kH~RfMV027%KRmYhdvi4u2q0+zw$_y3 zhHSVbTjR9zd^g5NnVE&ztA;vnunap5Y2g|MLD)fRGfTzdXksHXbHQjsT2djF?A(^z zmEv3}PD;g6LW+}}Tb&1-;$Jy`=oIdDz5y~=>f9#n5;>Ph1CcMJv`iw45*Kr7v>uz$ z0@7_J{FtvB9zg_2DK1(B%i!wj1Bj8XDldG%0#ej#HGZ^OOjE>YJ+RC=i{(D4If?x& zY%20*PsU{%mEGOoxb&HQ0eyTdoxW##xX%jUH)mImYw&3P9ma4X^WLfV%nXhg^m{ZK zf8h9))m_`n+Pk#+Qss5L=7WWU_Z&hWl8#uw+V^t@<(kch*n-bxGwLLr+l#_o5zvG4 zF45%@J6u7#Nf&TQ4X4+Fid8MduGrAR7z2I_#r^HICezxUp*V~f={ zkFWObOC4K{-!r;OV;{%EH-HQ0=k7mm^I;4@jPMGpxOF=vi^syF(2X;AES_DQ!NnOk z&`R>gpx0puaGn*vQ_oukRSKON|D@$S|ESAT5&5j=l|e?Nc0HC0+j)MIx|r?wRr5+mM&Y%P1Rw*}Dm zMc#j&<@H18vJ&fdsWrlLh}iQKu4DQ)jxW%(#*qa@q0B>m@ubw>V1^HA_p%ecp^>o~ zV5;Du3(t@X0cKpN+#T0fW6<;5fn|(xH$j6rc4N3{-IG>KO%2nZD>TZ??}c~5tx zD7F5E|ADpKGvGgXqOfp$Q*LIcXvtW!UHy^y?cv&VKEXfi>Fw=y9-DXe42=e@ckPB= z=r`M)x_fkXo3T2SKw>(fF0}KC&T|Fs>IE(j(*(UiA+sk*Cqv8(P)_LL0PTieGQ{E4 zfW3}gg1#h2VXxRJ7Hy}FwUcT*Xy;Q_$tDBHrUWN7A|9~()v?4;p>f%k<~ODJbbPX~ zTo4MO0sL-0v=`!BJ011&{$f1cNESjI=Sm7z!z{w9q+_8^uU}SX?dr{|tHmlfji|N} z_RngS@@|;%0oH*zo z=q*|KAGH2PDptBZ{5Ucx6GK&_&5rJK+Rgr+rGeddS%afPJFtixE|3*eb)o3zR{{QWShNOPn$(hE5u8 zr#A|d>f1Cs$i!kD5wIDTqm}G3=jxOKD=C_8npDwda~Fy>=Zc$gjS+GJX;WkgUm^GY zt*6lstTR-DfL4|kNR*Wy1M*3eVM*&Wi%JC=mSBEU+=W$ z)OmnT`cL@AO57VSpfK^}Cu#iA%64$^B{f5dCGWvK$Q)thCS-CAPhOD25K*CNa|dUd zPTR|==xo6+dbC<=K{Pe2*oYLIY}$t?4d%+NYgaD8kfx^N4=4dtyR4Z0nI3cm6)>wV z7%2a&mfOSs_iS|gANs2KkjRg=Mg(5;q{{w#zmcpBm!s8e*f8Sg?BA3=^?)Gerc-;o zUFCxPh$Ui5jr3Oidt&uWPs!%?>37&;KHFh7FT9ZP;3R@>eUh>@S;Py{7zOKSjhnJn z;1Y&cgw?&Um`>D5j!@?`mygwh>3Ya#!_JlSHPUHKtPzBsZL+es2D7j*@=T?E{^^@6 zu2XD-BVoy>ng5qbOK25}t2?OkEtB1J=d@@OMGibQvxXIDS)kfiX`>$igfeLw$v ztA&Ks4&lSU^WDnUp}4_p(Ht`d?V+qYUQ0MOzj^HFQCq%LkPL)`!vh=W-}oP3{%5&S zITmv+bNTpED6!-Z8}vE9ZzY)&<13++sMcU@V?Es@I22?IQC{Tp%H8AU)0ETOmhj3w z7g3qWW-BVsp=0wuc*`52!`&&pTNf+V0#YI6ca-M_C$t7}f&a|^Fa-N|j>SK=b*I)~ z>^O`H8?D9`_PHYteecfByY4#ZE^eaxE#ZEjfS)7DJ#yYj`3(tm<>AQYA_Dy^YmS_; z@;F z#Y;eKtfI78u^W{63A3FwJ+oGTk|FkiHRp#H2p>|<{>T!FjW(%9dG+=T_l#%*wk?3y zmDl{|fg6&=>+85{_CCfd4_)7f_noMRPlHiV0*5ufWYSBhRun)x1&Z($yB-WwD-NAb zK=mvTD41SK_f3guEEV@6o{^?{ol!%=7eJmR{DVybY0#U@f9=%Q@JA2)*Z8H@U+lSe zPwR91u08kCy=?|p*-wFOtR)6Ryaw-a$4&81kcXAUonq!AhmG)%_KOAX6YA%W!q?UQ zd{v;t9{L;ye2)5q4j21;hW&n3SXMq49#YT$GZA3^ICEK`^gk`}nz8dv3pW{m9$uq{ zbU_HP_vgTg_e=PavY3(?_Wi~7c{)C>p693ReW1T6=Mlfi&V$$NJpahv2M3ZE!239l zKzF7kjw^g0?gHU+j0XWoPdwTIUieQC&a7}7h}fanMrwHaKI4XGIM;Q2U(4^u?Enc@ z@KpQOx#96WSaN)tofmmGbYAdGDm>RvD__M2`5*X3fX=D%LGHh-VzahngT}Cd4-)59 zIEV;i8UWkuelIEK1uIbbSMeILd)Noh1AqDUZP^~p;KZV~ zXHn4RfZrb?Ok9BCGVVg<8pZZCgeS4}tpCyk{dBEeht{t7C6vP}zv4VOc0tfP8Dh8~;hw7(TwO(_XziEk_4vjMCy53g-6uYr^)Jsyo-qA!FXQf})+xSI5 zl`Gd2)N4|wzN(FovkJepj|*W1y`Lh1H=aOh9&}r_`;(4K76pijUZ(dEtU}EOwtSY) z3J6SY;bkMACF1A&%X!}63@__*4qMY_%ksCge0HT`x($|3lg6i`z3PkjWuhJ9$Bw#s z6HL%d140l=t)o(`0E~hX>u0FfNb1>uVbe}{=@;~E#%F$)W^t~x*)189<(?psJhwh& z4Q7L(LKwj>{nWiv$#*|w^c%;gB*P(%$)L?|zWb!V9Cx}CB_Lg({}g#aW6k6R=JfBe zISo|gFW+v-_E;7Yqr=j>C|dH1f`u63*XFb$J7`Wb*&#d$5rn?SPo=(5NRJNd+@fe5 z2O(H(?PtI0n&(kZ{}JFr(g74duHWWGqP*@izGX znkz~DR*~DGd>vna%=)?TRp`k@V!TIv1Lgdns^=xyNrrenXNP@mHQVZLr@eefr2`|; z5~l&k8Y#KW4x3H-1L-fMXQaQEG?J9`=egM=5GZH;iruIbKCCKb{gfJ2l&(FE%@HWP z?I^;=`Ulz^Yb*?-24z@6L4;CTH`YGfdoL)JH`G6L&GjX9nT<6M2X?Ql?0#~+?7<>A zI*zb%2exjeg=y#~3FNx`o^0}w9?T4EK+dsPBJ4$W)KG_n=u-(LJ{lnGF4U5a?j^WK zd!Om$O-9Onk}YJC7nTD(TyjN3KFmegV{TwA^&K-MXmGWNqpcV-iaT`2Pude* z?A$!&7|v9ehvUh~1Ea&o(x)w%@Wk|FZ@4Dy<0lrs_TVYWa>OEy47v=C*x2gm;DLI^ zVf^wDQPZ4Rn2}7ols#SH45vK^UKh5veM8-Ys_Fc%;vr{y8-h->2O+XTv(;PfUT68n zT!r=_yqoRAo$5K?gL7i8@-RlRzk@87*VD2geG=dA!}mktH*gPI=)A&Huc&+Rdt`$@ z49Z;I7g4@Vxqm&vk1($ZqyDfQhbtC-C{ms+R{gZg74D|N?q<1M-P7C%WhT?qXBo;~ zvK6z_9Gv~beX|LX5DQ8uQ-jHO?Fxbl;~pExdWCk?|1_{9;Kr`9I9+*a+$;OvO(OOvc^>-~>`^xOia?`2HaLHN| z$dhP0(R;1cN}}Cs)!xV_rb-%^O)w$UrHUy_b2Ydy;jYw}X*8}Km+TWL;lzloAGnycJEpT)aXaP-qR zaZcttrMW7=CC29eUUmNK%H2Vbs_IH>=M> zwhZw~1F9GLCApdL-7AW|)&OD}G340P>oeUSxoV1TuTyk?T0^i29^LRh)A{kfqU%%5 z25Hnfj_LZWZ+e(+7BeZfj@LPPx^CC`Ta4p|)-kw~x%c5*)H@TM zCAN|oizD7+bwVO>p+~v9qoT z7tkXr1~^8tcy+T5@a<8|3x*)22vu16V7vYasb|c;!mHFweJnz$M8HOQg3hej<9zFk zDOgU7_nvY0?`v${*Y9rq@XQ&$i~^UX&heaMYm+y${%K&}R5m@ie`uohJ$&&0p$WL^ zGHkxX!e4U4g|Jn2vyui2$qX}jR?U=Dhm4e$fgJ!Z%Cs>o+3Fm%Nov^iLEkLm!jxd4 z#Op{#FcY?IbbDd9Qe=vGzra?&DuuPWADnUZj7%gR{n*&+KD07)Xmft&e5S{KL9D|` zYr*CgM_Y#i&V34Tt{(1>&L{O~H)67{P{A)8{;$Z8p%_>O z2jrfqM1nK2)mf2bUtkfbcEDpZMa{>sQHw_E)Yw>?>06&o6CwMkF@Zd^g#H;&J2Q zVI};`I7ALrY>+%+oy~+$t&=B4lZ|Pm{3qjMs|f`CC(gOlPgu=?b6h{oP%= zKFXgS8(R9g3wiKvuNQr;=y;z(pDX(06VUM#ebQMQX8Pn7=#!hEPclW1nN~DbimpfN zQ_=Mvfh4sYqcxmgu=ciPD%M3#r2B`{nAZu919y+^ zpG@E%$rdN#j$1*Mv&i#A`HmsNxtXoS?!Q5OBRmdQhI0S^AX_SVEGDr7R$2#9m67^R z_e1M7C(`{Z*LjRP-qv$|Ase8G7?Iv7Dcw)sSL`{uf8`pFAvK%sU)xi_`GpR(|8M_4 zxPt_{f9A&!9>4wZwflb_>Zk_341qH)@|?DP|F=Ja-3>{<%^xgUjPYZKSQ`WwbcRxb`DTbCh}mY4 zsNjUAHlV1LwLxBM!=F+cK(;J$Xal$21_9rEA8P}g7&M1|)*gfJ%ND;AoXdjAx5%5A zCu74LdVr0Aa-GMxW9>FPLv3K3&KueQnGddLnnTJp9?P;h#Pbniisns>bq@Wh_+#k) znQsYWaL?Kt`Wx924>Afz_#6}$5L*L^pMu7K`Iv;qp_nVH25TVbW)zNrw(Cc|f8{zf z2Fi6F<9@fj2GFaS5OZUx+B=N_y9T>|_;$?0Tv_U#1tSbP)IX!Hqlf!6 z#r%{I4%{9uuyPg#vA~M+2|rz6snC?(2`DV2z~cc?q3_FODF04+<)Bh`$8;Pyh6s~r zrn7y1Q+IDFWoej9A#7r^-KAcZu1lpdNO74Bsc;n%rRb5@R|Ro<{u04#6rWv#u2al8 zuNoOaAXy2LtmiT#;Sx%-8g?!K;DUVf+jQqFNeCSdU7vYJ70iV?FHj2l`fqdk%zyCnuNgpA7Q?f4{(! zzC-n>)BNwlE+`VFc$91|G|5Yb5t6D{1}2UOKBGe{)HS*RJU~*vtQ1Hs>ouNbQ#l)w zN_u^GB@{~9o02V)Y(m{+`FI=q;u8Ae4we}e150f##ly%fLa(er2jQ(h?OGa6^wmZt zChvcAPFFm*tuN9!;CD{%sCMP1JzitHP!W8tV!cvW@Y|dHQ+xY;{1M(1?kPpHZvCN3 zZ?(c}tYBTpmHeOZ$>$)CCb$b1xS|pRhlk>2*#%!;oEAWwhSSFI9H<HD{?B0C9NX8RAxNvtf0 z#S}ACfD7c%JN+KL{R-wm8^MSre5z`-ppy!rXm8f*EskY|=UfY8_wn|Dz%b%NL_?4n zcAswj;rxWR(h9ZN?5&Ny3kK$c`jR-l0~V|5ugvZ6d3k*|Xyd_2)k>uln*v3uGv8Xe^` z)9L(lG|@jDMMBI-)W*&B^msEui3X0OU1`>9(2{Yb+Ezq;15XB)<#P=D{n?wf=i1Y+ z?R~;{pfZz{DynI#>uE7$^HZf0m>yX;-^oN9O;##D=XXpD>-29m8uZS%ZFiM0~UyT;1GQ4VFjvKb{=Qj2FSh?&~ZhO@ZAb)y08ucwn(QvOC~y zc2(-R;&^6gvh^iPuoxNc?H!I3VTK9FCH=XO#e65<#$Gws#rzgwOU$TU)`_T4T$cJ% z%gO9=thOBJvxK|gQg^2~tOh`9kr`8Hx=mQxclHU&6`xb87N5Hbi9X07$75qJtO;o~ zjr7h=px$DA;NeSMJzDK4y}no;keQbQ0Cn;}xv1Bl(rSCUhU@iV{NsNzIUR#xv9&m| z!y7y~Gq8t{z4r{voD6z*j1=jU*z{!UP4o51#l^`wtT*J*VVzSRU7V}SNy+A^Yc&yn zWS-Nwpq6WsQGY@*I}<2miVJ>C!>8oUk!^LAB`ZkJE9quPlw)ojo+T=%iw(ODTsE+% ziBu2CP(n1m@9qOB{`L0UrV3Rw8~xUJsC7KjJaAW@66b`SsZ)Ca+<9_4(iM@OpH6z`a{Ko0h#{B-`LEbE#M{ek4*no?Q|6l#5J@n^g3RVncL4gn zVsrdYe4p7h{6QQ@XP5fAnax2_1H#f+zFlJ&c4_XAJZ#Y0>Z0h4AZ#9r)xDW;<7AW{ zkDiDM(P%8#@C&g9IP0V4ig_G$RZb#yt8kRO@4a7kjTWi{3>!smdL zNW5gj`fI4{!877+|A)*%e)Uxx_8Lk5J^rh}0t*2Xta(9Wd^LZ)HER>jAOEwX-#u=0 zlP*C%#+smqE>Q!@@Y`k62&Ed0kkb{(SE$=zM^@mE*Ei%UWS5ufsL%sTV$X7CCMl0) zmxJTwLbJPPC6non!4c&2bejfAU=B7BQzWT%`TDi%ijJj(oM=K{z62J9HCH5ZyGcN4 zlZo}jh6*Kgv^|q>z@WmM&2Vzl!a=E&CnB|gpMF(8bXau&tMRuZRISgc5h~|WSBG|H zEjab+-Z96m`p%g>J$Htzj1EC><@dBBR+ux2T|)6H#V&c0`|f(Y3NhGn4=j_8#KfYQ z=xZB6%u#^fQVn-TqFwQ7JR{k@L_}&&{n(@g^RtWpp%@$8_{Kbnp<*6z%Tb^y!(Bevggd{FM4f+MeLt12s-DFRYceJfO0UBnbj&x(AinQRJA3MRH{#9yF zwa^@Vht8rCo^}22e_mI3D8FY)_$lIN1@NT&`300pvgjdz{TMbN0sK*t9pcWfkN{xu zX9xuL8tb1Dov8gx$$@JTW*B=-sfa4J;0?KiAF}Gz?&Xjxn@Mp?{Vx3y2b8D*m$%v9 z)7ea?;x>p1GhRbdUhUGY7ps(-_#)DtF5kNP^ks>9Wi6h@G|UYMT8g4caP+TL zIK3PDi+@iWNJ9nIkP5+QU)JL-j%G#{ymRQkx5N|CSS$)Pl6STdHrl8gUtd=&+dbO7 z-kX?m%KSi%7-71;7l^gwaJCV)64T9VpNEno(PR{UDYna3o`G{qQABE%xsClN~)TfGb@t&2)gAnU5)ubWIP zk!fQG{i+Fd{`~)SO1;VTiNmd#IJD?s)?sD#3pft3#R0jW8{ximfvaLxV74%o7+sJi zW1ZA#A3b>WctBACg|hHrMpdlwC8l5lEaoM73{%Kr>5FNX!hLbO|a6tSUO!vX46iMH=5mHCXb2RvcDSVZm! zd?ZRYDzP0k+mH3!tJWlVp6{>#U)6JSlhhx5(TQQ|x$M}%sZ?}mr9U&~KJ6aP^zRsn zrt1gCa&x!2k%=fs01DxWd0wC{X+3Xp?&2Hhy2j!0(YvYZzVjUdV?R7Let0HhYyH>4 zE~kkvpns{~G`D|W_=0FfEl8A0@NTs(JW3NXN~xX5ziwm7F*A-{Gx9zg<#D2R@D=$q zzRMF@mRpkMf%6&+BLHR#*ldAlN5JUwiXNjcq0@A5qQ~I(h~j)lz||4x=mpV4>9Z*chyR7@`TjR4K|i>ajF=MfU|NVs7J^s705|7>nS(i;sneTN<^3&9pJ z4j{M&NCV;`l2Ch99S5iZ@h**4d=(Iu-BC_+iI={uGMCvT>m|*lOEw#OOR3NzhEybR zBS-@yNtGBd8iBV+0hy!-<|Z{LQ}cq*3D0Z9>%{-0>(Icv0gwIu)rIX#wvgqW+3Cs2 z3APP^EEW3=4Hdjuu#NF{H;rBq zKVybCo_v9%4vsI-UWD_pstk5syw6@M?=yS}>}fB^l$9H#F%6Pt%iNAOdP&7Flz@e6 z-C$hL2rs-KNAO9yR1Ekteom+N`m(-^KXWSUb7cX(!Xppiq8tRoXx5+ghdV^8ttZD4 z5^DOQuGC?|Ils-=wnVOj@93P(W)h+wl~i45w2jnmo6Q=vj-xKzq?T?FQ~;nWFwnOy z;W@^dtw0qe7IUGf4m%rRD=VnOP;X$rT^n09F$J$_l#!B?71?rCYCM>>(FR8LV92pd zy-rxfNO>*e%%tNwAHcZ^yjOe*fg3#wvXPf_s_Kcm(z7%VoE@^s^*Z!sA+vg6wJoEHAa1hZppJPes(*7 z&+}W{t@8!h!{Kp(6>C*TQwneuGWZQMZ_Nb-`+G=o&ou-ShyKW;mQ=dV-{d zm#*Es_&rdypa`gq!AUlzJt-}n`QQinf!6F2|8d^m`sckrd>t>dakAWgPI$lYAJ~6v z+^5c4sSX{LW=wfx6=!&jl1cWON+(H~gz$Vp-h|a#wQREpEPrLy#Lt^h8>Z#7@O&VB zKzoV-1)_ciYol(e8w_@dGh0j@2E9&eZ3vAHs;vj~0m(on_u#X?^}VaobJv;RQw9dZ zf;}CzO{?m3?{`uWIeH%l9SQ^jfBn2*?w)Kt`}T)<@#s-4@8GM)H+8p;w4Qzcm-!$6 zHkycjj3F0<@Iywp?_A&p6b*Mkl`1&0M)l$-ComfU`+*0NQh?QkyrONG)t53?BG&wu zY0g59P;nj1VyY}1Buo<0x#d1Q!Ty7&MLwrD1eW{9D$5C%6N+TRIU4p+c3L%@9)jNN z5KR0yhry`wgcpDtdQy~ z)C!|n$KmaIui%XNz#+I_)8Wf@RSK3JM!PQ*h`Y?eR4v_Dw(AcXZ2mwn>X4$DYI1st z0vkMdos}A}1h?mWkioD}N29OwkoF|j=_n(Rx1fmzqN@MNnu-OITy!O&4QN(;MvJj& zR}%G5Z_2clE2wp1^F!U{$n(U?0^9w7*aiG$jfU}C#QKDO0_fNu+6d*8;b7eVm^^!95VDBj5OiKUW(UhDyVVzr zxr^Db^@zb?GahVa`U-$03MY$EHabqBRJ zt8uvz0ZOLX;tM7`Bnw2w;c*PPS^;oL4RU`VyL+kGRkC67w3KtCe;Y|X+>BedMQilB zHf=7_u{iA*mMh3f6vF4C^-vupP(!iItUJU<{We=yBe>sx!Y@RFyg%p<>U?g)U?0m! zQmhuH?O|V{*rasPhmsVsV_pQk)~&$R{i_!Pq=q9@=>Yw!${5jKV+l*^K}q=3Km?am z;8DC0;Z<}~yc`po7eL$fCi7l8)Eef-nvu=9FDzV2Aa5D z=V)jJi@SkXFX{Y@ZFT(S)v97@ky>)|5O(Vs=U=|>{t!^S=R>UvN1i^)f8x(uVJbU9%~IFx zKLOCgJ*asrfsd$%yDXb}Na?PT41+<>{KCj6yYU1RH0*9KtH)R5E(*=~PM{3gVXqiF z4AELoDy`G#V|qh*+0w`L@i+Qj?i1i8?_Mq~bG{>y|wG`zyJ? zbYNoSTESut7Q%L+CFB#2Y0@!XB-gRHZG@PE$WJ#yZbAFDT70(SsIqfS?v!2A^P= zHA@VUjiR$kPoM`bOV<>+pe9>V`nlppYzKyro)4UkFDxy2`d6px2LfgPM0wNDLl2$d zKf1cBwsRtravidVGFnkpvIbk4X0m+F!& z726rGN*1Tl2uAG=Z4*;ptvIIvdXZ_EC>aP`T@3(#kN`!!kVpMga*dU^RxsewI$1PG zQAARfibL{53yIykPjB9Q*Zpm-*{^7HhjiWD*O#tdUHbcb4vPC!s#)|U*_2b_9QNJ> zGR_akl_&}5=l~>3lngt6pbR<_$3Svg-|zR#hOJc+&s9>`s7^tnw|d(ql8nRB%6 zc{MuhQmJQSdU)$|D&mo+GSkhoZ1JSLI^2ebr8v&CaE|$eio|#UW^qzE*&;>ZZ@j>)o>Yc--XWV;85Jz!3( zc}1{+jKRUoqE9SWRm`#~(0=ql8?#4R>O5Nb@FyA*&PsR1@qSmaRB|3Yv-Hfw&Yix} zXxf{y0|Zhw>h6DF2KbN@^V_ni*{M-q>lI#qsB4mNA$dwIW4a@;o%&I`ii|_QtcUF;; zM1@HW1^whL_wosuIBWB)YE}8{12R5AaRt-O);cFVcLzB`7nngHAQj(rGBtp)JHy$^`VJw(2W@G}= zAA}y#j%$EosS=n0FhcOxKH@_#a{3AD0ROM2r#O*M%m9T5QU<9Htk9na;x+*dB{ft% z?y<}|la5DiamO=`gzXVW$~kv7JQ6z-9}S=3hpi#&10kU+F%geVCK8je_+)%7z~!I zg3HknbPULrBkR;b*Fwr16fOsS+fD;@jN@bFVgW#ZS@1kzV}IcZ2cTeRqsOV~wS30G zEo>6`9udUF{EtQcha!Jb1j6;ZMBxySE>o#p$$~3ch$btDWJEg)p+dmtb_5+hoCpt? zFOE5fV0Q5T>fo|p2gaDA=Gd60FSBC;|dQ257zA=D{%VlAGCT*Z?*cZWB+dUm=0P3 zyfFL7rt)~+sX{XizI|$`ytk6uSMAzc>e^FYdQWUBl|cZL=@h7A!Tc+5M`W3?0Y}1G zst4p!%bG3>JmK*yYWT8-4{3NL4{HoIwYj)<@N7CZD1UAqz26j67UH12!OBD zdDr0=dyyf>5OxfL_p8^GDnJD$0~k$YS}R&d=SGUmBL6mLv5>X4_}{T)N?qP;y%vE} zeuTM6bP4Kp#(wj8rpe;k&s9b;XDqLArPnd@vo1`DJi@zl=Zxy2m^9f6y zT%Yjr{FE-1&BnBe{YYYU)Jsv?ZvuysPe;bQm=IlyEYKhjanmX4NL2R&my=^)p$NH3M|(rI+E z<|HJbcowD{R z4!%ot{$c5ZR3JO{f5s+OMxG)4Zu|9_+_!#CR{s$!SqZPC4Fpmm!9v9c@S5-fXts(G>SSeQ?Wk@SKa}wM6ZG$|l0ILO{d&;{KcoQuM&g0+9{+-WO1#p&;|U- zpTA18@>L%!pGO{bAk0`m}|(nP{0=s-`Rcp5l#*Teg43S@ZX1p zumk>R>cj6}m99U#dcD2$s2i!e>1vH+%!ba}*pcaeGBRI%hpm^g`wwIve(g;@U7MV& zA+tr`qL@!Bm`}7i2jn>TP_2?RhFDNIsHTu{@zAMA(0K|GL<;$RT573)i&WkySIm#y|SOOehA^V?#W9sqyPa@QISRkyT46!1-oY{Ww>FC#TV&~L8#!1R^W1`H@i`U>=iOUv%kMkNq z&}lUQn&4pcs|99I{pd8jj-~@YpE`6X^|1Kn{*jS>1Q_WYX`JI5I7e7EX`rs)40zOV zmFv)wp)F$&uL4od$p&jIdFW935%D+GpQDvF;UD=&#c!(X?{8#xkit&^$w>i7G%7$5 zLilr)05O2?*wSRs*;t~?v4!JHGEyP`4`Xiv7}r(ai{Eqa?EAj&tE7=Mqg}Ej>slVm zW9?&UEN`+MC$^K=*%K$qqNEs-kU*BQq(ECB(31CnwiKM;SNdvrv1uU=p-pHW#7+wI zHMI5r1xO$)lK;Q&+&fyFz^engGtw;gob#RUe9Q0qeG_4NLzq~BUIE4SZiM=1uCPDo z{S*qr^|TDqxCwQ$(9;%^wPK{*qHOOXB|?Jl^0x;Xd3 z`4^FvKNmU=PaBhb6ZZU>^XFbHP=7T#Ex@9;_O$q2(wm1G7*)6b&(!O8t}8BxKe}8E zyt>#1@Y*}(>RWOQy4@p;hZ{%?!n_e-xPdtF!jvK*oRE^pEn!+P^w(sxoD{}`6!@d3 z1TMn$Wf_!<6Jn4dSj{K*Z5ia#69JmXm3ewWF5u}jXgNc2kWz)g`@;J%OR7!`%Ypl# zZ|L`=Z%BMjV@7C>U?|MLIFE;g(76lq>MY?fU2Ea}&N+g}jj9^xr|PwBp?KXp=jhWn zwJpA5j-tYiC&M%-jPiAAK1vcJ!{Y{5AbyY+fHA{R!a^aJfqL(a%6_m*6#fsGed} z%Rzud;*b7~_!|7qys(XTCg%NYeBQ{2wUJ5XR5_b#NE=cWDPA$4fkee+$RbGyJ<1t` zVXsnjj1IqxOV6+H?-J!T)$^`m?3Cb`T7SR^p2Q9RVTvXbw$YTIreVh9A((-Asa$S9X%v852{u7^{M}-B< z50J&oXV5VTWhi=#lO{*${eA#(s|0oGbwebe8jvu30s8_n!utq-@soq=a7A?#b`hAF zc|MHm5tylO$W7QBMnk|UKsr*c5&H;zbdn04?3JQx2={pmxy~2*5O{V0>?#x zHsS`)cATz|BM#QD=H{2y{Q4-8K-GU zxK*}9$RvT5fvL+Aig*V6-5YWT9<-EM*%~j~r|ryYx7yp#Zv&Q0c0}LqZ}S7p-O@za zb0Gmn34=|MF+`6rg%luzk;hBMlw^$q>>wAFpab)EBiTY0ANhsOv`tHAGBBQ9tj@F7 z#PnVe?0v|dbbRbHpZ##tHKkLM!P_u$&A2Vo-4HW}U2G{eREmb%M+&e7YSiemwqMv6m#IiF4`%# zWxQn@QjD%hfHX>EMBixllwA#O0FAQXuFfP!nZ{P}YVeOrlihie3R{~o^9pr7RgIxXrYWuU_zHDSm?AlvtWUOuZ8z}Gp1v4ol zO1Fef?Ehdy&B z3u2arR!?l2dD1I7gKF1q$2^$9(3jAcwIDz%i)cQ{idJSW3pfxhCQ+{yDjEZVi%624 zqc8}9g9ww=Gsjuv#nJ%h5&r`F)#6JF-&;H?jxLRzIwhW5dK%)R=C?k__f$q1|D|7v z)AXFZu0DTTyh8jM_HmZ$G8(fP_oWp=vIX92S=4DONM8_sjXbf71T^X3g$&@jrVG$G+g zCQg9sUSJjMv|N&fk8XVbhyG+{ z>FMQHPMwm(fyKLS>tq+|XB;0p&N#>(0tFIseL{v^P28>U{h>J`6i(yq$dJdvl|#mm z41P`SgF@z6@(l@QPOvDwa6^y7s{! zC1Y!z8>T#d&8aTw_4uC>*T5Q5AdOhyv65=oR)r|ytR{e>Cp=u4$W=Z#@I=?b;9Z0F zw0%^5XiN36o<}y^v*oU>clLjZ$;>euxUP_G^D^WvrQzU6 zL_6XEEwd$`>+uVf16{1E%bv^t8`wOWG=f^ouAIM!snMVjsfO&Ls$#Na+a3W4wC=OEsjqKL3g@IZT`bQHaIH zqajZ;v>#+&A-l&j?hSdop=o%@p-=`YEhgH9kfe=@UeN>SMFr<08NJ92pzH?r8UPi+ zBAP7JS!(JJNo1gUvgAIA#RLOk6;p!EFEf z>cY~+Mb@x*6sH;;=Q!A(#@u3t#bJD|R~SC&Amk?EH!sU^GK$S*UD@FG@)~!aZqzJ| z+H5ATXfn__tK>;vq9dHQ%Ha}OPXyB$YlD+O*qV-$m8rxg|Keh(k{!8nD7MJ{V`j5K z!)BMp-qPx$8xL#-%7n|7^ie*(K{=x->vYUeo(6$6TE-u+igEO1C^J4-1a2yjHw+hj zVU*#L2{W&v-)L*s|C?F-@x4DL;p2lPO9tXZ--UXKWqg-i*d{lNWsSy;fm+KYlWdws zH#g_Blf|8km4W&;Rtm%jSyh2K8E z=IhCzz}Mm***9;a9}C?>LYO@z*r5QR2oNJfRV^MwNI}3T$Bz*qWVY06~8L)QXbtJTk(XDV*w2I>Y{M-|8F8+$OI%5u2 zUjDKrVzXsK=}m31XxHfXZ@9$-f8yA$#A6~n2M}?k)2$IRVmsg|1EbJM;EFx4@b;Wc zQ(_zxA-yHLrr}xUlXU+{y8q;e5WwB%KvzOttuX+tNsORf4Bb6PtI!xob5PYA zucmLE-l()wm<#UfyKq;z2>MDMa`+9 z)(ASNe!q9NFN%>o^(*lvb~QBmcJbfEmC?{TU_9b1#$!cC6Rd+(wc)Ym~}3{x6ws_fj#DBiIOvwRg6fA<>T&etyi zq@s|`!wri0i`Ib58=FHl65BZ%6F3sFyJkDkDa4u`=$;(}-e zf<^-m3b-mo`w;R5c5OtWpn#$uxj~`?1(0oma1qgE{TQWy?K(se6`3o+0o6JYhuU`D zGd6NlG8LHFyzg4`^7mLC?HY$_NOW9Z*>>0NcD85FgS%TIo+FkpLIQgaMXXnO;y}76 zYx6VdCm3f4nalUcJvk0dQP@4nn9z^`Ezyv`A!4_?V~^O|bQ(DL z6tAJH%o!oW=*g5O`Al=#$n+@0dIi{{I*AZM+Df#diZs$#SAs;yW%8z==%*#Q>$nda zsx*D#XNHgO?(E!keDlyvbG^C`E-pT1>fdp!fBtZ&eOqhmw)XH5@eJ`hQZwJi>K)Sx zZ(Zg3(cID}9=Nq{o;vx?_ucvcjX#MWL%_F0F#Zq8fe;T>`1wy?FKK8W6%}&36H7`^ zdl{Y2CmM8RsoCU(F~)&;xKg)7w4uZco~E#?-I1cnAo{x$b|*t`CWGD3FzPkIY1SH| zqonDStx1R&uHp;dqZS$HbhCo`p$YN%amG_D16qmb+LUq;KT1RhO4-l4a_qjwt6LYh zStAxtLq6}i-_-=J&9dAwb6n1CDuu%x+gf|l;@9-1r5e*PF)+AgTP8m}w#gqnSm~YZ ziCkw6H78QdA=7IBpTH(j>hlAz4PZgyKKoHWT>vsNg_8`OJr$@e>7;fN^H$XW#g*IW zjdaBn;mR|%0C(}<^Nt&MJ%#A$@7OZDp#;ZA1@ViNP?~Y{ zhw0FyZEZVoooF-p6NN~j+@8?Kx23PXGbQit+j?L_C^@z;*D@Gi{vV45@w|FGJHxrGSagkFwWbZ&72ne4S`f zq3O^`^_`~EM^RqG{hVBZp|9IOPs!mZ^$bL>J)VhXI`6)trQe-s^1F&QOHZJC>!!{t zO&XnE!+wPTgfy`w(`&O0^i0**=1?9@GmuTX>s3*TH8m2f9r|?wKb{iJh*{)hK)xLi zGd-)K6%;xK=#VwjiG;FJO`o$!r!dk6N%qta7uX*5x#eAWFUh9$(lPM}9#agXPmVjQ zdP~(9bX9f!DzjE`EZQ73Lye)8l(VK+BnC~WIfw9h7;vf;M{$cDm~aTpAZ`Jh4gzBx zh^HMI#%`ZJwtUY~_V^>B&Jp%q*?8!NTYHvw{_?{g{v|6n)@G)Z7>&v+jy+T1;{$q5 z3gEu7O!zX$!IPv6>;(N$42}dA6xgk|Wy(MS$q7Y+D8UcQqLL$E@|&EHEwfIqgPNihQ2vnt zPgXqC6ptuSgaJl`5?!DtN2eZz8ee(F5=SE!Beu*ir6! zmSdIlMujG+d|k?ZqVhg{H$XXU!NTN*bZe}olpfq(+Hh6W>z?hq-V@8YuDUV{9FwOh zpD?oDp#DtjKsV;54L0X+N8^U9(``Ly@XG#(UAsG+iX^oLqej_Ns6(T^Yun{`P}Eny zBfKj7UnrZf-QuZIV*9l11>0*jtt|v(+G*L1nn^v5vx-NLert9eqL<2&bDc^@(o#Es z@AFH~B54b66H1d-3!zJo&Z9$0r$_YP0mw{D9_sZTy&deX1A_w*(Y*9l-;D>hI`jMX z?aqki4cF|DorOJflW{s*u{sgQyl%WygS@2~dCPW^-`noKlnmR_L zDdgY(0{D0{e5gM-iK<@i&npe3vBDfTgewQd<2>QdX+II32#BG#>53S~3o>QVy;YZA zs5+b_r|1*_OidUL7;ZG&2ZB|f$K*xNPeV-)?Wu$UF3iL2!LhPpk71dWfB*vkOJUMw zA*Qh>`f7vDj$XS3;9xrtVs=;7HNlrylvjF?s&AO^qDic4qk0DdK&;IT5{nC-Ry+$4S!RYEwD6bVNM zGj18RO5c=p8V$QmG?*>=YjTsN_U(yl^+>3QcZf!vJ&lIsyDiC7n$0!s**%-t@W8|O z_YMBpHAlbL(RcsD4{X@}mpfvk<6Fbw%J?>QFKMtwW}#D#NrtLJC+ntll1{7|s|bYG zL{Vdcmejy~=30{UAH2hhz+_QGHHip62)e<`-_;>%7S1f-e?RzvXnyWF$hN}aLiW{m zE)TRP5Wz>xr&W$feAkKy{8R|69j?9YMvz-OzRF4(IAI9;G_iumqVU@z(rwJZpC z$R&FVO9z1BNG0$i8LN7#dXTlaf)>sjX_?8j+}HA{meVcLR10&oFzi&c5TL_Snh7?0 z^fg_rV2bZg2uWv6sKs&HahnxT-!9JPf za@0<1D;TOK$`}D!4hX2lh-21V)7KzO2rW^tg|sdR=3Y^POJt9zK@V~A=<>A-rx&jL z<%dP{@=o^D@=p4EL=oBl#^-y5AvxzHFe6tF=BloWxDvWXIXoiz)9X-VfUtnxWFjMo z959Lq@USg}7NWFLVSsX#HG!qi_LTfB&V>cn27hs)H@3j8Ddn}AHL6R=&MGI5T!DT(nm$Ci*^x{b?#Gfu)3#VVao(IU5H}uc$-! zDSZvw2UAROB~n1@Br5?euH9F^9FH*V${kD}TfGCa`RE=*zy;nC$8ZlG*zP@YOxpkz z9RLAQLZ~`jnMAY(dPl3Xh9j~@t-uw^G0Zo<_B>DGV!AJ*>%g3Mta!O79spR`YTpoT znc9#_49s-&AMX5vU+?PZbH|(f-d4M{gNt?i=u>+6QJynaM9?-Q7J(#bA(?LcRO6N+~#BtU_h33;72BJ|A| z((x(?+?@^_@u~0}mcylU^SAYuTeZQUy$Ui z4+n9)yMjFA3&8#{UA|&t_l~63Kbaez(m#LBFgBDQ30ml6Tk+n(XrM zo{a-m<9?gHp>h?U-=9fg+-nGI5VLYqY{r5VcV@=dK-xqwI*bXUWXzjuTCF}zo_~1G zsmCE`BIo95JWtNyxFqU1IBvvKvpUTrIN0Lc<5bVZx~XgvCE~!O>L%a=#9V1cZq!}B zuyCWkFjQ^r+&!Gl4)5;l-L$C}|F;o50LSR_?bW_Gb+(|fu)p0iIXOQ+Ik^X8h(JmF z1U^7O$Ou=-GH*m+Ars3?72#&8^e~f_%v1waZ%#7ls(M)dR%|y^#AIqFDG+e^O)&e> zs?MZSB)=Y}A;Aay`r`R>b)5;}$u`0MAR>Koa#Y?4L~I5b1?iLs4eP`~m+1E29UhLh zwIl~-JNj=(FPK{cH#lPr{_Wpjr9-V7Z*K5zEj4d$@!O2c!Z&^@O51%=7plLNvm5yz z;+ThT3C^_5P^z5s4LsomqES~U)H&yy;)lMz^4b$PB{*Z9u4#Z1uA`flW`*%h;e-Ay z&gvH7+LJuahae|Z6n@X;ptX*NJx* zJ7Eqs#RKh@g>re}Q=js5g*MK#`^#B9XYRoq0rag_=_1Q@V+>+#&n&|NrZ zc!)(MMG#9Fa4zL%lY!7+erU{a?s@&xaBkA?P44L4ctttQ3)Cr(Kg@yKGjJQvPTrdkC`-x|{T!>7g3veQP zAiKmmvJ0 z{`^MuGgGLF!wVJKS8fNhOPE))&_Q-EV_LF=$qaU&@`fA2h8pnd&>|?PUh#7HAqaO0 z78xO?=s&jS*psk>KdhR;+%Od3bNo!qfG@HEocSM-9VPO4TPOj+2_X>j;dOu%`r&bU zJmB5haeYm0rM!)Xkjxr7pfyy_*Ekd3;GNO6%?N$1^f9e;e6&g-$q3?Ug!0H=@1Dz; ztu>3QhKU}+xj?5LdAT?zz>3Vx$~vqB2Srbv0U9SAcD$Ivp-txlXMIt^(pmCT$ZO#R z1jX4ciKe|f+jgZ*?m}~eJ=5w!z!ha&(ZtZcjs5d-iY@rErQn7kd!m%sDF3{6Z_Yp1 zvUxj`t`O0SBW@2NkrQYeob2v9xUDf)-oGW=*POD34iAB`JAi`$`nE< zoZ~FYdtczNMe;BT3=Lh^Kr@v(bV*^tE->2OOK0VefA-HmgskZozOZ=q_VmVL119P#r-Uxp?3ny6%Ai0dafRgJXfATU zxs_}%%C>Mmq%4JGvh=HL39t3js`=@ukFs~DZsi|ESGg5`ZyL#r2)&&n!4XqWaI`am zRt=farsQbz{$|#k_s|ATlBXb(-k2_``296*6Db0`do<&gcF@y`g| z`I+R5sVhI1JkWGw(|t`+(_AdrKIcDBys>y+Q7X;_gWAlTT~DRJWFvd(?LaBXdvP8U z`r^fTUN2Xl(RCAg`F!fvPoEnY@wKxn<}$5$e$y!%qA^b0bpmW@uE%Vsrh+Qw!#_Z!W4VloVEg}Q+M z4U1HAiGK(C`W6KHc(&LE{%K*{>L4x3lNhZSrw|B?n@t|G$!uae-MHT5(VGx`2nF5V zQHNv>P$UAd8fM@qRd5bb?f|N&wdvNS`3S%xzm-mG%{Q@B#&(5m$aq9>6>#k#^3zLO~EajC+C}k0)p@hm2(a zjavX=Zw`w2Tr!mzjkwM9`FqT40<;RvW=81+`hHxWI%(a8R2Dswo#t(3kJ)1)=(|oE zt^n*lba91XlgfZNJ{6|n1z61#rh&cz;>K}NAp<1g2q?wI>cL7$VA;zdh(}dG;_|=6dkYb1&fY&@-yuZ`y+^ZC6Wd~4 z;gP%wO{6;cG#K`jfQ$m$H^ z`ZkqVA;SNHJb?!;Qa+7Mt??o&f}-B(+Z9WDVzIQv3Bu;8D0Bs5NM5o)XKPdQTt<#f zgF-6CrkwkoV$A7F>w-ETFk+O}RA-RPP6R&i3`9H<3-wh-e}gC zvtwo6-kI3RubVu}E(RvE;H0a;H2aQx&)tchW=x=SL%(B(CS2&Hh*@rI%YeVlvoZbd ziJ-~LrV;Y%0LFbD7$G-s7~rdlDv}C7$s2MXCepy+z=n}Xv)vQ-40$AvuiRM9WgX>o zA??jII_7-Vxgg4L8iS3&cwTf$bE)`>K>~wZIlRa$!MR10JFUz-^j&uyMkQ6KDUoSa zN+;MCcC(|m-FPF)Mznjkk^&V$67v>tv?;*`TjhYIPUa%c#Xo!7t`-O_pK&WyK1`I_g z08U)zJ4rMMD#cnKs6!9jNXG``@_pWd-O};Q9UuO%qbJ%l*`G=F&yY)1p3Ne(=rTys zhfq=ah%8T4k=|*LDfsAy7j^#>=^qRZcvD3DQ^Fse)KiEBX)F$o!IhJ75LKO$12@qw zF_vguX@Qe?v0fK3hC@1gjC62pM9O%|*0Mbv3VSPh1AnIUZ>)Y9J5qwLkfkO89n#>)*G^h*GquNpja}!M_nLh=h7OX!CV!4~i{7-y( zV}Jkb)?&}lV)N1NQhd!kl=6Q!#nNs?{y~Uo%CgwD7#8H~u4t@wK9-?{x?q{nI zt2MKLov%&-VT$-9kfEmZd(=A-kWi*$BNH>lmcGgUa3Z_WvyeSD0FvnJ-P@|ptjp0A z(^|AW6Ww+j(~jMizM}bv-evx__+^s|gxZ^`yCv=NOJ+Aa(6Zk*px6y0A7-f!_Cs8@ z1AA%&L8?JtK}8=o0M5atC$5AI8TQ#fOylYY~lPRShY? zI#A@?%KJG`1RIup@!uAHd5r=UxtH56#AOuZIK&p&XF=?%Y&4*)u2g~lra{j#4)Eo1 zSNH(oqFx}cKKUd%X;T>udt`q3JFIP<JHIrz1F$Gc+diW#AVw4f#q|Oc^|*Kx&Q( zu~B5@s5BFvHIK?t8sb?Z6M+UK@bzUOa9*E@Z2xMU4g>$LcOX^1wvx+kJu>WxSR}pI z(jXW7;ZnIF)MH*`&n$nFJ*6=;P2Ie;e9LT!iB|#|0K2?8sM4gWBO1#Dc(cry zrzm3LOMRg&QbIxqXNr$^9vza0*=vY8w z03!;;#1*ZkRQ)L&t7@?sRxZiTTyk`WZa99&HQ|6x?=~Obvf0sMU0`>x&)qB;?!E7h z6Vg0mf4qCER-#lIzemp{RI>B={;+Hs%1`C@=cRlO2GVIn0fCtCG7U;aD<%!|YMev* zDgAy*)SA=fWUvfC&S~UWY?VMb%CWlbC>27pX5`wFjSY#k#%nX{EIC6Gop37=V0JB{ zTFrCuoC33<2o<3Qu9=L_E^jBLnpQDF1`8qJMc*%^!=fF zrwQQ)vYC3MPi!Ly^hTN)<;o#|eVAKNx3Y2mfNDn3I)Kkzk!GC=;CP)>nx4(#Ss3{X zL}>6M2#1WJsvo*xbK8hqY08XL&^Bm9lERg#p5Dj}VHTe3=^X9f+*~<8Y)`&^DS_RV z9Q7G3B|scR-IyE2F+&|^UYS3C7O~oSO8TK*N-bKZOw{w(f>0d}RCuEc+RE{&%YDHt`mi9qsRgnyH*5e0~vJw25}cO2L7FQr2clIGyf@ z&7`sDJ9dQL4SwcZhf@o-Y|L7_bCGnr6_uP8i^Hy!%yFCOGQR_mc5ppxE!~;%X<}Tr z(pmO-=++3;8U^4fV&+iA`L;YvQ%DBjeg^}-(J{o3lwi(CITV}rv0)!8`B>7&+@Q46 zQMpD`Czu^zaCL~NyETM^I6rVmK!?&i!W;x%5kV@BQY3f?D2Y%Z$>S?LkN_>I_=<2F z0Vsm<6x%n2%45^{#l>W0s~mbFIXXF&8+uRQbqftUw~vOG{{hb650hgPm1u7J%=T>Q zp~>Y}l=EWZ(hXuK^kYQ$=1DJ^w**I%(d=--D8syUH(+)#U!n10VYOwu3ZZp@Q8s7>Glw4`dau$zOF@W%FzMldM>*aVU` zXc8O_AVl3Jd(CA6={t_kq35up{qP#pCYnf4orQXI)wLri#?B})Jp?5{*r&|QibiyH zoQ0uWay;Ve8|)7>?roSp*5dBy>klt1us(m^hAww#=)Qx z|C_J*3zWI%h;RgpfM~-g^;Ee+;bMvv$81M%l^jTS|Y_@kv4f3!^Fj~4o)h5vB~CTqg9UL(uT4Kf#z ztLS3;25u~VWblEl)erW5$k)4ZC|c`XT$y_PYK)vIYF~YPWd>fP7rcw`kyLx*Au}uSAp7*;7rFQ?e_JxIZ_Qf0euWAhs z4GjdNBV*&~usqc7yZP3OqWQ(+(63~Ve?j1Ou?`0%>CX5t2H6RW1gL^^IVSYtuA+Zr@kbxEMxk@g!pkC|Oj`?POQqf+xZ z+P9cUb3%dkFfAB-(j z*js&lhK`3)!71AlMBf=pf)CidDKuu zV%oB$tT#q2PHiuyazDU@e!q^YngQTa1(Cy8AYybZqQaS=3G6`@P= zP%0e)5Vt+b(TH-!HHTx<+$?%;sE6aWV{1>xMD2=eK(?dI1=VOogySc@v`GLJ<{VtO zzRe+AJm5?%$Gvn2&|xPxz<)9edoU0khCStke;e}&)o?HxtVMJ_I^R&Npqy&Fz?ghO zguZB0G%O5Cac!~wsGV4^ya;x}^lMJCcvgeI+-Cqx(5L`N}sRR}jj| z7?J0}jX;ijQK?)8r-)>Sgp~z+o6TC$=`?21KuxkL02h#B&c~>J7Zu53h{)Pwa4Q33 z#V;+^2Y77hnKi?Mj1cDF1jc8@_|jH$RZ=mWcC87ZS!Mu;Q$vM879BvH^*RNP4xsO( zPyj+*=O~s!v#K6V9pZ_5IrjQ(_QmBHb#y$IBK;O)YZR_K36KgubT|VV4juSc_=TIq z5JLI7oX3M;AUWdDi)8_IR|To8Yl@6|8%GVfQ8Tg~U_=4k3+zrTG%fQ>7dh_jB6pK6 zqIbkX)>^>)YEiV6XQ4IawXp2(mzx?yx8E#SIEK(VB8W%?8#vmP# zuE2~n&VZQJT9aZ`oA99teXOPr&w)suL4+hVgQbpyVnv9`k;BJFLK})kfHCkW@>)Nn z9&cd}e0_m^+0k`byrtQyVAH>MdB6o*qzC@Mf1(D}jLtv*dJ1i-xy9E8MaaD@JmC0F zp1URZz{uJS24bMwaDl_CD$j#t|WCsHMON6}mK1z0@|WRT6J% zXld>?8fw+0v!%Tc>};w<f1U#-!vRC9eiZseOL52t%uFl58SnP!80_z;b5g9yJ<&T>&|UGR)B|1;$g#%s-|xr zg-fw6rAya|TY-b4e&PS)6d*QA=XKt42D6B(0>GuCi*K6%9b|Owe}$|pM0Jz}L<@Fq z!{Pd}EMrNGble+hk7=aPOsZ)HW~*e+QiI7J)64->rlBk10oRShpC+`_Le^T!9Iqv8 z8vPssz*LEa2|q(ZIVbZ3CgE7msen$;8nn4C{oNi(`fx< zYYI+o@9H+s?5s|Do8*Eu+t}=}KQnggiR|VBM|Iksflwlu76TT;95fwTR%me4|BfY)h|>f;AXx=ZYS z>Dq-GUjlXBa++unh)#>2$Cqy4wI60-v)o{}#;xKFAdJyhnYJn&fG#c}$H%PjoETM3 zn!y5E)6#o-X^aASMC+Sspikg zxqcdgq^oK`_WXiOp5B83+bl4$Z#_J$3pv|ypqhfr;O29l4>oMCVvi%@{Dy3zV3U)4U1Ix@i+CVXm_+1c^6msY75oq;_POzZh2hdp zBjXMe6iwf(Wlo`umvHLrCcJD|vt1*4K=;2N6#&Mg;94MXuNf`+M2Eft8cCC+Hmt)A z>qD+$NC~MvJOBK1RP%`#0XdAA69<2eUnrh1Sz0SB{}eN*bFs65mL2I2bRXYz-}@II zTpYfw`@`v3_MWkiPagS)BYVH`jlH-`etey5goN)u?Mv7lJc9h1Y@$b;f068C;=IKb z&21qgRyqwV4$O&#&Te%OL!k74O$EDW%McFp#aMb zUNDTJEU^Pp6w>drvqAd=d_4y~nVF5%BCJtKua6*6>CoxzUQ5j=)hMZhq9f$plxgaC zetzlPe8(9~lmoGPCEld!{kr;xoUCMg)=Eoyw&kkDh5L@Q>`1MXn0wA&F@5UP^cCmt zxm;#E*h`;*o(KrH%cB7s`W<@hKIU<`b#|ZC<~Q2>ZX^-yzHz?|8m$O-Li8{;PK{sO zI#_ifw>{`botQ^-i*_WdbOungX<^QsBb$!?;Yb6K*wRZ1hd+e~cxN{|+A-Sg_O?=n z0%tty06&3X@Dh5Lc1Ub_WdFiIbZ5y^EH+pkZ8^T>!bd;$#A84Bm*Y@H{f`WXDq|yo z+LsTqv5Oa%iTIB6!VO{^dLb-4D$g3L(-2H>959c=9CC}2F6>51EsVQ&i|$pHKU{&^X@CczA2jh5usVCpTj5pl-g_Inv9cwp6lNo1v zv+r(uQ>i2P#rLrTpZ{gc&gM5CceizQ`dhARij}u+P5egHf6{KOnO*3TBUW=6;aG=Q z)*8!tr@10jY@(J`3?`*zB=HULQYp9%*p1I~9S;*yaUWoep@Bgf zoF>{KMc?kah10iYD<+27vv$0}Tn2uB*Nj0Cir?S%WM)j25!FIG`Vb44Gj%eJglt;Li z0%WQgV-JGiu)!0+2KP`1-%j;$mZ~W%R0AR1oL!ou8`7DLHLFq~r{0i);jTMvQ1vSP z5;b+=3eHxiU{WjPW{w@WtX6J$=bMkOR?E?P5FgYg%uiU@hJxe-O-|4fmf%Qgqo9I< z#7DxCFd7`SSqx^g9w*~!WbzDQSI(Xzr-uwp9<1YjE;b%N_|+o_rO6#+U&7Bl7H+ZK zd#|k}yrVqV?pkc@-NAN%1B=+9-ULbbop)*)Htp_y{`rj~rsG^*GPubfW6nat9@*j` z^=hYyv+%rTgVR$9m_j0I3*8RvL=i5iCSpe@H86+HICEAjYQuFViElP?h|WNY7=dl5 zcLCrj=L;(8zq?1RHRNaJnj3D-`4<+W zFwQA7uja|&d_q#tzYW_MV|=z@~sT2#~8ZB&Avu?w24{M-B)W?a40z z!j6rYj$R+{YDt+B#)iI;hPnH8G;10+mqI$}peSZa#-8oh4h|n1ZVQ@W)yJbcA)MjD^e0_DcoAKAkB zaHJ{fkl4e~w4rOdD}4X^OhMDo7WA&unvJ?FcBELW;OVaI4HTy9)u$`q0 z@FrgMOnL7b?b?+iNsLY^*MJah4tbBfEg+6#9Vh+lSH%8~1KZO8;e%!ggk#|FU(%?9svhf>?36I>zOy3I6Q+P6-H@taLtd(N)sm2^NGND7sd7d3 zu`*vuD)-{Wmo8w+&e9oP_ZbLwLr&*AgiCQEB<`607sSiCt@&7SYbo?!lP;rEdjBKF z!p5oAcgh!hHR#i|oZ#@$z`x7+k-vvi0sP3!34UZ$AF@lAWMgAd2u?FYR;5VB`xV|B z;`jK4@_ON$_{93_3vGgbn(1=t>q&pZRyYRz-6GtGY$*wBvx9OAz@{TaK;qnn2bowf zHXhG-;+c4(MzV}J&@-tRM3Y8;Yh3g=M}tVI$58#|HRwkL8*OYJkA&#*6dt0k^R&t9 zJ&DO>W8gnh$ywF`omMl#obi>-aj28SnIA0p8aGYnY%$y7Vs>mxzwaaA&0Dv|dk%~= zrpt#9-NM;ETKh7pB!oB9WLjG+ge zX#RnBV5raK?M0@oB%=~hTdIeP)qPi??f=*szeR3b!@J{m!sc0n#dqtaef}1 z%vFya07pb>)+Y^sF7oN}tvB^^+jy!8rs- z4dC$aQY|?TAa{U(+`HCSM{9?f<^-RIiOxw1$fL42jsA(y%ww08Kx{rttz>nTk3G}UpC29=nszf8kGyzY|YS-0Z zPoUI5Av95Ls4n?1Na>EUE6D=qI`L)?^Q_3^9$Pc+C}2y5mHffdZ?4$S@21cM1;^_y zegygT3L8P7TsBBV_AeuT<|mSWpIh`)(0<+l_T-A?9qAyXEnpL0glsAap%p;>nn^jl zDtRkYvMO(Dk|?BCc8hy3A6{XToHbQ-%w4rqy?$2}L}(lc;&at37Mn-s)Y(ir0el?L zl+P)uvOX)6CZgNPuI`65=@iY5l|q2+O44Wr>Axm-v=KUe8|EZLEDcOKR$+#`&ASbw za{y9i07=3ZjOb8e23OD&MAi&`Iw!qF;DH2(V?38&w!-n{TUPbF$jKombk!a7eyuVc z2m9@H3s;A><}TyEJ;l5qQz>x2Me7BBkn^Pkg|ghBCskrb1}%Y%lB?|bqX)@J|sL-&Z(ZLY==|4LhrxKBb=SZ;&^Mp(^_aP z2$@1=Tq}6ALP6{Gl*KK#7S(L#9CKW=`3J z%FY*LVqMfm3Q`&zgrJu90I_N?14~6482>0#f~DZZO&v;f3mu$LkoCYlJTg*`2%SGa zf2KX?xco1C)o_Tok-?xd1Z7*RLX|_It5%7g^1l;3AD?%C)Uj7etovkX;Ywd|8gJ^3Qz~N63uz-WF zDZ<g#Xp zTv0RYXu7bDlUPkar;uX^%l5ctO0!=hiB*Z}3dq_aZv{CDvSYrvuz=T*kB%u7KSwq# z*bJ1O9}g=wt$1l!HYRcg_q1pYuiCT!HP8Ir30}FGh!7HRA!(< zNmiMcEX@NpB-Q&-Vwq=1oAAI&X&WoGQ_Ig-W`stUJ33=%aLu^`Q5?-$`&>YuQYwVk z^8X-k136yZg(?LQ4JxS=jj9k|tx9IwBbpn_J6kCV!FH{ULTouaoLK(!YV^UdzlrZr{7u~3S^R!kV_^jF&?QPlG zH z*ThS_M=+lM6@N~9^>OKHeCEsiJ{}TIslA7c9vAO-;l`)ort#hhyw)#1kJl=k91q>7 z@N5W?5GUl|>I$z@K9lB9`OFi-U)1MN=gHwiMHWNDH)^D@G9Suk)7X^HK7l$NK7*PF zO1Y;+A&0JCM9it`AkI@j@_;CmA`holF)WsbZ6ihJEBm#i<5A9h(Wvm{Rc?dd-K`TKi`R z9=pES9-avBSJ+1s1bw%{da&_OK|T6Mze^o`mu&d8LGJ3sgiD?>vSl*1xtK3o(UA*Vz*qspoB9e-W_4t7ZRfbdC0vJ2Tf z|BeQH2i^So?~vT}?_h_ZxA^BpQ@Bdvj68Aq@B9m2c4Ly3`5e=nnukzEF}rp%0G7*Rl;iPUQhPTV;j&shQ{ z1D(F8=S~+vw36SwcHsspR8;zrU{{lmcmwC%HVWNx5=(<4%naBEd}c7=iUt#_8FdN^ zx2R;c&ms6rK0N<$B(qoG9>m2Bum@-3{@R<5!~5BjP>c>U#tY={e0d#KE0{ zm*bPZ{$+a)gUQWv0sKmqw`zU>F2aim5QO2lQ(Rw{!PqpRAv2t}1?OmhcD$$QMz^nY zqc;JjXf48!Mvu*CD?7BjB}KRA7I()j;g(ynlGC6i=42TAr)38oXl*(>@5)t2+mh=9 z^vDoeb|an1XYiFJo;im_joQmso?Si9F&AuJ1>F*-EqvS_EZ;kHR40{7DO`D?CsnQO z$lrY=vt#FM>YhVvcKHkJP^4{3W8;?gNTi*vZIOMYmX@}*mX=cAiTB;pzU&ZBHr;af zJ>BfNrLos{vKw0}9q0~FX=&L;*KIAGgM*zNgM%a|g79nUb#?%n*Y&iZg%Z0N97`C+ zX$R-AN_I)F|2Du596pTKrop`w!CGuUU7MqaESzp~jFLq83U&9wmvQZ(DR062Hd9aE z0y*A6?iW!)%1AcpRdxgqH)6 z;B)EAnzASc10J{FHyL$Wt%m81V3akx+-A{Pu~h7$NTAn?7cpUwSNvU=ef)hZZ+MNMOSXo@yuOMv)7jcZ28dg5wNE|bLbF0JB`n775@fttGw_a zb-@CiHs&VTiy!s`(rk7LpV$l(G@@`;4<1M%jkoOAD7{WbtOt<1ca>vhrU9pr_eL;y z_~I2!h1n6Sb{Kqy@F;qDfw6$cxKN{d(E&*$Qi@lQ);~A@%Ef}?1#q6=evzZ#V%O6J zL0Ul!6K_EsIm94~;M3x~1vgGiq~{yuBbD68K9KtP&u^bVbLNabQQP6qmAxu_U&{&d50|rk?7EE817`vEhq}Sz+s40$Lmo&C^qruP*LjpS9+;IQ`PyiBiY^rZuVO|f+{mc&^dEjf*QfD2<7gDgQ1nis|JVIb7?WJ1 zsG0(R_aw{;vEKiQ(&kzo?Or9sVmjo8E{#XJ#!JQVt_ZHh60TzOavm)9=;8Lh`AwP3 zrgl)T8bq?0$>u65b_Qj()eG>b{B^;H_oFCdj`yR&~C!gS9St4?D z+3o6KX9RokxW?$wAg^TfxQ!YY2ZjOauf(q@GKdlq9zj~=X<8vSQgkI^eN-k!L7;9| z4|{a{p}`OM(NoGFXm4-#KQQp{n0WFt%b)zxmOuR9dwY6LJo1NIzQhhbi8YmB>|fq5 z5B(1z18vZA64*rqQH$|NTmyi88RiN^*m{GNne>uHQ`rxk7nqnT*k%=iENu zvu9CqHGdW+5-9;Uov@?~w9C;Fd(ZMB`-|oLv17+r=TUawb=TouRC&U8!_QIW?RL5s z@zs^*YkTaGe1cyBf4A|!!@^$ev4{6dc)p5*mFQEcA03KTQ;^p?pDDFWw;X7Zko0;zQYx^40*wtLrO0&TKm-IuNq^Z(utqtD-%BGy_Wkx70G>7p2aty;RM7p><4sqR zhKk8#^h!q3(Il?WD(8VxWGIY3jnH)glma*e6#^WEDLp3oy(PHw52P#PeTcUBki&+2SPg0dZJlnqa!|x->%k z5?qF!%l()aZ#m&%r#)=H2PYTv2xw(zJb-*CAip4v5z7upg%FJhQRWeCu*@74YefuG zf$({#UC6MCWWM<9(gm>kA`vr>J~=Av1N8l^bwCo1wvCLVsSs9TFE317Hj9Rtz?p*w^T>K9xmUpyK_t1`<8zcZO?g+?%8w9o9&1$|LA>f<<8xAh-V75 zyQ{Mgc3iVJ&{y8xe(d=1W9{3w^al1`)A8VJ_3m1M#zD0JZ;9JQpAdvDo;W3BR31&l z=uoYO<%mj&st|NHhnVT47HnR!ndg_2d*5WiqbBP3@a~{)z6sodfagmMb^*UY|0!W4`5=lU-nd$cML# z51PXPXDYw-DiGOi&AZLZe;ZD^jgsiG#IpZK)a{-gCw^$ky>I4Rk)6VOP9`Xljx&L$ z;F~cPwSok|5W>T7o+55AwP8i_tuvC4o-uTXtB$IYYVVR7Y6s9|HXm!FHEWv-2u^!A zwn{Il0B4kbvq~Bi9b>>)LI?yp--(My=|!Nj@hHV0Dl`ilufV!inG(FBv)I8@m%WtGF|{m|Wib-=AeCAv8f^xJt)A)o?Lf({lJAP~?^h+AjD zV&D0|#h~Lt032^lP&LuCDF6I8KFAlM%n?#VsIC5%xv8@+c)}8kN6emlDr~qba%{?I z)tuV@ch5YvHU0n7cINR_mskG(F4=RF+?(y*n?1QV8zBiKH)Mya0)|DlfUH53YRA@* z+SdN)g0;)EQ)hlZJDt%^ovBj_wpMLrtwJ|yi&`lbWe*9miXi)DrzrRLKIeOH5)j+@ zS)Obg8?5ICjoq7EB>g>^cLQxE6sDF%NWdAe_&i zX|Brd!WOQJt?xFPzdig1!>!@A&rS|Wm^7KD3e7HKxoWoD6Dx;Tmi1`x&HH#OuPb+F>F$6SxIOSk*4N2C`;lT0(sQWv2{2r~Eg`<7w8_<7U!CRe9$p<<T-j$VQl;m@9ZbEYGEYAlo(?Hcw`HD(-Pl;Pa`2BKJD{RxCk{dX{ zBQM_NNXIHCJGyx>T6M_fqFUco`Wk8i$ywg1fx6Kie{seg3vw!pJfAHH)s`g}<}8_7 zKJAv_!-nNmmA22ceDO&sad#xU3rli*X>s#;;45cbVoGY>`h}y^Ps?vq z@=mxINA3th<>nc2-8__R3}a5yQ=OMP%WuTl6qm*^A8eM2U)}=fKgE%P!GWpvwc=%u zrkq@gZsBA{rwpvp*}jC{ifpsDBZm#mw zS9KMaWj1*;ay;otu0Yeorm+t%nOA)G{KEMUe06M5O^GkrRTvzhI*>cgEZPC?I1A^d zPEYn`aT&eLBJp-oN=BA@wj9RB#+`j1y80HoTZ-Y=!1mhP0-qWizP&N$^CFg)+uhB- zq+|xh%x$__YW`8Kb5F3Yayz?igqTCGqx{Ngp+e&hxjRDp0~AblI#Pu7z7VaBv};g? zD*fG_Zll=Oo!OmG5qThw25oD3(LmL zZ+YNr*0_i6Z=T)B6q{*`k6bcSs9RH+b1PevW+E+hf`wMOoIN#3pYvOkU?*^iXzDDe zkdF-S`5?Mi$?TynY@!>&X2HKSjvJQw`J&oXGpD+(!u(%XzgJxrC;cgz!yo!ymh?Rn z&|ARx7r9MQSEf0zcOcx2&h)TQrmR9`YDL!XHviep9__z(FLT>d8LEbJd|mF;)VV3~ z**xGBUla(;HR7`w(8b4>`+|X#cz2O)K4|Qr=RLm2_u((zsiuJ^z#c=oDQTqhDO{}?J3Urc&dNo=*1t;t7`O(YA72$v$65EtXyA9ptPD^bBrZ;Nc?v3W z3##(c?oP@N)f840WTCrj-lmG$m5kC8tcbR!w^IIxQU1B}o0o}`rTyesz=3cX+Vgj( zmuAVyZN1aIq(Hj^1+!BV<1(^l+e2=jJu5dM=SE)(so`2W%A;7kF3*UToXweR^KrUE za%WMctlmba;Bw54>M_}$FK)lRdD)jsI_IwQHWl1Fw(XY2(WzOkt!DqId1C_q=WFs> z!aumv=S-i~J&tVxCI?t=HaF9TRmje1xs!ncp!+VR3&Rbg(TiwoaoN(wafVorks-Pc zKB#nb)J$jKtZuj{ElG0)y9=wbx=Z3maF2bZzQsuCzRhQ(lyZD+c8YE@XE$)GlR_H( z-#6@JHYL^rlxl}!;PicmG;`Y4M{D+qOO2C8ddqIPYs{pZ^0Pxl6DM(*ZSkGAj?Qs# zLa4~(Hpxn-k>>v0QC4X%yr6m1f}1NCDz%&bua^YBP+pdo&%LqZT03q!!;8G-731#e z9CyzxrFRGJs%_~h%&5G%Ve+h*m>l`$id@!v6}{XSSR1c(dAv*;$ID3`uaQ1I)y=3c z*=MA2{X&{QeO5Bp1bDNxs+aB-62IIdlK@-w1riiq?hH6OnVm&mDQj{&xw$;6F28wP zW%@swPyaa4!)uHcNfw*Onx}_$-+gy~@i2c%yzE)Ml{J6aJCtKogmcoTyS+{oZYAVq z@FZMnbgVO^1(bJhoC;h_SZeZg%dF^})#Us9h*6_PeBKwjJ*{l?oF=p8>XE6pu<%@P zb!XF@(PgxMBPefu*lac<<1%C3+Kiwn=dZ&JGB_^i{xX$y$@JuC1K0g2nj;?@+C&|} zK=EwiPv)e$oy(Rl!w4Ul8J(V-;svyL@#MxEDT&2m~DE)z7r zG2`Lcwg2)@58iU`go^q(Up8xQn>q8gs}rV8pFYjp@{N0CZ2V66CP|bvFsk5b zufn|P8Pn6;av-^|;8TU>)IwJHMig2MF>>78m0OUXkeiS<+hxwqNKMaRe8IqiX^v?3 zgCV^pRpwb`ACR>0&R|}0z&WHqcF1`bkNH~HZA*)oLH%6UJvS9Cy{(ITjAz8po%`O^ zNb{W&>*9a*v-tW6cQ%{mdvoW;n?DozM@25%IlML0V%#1cnV&yudP_@IAiX;+sXMD} zTAMkh&8+IKuIqLO%s^{P_3c%OBWLFqrN+3BuPEc=*%gJJl9nlTZMS7- zPid{6(o*6ntjM{C3wAT=8j6FNaZAnk{PvNhvnQ92AJdc*@Qv=8QPcIY(FG%i4I5c7 z`eR)+(k9MP-z3Yx z&_&ouU_EZVN?luZKlf(XN51a(AHaWy`q#`cj70lLgk?$S@i(j0fA}23j`|xZKR145 zFuM<1XpTcO+Wr=C568tml*k{9<%X`#nh8F`WObHTY>e0|HV$9TUnMBt22NRD6Q6D4 zUr8_EF+_{SC~4GrI*o_(>JpFf3E~;p?U7ZU7B|hZ3#Xd4$63a7%jpIa!4RMAvkqNKtejU z;q);itg{!yK0M9QNp5L?T@lVU5J`hm&&s;+Ymx@zYg8MW+pLqvxeFW zQhNI^li{M9BCj8Ehcw1FVF=yP*@jUR&Ovxv8QTeU2tL5v5gh(n-Zk9o$dhOvHvWL+ zNDSF+9c7u*%=A`ODIbmhZQWwdvP-a~u5hL$>qeH|nPpYUYyv$<-ixOLskaw+#LEmD z53?u{wjVa>T#eb9*Ppl5tk+-BZgUowRBsu*beeTb?W%T(Cs^HJ&eLc?_V^6j3uzBOfA7(8pZv+>o$@OPeAmK>?XMCk+3!A-7{>nxZcFL|j(%BIdk+7+?#6!$n=(y(hQ@)u4cg|tYuMeX`Sw6A|IO3O~j z+P1;scO$+lJ`vlm_Lp#4btlAj#^|Y5hA@wofe-OtMRnoqaoZA3s~rp@W&ESUtb9mq z+O}NPqcxKDA(7l5y{jLH#lb$h+QA?nj$_$?j-FZ?3&UQu@I;NKm1zE2m^FVN3v-Sg zaktzsjMEmp5^D?M9)DuF(-x$x%a={G(YAo~Si^eSdWE(i$eesa-0RRuy~C=XJs1B< z+LAStq=dK?FE7V`5B^|@NPF;6VOAoy)|1}Q1dU|; zkVtMI|LR*}^=iu?eJlbeKdi5--mBPnl^FMUWN}3F+mC)9a{O->|JNfAsK4aLLd}mV zbCi>>njg^fhMeSgm09lO>p*^wi~5sMlCztl{O#FMf7F2g>TUQlzGn_f>i}&7;~u}) z$*08JQf&h(qxp0_-RmEZwt?@5lk+MEn@cJG*VC?`O>o+p++k2!Rt;Ct3S&|F4d_>O z#qx>rk~bJ6);!%P%*szinetu9>Z$Dd)e`QM`|JEE;pk_S_KBq2YCk9L@!v-6;Vn*H zdbLmFJXZ&;(|;PIeSJ%mmSZ9A!fX3az3{zD?a|@8Vr$G6E{D@xPXDQtu1aicqSSq> z2@@C+W);`pIOY7MaGHBC%+Nm9W$kkf%CvHSEPq|4+DT()??5EPu@Cy$L*iIXx5bGA z8+8u`85+kG!W7zK6HZ#5dLU~8HJXC!`hr&pQ!*sX8oFOjJjcRm1r;|8gDsgg z~H2iv7 zy3XIRC7mY|-8y~PxW^gB&=a&0N@}zZ8#@znJ>BcHtJ+`T^mK6KV0TyQhwEuq+^P9% zTZtvk9_glQ&w^Y}zlwU?>3^{76dVi^+gAPII1=Ml8Zt1W)Z127NfYwe=?z0-k@oUK za;|F0Z><8Aeiwio#SDeC`c^>^9}9Y<(6&~ZWB*-#6emYv-^K)x70PV$J zi(~aYQTo)pLHbw(18I=5?&#$yM(SGsr`0wqf7*)yfo?#*h7#(O^Q+;siV+_QLK?J> zaGX4;Fgm_CG|#0kuuAi)!@PM&-irS_QU5Ot=AqX04{G`BU_>r;eXLGr4o34<$7FGj z8}IT}ayPYgtd7YhN^d~z*crb`{prxYZoCDpj*2gblRGC~GlV0(*VC^sc0%v8z^%7I zZKY4)kcdQ}T`|eC>%*)v))B_h(p%xQ&cR?ZRwURB!mKpji^WsgIz{7|^ta+!Z5)e* zadi%ciAKVwfp{dpo%BC77$#xbJdKC$s19PUOV41KH3m5pO%LZ7CUjpPOv*obXi1*i z>x-@_|M+X&Zm*v_)E1zROOiad*PBe9khd!a`it*H{j=0RTK?hls^f1QQUAgIVsF&{ zvifWJSKIld*p9v4_@??Z5CsB7_u^I z9J3O=I%CopeL~#UIZ^5>@;@U>FGc&VMst&n9YzTuJg=wQN(V}; z+BGVqbWKq@r{604oIc-6pNm>F^E`epy*ShI#p1r6b}P9cJd=F6O6ZO9bkUxtX!@N# zz)J_BJp04R8EM-0NssZ&zK(Y5PolI(Sygi>ZCZ@hX|Iq~+f32xKcZJ8u*^WIHidE) z#wn}U(xTIu4yCJ%Nq-8SoM?&7<;1J3P8~Lo{!5a6sw8FxWAQt6u;|L6-6~7hq(9x4 ztAw%iJ7rktoO1G#an{LyGjb-J+|h=~o9XS2sDtHdkbbMt=cLQbYj0IzXG+4cl@PWi zbr7~?RK`8Vi7)21bRNU?0-I7h>M$6mUKkO%F|EvF2(7_Ou78VG<}o~LI1~F~BO{zlM6QnMu~@Wh+&B#~j}eXI%DV7Ch#_)GopY^@ zWF8|L=KXcuJ+WB+Y8aWvh=w`0Zu0Hdgo)=(^VQTB%nwLj*uS=Z%y06-nV&Ec`2Jhx zyXky?LB9{oUqmj&eMah====p7Y>KngU(tTbrMN}W@61$44EF8%-I>qWLHJP)e{xj5 zGOtbOmA`~q`%#zT#z(_Ty(JW64HVJ&4dmNTz2?ks@YUL(UkBznKH@vIoa*d0>}y~g zZB)cP_JLX=NyyMyikH>}LR1U`ZNZJ{WmN6Z|7u;J?Qhe|$lBw~6#w_SK&KNRI;Osn zJTkJ5(!cvZp_fs0l>X|v!05lpUq;nY`b#&W7d!kVdX4EvM%7XJL+b()Kg9ofdKpy@ z(%&*jPe1umT)XDKjHe}cM-tDFvCx2h)S$DNeGC~BMJ~nXs(m=)YbfGeY5~#qlkf4- z?=m(L4p;PhtRHP*`aYFBz_CKL_ z`f=1&GDkjnkrP9-P8=1vaU4!RE}D;Tt(!Iw>aWP<^y8d(N+;j>KZ@sXhl%#ZhUm-b z$2svNEdKi&#Pi`WPCqW1o)6Y7xF;4W5_$jowCM@tJ97ZO%llO_zxV!U zKjQoA?&D2!!9bm>VYr{yktNaTFR(6ZC600$|A994 zdcICS)Zuz%-RO=eSEU!32htb!UB;CD^xKl-Tpb6wRX`!}2^aN74o+Q;?U?mcMTZ06Dj zqov2LOk;K=WX4Cf8l2dAA>K&m$crc2;N`WgoDA&eeNL||!{@|S-A6Sy{x&7kpAqj* z_tyt=P4n+=%JrwwP}|(_5wJ6plxH*!&Zib^U<1phaEdI?aSSoRlWf%g(X4;HaVy&{ z*c+*PzXqNrVv$pY>#MHQljWL@zYFf`xT{v@NB~L+eARsXi8ujwcGp1X`Wu?XTwCUExXwg{Zm0{X~B@63B~2*#X(LrbAm4@cINa&#O8;#&C>gK`XYZ^ z7m!K#fpVnuT8^NnzfE69)~d|N*VhH|l@Qf_BwraRIed4o3shgr_g3~AO8Id3es_L! z{KI-=sSiri^2f@OBSVySpg$oY9Nzuw0y3{3lR5Gy?D`kjHR~nDzakzM|JBv>3mKJN zur9F=}k<##_s=P>Vushvi+6qYwA=kA98&&D%b7KP5C00Y|4|zJF?}drgMfy zwzy^q42mbOz-47-=VT|_nb$}tE7ma)KP;n{#dqH|GXAFX!KojT(X3n3t}=$KHuHAM zRR*_J)P!@qxurbPnJA|Z64MGkla-RoRfa}={|+9mp~Uvryzbt$wNDBW`$C7*2no2g z2*(Ofae8rr$5oh@Q(iaj!^NhpA~ioX#haR4Qdm^b{x3rd4R&*pb}?UVRmb(_oxh6O zs;p_`=~!Ks0;C>~oPxGM+cl*%9(gHB%N)RUzPw31+d{QRcj+`w= zbRf~&6)1+uoi5QmN{=wh_RBn^Ax1DbS*Q zeKqCLi`{=KYWEA)Ycb?3!C8G5QeIt=Lj`*Ehdj)ios*U68Ic-JotC;PH7+$hJ~unZ z$jmBEs!tljQOrCC*l1?Ao> zSD80W3h2$A%Iaa+rNOeitfHjs(yV1#K%IIcCTDjzHwPv0uvdnM3t3u3GAWQMXAysS z?npP&$HY&Kza#$n_}|3G$ERxPOiIs0!XfoX&*p*Bd7XI0Jbdc?hik-}DP{9|@v3fA zHb=aWm+vm+Z7UA?Zjz@KZ=>e=Oi_Y6FX5W<*)UK*<(SD3-BdcOR`hFDU{T2$67QgsAM$lkIqr4P3s($c_*!d z%uyM6L7k(L>HC3sFD;)+XFRevN_X8{mNVxiWmDq|xEq&L&clx8I+;yB&%(g#g%U^V?=+I05Rq5%!J~)Iv%cJyi(~?6k?YZsIa@}F9 zaLRkEJ-3^p{;%Laq;1wd?{hL1Ga7qj4EB2DzQ}U+Ze3*W)+)O!x_4_rxZbBXcn@sO z^7-@g1~zX^_21#QM*GcTf4$%Gb2}j0z3O+-i+hRnCTd^lbc7B=p9oh=uL`jiqpe)vP({GkK^~h%N@G>epTKEh3=hj7DZJy zxy2jBcD+4@J!&R5lu(b+Yv0AbH|H3EWH0}+yor?`|9Rc-?DTKl%m9tNcEvj5Le_1zmU^-zS47YH_=7n{>g0YxcKHj1GD}0?fVVR@In=;uMYe(gfJ;c%{ zL=NUYzN>3eTH?pHLuaOUI0h8s9its0vlB*m8?$BUM>~+{|4*!k&QrT;U=Qn%{v-Y& z{8^tBn{s-OLXUmkBlN73e03;2{x=D|y?!V?=ix5J1>|fq^FDr|C!FN-C&}jpn$Ny) zs$tpndL0YWu^*A_si&3E&4>$rSNC)4#RqTx7GdsVOqQl?ThSWs+ZDq|7MnUzQr@o`C~?i&Nxu!++RgZXP(y?!~Xlax)R;6ru9q$ z^iOM>Jn}UYS2+PdXmz5$m?-q*ga|#+iihjRezsKg?LUyUc zpCwKS?W}+@>!y8(e)u=?UFMblIU1g7TjqUb|5Ice@(u256Zxck4cXuJ5#OWpzRWv@ zhV0{!_(u_b=)7ad8r;t#-$&~Af&E>`H*{YQ6qZ{h7)<}r{XN1VqTdJ8KXjjue1A{B z$L1YF_R#%4!arHR52XK^{XG)?2l_oW?-=@s?>g@&=^wH_DWMAqeNFm@tW(PON&0<+^!s4? zZ~WbvcXi6c`q;dSQyyeasiev&1(ca?Y((x>VXv3gOOF}7#6VqF;`bz)R58$ugoe8f zsJkflW+Hqfm!Tm^C#|kaA)KuE{9Jm`jI zM85qgwkChdc-XLt4Re*T$=GJt&lA6%O*LGlt`b*{JFX;dM4bJpxQFAcxU6D^t4k8> z|4MkCsSZzu%ZxBGygMU~x@M?NvTIcXZd(@+pthqvJ%5 zbe^-$QTJwX4zGs#b&l~F%@<#AedR+)viP0X;5k zIM;I5*C$W<`dzK9cYS@*mvtoO*vozMIjz*A<_Vm|tp-x4ac2 z3p|C-x{LF2Gm8q%d6T|=XKU-7ME4JOwY1#z5BY`J+4=d|*@ai%_vRL6=j0V1EAPzi z@Q$fWD)3|!Bv*{~jn3>m*pZ$csLQVypJ$p$Jn9y2UwyVMHHAB+ax#)kGjDu#!H7V1 zqFL+9^_2R3Sq0Ljcq11Qo;1H>RGM^duWqHT_L!d}XDZFlS`W(K<`Vk=zZ1E4!Zd#G31_Eg7?V5Ql%dWfXhzC}OdXx1wfOLR;0ju~$bnPR z2f}&ju#cAj@e<(KKWtj}-y6^GO8U1azw>L#%tOXEz<)HpXc}wp{rEj|Zc5|N+l?vU z$BaoJ52J%O8}+8Srl`5%reyxA;-J4l+8C=C$)*){y>R^4>lb$Z{;l_uzqjHhpP6KQ z$BZ++$zX+|18- z{%$8k72Jm74&V;)+fO$zo9`+7r1Q6pKZmR2u4{0>p%*3UpMUhqBiLNc*T*q9Ao`!j zwZyfb&(X7uPXE!t^5_(>9>vz%2Rw}!zw=O%+%wF9xn@uFoT~GX6fZ)`eQ>eEf1D^E z3=%sJ&q*{-fY-VP&LKuGk!$jBUgN{TuQ_c=*&JG&y?O_|b5C7mv^eu{QLHfY5NcyZ zrOeV+R&egxJIY&DnV8$y&@74Ya%Ek***v5On{SugJFa6!LvByUtr;bSx$!;yo^iD; zv$=s~?4pjF7nk&;H&#rV=MJ`3RfIkEJ=arzq2v?eM$Z_T-IG?-P!0ngFt;AuyxHXo z`i3>8WTua=Z5lVs(_^i>KA?H2tZiy-?Uc5%vbHI;wNu;5u0EccnVIVHc-Cg7q`5Ow z(lfr2?a9r`PjI_=7cke8J+rLduC@b7@##J*Bdf@t?as<_XZwq?GI$g$J}JP*`l^)7 zjC3xr%Sg%$gl9LI!K-KQm|<}Y%zVL{${EIwb&R=td_`umb=>{Igt)}T^Q*=;7Urd2 zeelEd!eY#vrmKCXd&JmbyiOQrUY%eiO*vcHSm?@%yDc#%f7H~Fxy}8-Js%ESH8f?U z)a`MldOW1=`)L_j+~A+}U~Vuqm|pHp$zh@(n9d)cs4W>$YGq}_r3I3Hk`zeeM76~= z1hqex1ZAYT=w2jZ{d3I?)Gtn(&}mFHWCUycwfg`6vB7Nk|C(>si2omoOE)GkzWFA7 z6z5K{4D=`Gp^A+FwR#ONw>28g3I82_Bq6^de^mbX{Co1hk)P0+m~SR0thm>z=H*gv{K`ip+a5spaxrUYOz1M3cXWyG`C8Uo^ zzbD;JNE?-QPnw;a+L~%5C$%P7ollH>W~6oR$j^`b)<}C~I3>L+Wu!T>{^3x2SN)f( z9<8#fUNkqY9bVtX?}x*Is+z7Rs-CH`?ydTK)winbDh*I&Rs|)%mxGT6tswN_(wh3N zv|wS-`XFdN5qu_S-5dOT@LNGUsPsWIIO@g7!>s?ccO{PEs>=rX%axYZrvNlTxVQyMK1HFu2U}Si!O7r%S?5d&$xPBR;%k? zmz5-c*C*YPgkH_|<4NYDNxw<5ijvGzN#+-m%*jdSGfBN%dYjb3Get>~i57X-nCCaV zi@a9nH1EUSZ+p*r;|_Yyd95{Gvzymdy<@%BdawC8?~lAzqSx!SQoKgSh>S%UcIU$x zt1=E`*q)4=GOU9c=BG1$D9;RY7uk-CaHsiHhIvnhnV8X>VWnmmDI-#>&Tpq|O0h~) z%yTK`S5r76Z5~N6*QfB#p6TTpP9v`MZQkciaQnGMUUFs}mpKe?YH5;;XdT(!b!U?q z=H)o6v}q(aS~i(xlX7}MOo9usWTG3>EwaHxE^qD4WW|MhKllfSa+2rI` zW>;d9x2dwpZsJxNBh2;lUF*v>m+dUGe^h3cHTDlThreis!>*Ewu1Uk^54Sqh!wBbk z3%Z^ezH#_#!|mY@r)PBy52vJc4KIGtGG1svzL6sp!A+fzsexN4M9Sw3>ihOlG`+xg>>f7o&<%^r_yU+I}pPlNf z@mc$P@A|Aqe9!n^^Vt)8_xh|BpIJ?R&1a_iG7`Bm63wJU z)0KD+>se`LV_L?|^7>YZXOSna^I^}oJwNaq@Wh#(n>^M*&pD6vLyy_*S?samJYzl9 z-JYjB>ph#pZJs!V~?;`P_3|_(ATm=z55wp@t~5Qz-5S8fx@<8$96NSkqX;mA7zwV5>Zq-N4niA|3xE zicfP7$o_`Dh8lrSzrM8r8Wn#aDMCH)hXz~N;~o@CxJ1*ae50h2=7GPJ9?nPvNC^4u z-s(ux^T4NT)I%PG`7~*f%X#VV3J3m~&aZ_%&VQ5cuFVf)*&O}Bog?n3|3`lNL}6j! z)#uI7)j#s{e4)aBh~Ll5rmI`{`B|X@pEQSE-F0=Hp!NB}!VmtAA)@*fL%dzQ&B=e0 zgb^0@@|Ax#%p6%4aFsq{B$(?W=Z$2}avk9@m|%p768S0mp8w+RPpN94EQzQ}LD{SwMLsCY!s9v3+VJ{UO!E{nVe zJ}IH><%%nWr~S0LpHuoZV5;F_1tAsLj)KD!8x%u|qatVVZ$_$AqXnL+Mk{+iQVEk` zq*|LJm%tso0G^6Ga6lfxLqcyI5jRrp1}6!AiLlCaicZhCMbx%eDapJPgSO88r61WD0FaFWDAT96HGp97y1{%Bipg~Wok z#r>RcvsVc>d$opIqdsf#Nh7_lfEDOAjr0oEM*bCSCwJ12|0nE)cs25$;5MPe27UwX zLRV>|;sUsjT^VVlg0RR;D5N?EE<@Thq#_hj2|lg378*CP90Qv<+3ZG#m%(;;x{VI? z=|p30V!vp((cXLDtE9+H?1H-@eW1kdCiX+%eq?o92Ne$q2Q(=(M}?<#3VGc2IP$}d z-uP-i$ee^52~UD6BrfzL{;L(&63Sx)ja;xI@-{e3v6eePJy^nFFr+vNo*q*1Td)Og z9@6p)u#MO~yi=PDc0^tTJNfajMh05jgfn*Q2KNgev_~x10DQ=O@i{7Ctz(hz8Xj`I z7n~$~u;Cwp4~m5LlfuVduDC)t+fS?eIpIKx;6{oh)Ef0!3(rh)d^=bXc?TS(SPNw) z={gRE6q~sTJd?6k0JbqI$RsV9{O{l<>P*s-1TH6~ndHkKz-_{l+}Q%|B3+r}i@5g- zH&RDjluCH==7kqLqW(vPCogz-j7-va8k{8ju^G5wGlDB5E-Xjf&q*kImGGg=3gsI0 zSqq;+wc$dw;X=~#9zG$(=EyqSE!bEgxpNw9qtq0VFMUQK5<-cDf`^0>*>Iz6zM|(- z;B)G;O1`2`@n3^a08JhTrR)SW-T+oDJ`#ICV-K*}b{2PYWG^T(1d!nX*oL(Pu=#$l zgPjrqYK%kR^2mOJl_e}cpf(>sx9~)_r@>v+W&te!ZE&A(Q27HYe*pQ3MJ+#|sR&^I z@W+ZSfu|^O0qT$oMu5~2BliCe_@wYh+kz`Z2DB}1Np%1#f+wjKdQG*x7M?*aBisn4 zQac5CnfX=FL(T@ti3~76EJ6Mk@>8KS!xU@DyCC|JP$9)pl*AzVc?FajK8Sw)07{J- z#OiXv4qA<%mY|>!M&=;*3Z4gVRqRrns5nD$rsD0i6G3)3UIFK*Jaf@u(3q$3&R1y{ zsDBUjM$lNOUl*wii#6W+l=6N`N6=Uj`5m|%s|y-igul66Br$i8;-I+;-=Mi0y#>v^ zk`}XiadaMm1vtA-MLF2|PSYlnsklaJ*_kNPjdhRd<5%SO4m0}0EK@Cew8Y~^MjR#c7* z7mW(yJqfz;mz{4}U>TaJAUDr}LG`I1mI|z0u$H^ISV>iPNO2T3Oa<+A2H2|DPAh7mxRghDx^^#MUng57G zCza&LaWGYVT-2h>b}MF5Cs%S6YCjktMU~VBXTVytS4pWCpJsBo5_>)ewkfs~Blj** zhg4GDFMy(rO00SxI96j^MCqzB zrFl|fH!qUol~%g=SOwx^l?Vr`RAMBr#pf}J%X$);D$;l!OeL-=?ClchA*ZV3brUd1 z-c?bGkAcG!Yt^Sg-66#mVyq%9=fE(UsnQZ!MgEG9l+Y?;BGy%9%upZ6-zv)HMQ{#! zt1{-QB=Z#KQ|DKa%OcxC{VFzGMJ@}6`&B}AR^ygjuF{fNW$wf_s>o&57|3P9qM0LL zADXNpXWs-b2{-c!+Njc!SVb8`Le)k!IsTqejUL_wJ@j*`d1QVwSV)li*Hf_NuX* z9pGMaxElTJ2gUxY(N7ZYLWaMP-3YimXqK`?5Y+EzhKmnYiGeU%4Quk*e=jR%TkBl-C!B^Tu0uW0fW@x zb>!VaaF}8(BZxZkPJBX&QiIizcbTA!iRx&HykG})OC9x?_=nMa9XTj?t74bpMC_rC zyc7SKinn74by)jpQ0lZgba)P&7ugBUr>&_&pBKR%m04`Qj+!kEyf5+^xSToJI^#9^ zV|C>0QKQa`qiwA-6BM_rkF-Q})OD|b(jL`O3VOl4)Y5h6?F6__K`jrC}f!v@qI?}Cf4kb3kfGTcXPSx+7EZ{U*1l5~#c4pd!l8}Q(Lk@@ZBSaA25oT~w8d$_dWG9qa=8Kh2+d-wr~%DLs3pp6 zxr9RIcR^`!8nne}K-&GdrNwEW#d!ym7N>z02TIB#KD0HY1q~brWn|i@wQHlMtC4iQ zi;pMr446rOuaUHD2Wzp4Mr4++Qd>46XCF8g9X4VQ!sk}SE-a*xHbs19D9%LYM%EdU z!FjYGjl7j7?nTONG1k>c?w?Dx^6T(wquuPK7k5LYh+{ z&8d*)R7i6wq`iU=>&|Jsl)adghBS{tnnxk(#y-}8r6&;5ya;JtgfuTgninC>i;(6* zlSi>T$<6OZFiGuz6s4A#YbwY zCNzH$l-g+&Idv42@-m9A2f%*H{wPz%{>&3m%9=^zJD`i&shRp}2k2o0(Tt_71q;dd zW?FXiW3#5lT*#us(kHM_e^!qQupoDW6iVyQMH`qv9n@?l(OxvuD}YjKxn^oP zG=Rou0<`m1(^>SEn360Aj8|Zd)4P6Hq(OjUPR+5NC0Mjo}2r~APmx@{#-&w;}fYa`F%Za|-{Sh8R{7h zGdScaGX=

=H*TglTs;H`>XiW3#5lOwIqm?{;7nGK$l~n&4 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%0A=zpcGuB}msU!gjVj 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/calaos_content-bold.ttf b/data/themes/default/fonts/calaos_content-bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..49122c9e7297351b23b7ceef42c90c380e4bfc05 GIT binary patch literal 444304 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%0DI%Ier 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

6T1+ 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/calaos_content-oblique.ttf b/data/themes/default/fonts/calaos_content-oblique.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1bbc769015a89d4193e66d89c659b192a3f36361 GIT binary patch literal 465900 zcmeFad0-U9);C<$)!nmX5@xcnXPrPG>?9CC1jG>bEd&gE!V=c7gs=-DARr*S2muk1 zUBrlNA|e7Jf+C233L>%x5dkp*$@F}`Iz7Rt*Z1|_=f2-xPnvV;Om(fNPMxYcRn;)g z7z+YYS8E?PN>@GuF6b^G=N_So;?>u3D>Bye zYos?cW5j^W>x1teVyt%}!p|9yK57KB;9yjb!_{65b#ccp>-)BF86 z=tGrh(^R~#I}jd@3Z-h{w=8e;z|8D%vr=pW@H>sM7P&+EXAR3$Zm(zBXDD;X=^jOhb= zF!uJe5n265ELx~UF-xh7V3-4OB=^|CZU+={-;2Ed*p+V(f^Ubbup}mwT*j4ml#f9j zRt|&yL^%rjnDQCu&y|y)zf?|v{z~~8^f$^kpubhFfWE5afxfBy3OZlO2mPDkWkN84 z3E1pbZU;sd0@nt|=PQ z(S(M$npLxcwrNSAn`_NMx6oRGZl!euovfvT?yB_y-P>}Jamx>uYfM>EIDbbiOU^MW&vDbAbDo1lMm{>X&$mJ{4?{^k-)aj7nFz@@oLgD&H$3_8{o%Y>_n zs|x6U%2Eep^&i5r2KMih#ik5RA0ENx4o%M<#&U)Y0ezfOVqP!Ol4(i` z9DYorGccuX>%<7=?3COTm_jJXTYVhnkH3n?Mk_ImRbqO}PHiJtrPhSo5N=1fQ|nIf z??g1E3^Dmb+A=j=_6}AtGd*hvt4g>o;YOK5GKa7v!fg&E)9ET&VqK0fyjxeAZs&mv8fMYo%-^?~Wym%v5J zev%(>9h)g><$wbeQxRa3gr^O1g8Km-7K3+XY`j0#*J9G+=!Bx z)kJS1#ibwcsHKLGx$)R#mDi+?%Wq{1bj!4~7q6 zBk6bA^zq@o`o{<}%mNM;Pr>M>Z$#Y)oBqaK9UStu*Aw9%uP+9!S}e_$mJ{%4OK;6E zBV?L}iTe^wn75I#@mFlPWom!L-cD36!bU3!V`8e&U+ZQ17!S2Vr1o!O?-P0$q{fM{ zC{Lq880qT>(!v#? z4S!_STtB&fV%1$gLo?POomdxn`28u5Uyz4Py%eQhno=)Ash6h|!zjgQ(yvu~sU$%D zEoZUXKA@&SbqOY~lD1wdXo`VDI zN`cZb;w9}Vl(=}lzBG@Ke+c1H6w*tnnfM;jgpKwT=C9Z+m5Iwz7!#Yhn|1k1?TpP- zm;VW-QYmQ)G`R9C^itCQAKHlT;rsbv{u%$0f6XuOEBq$E!}EEeq9|4+KnYgLDiKOW z1tSRmhCvAUF2aK)R$d_bl*DWy(U4{MLrQ?lkv}98u^JMdMR+#h9|+5tBKOLkz&T_I zu^`Q$UnLqn0ra~PvrM8Vl7ADThZ5bB=+6naFNV>35Z5EI0*S{=a5vG*2~$V`Nygg^ zgynd~m1hWd{MY#Z!huUN7Oz2Z&AM+RpTE|fYF)g(O0k;qzt)jz%BhYRsbnrI37b4Y z-}Z4yVH#$usJZhe=dUcx`J3|*i*b4|FRVf{!rI`Y12faS|P`kVSdeW*TC3*`J4 zGhGMLkzA+;fUaTCHJH6H23^Ct0D1sq>&O;`u3?xxDC6M%D?Fb3O>BlKPD4ZeF&1CM zF~^3Ma|1t`U1PV{ zJ@$YZT;+D|O3B)eu3DWuTg3O`xAa%Vx^13th*=&+@E~1$fvgS;gclI zR}c=Px5J2zCi+XlGkGnf^RcAamuMfZ%%CvuN-Ww@m}&HOkW5oqElZ+Qp|_#*Hl47O z@Obj45{jlo6NV0!<-aE}YeHq4Dc|xb6l*iloA6d)4zzv=#x$1}!Yo=TtrUF9Xl0qd zR$dEbCA4tO&0Mr{DCxZIyvIs8??X;<7Rz-5QF6VwloJxg8 z;w%kqWWhYGBxZF{nB`Vy;IT4JO#^O5c)Y~IkLbVnqg-|^SPOODbs8?KD*!2C#f4Rj z)Eu%uI+0E^#Vsu{MneO*E^-ZnR3<_q|1|!c(=j@c%^ZjxZIqGN3O=TKQ2!zYtmK0MM7TuE5_= z_ziM=P`0R}f!C-@5T?62>#@%Xbphz}YAf*Ld5P6Hyv594i`CE%wN$J%%V`6&0j#_> zSR2ej5zbM3wvKgZH?6zYL+h#a`cHbYXOfC?dwQ#V{v|fw{)4$bS20KCn9DdI9}QR& z$V?lofKpj6){hNl|7@ns70iXek3cWlUU5m9S2j>*{tfw;_BMgPoZEB$ofor56DuR7 zKfh1@R|uP<)you1CES#-sc&iAQ8s(;BNk>kMR_TuCCw=XWkE68PtxLf!cqfDOF^vG z1ntultyD@IgqFc-1HM?(NE-pd$ePHK!oT>+#&ZLH94jgrz8$zlDf@`#mJ4A?=!StL@N0hkL|1Xu>ZoDVvaL2EMT zO$N=$pgS3~CxiZE(4Y)DltGI!b`gL%A9N{$Hf7MK41Eux2td!|nDgO&H>H<%AxL{v9ka z-!8Foi|~Dk5%wTE&3@t~cs2Y|uqxbEJcr_I5oo^Z2-5_qs~FYH(UMcoEW#(GJi@Xd zv5K<%qQts>1I=Og^o_e7(m?i=wsz=%N120HQj(QarI*rA8LW&@#wgD!Q8^ooR}=8i`imnJ`-Pxuf+v%Mcfp3M7}6g z71gQ+sKIJkHA1bZR#j`O_0&dcqS{LBpmtGvsD0Fd>M%81ouE!pXQ*@4Md~tjmAY2l ztmdja)xGKg^@w_0{Yw2-y{KMOZ>je%Cp9z`a|EYW60?>lt&&zwOQIcZHbnnt=86STeNN3Zf&1-NIR;X(9US*wM*I!?Y4Gbd!#d6 z*ByGGURn>+qxD$5re0TXs5jMH=eWSir z->&b`_v?rC&-5?#uk{Q175%1uN6*&_EsDiz39tlP%32~U6)jaQwJr55jVy_lR+bKy zE|wmaK9+%&VU}#m1j`i549i^0BFi$%D$82SW=pPRr)96@faQqgxaBL$x0Z{RYnEG< zdzJ?l!>U^CR;RV3wY)XTTFF}78gFf2ZDLKbwy`E#Q?0$M{j7tnBdlYr&swKiXIbZ2 zmsoSGtF7y;TddoxyRG}Ihpb1fC#+|z=dG8lH>|g<_pOg?%%k5wbti=80_-4M9_6Ed~BNbO@#in$U zv@fn)X>h)WupFs4e@9})O*G{z{K-f5bS|wLz`qhcK>irB;Pa5M9QQcCB(d4=_F-!6x(dL?%O2SuA_~)d* z2&GuN37@BsK**iSAQM1d+hlk)SYneWEZM-^lrJM6JG~w2eT27i*35Ya!e(0(;}1Ve z{X*%ElLy|3Sjr37cukSqJBD z5GGn_B55{3=FTS*UQ4)u!n{iK$3*WSn%aeLm$Xk$uBH@zBTVxr{xs2TD15%eB3k+= z9!V>Y$p3?4Sk7;J?I@^rN<;E_o5GuI_Z|6sD}7iUira-~IUnNuB;g8#>k}qf|f z^STt?ELC$#A&jt@vWZPuDlR8El-eP}T`4@xo_IH+2}^q+%0O#rA59YL>oumNy-8tA z?iIkcQY6*iQ#$+U?Q%&MPfY|$f8|H%FUm+-n0>7o`D~=OQ51_L2m2YaB=e*X-$8Gw z=lc4%*_%vxCjX+oL$RoAzA_UZ{-8IACwwY}G}{Oyaw#s8=37&)%(v8=l+G0Ld%`A% zO^FSbKIV$Sw{DnBVQv+}X8K3Tr+B+OM?OOcn|;=NOL8bqOMg?|1lHat=LYgwLfEY7 zC8AGBUMXhWGtx)I5+(^0RtobL;ReKWN=>1-oTNgbl888pb%8>X_BQ?bN7y0ZN;j;| zxwH*~CP@%B%J*%G6(F&xb$$42@-ge)m}0dfAGrc3T1ye_TZb(pf0Ns_i6$BIwdOwQ zW9F++-^ZS<^m*@hjJ;Wz@*u(kscfeFkcdVR;qK6R< zm)NH(Cdiaw8<#67Q$Lr&TLrs4L0FkGnlIXEz8K9m;%S8ao^7l#+k>YG%fs^&`vp%^ z_6X0@+@JfiMC|UQux31+r?VvN@C;?m`4~QiwcrzBwQC8x=>ygZ<_rgG3)^WX>nxrW zPqH22Y4J4MiFwszwhQyB1#GvtD1Kn?i9+FF@2jQMQtSh@l3I!FQ%9;<>_ba4OA`CY zl5FY34q7@}y0MQfJuUs&G0PxJCi}`V(lUm9V;^oG&c3&gwU1{P?a$gLv&;79?a#Ao z_UZN)*>(E@`vUfpeF^puZ`+sIm$RSkE9|ebyY|=Yud(~~*X`@rul9}hH`ycSZ0Brd zIOjTFVqWKb=W@=S=bY!c!}X$T1rKn&>w1?*x^}pB@F>@Bt_R#5SR&BLD+HDaEW=~K z&Hr7W7GF{NXeo1lT8;kK*Qd_X{s*umPsXZXrx+%(#RM@$%n)BJ~ z5$YKAS#_#9OP!}KQFGMQ>UwpHx=r1!?o$t`N7WPR8TGt+Nxh-ohDG@iY{IKwXd}c+7<1lc1O$C3Ux)d>H&JNURICLE9zDC+Il^`k)Eix(mUu~^d5R2eV{%} z&(+8`c8eXen3B>AJ@Oqztu15*YsQZJ^g`hSX7JM;4Ht2P!mR^>Amcf=0mNAxREmJMCEb}Z&EIF3dmi3k`mTi{Z zmVK5(mZO#vmNS;~mP?i!mfM#5mPb}*)vXR|ptZC$%o=Ttwbr!OwKlXiwYIRfv!+

p1IV>vZdE>jLXi>q_ey>qhHV>vroN>wfED>u1(4tzTO&Sg%-bTJKo% zt%WwlX0-*_f^B7O5w?o9s~{pRk{? zpSNGK->~1d-?u;VV}81y!!OXUv|pHCv|p@WO~1N+4gH$>weV}_m*UsWFU>E*Z>V3E z-#EX?e$)MC`z`QW>bKHwjo(JUt$y46_V^v}JK}fT?<>D={Vw`l^SkAD&+mbQIdq4^ z5$GuG2y;X`VjVRdbsY^IO&u*9?HnnNZjLlZhGVEB%Q4O|*)iQQ+p)m0)UndB#<9_{ z)v?{N$FbjW*zuX;OUKua3yv#}n~pnmT7?(Z8yHZU1`yjr%Yiv^b1{~kls20G3=5s&dL$Mj z2|LK=6yZzclTEm}#C#FqRT9IREPWPBEM6y^On9`!=39|P^Z~-35#AxOh$foyRfEaL z%y%34KO#IsTB!LNqIXDItwZzz^8c3TO++t~G=E*M@fa^9AHw2>3%zd-qJA)H8Wj}SIinX5nO+1ZgYC+{0qBA8H zHi`L5JHBi3g#|Yo0eA`Iu3$s?z;wSkQqnX43 z5-TSOpCG)I@Ea1VR7asnTBwxTr}XwJ(YJ^mQVhQ=Y5pPM+vLv)k0&3qoP?EDzxycN zi8fojIG3ml3UNtvqjcV&d`%7z#}w)pibro6^Z9e3^Vcrrftn z?kT?zO*~Xg{ufKlY)7?;jHS8>Q@unE(IaGBF;>!M4>DUv8B;7TleZtsFupRIJ^Dk6 zMSM^WQ+VnrN)pk{37a8T5WSDE$*V;~6F(I?Ric=3Laif4(%b!%BVn^0MGf-*NMf;s zu!Au59bwAVA{oo4fr%UH0P->WZ!FOiUfD(IQ|pM$L=#WM8VVCiJ~JpslmApI5lcP` zDBpENn=QDJXsW3Qq_<(@WBQvKazFW)eUS8?FzfgY`4i6t@j*~uQ0kHY=MwWY!aqqY zT;y+Z^$7VF)6(J*g}G1uq(iVbiC9Vts!>_0oyh@`RneCGsqg!=3ZGq3g{L|yS(LlkYBb)Nx=t~B3h`DrC_Ie_f@&?Q=-4GQvDur@ z`(PPUiMPrWN|VazqfH-EqRbXCIn!H)6vf+u^5v!;_>R&khJERqGW@RGEmhv7FlMVQ zBzimHSrVg=D@vb2iw8)}EMk>WJf($wW8ByElx3h8gf9D6Tmmyq5m zN>BDMML7eEokNrFqM?i@tQ6`k!VSoW(lh4=%2YKGX*@^%afB~Otb9V4{P{=Pb@+6X zn0L|T35Pdjo~AZeNUw2!Yek%5loq)O0f`%$pRRdZv;m<-j*~(gJ^sDfsJ>=A^X+rOeIonC2h67*--E{Sq=fqh6=< zp>!<33hVnXEDkiAs2-cHl^Kq;XSuO_fEqn_b z2>ZoDHi+yOnPk5hjUA$=*lE}=TC#JZwP?*QiMAqzUB-S>>7;HnKCg*HxRUO?iUaR&C4cVW+AC zuP-exya9HprtpU9Om!B2QeCO8yn@*@!rW2|)>4fSNOj;qOo$mnvyB+`Lu0P{#5GNUs3g`vs z2N(<(0T=^#767X)p9Po)fPIw1n#WfI)&sTxwgF&S6p z0Jj160gt3X4*-iIY;H^m1e6AZ0ipr0ui|tRQ|baxKcy+41ppRKB?UH`yRtX_9rk$t z=IuW}wMugY!%W8z!|6AQZf1Ren=fH>e*kUv|LV^RJH7WU?|JVo zN&TCD6%k&7?~l^T@j~+c$sdKLu*Mx3{_o=bo&R6+_?wW$O8D0}fAJ|6+ItFJ`+;`> zc!OT}fBy5zorq$8MKS*9@2xF^ct7=iY6kti#NJ)-2gpD3t;7g<-n+KQ$9!9az3C?9 z{Ybjr(SRW`H!phbpZ_Rz3WxVTSBCK>8Vi7B*^AY?D0WdPi+=wT*SH3Lo%hOphyTXk zzbMszBiSNO|7U4={f+b9L~r81itVlJ6>oe;&o; z*jH@)`TO?&2WbsK7&+P$jeUQXB?YGdo$@?8_L`$HQLTVSP;02HG9C?Q1gqnGeGNPo z+`Oob{rfmPHk>$($Em@(c>J(moq#odeLVh1uK~^zKY^zN=IafS_LF#A4C_9eV(g43 zh;_vij2oxjSO{)W^ni6?Dw~Gfr{gKbUcd=q1@|0h;mqTUcvPGeUWB}s;Iyz6YtI~3 zhP{Tz$yVbj%RavJsCbG$GhOZN-$2ir-I{> z`z49{rHK2b!TlL1tK@hY;uKgD35d3RZ~LBAAPI=JUAA3j6`bEYFUoT+tO@EBjeb=T{i!z*+$#w;Dh-E0ij$22!|8P$}k?zTNpnLMY=$`x( zx+lMY?#ZvAd-7Z8p8O-o2ma)#b7+I#X?fS&^v5|1$Y{}R`O+FGnW*)YP{geUavn>m6_B|MApynaIm4PZ+NuOz%?p!C^Dcq_@Ee6M0C+fVrLD4FtSguf*GHEPPC6D5WP0Ht!GcbaV?v1}VM5s;rBVJl%9VGCh9 zVVy9YEkZ41Y*{M~K1wV{Dvp|#gq+odjV=kdHo9P@l!04nW7uT$@_CS@Rk%666}K$* zL57aw);MlY;mL(7V;3St{8oDbD+q2$a7R8e@FPKMM#`xTYl}4R;!zYo z#SgdlV_~yVmEKBkrjZ>>Cp%U-x@qkuJ61H=v0}s|F^N@%4e%n16_>;%Rz>w!ovf-g z7+*4}i4zrDSuI$(2C>@q?e-mLF$MPt{Ir<6Gvx4-jAU!K+^b<7t3DUL#=g&?c7 z;}N(KegXI*9)Yh5Tmrs=N8lFDP2gL21a4E^2EKzw5T`h-boW5t$0KluJRkT09>EH@ z#ss%;3$Tsjt0(wI0lu5S19$+i6ZdxnzF80mEXM$WTaqP#OY_peWqDa(IR*$C0|bxY zkO9*Eg7m&1y)Ve(Ebz?(d{cy1<@lNiZdq0bmfBzN+PpS!JnjSu())t+zJT6*0zOZ2 z@Snzc!Jpz!frix@I2o2hL1*g(?*jX^;Pd%>;Dvl4@M4@X7W`%YGVog5U>9Vq7WkIJ zR?u=R5j2(v+*}5iXhabtPn_h5lRTMUol)pMm5TdRS0HEd4wXt0rqCB*Bwq zuK(SqD4tA#dNASyBfR>D-)5ZRA>?_-QW*c*u{7LS%7#{20O?%|jkFtb`W2+@24trY z5>Xm0Ta_o_)VS}v8cq*WR4;CTDr$kV0QeE|)0x8+f}X87(bwrdsOrR6V^SChiYU|# zer9--Q!RAiMvgBOzDeVww8s?26Q3W(k;gGh%A8!#B))gH$CUjs<@cC!Jf`q%oyTdE zqBH^?zbo;W!szKs*F}`C-mXCT3-@0YO>_PREH$+1g4QZZ6L+ZPyNC1+Bk@1EW9te; zy4crax_=Zf7w=12ez6BTNAj*;D{#w>`KP>p6l~t4b;|zVlC^jKKyDk%a1{Ld9=MJ3 z0&q(JS_I*w{}0k1DZw9aIrKJ%w4v-Ob_UfSL2>nXaew(mAlwUvzh(oL8qtm~xjep~ zB)=-8o^f6W{>pg`__*^b@b?I-I&b(WMg302zToeh4!S*F_2(zsuYyz%8DIiG)m=v4U1d{n!< z?_86pm+-z4=6=#Q6LcW*kZA|tTT1d*sy&O`WQ4GyzEPMf)cjqk7}LMUgNEXQUAD;|gIw(Azw zML)Ujxqfl|7#Qxl@4Dmq)pZwP9P*}`@~*O7*@fF-?e%c)fbC5zKS2pLRKo@ejZMO}@pS zoP){vM^%7Ke>+0sFQ5s0C52H3vMc>n4faId3!WBfwPKT%Jm~XZl;1>q(NUy|K4LWX zA!p-U?CavVIztQ6x@f(%nK*rVQ2PXDOz#IY4wxD+Jz!SA?0}a7UI}%U`ueh;5xyrf|G+k2)-F&327A4A!KmK3n5EG-VV7C z@LIVqV0Oh#e6pBhE&gkN6?d7TGegb!5B9=}~V-9gh0k z?Q)lKN4hJytGY+KC%7lMXS$cTx4OS@Uv^)Oc1I7YxU%B57&XQg6BE-qrfp1eOqZBm zF-v0Jj@cJ;G3Lig-pZEBewCl9JiYSi%0E^vz(lKjY>n8}v3p`4RViD=U3F;Hv2DHg ztoM57e_Ws!lqzUg(5T?4g2aOMMhOEqdNJphe-Ui8a*O!Oz~5)kJF>CcJ01L;C*BYz z)LB|B+(b{;Uet1Nn)ifu2mE~={GCbsT@tW7;C15f=76^X-VfLh{vHW95pdqQ+Ia$# z5?gR+a6)jK;FRF~!M8%3Ax%P(L$X6=hpZ<4CY2l(%0f$qRt&8f+B0-4@pnb&p)eM< zI-G@<4vz?L5#GVa-`?RWC8&XClslzbw*^ z_}eLRLDaUWBT;AErQPM-(e5hlQIGk%!hM|h8x@^~Mds=l9;3%NVk(2b?ZMyFnDm%s zG4FuC*JAEe)+^g9H>o_W@^SF@Q7nsffWMPsx5hrK!m316O{<#ScE69mtRSc$6#Q*c z@N_|v!Hfv+L&;z7W$yv+e(zrId){}vx!yOu8@;c17klS&%ky8!Uz-1N{^I;a`3v*s=f8CS z*!_?0esFj1-S_YAx%=MT-FJ81-EsG=yIbzQd3Vj-Rd-*$JK%2ryZp|%o5?pj-fVxf z-OaW)pSs!jX5E{SH$(HT=UvYGF7I64H+g6CPUn4oZJnvZE(Yzyh zpX43RJCwICZ*SiFdAWH@^A_dJ&zqB%nKv|VNZz2l{(0TSsCO|Cb({>1eL z*UMZFzV5tkziz$u)wRXfT3xGiE#{j0TG?yXtM6akdUeFrAy+f5#9nb9I2U#*Y*N|M zkd-e(J`edUEU~iOk@MF<0P=Y z$H^0hdp1no3l-A=vjMOO2$YQgciV6xg^AYzWdUyhjsvO#PGGp10k<1mj4N6YTugJd zT7WK~Uxkak46QflgK*OUGeIAP`yv2&sdwR`4jSI8sGoKi@Cm>IK>FHE0BjF98N@W4 zVbG#6t~EA6s|@#fz*P9h!bSNdXjS1Np8#2=YH*Q{1g!?#mrT%V!o``2fLGv;@&+si zyau`sT+}rH_0+JF8nDg;P3F151g#0&&44!%<|(*u0p0`sG~D+AAAs%vcR%0|=uU7^ zF9{mjBj5<&bI{;T0O}a<4QTKv0J|Ci-+>;4&$>VcoF9XRRo;m(SZOeAA(k~9AbGP7 zF8C5$4m83AhXPP`4Hll@1VAg$;B9alKr+Lp3gM;zP&VBG7i9~+2^wcjf^XqFr$|#r zy+fRUMxYTc1oaF-J#_gVX@m?0?STvV33&lih>~z;1D1lW1Q%rvfoxh(j*tr`Sen88 z!35mWVkIRsM;JiKVF2WBX~|%Q1_XmfKA}iA)D3z7+=>9mnq@THnt<-0A+Mo50Vt1U zGu*L&aiDj@ooIq(4_uT{f(307x&rVa=)G{!CZV5#M!CX}Zy4TLuERz7!yckvPGk5y z2p|OXcW_GsP(Ul>Gdu!-I$04eyak{wV>Sd12cN>90bKzu+Es$B8r<$C*ieUXlv#oe zau|;G4xa=Xbqb#X*bW+fID97n<+DMK!yzx>r$8@;dj@b0G}$uu zJ5Wz|GywH;41!w)P!;qrxT64&BgY816HIVOKeU4c2l(NhX@Udc+~9`<#~8RP09!$$ zF7D%iFF?wSY@Gzh~Tn7N{7yv%SR0iOEz;L*2O$b;7SB6W5|6;gZOptmlCKb>N{>$Kk zM=_|2)NwKL_uHUP!F>m?5A=_4FPabl*^apefM38PxOZUw_A)Z;Rz}$>TcD4eaM3oE z{Xhr8Z31`-bTHg$0JN#IBwX;S@@dee;UYZ=&Iq_jw{ijKNXB9r0ArLB{E9_=W6_q* zig0U~;7ovv_K95$|9WuI4zZATXAih2Yb?@og1=RePL;BthrmT1Rgj)@29`f*0LUh8 zZnCP`0JNbK{As%%fO|H;+2`B&sVe)T5;k?|)jY#J;H7T67JSaJGc zP417~h7wqryI@%e!umV}c8yZ7nU}$CX*pPOc<%epMsfLT-ZF$4%MOum?1QjiNdBA6v3kuu@AKwX{%oU>&go*@>lK zZ>tOJFR8S{)g60WJ+Th%&C*yp%0Gk6#6H&?witHoRqPGyFs{Y^#5(LVZenj@cX12$ z7vF|;Fqgf<-eo(m)3_6s!d>`6)cfoMw$FAAR+@gSKO1Db!N$P~K7tLg&%wxyJEYKz3aKy z#eRv+X7gdwT!_6ExpT*`gSV2sie1!S@Ex30Y$U#evqD+PCMd5duPQIfCgg5j19dtE z_y{%rMEQiRrv2Y!wvWH4RKuI~;Lo!sH%e~0bi)9{U;W$c*J0+#t{A_e80j}W6ENT<1-8A=tj z0dm4)eoZk{RMSq=bB8_0CZa{x>bvz|bP`$W_52{eg|pwQ*(t2GM}m7R*+%{XPBd>+ zTd?_Nc|{tVuT0}PY8pKgF>@ZvR;p=yvmVSomSu%c2b44eEt|o{vd{Sw`~~qMN`^Nq zR6ET+x3p4gn5D8z5_Q;c_z#CY6GP&ZO}UYh<;mfBG5Wv_#~x4!Qp0BX)be9a7bDTGw2ye6FZq z%~dP7fB3tXKUAyQx%qo>1?j8!%4&#b$# zROD;eIY3WlL9R$wg-BOq53#)Pxbm4N-dJi0cyKREhn7NEjA=?ca76BxG9Ks0-9aMG z;^xbCj_SCmTK}C@cWb9TBaIcjzh^hB;_MxF#@R?-xs7oWa@~WMHXgO+7HyxA&R;XqbBt}vjXr#pgyp;w#1k1@MsIlBKw%I*$=J5)iCfPz?M?2;-&T)`_p%n8#VdxKe)7 zq82JUVh-f4U9_M2BcI9jD!rH(lZ_2&nq^axVA z1x)Fe)INyc+EKl>VssAOGV|@L4&xNBCThg)Zj`9gy{y;7 zs>l!8)QwWcflE;p>%<4f)h-zltOUhZbVunZZ(QxVycjKthe2oO?@XM3a^r;gC!b1c z)<3IdV%lh-CnohB1!~l_iStfunE29(xdodRsHw`qcb0w49q%qbWBkg`4H|sltsedM zdG-w%eDJNF{q`9Lx8bc{?((z7FS`Fj0NSvN_cFeWeg~3)(%G<$;wz7?Sc2R!0o+Z6 zNg&oGG~y_EDKOV8cPZY8Cx{H=`OFc^r*vMc)T}hU=ibY`)6R|i@xEl-Q+)A7S?-Eg zV&X~$hBy_G_4CcAn<4tchsHhLTIs}tSMh}9ZyEbm8fQE^jEl&-uF^{M1^-+~$e&v( zpln)9HJ+fk;#?I(U*iM*bRFZ%4C7=xf7vQlx-(!5d zG4mMGItZaj!fp-bBHR@jB70qAok*AHz<)LTUNP)EUsFA&HhWGf)iy)T6JIoMAn%9U z4H{z!aZ=dV?+g2E^i*Suv7a|Vn#ufod=+*YdJGFf=N!SWl{d;L)7ByjhIs~dCJp%x zaow-%tGds?R~@|Ly-h`skJoYBtz^CK(V!0=WpH%kmJkUM4)1?>R+25m6rwii~pRLuY&!7P<(9mhP)@0oC>^ELm zx^xA17VP7bUS7I#b;tJ8jnOC8ZR*&58lQ7=-6pDMH%wh7qfD3wL8)j76-d{Nmu3nzA`nU za9Nnrdwj;kzMW5wjT(OJncTA(%1O`JjhmIGqu=S7J|Xd`BeiOu*p&5!Mq@QkJ1CUG%d-5@D1Qya zkH8P;>&I32Q{iQqgVY-3JzqT)+qvqVuZLx{I5Dx~rk;_VHl*ZUT{^RQPRFU*>5azx z5&;+Xy>P!rlV%YSd#hEunLBksg$l}TGy%$*jl7;F9T66-%TVG3hQK|gg;-7P;zx=D( zV0XnzMxpUz=VwlBTU5~dsU)sn`HH`|VA(3Ej5+3p40k+FW4w_409rNjmRRQUup`PD zPh0JDmq*WQXikhPC~q?=Zz(yh{Gr6fN>9zrNIBLe|5AHG)I;0}5ehEF%m9?C*p^x0Q!pXxR|-x#v2 z9J=Tygrj)|X`^y7^qPGUN3*AFk=li{k~oRbvP}-MURsj6Ubcx%3Bl1ityy7j@p{2z zb*i{yEHoDHMve7Gjh#GGmh}=ETi*K=vNu(*xDy@=VhId_CAb?JqVezgf*-58tE#iduHFkb zq-FMOQ`=SY&GOEqe!bf~*{4g3Z9NUcP@k_~Z|U;`w)aVC+N;OJoL>nn!nqXXi*|=a#*}G{nPu$ES z_(WroaV7h?Z3DVb*)rgEt2T$1o#!n(G@s@PE6;15%;PbWvSt{ocN+!9o6q#j${2(b zDb0W2>y~FtHf9)CjBkvwy7K7zl_Mr!S)VZ;Rl-d4RrIN0=u;M{m3dr{8?!t&l#sIF z_``kmJZtyu7p*YL{iL0KRE0lhJg)_K%E&%e3-P8PUI6Ar5r`Q{UB~QFl{qGoq&wYy zcp;Ujn5k;`wU z)UCg7$E0hSu|v)cLj!*|d|)Oo`+oLut92buRK_$2G)OoKg zXpX!TSwDQ=^EAeBEF*X%lExs3294xGwxwC4nW$Bx@q>pLyM8dn@>NG~M4*c$^ovlZ-Rv`T6Xz#?|>AzCI|rJH%l492*ZJ#np6T4Y`Pp85$3HjJIJfNNDa>Z5e#lqyO^#|@*5?P4Wz#v=bA*l}f)yRg_OW^^5qze?~maV{l4WhBqD|)T1i6XL!=c;6FZ2 zQ_;;4If2LT{H5llV=Y4KPnaBupo@*WziiIg_n6Prek9d`$Jvl36=S$^;9lV+rNwui z>(9wz%uz;r5(@7tXFZjDlaY|A(yyRHZ2FCtAKHJEaZ_va`no~4#+|tI#_L0W8uP{FN3Y=IRk<}h zdHRaw#s@~;7GwL&mCMY&pr)X_c375BW7*SLB&I9q3XePYx?LYZ!x&cv@8qk}udY}( zB11d9Z&$u?+p|%t;rSwW?I2hLkydNt0o5Z|o`dH-` z_a0XwNG>nkqB@R{qiUu;<0rb`d~tKukU-MHu znc1FICC20$1Nn1H`gzc^-_Kon1^vK|F<*XNAO<-+UTn#O?2>m;6@Q;z*1$nUj2sw6 z)YRy1+dIASQS&94yB8QA83jYW&aBYyNWaa;lV@hWKaZ7KXqL2bX1AUd!|T5E-1l5=xQnW>HpH6pI zrg(H3lO?PlAXiZc2OBHo{jpHN41hVRTsPKD;Gw%#*{!o@Y&}qU)vh&ljI)Mu^hcWw zqCNV__F=Q!u=I%nKq#ToB}(KYMH2A!Y92!r#!7 z3N;m78~MM3J)y1$hrSdfgUOI?!QJn?(}WisYs&L?dp2KbWZ15vN7&VT36H9%-xatq zQ^`dhPQ-<-p}6SdvYUH$K{gJ<8a|Ghz6r#x=*rO>f z+B_)xU;+RBbI+=0cRq_4IZ8(1Jx_gD=1@-WSzli0vvTeUmL~AXyJ~pZf}cfd`GQ?# zRafCj?Q~AT@Xa~uLX!tAv8L5w-#{B6f*bRwNIr{CE{nDM+0w=|J$U}ZLfDbnN^ets z1@(}+4-&}hzV*u6a;b*@B8&2V4{O^oW;z&|6TqMZWefylTIsXg|8yxm_`!wwx;kHm zWe4%?ha{8lK6Z#6Ja31QZDjA@d8pPYKF1g>SDxH^+Xxj~j4hOJNMs$crLd{7Wj>|D zd#QJn&tO^el}Rb_!JNx_hB2Fuk!3*VpzrS?0!U6!FK`d9<-#U;0U%vpYMwOF*SGZ(iN zV`K}6h2sXbol&b!!!ZNezfe2AvB&e|d;M1I8q)WvO+EW8s1~-4JMq2pg=;&t?{qG6 z_NyJ+Cx6Q`dkng9c#UylOuLkReWmSE@;L?dmtSG|ySa#Ia-p$SoR55BW{dXoYqjk> zYffTLN_dOq9gciGVtDJ%#x9W$uy z^td`tjv3HyR*m?^8`Jw;{bW6_Hnx4If$2)0hqrj{!Zn>brko!#XJvBRPS}z0W*ga`7}qi06k-{Gg_CsSsaG&zU>)qfQZB_x1VmhY^`c2QuG0 z>ZdGmM!6=;d+W9N6{|YuEUO#8vr?t+KYyE78`G-8mHpKR$$E1(36sn$syFl}q^E@J za_FP(gg9AwF|zEcZpp!c+*QW7^X7&vt4gg3h}r@J_44+E`pz$`Ax_S3cX&1G@PyGt zZB6Y|9mztep}aoj+Zc<4;-xQ@AZT@1BtwB}>n*j68$Ug>^r`SCUu?VTXk?Qn3vwlsWe}YjzOs1vkdE8|%^u#@0#;9V7l$@qeVzcuOsU{i}hg7%3hhP7e*(`v=zBJ;SZ4Zu1J~filkZ<8=e%5ot zvs-a{zVpTNl@qx`aVM`cenzl|x6Cwk`JD<=yAmw4k4;=PVK$}m7KR?f8;HoN(N_Ok_>Fb{P%Bl*D%XIHA zNi}V2p8->{#yq=zS)@GAD(e=Ea{RTOf_!-+*WcS|f7tMK2iHd>9T@V*X8L%OXR(@= zn?BfVC9_}4bX{`wq?rS)uM$#UaoMY-=}j7N@bjy8jyJE@?cAI#r;_TYo;OyH%3gnN z^vGU|>Q|{A`pcISJY8l?xxN1dBb&I7DW$S$4jhJwk=+n(xLsuVRK(e zZkK$44@&R%!?E?oDd?2GeLP!rhy&_rbi?;-CPIHj{Z)U-q3lmJ75wQP!K1SQ8542!L zfHZ=k-*b>gCHyFwzm+O!PT=(4bx57~8VcFfp^imPMAL=sroQsFzopLlVa697atB9r z&+Ry2*%4R$$)oR`NM5Nn-dd?r-_CvOs7hemi1ck2qoVi4*Uj#l_JroFFuvEjUxrcM zI1_>Ii>)G=gVG~y`-IejG#!&F5Ysc^SH{>mMAw?N-B5njl7+f9WNz8n_0}b*Y4bg+ zqpJHiX^=BzYN>=sC2c-$WE_xn8icW=k(wscg;D1ZlfB2|cio9lIW}w0E-xG?66MV4 zOKf~EbWYz|Nu@gXJhDj{TCh5|&yd#_gu$YVbf=?_bVItB>zQ*Y_w?Mw{PNqLgWp3f zwh+6exg?$2|*SKp|@$L&wx8S9L=k7^l{4Uqc$(M@3isKr~HobVBZ1WQBCul^L)(r8i`6fCD0gx`#H$l`z887 zD&m(w8H$u#W6b^KeDl*$3r9>V-#aP2Vf@A14g8C(1J4f0NtrN2O(V+YJ16r4ETJe5(ozji#FUXu2kyznJVXIxObL+*KuiT$F zKPDY+pXJ=H?jt7s~UUHa*bD0XEoi(NKhYF61Ar5o3%^6WTc z+X5>lQllt?AP7F_sL9uI9>(XlRu%-7Wzf>{G>>CI9DcBHe;XDK5 zA#(hVsVE=W$?Hh{S*oObP-v}Luh&!iPP1#e|J;-gIbD0d{!HH&teVAtPUp7EM6GS@ z6Q58Op*3pTXc9r)*yR^{`RgziD>8h}aPw zUU_0htMDhLHLKgL&bIyNrg7cGH>HdZ&(2sJED9}=<#$%7<|tgFRg2wOK2kHT@bdoO zAK+HpX?Vhz`Y*gtp#o1UYpm|b zuY?sY2|JbiZrN>>Yy5bk@nmiL&PuVboj5z+sIhr7KRN$4*YAZ%-OZBKr`2t=@5y*V zDc}A`DN77ZoMJ37zCFd5giHM7UdrhIlKA1|sN+wJZPa*F{Vzs-QK@2u3SW#m-e^pNCfW6lkNP5} zLbUPhh@6}eSu0;foiW8xzd`$8KZwiuAWT~cF{rNDld-}A3&cHRUi)3`joBgikXbF` ztCBzOdh=`k`Br1nt&+w!8CE`me`3_ zPUsmyX75^wTD|MoiWZV9g*4h>yf zu~P5$ea744Qbx8)d#iE9j&X}W4rL1Ogx>U$?)-hOSV2zw#=KWy7oWDvy-RluNbj(;gOOhK?OrnWNOm3nv)kI_3RoTP$ z%$&2!Vv_&&{eB-t1H^4ji+_K@%kyO0 z-V+|)OH^*ZU3ve$8`croZR8psfqgUx+Ga53X0TP`xIVi!BAP(HJZ{%gql9zZuq1I* z#d>G?maLU_!`I~Mny$Rmf!A@S#6LOKA!YUGm22esVO*8He!FZ!+N9{@l?zm(h4|Vr zV_T-J+bgrRS0<0~_Fm%Vws5{{q`s3vU%*@SX6uo9sfJvk@j)fARl>U{{*S9s3$NYs z5)NAOi|KdXLWiYH{U71J@W*rHKsGsG{1*G=0`b5K7gK+xEel2?l(MtOo-fwFMz#Zo zBE^<%6u^#QYxP^_DB!v%H6X*VaF4C1_8&OFR&6bM1yKPf1lZn#sKEh&H000k{+oqu z`WptQt*$Q5no!u@R+4K!+JC|B#t~yequ0r2{N1X~{3jj|%7i#y39g(F6!$AvYeIV81=s#!f!Hdc7MzM4!9%Jqv#@b+2Y=2l-2TZe&|skrqVy$>9^ zE{rSeNpaoquc^4|9|%7`zCN^W<;=W<)HgdvHIB3onI2WMC@(+Lep1oQ@#Dg4BIWPc zSkKDMsJF2yPF>P&Z`bVVQj{GVSCtw+Vg!7k=$BlP{mfsGd`#5qXZdeo*IGE4RzctT z7W!HO^euQE;Jxpst1@n+!iDM@(22#vh<75Eoh>r?tg_`Ds`}2IJn!f<(9_LXo2rgZ z3|m(`d68YIkgFJ^Pq82FGIiRKBi#C)gSKviJye5+Y;$m&JbprEZn7S3K4P}1H(G{( z0^50T?$bXEcVx!>n^X(e7ZKZI!cU90?t6|zz)d$p;ql-rK2veF{X+uH8lQikOC>M! z$&9xkP0e}{VdarfMSnL%Xe2-3J9yH)46M}W4Azq4Uhd20B9F^nouY||cXSKS3z#<7 z-25pktI;D=sUuk%&ESKj^8ZqM8~U~qXeb18z1BTH`(3;Do?P;Ry!ISwEDnm zgM6DT@iVk2(|9;f7n>8=8N!;$vr7eevz{)PRK0V@^1XM@tZei4ih4=dD+;jI>bW27 zoYV9nxp!>S4dLeL-HFTNDw}$A6v{_s7T)lXWR`CvuFZ$U68{Ik3yHs_CWRI~PpZl2 zue?a%5a{d{WbkRBI9n(-eoJrhXa?r$8~Hse?Vu2uqkbAN%4pt7Ik<+q1+=dC`y2SZ zSgsYzt(0aBv^IXP`pf5GQ5imuaVGZO<}IRhte2~rmuH@JCAwf#byDDg6V-y}e?LRXN*61Kcgf zVg0jgDrx+i@;m*?=NRkXH7T!G78}cdGAXZCW*WxUBVUFH$sPt#F1&701ZR^_?S-S< zXg+*_kCI3B+~cjyh-^Tlk%68w0*JuU6b+;*cyrD zKhkpWBEICKK`%=di}LD=Gc&7$;V{Fccyl~ih07~qn`c)EFCgCB@|??QGI%lxauGf# z`UzHnG4gy)*xRzOg*&^6+!9oq^gkHm&mvvqVT^}BIn3uL*QSq! zS?sa#<@D}}XMKDsY5cTn(Z$5qC(1sI8GYcuoS*B5bo0LMnip;#TL;z5`a4`lb46i=Ucs>`P~-4wZX-;jqkv!0eiY#c%lzu(QpavTDVn zt&G+zUZt1;8YO}j3bO?2*TH^3xlCnJ-qcsl-|H*qR`r$3%oUM_cDVMwa@4mnl$%wW zmMay8a;}w@?xydAyQAYr>SuEGM+=Cx}z19p5grhZPdvr*;a~h zj$c}{@Z}JF9Aauu9QMz6Yu?ezg9rEM5sg`2^;)*alyhY}-wrQ)eO}vf(-0izZw$T} zA~a;TRy(C=N)Zjq#PmgL=GHY;cWmp6%n7HYm>lRiS!kqjG0Zoa(Ya-|NM{uC9>Q_$bEY`1-%HzRzU$b^_F5rAf=!KSy@t~ah)TF%0qNjLOtZEUKD@hTBT4uzu}Y*L<|hkc{5X-)m20Q= zBV7lK*N)9ETcmeIUwME@d6P-GNqugWNx2JapS8oao0QuzI*IL9(sJX> zdN-UI3AcwmXb(Jvy%)FRb9@QI7~rqw55eYlZcG=I-?w}5E|Tnd>;)}7x0(E=)T2%` z5t2;FYn0cF?2y-@Xtx0tix2dgJp9OYUcSWDH6^Ox)AgClhi}Q;)m50Ip)*C|?r?r^%B6c!7yd(EmTe(wOL2#W7XVF&XvNP?Y;%tV**wvn~=18Zj9w{{!WTYz}n^ zef5_pXIW{v-DcN`7kmx)oLC>S)WJ%_?Vj;2O7SVNePON)m<`l#zrW;z{ksV>@CEWu-jHaS2YLaA;SbvU{*7~mO4bq7A@j0}E`uqdM z475-0VWj=ybH?^3p#HD2S0AhYxxxzL-_s)1HmOg~X>mOFOvdBZHy&=aG#>E0d^pn? zwUnOL_he;;@yowe*rA;iR{n!xRqrv32VYcY#3{A~-?CVud^O6@ToKLb?S6l~_ zmD)!+@C~ed3@b+u#_`kjLp`=0V-4$JdWIR-k6|s9B0pVb;}2l%Fzf;NNyDvLM8`i~ z8oyK@?V}#rzb`w;+867mq8v3L%Xcpl=PTA1=X>!l?X&szZ(kr3`-ypdESuB&6M8ls z&v2Aq;Exe=aYW*Lx3l&G+4$qJj&@=>cbAo?VL%*ia5YoJLw~dtQDZdPAo3SA z@TlG5NYPR6J*VNeX}h&MRXbnnUI@_VbFbmsU4Gnl=$>DG`DMqWlN9|ao7mCu<(Fs| zm>Tq_0UxXJ0~$g=j0SdqN)TH`FYwgy5s`2kJHl-tb8PBt9PAuWyS!wos;2XcI#r$B zVS6%KC0vL~pHeXEL}DNVO0>s?r-x*flyvA<%KqqRY3UHoP7e#4m)?{r&YjaMi@|$8 zQHu;TfqjN@%$<8n5eZtgQw;#+&J4?hcy(2( zf0NPh{$JWZ2i}HEG;P24S79#2!J@paHq1G%VVO>FCAanW^(Qzl{eM|M zP$IS~tFVT5_)yY>e&EHY{h)kszw#`@xG2V#^?#N1FV^=F+$9=+%xz=kQhnM!t#AE< zOxauAul-qc9w;B&djjQ;)i-MfT+X*&{ZLvTUG$p%=ObKx`hq$}HxKaMc zi#um63Hi^4&V?<(mw*vE5I=85&$ry!(euj0wWjAzm`ESlN=7%7h;)PQI0rn?6sp81 zC!#u|Gu9KhWwxHdj6PC*!JT4c7(Ksb<@f|$f7U*gqxg==QSn@k$2yDWAnHNR8O}kR zxfHtydAZmL_01-daCA(}a^MU80sc!G^Yyg0Q^Ff8p_CvatR(Z1;yd_*B-vq~@9BeC zZbOT5-S%01vj1o8HrTP<0mXP=OQ@f*q^IWEYd|jXTMJXkz}_!4^{6Cy%>!%5Y`m+)55?}-@9Hb%XXd5a9WS!e-b356!#26Ydr=70*yq!3za8f zltyNC$bO`{6w}|CJQ4Nlx(e(=V}0?gga-wygU=c2i)Up8l~(wavHlk2Z1CuB)Z@~x z{vviZ?d_{ibqVGiA-XAulH0u#$@?GnzE@XQZyj;HNy}-ivT8@2~ z7!4#<%^&yKWhKZI-vIw6rwm%d6f_ijM@pnj#)IMS-C`UcIr#=nK((+Mtn;o9!i(7O*T$>QmW*ddyDyh{+aKUru!u)Wq7< zHHorCY+sZue{G-X;eXS94S2K_cSp>6Y&^FN?Q^YhpBu+BMv_I3x8EqrqWTn|)85FZ6cc*rfKAum;~_<(`_{^|Olgf296Y)c+XmTlL#x(9lr+@UcBVRcuG9 zpN@7=54`xRteDhE^}iSGNjA#<^(pU)_3zD|9iG)P?PR?C)zw_l>no#3Z(VXl zr}K2&GGoF6)Q+aT(ram7d_M z(R5J45%21XYT;X?gVsHk4Jy1T{P3)Bgk^&gvvBz8b;@aYQGuLh6C4IjKoW`%}}>GThVlOult3IFuyaiI>&< zYm%-tG-TJYKnMG}dSOO=oxMX~myZv^A{KZiU=-bF`0D5Xf_zZWJg|X?bJGx(rF5AK@`0x?4DunL|S-Ep(LZXl@ED+Y3iUF3k>jY2q&~Kqe7C?IjpF{8E;wNALPC4167 z?g7%DRX5+$YB#LENrq+W&yq815)wIeLL$HQVc@5qe*qNRtE~M{(3$3aiSh#%W&n&5 zNjXHKs-puDr81R;kkS0~O#N{c_dns@Aysld6}>@0#Dj`n{ZVOW(H(}JR>F6a7f9!W zJ4YZ!NFo`4KZ&6sf_?ujhB;1$O*C9q4m}69yU3*!Z%Y}JdSQ4BN9myCyu7uP6_`+_ z9vh6y(cy`#kH5CF{^oScJFkCSstZ*=9X)=DbBHkajS_Cqn7A^v&&W|LmX(%y zdyh$~9eFvqu_(m1b|rHD2e!7gwF*DIeJI{1YrSwUnOs+mt9$!${oICzb8qNo4px8< zq0`Ae2mNuT)4Vv)n*Ei1EzBH7OEdJ-+-V|l7pLkXFLq&0@Kej_JIr3x zheJh_DV^6Av=UOKi0ZrbWB)i@y97@pMb!;weMg0Z|BO^^z?&& zkWHO;m()$n-cR3MxrVj=FUACmm&z66P?UzjVGM>NoDD}37QjE#y4;AG&`^8NHEZ9S zke^rPq063>wtCWJd)v`5D>_uI+jTl8r?iZtWiRKbrx#D1+%vaP>s&a6_w~xnS@`U% z3M(tm(;6F_*wJ%qW1>6L#xL8LmKGLz!PmyNx%u-=Wo5|0eh8nD4z#wx_^6&t|4NzI z=${nwa(Df+ED`<3%8;AyB)La5$HhWO`8I( znX!$w7;qU=3g@S|?k(^SuwhAFch7hhPwi?GOJ3UR(mup%YB7@WcKP{Lly7|W<4ZZY z^jlfL#!P&R?E{)pxxEu|n|j5?9Qgjy)e*fgnqm-)%w|0DGO*D6yPp)%mGfTbt0SqC8>(ja=x#&;f>WC5N|I}q>T_c-2^-CrN1ite&nM11I zdD};!d}CTm*N*camxP1}@4|cbf$%P*A@GGlwtOp-8&od{gPT*d7zhBhjO(zdBaje4 z35&$_aPsroQ7w@c-o#=W@0>Mj-I{dmz(E=5OND3NAhz6?Hw1lW@>kc&#(56$QvojvT5;CR`iKjOu?rI3eIxG32v5tP!T&~K&0%8Q zIU8o5@OpBda6hfwC5-T|?46!@J7PzWu)ko=@4`3JVh&Cs1LDFjpMyUZUa59?lQFht z2vk?l#9YixF>t$P-O=u&-o8G~QSM1^Z{Rro!=7R1)6%+rqo2VSM{x|I-^*yZk;v}4 zV=hM*bT2sOd<_1wd7CK2dlRirsAo`4Utf2_4+aObbT>daGH*rCGE_*pJ#Xvc9p|Ti zfs4DVf3TQ3k*c|^Q)aY`4w5_WlD%eO;j8jf>mT&o;@;DTqMOxRLRL}I1ZUT$Xg{E} zEDf}_gCT)oHV8gXdhUgy0F4z+YRcYvBvCUfmQ3FY}ydz7AS=ia><>i;wRFqac{FsmFxhT@C82jiC&>2w#Un&%-%s~c{ zK`Qq9)^I|>L-g}xU0FkWe7xV8Gu>V;npsa27P*}|)2-5IW>*&#s!rmDhcg~&dHHjy z$Bw{j=`VdZ~9sv6!h3Zh3IvagUi{?((E!p{v0nKYuhL

bQSh@U z__3HQu;4fw#CsN8Xp~ZJdOZQV0fcxl>mE7=V;^c7aZ~?tw*qPEIW%Ns9$7~m)48ZT zp<#1Xr0VakSKw}Cr|g>5fj5Ybxw~zv?C5BIh1n8u7{^ZvN7&YH%d1HQtn{$o>39op zPMno}Ny}x_3WcXnMs<-%Sfe8FwK*L%fn1ezN?Q%FrJ6sl@Pb|`s+Cl;98CBzuW#NQ z7Mh>;di$o<5@K^y?dwzh=DWge;r6l>i{5>YxK7U|1K&wW4n8VR@904JHys@v{GyJB zr}+=D2Oq8d@PiMyiywaA+R`H2?}3n|vqpil3*&jS(9;OmH z(ygZCxr58f%aTWqB<7Lx9Ou93;_O_IX_$ zz0D#@Gm9C2w7=d5;GfahV?%K3B-15KY-KT2WkYk0p<^HjV-N&bou#58W-xh5glWN| z%2q^;<vMar-U8}|}fJ=l52yx9qL7iRfaRlOeHO%%@ssmg9I=|HYe)Kb|y z!o}gS>tFNYzN$?NV1sPf! z-!ahvD#VG(qJ~BH$e^mXi$DLs+kJM`)%s1TDRvIyQd?(ywZLa#O=OslOGzDJrE5&KlY?ZqfN}eoCnAz;)&x)2F}2eFyLBw`abU2M(7uoZ-$A z#3*>&dO@u{pVgt0qC!0X!eYIL;E>}IEC*$K9B{AZRU zYj$}=TkUmY%oqMj1y)BRZ*oC(AaW1LG8|*!`HlheCCgYYO*l|VU4awqc4ny zZi0vH*xJtM{Zrv5$?zjghDY_-L55R5Yl!Se_^$Ku;F1!O{283gEleoSWQfy>R`!aQWgTvWCPyzkU1KXP+(Y?0oC)md(Wb-diNS^jUFz zntKJ=ub4Mz>&r|YNUlg`5Yf?4Q;DWT(k;!oT-dbPUmfi?*?j+ejmA6T%6r1yq$>%@ zL6XYWwR!Wsw>szKC6e{qwxRD!7db^k3$c)NII+Klkk|AMH>!_;AMh|Q*Z@jWpC-ms zQ;qC=xV^?sNM6*vP&jb`4+$=xwY4QCNanc9p0jb0r&u^S>tCU_weS}D-Q>Y4Q4?!s zS{j-*8-Q~OiYYtO4S_u|{};R7sP&0`(Q$BQv-Z?1cP&lIPa5{|$pfU>ZMd$bF#+M* zeRjNqYUWUTi;6c}cBihGEX(ZK#=SZ`Tvw7(b%6)NUw;I7$-<3I!p5yf zNYN&OBobm4(EFMUu}^lZh_uew@r>08Gl3=P&5o`}7{uh^@#z)Lj>#$8+T6);{Wy1i zw@MgQQaN!{q?2o+r(E z2l{ps(q*ZjBO;tYo16AxdQKTf!bQ+dY@GE+$WU}rs&jDJb+qi=XikhdS9Z!L&G>CWcuNv%C!xOic4 zVJR^r;t5lblY=PscI01a=Malq&Z?hB_?DRun!!bFJt9o&c5oK%ggTWD9ym|jcd(vhPS|�i{4B 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�*E(Kf)(`{nX)a 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ΠQ50SXr~8LE5OA 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

?=l~7&3f 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 }`eZs#fD+@{3VV+aEh3EHq{?DsB!eYk@o#g30 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

CD}XBYe&eFgUU}tT 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

5+#cA`|0o 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/calaos_text.ttf b/data/themes/default/fonts/calaos_text.ttf new file mode 100644 index 0000000000000000000000000000000000000000..37b8f57f8d59a8096583cdef11442b02bfb05888 GIT binary patch literal 26708 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/fonts/calaos_text_bold.ttf b/data/themes/default/fonts/calaos_text_bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4fda67d4ef54932cd83b3bfc49b370a50ce7c187 GIT binary patch literal 21460 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/big_room_bg.png b/data/themes/default/images/adjust_pattern/big_room_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..498c6eceb5791b64b3231770e666ff64da5ca2db GIT binary patch literal 10367 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 A+yDRo literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/cover.png b/data/themes/default/images/adjust_pattern/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..aff5a0bb7c517cafbc4e3332544e2eeca2fa1236 GIT binary patch literal 51907 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
1GfvOXI5|1y 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
_fj`Zkr# zX3tIVHzal;mR(BadQHg;2ZxQ~1L(@@zUjJ&iDt7TH{l*&wKIA&?^In~ zU{g9VUw3~Bqu}0UA>D!CE3Xk@z9U*KWrfkuO$OUVbb?SzMxXJ@B}N9xqtpY(;X}iW z%4gMJ`uk1{*e|cuMoY21O0f|*T9&~r<8j)}wF6^`ZBhG8n}Fad`#CBY|4uQSZ5zy7 z{t&`E(C@E6K4dW6M{gT=W;AYt*f4HN`f(=1;zK3?Q~eOWVIYCO>l$YMi`j*f1v?V- zx35$~WwI1!C#2Bg(4AZVdB~RE1{h!q1lvd|RbbD%jvE_OpL)#MY+_TE8=+UQ_@%|d z^3z<_Ob=;-%J(Mn;V^S6qjtQN?^OxTY^1wzdPH4@v`;h`x^$h~;|`I(crv4c$VJ}W ztRBKce6zja`)%edg`N$xz=j81Gc47k`fes)=gDO|GNV92FaM9&Crs=%k6z%8>!_DX zaiP9WYX)iLybu6k1%5GK9F{V$=QhD8c?`mu%d9+% literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0009.png b/data/themes/default/images/animations/bootsplash_logo/0009.png new file mode 100644 index 0000000000000000000000000000000000000000..7efb1b011a1ac777dabbc2a4073280137030c651 GIT binary patch literal 1564 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 H?)v`#o-&C* literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0011.png b/data/themes/default/images/animations/bootsplash_logo/0011.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee5594f3d74c2ec6a7f254b70db5dd9d11e5a15 GIT binary patch literal 1972 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0013.png b/data/themes/default/images/animations/bootsplash_logo/0013.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc1aa445b640e395df9ab15a3847771cd6ed409 GIT binary patch literal 2359 zcmb7G`#%$G8^3E$DNIDoBhss+RO&4enpTlhh>T>E4$f_4Ppd7X98&SdY6 z**3FYBNdrb4zW2t*^D6@8JlPQ0q^Jeyw?xc=l*=|@BO*%`+Hy4_qy(%adUvG>Zt+% zpiYi+1F9xmm%`b$EigZVgX_j!t%?o5uV8> zAiuk~xFlGE9p{#xw#K88cuQ?XD!_GBz~b~eiD=usW5$5QDZ-JKAGV<}X!Es!5!VNBr?Y%!Y04~M)7 zmGMg=ENo^d?6NY?O!CN)TjfSBi2Vs{>!JmeSH#|K2Wd_i#Ip-}fGGfQBq=)yEtdV89v9P!d2Uj!FoVv7G zFKl51y#YnP-blPHoj_{Qf5y}%eJ9_+=q4p657b2EnOoeL9cPr6pN*Xzv6nWb85%ul z`79T9Qe!Bnqc>-^bqy|ecc)Kl^DQxayNSy6WrOu%lj_%#mJ3z)7X6^6VM|kGjTUVp zsjQh;h}D`7kd2I7+O3L|_4U0N*OR?Xp!ds{7Wy@k!a|4<5iPhuUf=mB+dABIfN*B! z44TJ~vLj*b$A&n6>LmD%oTK%KCU)#W-xXIMH(TS{L5ya$3^F|nyuvFpyH{2S_pfC? zOrUk-1(5d;3nfRatgK26nH-+E>x;}xQ=(k<2h)eA`-bnB+)XwX2ne@q3-%GyfI;v}y-l5EVNF-8G>mwCl(8xFe6VjY1nVApl z&Z!KSbmUogZB0_W(OlMG?&<+6{}fbiPpex}C=@qJ&qWaYkHsobFkvm9{MjH5eaTP| zh!+-kIk$4TOrmWeOY-&}of*sD-&{87I~5-=-P#xd1Uu*Nm>HEZ7!x*K!9hXJMheK z*#x9;e0=xv>o6QrB%Jn`#(coh5C3thpnc8kV zsrhP<;|5>q@QvWKEubyS`%WE$@vXef6UjL1DJF?~uI}>@HE<)DhAi1Q$lh};X@K*C zfk)9%B|CFSXy5eHZf-JS9l`TF)vsnP9TxLwcs@Qp{!h*ncx3l&jqE>op@W0N_AEJk z*PBqh+sx9>*-;m*$M-fEdfO|QYYCREqDmXghY{@c>qZmSlMj5}r-jv!6;^RI9cFDD zfwz;4ZXD88u(fjVanc4u+g`56u-S;g46i0Q#|C2Sh!iId-vCbeSF;a|viy4qwK%nf z120!m+^8zu$5i58cN}cvMEVG=y~fdj-yughyf0SETN?%jP(p#g@yB8jXzWE2t8QfW_JaHp}pdc|4KRK50titd=v^p`>U47UMkAC z*Rt@Qp{sebZTrB?^uj?u&n*12N)_a0U@4+~mW)oV`} z^ZoA=g_JElf&6WO#J+G5Z8A?b9BT{bfRZn6$&Ic@tgF8B@Gg4=+e-srH}kfy7#~tUNmML{vR9N!qlI=|QPNLq zEtyd{S90Rw-M;~PUy@+} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0014.png b/data/themes/default/images/animations/bootsplash_logo/0014.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6cf7b4ff350569ddb4f4ca333983f328c59d6b GIT binary patch literal 2437 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0015.png b/data/themes/default/images/animations/bootsplash_logo/0015.png new file mode 100644 index 0000000000000000000000000000000000000000..02fcd4f7dd1625dabc224ceae686b769e0db3055 GIT binary patch literal 2488 zcmb7Gc{JN;7ygA-I%;WUs;0{HGm5IgkTzq_v_Y6wFqYb)?X*!;f{;xsR4Fs1V-#bT zQMJa>P)mqnDpiqc6}6<{#1bO5D591x{r@{>&iDRt&-=%7pL^f;-sjw#;_Bk4taw5Z z003ntB*Gm4K!3jkkHoe)2Hkn+X6J`^NCgS`s&HE>-d`Q#)w*~9J| z=;-`_<7}qQL;N)|IfqFB#i0z22?qxUd;N{|(~(ccFV444O-*4{LBPOI zuNx-H%E|&-+DjGJO;NgPCn3PfSEuC)O!ptWJ_+nNrNG%=;r|M34yXP69SDfZos;KP zTE3ZyZV2& zWrSs3(H~!THOr7sl9BaS9$&9Fpt&M1(Edm`YFQTS8|@FoF|7S)BTVS`YAHw*3iZHY z&?X@v;aO8t(C21NiSXrhHw6U+-LDm+8+>8=nxVORZ;I?t?sWMVK84Ebot>RY+M5^4 znY}fN#_GT8=tOFdtsJld@@GcjCSNO>L7_K3lgu?a(-Lx1(ojUEb7_eH29BXG#X-`M zh_tjcqi;nb5hQ&ujC4;cj!!;65ZDoGvp?Mn@t*Z?ba1#{WP8_{x$4iG^eTp#JJOq` ztS$$d6cZ0YFGJEZ>LClj4u=uHl$8g=^|aa~5qtvz!u(#{G|M5_G>Sc(Oi62JL$SMq zN#IH1YcQqMy*D83$irK80ny>J#MHf^F_?!qlC7-hsIl=jrxW*i-mJlW^`v>Ef?zdQW z$be;YZ<)a%Aq(&8q1;-S=3+m$PZmHR5DZ;~v7T0jZMC#mIO6_rafuw9k80Hn)t?wx zjKDKARt6)?MbrEkEY`TCuCAD~{|Q4T{Q6CLMq&hgC*P1xu;P_-`zJm=cBtiwKi)WZ zIb*yD$F4^Ig6n4dpbTV^EeHIr9iK(x`bF_0y<~hkW2nW)ymM*&5*pX-caZrsc=0?K z9?ZJcB04OZ+766@Eol z+Yodf77B&xZZ7j5wNv+P!(uOcj;{cdQaBECZ6ezwFoc`lL6#)Jw)Eatar+kud7|az zY%Agtf-zcs`}XbXJgSS`+mM?hcFYmo51{fMN&M2Rf_Vx;XLO;h?Ra#hCCvOmwaXwh z#i7JaFtVOSZl}lgo8@q}g+gHkB(1Tr(Of@@qFLw)o{TP3UB@V?sy6L9=%Hm2f$p!* z4<=pYeK71GE*AbadEkc0k@*u`jq-j&Jl^)j8r)kVzmb{|$zrrlb%W zJ002bOA%NOqB1=>3E$q{p5EHJ@=zjlsg!u7C2B7k<;zdnJ0GCXT+5{-<809Y zvh7T!bAJbE^?Gbf46~#*Ml?(hiD|!LzQZ%tx-;L@o;t}-rN{3KY7lXLxV9))5z;% z?iKIbl9AThD0EAtJpw@>5d5iHzeZ!djMPirD_*^L5%<{n^wHp*KQC1EjpbHw`;(HA zZV(9PowC6%$YqG)?z@yayE|Je?^E7QPv5vrrSexLnh7H(v$l7+_Fn{&oV>nK2+deH z$VAVNd_Dn`_jt#nMcmN3jScbmFI6lPbenL?LSIksx*c_|`gsq%k{>!!W52(*>ldIQ z>zmT1CT~hiOxQ(UC2#48B^WSq(;MKmNybVXA3ZLF1)$Mb={qBV)*Ig;K0k05FYB~V zElVS{fgpgauwjQ7GH&_-&z)q1PMZ4O zIZ93*kG-`;s!s14U9Yss=&h#i@7?8*l<&0o+j`cE_(9rdhb#a)x2G3yNxZIR-`{6E zOs%brbhyX&e7?^QwQo25{(Sh8N*tHIaOdXD!~y|8y61kZHG>>AR3#xqRQbZ5 zjhnMP44qCLsjD7N9co)pS683?)-HBpt)X|B-{BW4z6Cw;d1Wd=zsxMx0tguOaEuQcb8xDz$FAb%kn0RkzlTT&E z4uS@>oiokpw@n3XQ(T#cp=ZERtkMRHWh>nf`}wN+FyXkFG;EO_)%MuJcBrswu0X*G zAjP}Ke>AdtK(-?O!wBgXY4)yfZuaf%vBWdD9_cFPHWvHT-h~LtKVXHQ1KN6s@ilKs zj{k1|7D^xQ4$hNJlbWKs4+oh6>MZVUxQ-t-N1Axsl-v}}HrFQo%fO01(d^6@R zO<4GUIDT`(>o10fvouliK#)OWHq%Wf9l5~FkOtTm>2pB;zRUbyh;a74o;o6C{>bTt PFMdw;E{K{7SMU87d`r4w literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0016.png b/data/themes/default/images/animations/bootsplash_logo/0016.png new file mode 100644 index 0000000000000000000000000000000000000000..c248e360ea7c3ad96274d564d7980bb9c2d5bfb2 GIT binary patch literal 2705 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 MMLHvD;lHQ;AEa)zr2qf` literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0018.png b/data/themes/default/images/animations/bootsplash_logo/0018.png new file mode 100644 index 0000000000000000000000000000000000000000..93682c0b14feff3c14bf98a13e32f6467a0e2583 GIT binary patch literal 2404 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0024.png b/data/themes/default/images/animations/bootsplash_logo/0024.png new file mode 100644 index 0000000000000000000000000000000000000000..441b8bc737be2c543d4d9d3382d8cdd17eaa52ea GIT binary patch literal 1857 zcmah~dokL)N-|SPC7M!|ijap&h(_Z6`p>L&*Xmt&|FPFO=i6)T{hfXGcW#{s z^3l>X)Pz7FT7JHsArOd~6kMN&?E-z$i=i9{1Pb%>bPrAcMaZT5@833tN~$=OwZ8W~ z=gfW0G(Gr?M!Na#>)LffJtHUPBWJxVF@B?e|PDNi*IY#IgV_XjbnD=4QF*Q;aAP1AUrMtGS&a0)HpT`GdnwLyu7?@ z-kFk;;uRmiT%y4CUEzg9w`oi#wX$}i2bP6GEgq<25Hv{xt@)K8HmmlnaE8*Yp`n47^8X00 z3Zd+RLJMPKV_V`PpwALQ5PTgS9kxg$3a>i3@o6)=xTHjH@jWd^u})sg?mk#HHbvc$ zJ9ylSahgdz7*pl0~dVx3~y}!jXMqp-`7U<4ZI< zbLNccP;?qem0_vVz6BqGg;4iK@RF-+@@GTt+Q`5+#q$hID)>ih|5hRZG z$`*;#C%C2vLh%`R{K+|w{w6wIU;*0OvZ)9X{IkqR_aJYa#CE-N>ZGEIRTuV!r zAQA|yZE>`0$H@k_ZFAGeoSd9-#WmGdhIL@$_Gj7hF*@$By}dnlj9y<~|8C7UKdkdy z$KwwXllU2ImZL%xHef`_XO-s#4G&~()P8~!E?sK3vUsp*Cm|?5pT>$-R*FHEz_k26 zMgq2m3;<;o!76>k_l}M=3s?H&n`?`u6Jq82=Y@~FVOx~M*-BaBESvqWF8Z|%5jV7H z5_M99pII>>h(RpI$J<+=O6&^X;k3&CqiLlp>P1|HH>z}H<%F4=0 zW5mfzFJphGF)%Oyz%4NcbPqE#Gv}F)!`J}eh7=~UV2$uQ0VGu4(EhfI4X4{F6bj4y z@6~QdirC}LM|~P$n-<+PRFzv&QUU-5hK8Ig@Ig`%a(lAQ`MOaXnuO|#seupd`xxBd zI-!zx@ru6JEvGMjcwPwavDK(0q7x$vEFQdeG0p^AfY%H?ZVWuWsTpAeQRRJsD&uPx zJ%SY-HI%Q*4;@O(2pW+KegSx0+!qw#nZMv)#1uVD|Nn13AMwai^*gX1mq*m&X|I@ zw(tCik#17u-o$%j=dDkNOz`uym;S-9!r*YTl6$B`!}*muGe58)08m|B{dB6mtQ)dq z!LS-{^eD7;YF==!sjj{-TG*whr&lx{ORwjq-uup{q+ChcW-vP*z^U%hBo!=q-OP{3 zUsQd@0u-w>+J*nsZ=Qy7#dJqS}HzEAexQLSnAtiEjK?g zIh^nxQUvF~s_uA@x?}h3*>ehU;MDng=QJ{lx58dqr2DHUfp*l?v}`QEVV?1Xm#oZ` zOMV&?UlVeA-UC2IMFoFp$%?(sXuR{B)FNTCh!^@ug1u?HrKjnv~LlJ`1p7PVpXvr27sfP(hJXbsYXXfn?bh1CBdt? zxjBhcnmpp#-_w(lo|@WwF!5CR)wgY31jhs}m3f!KvTkl>?F=0n9`;<9uYSmSM@u5c z9ofuw_4e_(O^`%IMX`r??7Y0Zh=z2e%c1(4HRGvN{Q>aW?^7sgM@{FIiVaNAC@3ok z#0bQOFAx-U;s!->+M7;X=duo6E>G{3gl<(KamQJ@;hTL}@@~~%D5Dk{}SEf z5WQz0>2C>O%4;|U`1spO4+P~*AIhf0^XPPXBAd+NF64#;e#0+EmW}Oi!4$v_CA6Zv zi!}aH*7a5fSBv!R?*EeCWK2`*&kwzhS^5!&C6eDe)`l3Z5ZUNAMF5a46PyNh%pXLa zJwtnX+8~jr1x6kEs&62PJ~6?h-k`qWatDOVc6N49tY6d;pAYbOyhq?nU4EngyW{LD zUHF_ybEHk0YGQi&?E34L;2zs1az{spmu*%2^yZY>SHGG6bJ+THTg~?F(&Y7Y>e!c1 NKd&H9@{j+%{vWa$lIs8f literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0025.png b/data/themes/default/images/animations/bootsplash_logo/0025.png new file mode 100644 index 0000000000000000000000000000000000000000..d83dfbfe6020b717036be99c8b31bb89fb15ecc5 GIT binary patch literal 1913 zcmb7Fdop8P>;$? z>RF6eHDhR~3TA8>Oe(EcQLmZt$kS+rDq%Bw_MH7^&(7KV$35S3zW09a=YG%q+;6Ur z*F_yoV@&`6bV!$6eE|Tnr8-B!j;K6!=z9hLXb?!QF8=g#*?gb(v2>H6O+)KD9U0X+ zt@$p{lJhTC?*HkG1?m8T0^`7f=uI+}(g<3Ba!`z1BK$;va~xh}{^iWoFN`=mm_e!W zJCM22dwljKQ8dqx?*`RPljFzQF}Ud+22Nj9@%PQBaY&>FVCdV@;O-gaCOs@PG_<(x z%DI$v$$T$kj}l`E&FD+1Km)&KzFix$@8PO!_2%P{$-%)v5?dXxQ}Z%ZRVgSWXaN0y zIu-zq{6Po-YycJrWI$jv0MI5>LxD&@4GsWMy>$RE%J{FLK{o_zl}@*c5pZ}?xAycY zB+?sYZ5>_l2nraVF%y#cDfbX3PkyetvSN>NDl2)@%U%{GS4rF0g+}ho%O+sS;8XQ( z8r3t_1Z|veX`CNRr3yv9Vb`u)xm52vEV2cbd|&I&XH2qF5J z{D-tW5s7Egy43-K#=p7lvB4ekIygZ- zK~|n21{+QceBGTi3cg9H-Bl=(_SS+>7Np$7wda2}(iRWo=$@L4{j9iy$D?=%#{`1< zP=@rLRiJ(jzBx%tOUt@S^FD`@Fv*OI>63B!6>A9g+;(W^?#8$YZ)PT#jM#5)Zx7$g z_&iUA&aYJ*s)ZN(quG1jRXBchYoU#e&E0Rj7W-6h^tZ&svsTJO=iWdflgaFDP2V{i z^PDE-Cq45}0svA8*gGf*&+ z=UyEGm$!~Y*}`v;t=3zMK0_HeQb%xlunF2M+pS)@zTU{#6Wq5KDZ{t*U3AOM)#ir~ z&MBp3QTzJMC|1hd$z}AgagqJwdK65jULn3H@;GX4>Haf0+^RgJIsY>wE&5{A~w7r7Wn);{pEo;u9zpWPwHxCaDW^%L^X-+YT)Q z46au=T4RZ>65YiBl!5Zex4KJ2b!?;&hSoK%r$IxoK!R_w<7)^Facs2OI-BUC_NJ^f6J97>bXyBzjFF!F@{0`!??_~=M}fPM`7yHyN3!1+j;T* z0$HtY)vq_?&a=y9U~<1RjMhIORwmqYt2ZuK-BBTTr|l*X-yiz(6(0fdrotCxR0rv< zVqB#={j994VAAZY?ORj=|3w=AF4y03gwh^N;(Yn#rAz4-Hv_WDPskk|9W{?+6&D=N z_xQo(B_$>HDt#`zY;(lnD(Qy@jE@#^Z54ZcgZ1ug zsc=IgX+O2eRN?zZCzmebe=QVu?d2;M;Jw;3$;YtPP%_z`!V$XFKR94M5*CYddM3Ic z8*`oUcC{WYN4=Zz(2BrJgbfP=h0F3>&Aiwd=-8D~WrKGW$f#hkSYW^h)hE^91b5^7 zRY(`~>@&#!Ucu~Em)*1lk$%`{NU4QE-i2^Y;9RsvH3p5whG$B2baj!h%0^dA8vo(= zkWj_p#A2VmKA0SN#Ra+rUl8!m_kUsXdU_r%MEntC9UGsUYw>NWJ7piIjSbiO{V(YM dis(Oa@Ikr}EGOCVP5*C+q))tD9}y!n{|RI;RM`Lk literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0026.png b/data/themes/default/images/animations/bootsplash_logo/0026.png new file mode 100644 index 0000000000000000000000000000000000000000..a25c3f7415011e956d0df5bc1b506ea7a688851a GIT binary patch literal 1948 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 F_&4aa!>#}T literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0028.png b/data/themes/default/images/animations/bootsplash_logo/0028.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9357463654a1c9602d95834c25098d26b51301 GIT binary patch literal 2081 zcmbtVYfuvC8b+m1Gc4D$xhaQiQPVZEbfc`)%r!LyHEi>Sc62mvPzsW_40S5k*7Z_Q zA|h&<6 zx_fm20KiTUcUM0EKtraEBeb`x-z$AD(g6UF(8KjK>RO3t@@>p_Att>mQH3&Z+^~z? z&pHwQl_8H#H1EUBx(N~VpWrrkF~KPsXd-;(jX2~Q=zFV}kKS}clqc!{E;E|`P-y>d zK1BE`qPVgsgPJj|uLrX$8ay`QxIwi`%mb<${{7hQ zV3!8a0RY(T{Qran_Z{(gd}|4tzv=jUPaVptm`1}s$W=)NZy^FjFI3cE3;=q=G(!pv zboLr6nRu-mmuDJ}|F>;HbONZn9A$OyAbXYnfyd)@BnrUmI{>DxWm+07EiHauHl)>& zQBh_ddmzi>aTh2Q3O}aRvq{VJj2h6~(lT;wu19Az&2f75`rVfCI9_XXaf)=_JHUVm z&IS^}!23|9*w*`ep?13Ro?p$_>h(*P=t6szL@ZuQ+l)9eel^H}N|HsnGGkh6UFc0blUre+OfwR( zl+8Dys2W);)}v*oY|?kjGs2jD}A=9luG4;uS+>OIeDs3M#94n zo83W#>^)*}K}AIcHAxj8A5RS+eEqWJ9Lz?~r`><>U?sj=d%c-=vtSMYl?PHg4_aH> zzvyfE(+!$R_xU`gIs4Fo;4~OnT(!2oo~u%+So6GN+>$W;%yr2$8HqrALL20`_OWd5 zkjx%wjCV9_B z0v&ek7tgOHO)wpG1>02f^O48hnPReJ`nf7y_jbX>qYNJHsTXZ8%hHEZCrz55i!nEm z=0y+*30Xbb5+76*z4-Za6YuaBmBh(ognTIUH?mF0$E(vP`yM6suuO--^A^r;*$D@( zpz%A_R#sN-!s_emsrDJY(HMfV@06A2$E(oXFp$l5A~<^}nUj2CfLZDeiwGc9RaL<} z+A))!9wW1}biJ4PW7FhQ+_v08nSAM2kFQGM`I<2>6MW};B3Lm~UMo$qX8Y|g7;24u z?>9md->#{#^sn>x_VSWJgf*zeS6zc`B0B=^yXBtCLsPo1P!Iil)z^l6-U`1mEn*~t zjclxNJ)oeVppJA^n_#Q2ug|zqAP}TtFj$g1%>MZCam8dK%BuE4-5Y`Qh+c&+bNxju zehU1L6SgKmhnXx3WU1G=k=#9p-Uzm()}Uf0ydCwbtE&%6sFy+yvI{R6scD|(ML+&f zQe|8fw{5%H5{`j^fvYCVh4yeb+y_6EHyS0rQcATk)K$tBMj14<%u%&c9xoipVNj$j zzI^FDKXqNad(l~6Z4Q9LHkB>*X5#&-@zvDO#`k8_E}g*^Yh+Q+6XSTXLUAqsJa7nv z`AthRB04%+sgy5`N~XF_JdQWyFh(aZMmHDbDd!&jF~Vo|1;QmP)0V=eoJx@$NE#4fr@Q4U!(9pLxiOfG)RxvVo~L24jg0+H z1(hjXrAPF#7EQEGH6f)UvDgiBQf3PA*^x zpiaB|JCA9G{flX_v2`M4CqdE{5?aS`OLpjS-z{`@mm4gji@Dqd!{xygi%*oS^j$9- z2BA*ZPd=fwKYJG3owkv{?x?A$nM*!s)LLuw$`?5czc!-f z>1XE4XcE@kT=_SzH0#NNZT3)-d(=W%Tnlat8cNn#3w?h5XEY%OL+)^@U4uVGz%1{1 zT2c}1z*O_1f_QHF=8hM$voCKo@60`&bwqqR)%RaN2>UgrpbbGy_#H{rR!`!&A&1+9 zZS{~*``iUw$6?GjVqyt;m;lx@ClSG}0iC{rIPL}WB46{O1%-lpOCK6&PFyL!P$wFT zY34 zm%WAnZfNft(g57P@s~XV8yBZY*CmqK{J}qY9m(%S$3^o?7wb4U9BwS>`RmuO>9jq6 gzbOA#L>c_67Rbe7=SO<^m2X^+Ul6VhE@7Gf1_GAcb^rhX literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0029.png b/data/themes/default/images/animations/bootsplash_logo/0029.png new file mode 100644 index 0000000000000000000000000000000000000000..1f500f8de50c63c326b48df207dbd477e7aeb2e0 GIT binary patch literal 2344 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 C=h%q= literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0032.png b/data/themes/default/images/animations/bootsplash_logo/0032.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6eec5d9e4892e5c13ad962a83fdea1502abffe GIT binary patch literal 2417 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 XTu-0Ww7^9F*YXc8IBcEs literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0034.png b/data/themes/default/images/animations/bootsplash_logo/0034.png new file mode 100644 index 0000000000000000000000000000000000000000..81a869d33127f9a34d150b8f8dde13f41973a32c GIT binary patch literal 2279 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0035.png b/data/themes/default/images/animations/bootsplash_logo/0035.png new file mode 100644 index 0000000000000000000000000000000000000000..d85aedf50387f2e3c2abe06232a3d058c91f8418 GIT binary patch literal 2395 zcmb7G`#;nBAD=_E2;D?(-9$%Zh{fCzV}(&mh>ct_vfQ?5ZYj0YiL6$xNm3n|MedvX zW#=51lp``j?!z`CbLV`%|3TmP53k4T^?1DA&*$Uuem!5$$2-}@*c4KY`pIA`Qeac2gV(wDTy^_AEL&o6mK+fEFHNi&BkJj3$%LQW4UjyV4F^?3UYs zxKsAGi5-(TdMrp$FT_NuX6EvgggmUWGnflgxqix(|#~Ikv z77Gh~)$<1?+uw3(-J-Ah)J}l$7mhXcpNY~hGk$)4>dysEN@xD*-xNR$cvP&pT9% z#V*kM2e&K$oNkNX)Iqm*AMTa_K_vd~)F<*l!#S(?4Ik|a6>Zc@N3wf$!qY9b;-Mg(zV)2{}m zk8MLDU%~SrQOE%fXORp^YzdFVhNcUJLi@V&+8v1kgWu)DTtn0K_4Q+n_Yc39TP!a( zu2HfE1DwapzR$X5NQ#eiODOH0T!KV4VDhT(%ddEt<>1$Dy0Y$LbZEM{^-;X9X+rwT zj@8X|(zQCj-CvGFW}^5dbb(kXOZ3VTeBBM1ozX``LIqKmp?0)y$D`%*Np=~Z%p zdT<6k_fa)be#KhrsfY|oiP=~wIa&XX<|E|skQ-Z@%;^>(s^Fp_XYQ@h^{(kY29^pT zo}pL+G-YMuOS{!bi<3_DqN3@wrP<=muE56lxqbs$`$UpvZNm1@Hy;MRGHX;+g+L%Q zlYJ%Eiw;L|;|uFTpDM584XdKj6R znHizk@AN_+`&={h=FJOx8|B%yhTUv7I~1D*e;;`L`mtMTCMG84x!L>gL6@Hv`k)*N z%Ub!nh#zKHZryj{5)y_TH23P&ipSWg)Hfl0#h2TL1nUe;t>=1_%|(N(&hvY7xlRD2 z1miMgb$r}^wC%BK9xIOD{z6}8zf1+XE(bm3wy?_5#03R8P>mY#h94qNp4}-1rlf8a z&noD1c6OfW{cwdQBoT>!5QlO*18JRsgzc?3B-K|r+27FP8JhQAQD#Sb{av(9z%83S z#|JB-^H1us`WW$$*10xq0E8IgfM zCxjAbJ>PxhMR{9uE|*k(#oyFAp$Ol2WSx4Z0!8S1s*Tb))CO$O3EFwu6ClV5+vTbC zzIc!CM6(`lF)_x7SUH+i&dCy8`Y4>6lM*Ct|7fP9S^NN`uaHFebN~+X!UZ^ywAB>n zD)HP>a}OSmhg*wd#&2!>8EuXsE%-NXHq4?<77g$_PuH~J z3pn$FXVn<`#o_tjh znQWHfs1>jTiAaZyO=Sr9e@!j^GZCSpqEeW|dH_2h`8MF#CVqiy4qAuy zP!!FYbz2`8$P|hBS3A49h)a>=n3&Lz^{EI`A&w@8x`Q6jE+lx$aJnN%R z|6Z9nSMPNSw(Dm`Mn+2f+g^GIUz({-PdE%o-w$qZH8L_v$&T*m>^yFdKu~WEv2bfO z5!HiB`7S5^wIBhuundJO#)mBnxDDP`_9Vcj0wyyB-VP35`JBo)>@73J$=<@dT%AF` z5_f|Gj}$KyP(xFDdwWNJ{P5-GqjeNJ!-V_!#HfeQ;hthX2Zk-8XawpxDt|~?X=zE) z($b1mok`H97^@6h#QsrOb}3@jBie@_^E4#<&8sqeOGP})Na!pq|HXkfn^w9SSSss zYz}@KW3FKpA&bflHhrAg8AY=B(1_8aoi{aj_FA*`T1g8qg^B1rb3sap@(s(LwFLUU z&O5b4Z=!ak9bJAgm@mc5=5|9;Y6$dkh{fifj8XNT==Y7eyud8J?3%vQey*7@6EPwvwT>>n^tbPZ%TuC3} zve~rk?yo%WkniOA{P}Y)jpT&Wo@sO6KV6s736uIweLn33+U{JhSb3{Ax=QCn49fib+8~nE&4uq@A;Ev5n82{{RzT BeOCYg literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0036.png b/data/themes/default/images/animations/bootsplash_logo/0036.png new file mode 100644 index 0000000000000000000000000000000000000000..a9bb05ed9396183dd1cdaec28b36fc4efa9c3ee2 GIT binary patch literal 2544 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0037.png b/data/themes/default/images/animations/bootsplash_logo/0037.png new file mode 100644 index 0000000000000000000000000000000000000000..cf124cd27b2a317aca412d473b7b0138d41480f9 GIT binary patch literal 2592 zcmb7G`#;nBAOC1_S&fKpj@#;VA)MoqvO_GF!d!=>jdYP~9kb)UxnD{;LP%nv%`|t` zHu7cUvV)3QVTdL+Lvo3U@B01)=llBM{dhgzkJtPCdcB_S=lk_~r8_y;K)^@9002NP zU9@xo0Erc`enUn|yx#3o372N@Y@Y2Awxt;*CljLb~Ao*Vix zQcUBRV2Jr=CGhT3O5pc{gQfIS&%(mO#D;Bc5~$ynAn|e<`okQ~L&*|lzBA;ntep$7 z;o*5cHY_nvgs{yOe-Em*5*P~2lEqel$e;Pn8=&l4TF?)zklxn z^}7d)UV9l99!}-eQfy;y+$g(6lHa@cwqvoG(J$3O27*G!^z<}uVrOf^6$^u_qHCDI zz0DKCh`#+DY-$hCRTk~T9lGxTx)%5K#8YcapCndjz9)0-W!G?)(cn&X=W*L$SCzJ#&DO?+WdaDw{ zu>Qg4a=D>DHn9{g0ewf2K%wX;C>%a=1nfrQ)QL&JzPbE~nR*mILB|TZ;{?3{cnqd~ z0plc$W?F-Gt?=2E^rN)t+4kf;&lVYVb?=ws^C;dZ?Od|DF3IUm2YEO!IVxw9{gXDI z?}&1`pimG91YKS<_X`ddcCWthKLXtuhrv)Bhyr{(bG>k*WNPK*-yO`DBLsY`{GLQB6S@ZBTL!q%P)ahY`cRb+#*{moR!%%x!2^HSYTv!O9h4StV^DzSYI1-EY4-BlF!TCZSf7_Z= zYY22Hu{MFha^@X7)MrHHdv|mFqA#;Wi{xG;1tPzFl_a(pBulCjAiqaX;$nh z-Ie%MY4O)qY)+wjb^1D69%~>hNNG2z=9VceKqXD$WO{DZZ;BmOj?yXpLahs?dnb1N zDF&-z)?@vCY*KTfZ2no;UF7pjG+^m%R?M*~Lsom67C8i>nGw;^UY3?p($cCndBzub zFXNn_c*<>0_DSu^VewYJ3=~I`pN+qc6@+6(+6@us&YnHF6Fb!*J0Wdl1jY^;LQotp zat$SNQb3`Mr};m5&Q=MSFt2Avme=&1CI%$MxFk&>q~3n$$v(krOOz%TzWe*yA-7y% zM@Q1)z|WLp%=9{aYxzLWk;~k7@7{%yL`!TqGmu0aoO3URIrTYcf$$2m=9U?mnE}3q zEE6p?)2K2>d;16z?LRkH=2EEQ)akCI`&;VsXgC)qGQKlzh@Ci+fz&ED!hpxGBpvIY z1+5>9m*X^1sTYjYquMR&mLpeYoi#*uXA0SiT*j9O@VJ=gGtx92Jw4HTv#e#XFCv)^ z{#jfCIaTatvmyu9L@OQ?q>$bFsx#GK9}e+g3$myB+B4hoKM<;3)!y9S_P#Uhb88&$ z&k}0EV*>)n73-g7`U>f3-ShK7+};q@t5@8mn+aAWAWc6CL7Hpgh8Efc+nW#Vn~j6p z+1Z7DowD*M#S4#imA>h%(r_qh(!bn~D<~$879C1)t`~=u@%X@BwGj}W`(@?VC`!N% zmk};5645)ft5q>Y*vH3h{mPMcH%jE?YY($bGsNoLKROociS#)S zj~4l}MG4fVY-K*QKagsZJ_@@3?aKh{wG(2np{J*Z{G$u~)niR?BKYyytRyKqA3sI% zWo%3@E!F&Skp*cVV^|X>g^9d`m;FNiYNZ!f5>3V`vm+~?l0~-ejXRsGfn9>qKd^Ty zABlS7)6%A+<}B{Hw9*HoxwfP(XC--LLVJqDz5s1)?Q#RZ{)QD#Hpv?`*sv_A&tkE9 zhbyQfQ(?5US8`amUO~j5#4&5irQ7osBklH-;DbaQ_Pbtlv@XzK(V{$>Fb`YrMN?n| z6Gz=$s^(LlzeRFbH7U-ePB!`qvw&iS{!pn?(dfBk6Lw_X&kgP30l~+hGj*D`55394 zVUMXqOO$-*dZ_MZtcld(xXQzGE~wVj><58${@282kyS*sp?ksRL!C3~yw3Xv$%Xr( zu3x|ImRHMd_C%p_*=#otDt2T6nnY7cIyb3SKMs=kIUDHc=v0JQ-}Y2CxhD5-Mx}pm bqfxdEiXu7~KT0lc_<8D*m4js!+$Z6`(OT!p literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0038.png b/data/themes/default/images/animations/bootsplash_logo/0038.png new file mode 100644 index 0000000000000000000000000000000000000000..968c5dd609eaa796e3e95fdd07426bdc9068e3e6 GIT binary patch literal 2497 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0039.png b/data/themes/default/images/animations/bootsplash_logo/0039.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba06d4aa49d6e437fbe091b3a9d7d7ef83f159a GIT binary patch literal 2448 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0041.png b/data/themes/default/images/animations/bootsplash_logo/0041.png new file mode 100644 index 0000000000000000000000000000000000000000..8be91a641704754f35eba339bac68a1443035388 GIT binary patch literal 2083 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/background_default_lighted.png b/data/themes/default/images/background/background_default_lighted.png new file mode 100644 index 0000000000000000000000000000000000000000..df8d2965f7004959ff6d7faa964dab2ac806f42a GIT binary patch literal 19325 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/background_quad.png b/data/themes/default/images/background/background_quad.png new file mode 100644 index 0000000000000000000000000000000000000000..d076dfa1db4108f065871524b0ec624b0de5f242 GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^6M%RI2OE&&7EQPcq!^2X+?^QKos)S9wc6hbmm72G|21Ky{o<^io+<>}%WQgQ3;jg7pA7zCUzc4*E} z5MJgr_2Nth*`nu<_x|Ef_-V0k$NJ~B@#la4nE22B_jN{wx$jR literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/background_top.png b/data/themes/default/images/background/background_top.png new file mode 100644 index 0000000000000000000000000000000000000000..5d867f437685090585dd7e971da1a581cd24b701 GIT binary patch literal 21972 zcmXuL3p~^P|Npa+#AiVe?Qaps z23m>&M*4Oz0BZf%0tZ}zq~Do<^s1n?q?x8UN&d&bL<-60+ggKhv8iEiEEBKI@33n7 z_?GJaeFu9<>&=V8n~0v)>Lm4Z*Qsfz{LeMc-D`;K+(?r`%L!6?C-k;JDtTmO z<$rHEqFKJE2V}6`%j%jqEKm~yKqz)%b~=my;)`59(^FqEX{?l z*8~b4jh05KZVlK`(##q#w%3MU7WfloP@j5rYE?M{lVnXEy!dNFs_eyLqjoD^Pe^r2 z+m;E5M1Jp~gtcJ(MEux70tu?S{*?oN@cB13mZOfl%5a*q8P;5K59h z?q7IK-)S$bBb~2D7%gqz_qFux_r%d8=QIr}^@Zd}M=OnRKo3sR9He zsLoEttzD075cPCWN_>$%1;}?<7brczuP^&lGjvL5IY8>^8(p&HHui>&gjx~vAtXzhO=b_L_xo4>jynr4=68vHi!1(HmBr(yZ zohYwSE95Yh%O}cdKT@x;ZH;;mV)+W-(&jC8wMF#*F9K+uSa{Gt^^u5> zo^IJnA>(+dd)CE|E?I-7rEw#lg9&`KG^Rqnf^1HYSW>Ty;O?^!aJC8qb!DFpzI18p->K&*8eLMaGCc8 z!{0-JTc@BaMNpsRb-F1x-fP!C5vuneB44sB=OKV&2kcjVBJGR~2LbHHrM=2k#3mlT ze|15^Qa!>ZZ()Nf^=o7e+tXIS*(dt#&4`HA4|gq4x$mSEzDT=A@{SQCiOSR}HD<@2 z@uhfVe&5MiE9S42RI7sxs36yi37}2oDwL)*8cUb56hvve`T-$-ZVpX6;=HmbUrQlL zMCK6rUkE;j1qt=<&i<;6N4HMl7c)QVB3WMKr);tTyCAnv@ql~DztrO%R2^iW9N}_= z4gR`?hK}-B&(-gHD%X%VnJWuYS7a+rMhEH}T)C`mLZTB0zP5^;c=7A?cpQ}0?*5D{ z2jV1?sqnoE>?=gF3)k6es9RB@EuVYTMyGw=%1qJuIBpU@Az zD!s)a`77b@(%g#XIdIkgJ&$Bfb3fFj23Uu$Zfgj9-=`2 z?bio^GTB@P^DdC!J3TA)QF)11V~-dhKJJEGvpQFh5HFuXy@AbTzJ!Jy4C+}_xrI@6 z7S&p1?^%=w)3UTyIeTth^l8PMGnyXWiUT?*pO2dNud#BZ@4uzIb0>SQ3eQl!B#O4$4uJ?I{WD zE++y)UV;DE;*)gMUi95535nNhai3KHriXpYmMk!kPboTE2jMp*@p)<-3cu{087Q<2 z8tj7#@}Ti^=)68i$6OKIpLfVtKz&KNe{u~Y*R2j&x%hVxSMQe>S*o6FHxKLhGc65p4dWygSA>+PI}bB zK=3rcAAj)5bT~5*?=_t3)hMB2C~YlB4N=Q4K<9^GWET_IEeP=vL_WqgE9NV`WPG*7 zY&4Qe{}@g$WQ%+hVBThN`Al_=C!Y|?2eLP@6 zC!OJ@7@NhmU3bomq}py3tRJ8#^cO{BQG!;BZLCuv1lqY}HYKs14b=D2ERc`Qpt1k$ zXpkeq2Ep$gl=gBU@++%-EoHn$KK=?|$Sy-4PaySuRqsCBEa0>);+vFKc;m~Y)>vSK z{`KawklpNXJuqC2LbN}(5M8&2-8V+PPQ?bG1YI(Zf?JgSn2gXJ+h420x$_yj!l`uk z%Sz=r7vu*7BEyk`T_Iw?@nr{ZkaQEIa|0!;&Hr~8(9pr{kyeP0A*dW>h!jltp>vb* z2?5qCi{0%@R9S2O$Da~iX@<-`?7^h|laFAj;?ZNRJNQ{_=~y0$E1#9#>aM}70@y+RqOIsP{fW0l-(Z8TT z=}Oit*+>S&jW3m+**mt5yPN>{99Mh}rM%igMFFndY8=Y>CdfpU2E*w|HVPTELRZ$a9fjYY%COz2?2<2h zb6KJF{{2={3DFY?0x-ctSr)Fs?%T6ij!uH$+IJXqOj?ZC>fUShd0s)VRSemiYpevm zPf3SU(t(62QQqPw$)|&*)mErYO4KE=@vnl-sODh8AL9Be`om1$peU2xwOyxkxfY5o z(2+d;W^STM3ss~hHB*4`-lJK+* zVxLU#=x|T*Vs&B}_*SVQJqO`ehB4J@Ox=&kZ4(Ip`AKshSI4UTGgJ z1U9$c%VPiZ3KFK_6yKil)olBN|{m6+nhGCIeS2ep-f#d9}AFkL@=C$$+1=l>rAIRl?Epe=Hqeq_UOv~ z_2PD1AW&orde>U&DR=o&i3(O~eIAH|FCuuVG9D-N*#Y#)AxWK%&N}Eyrb3u%di(P40#STQwd)Pb-F)*K z5L3k8p`0NG$u7e*ZL!b%7glmUaGK|ia~!34rDo#o6ruKZ;L-qV*G1#{i$Elu)z2Cq zYBI_6?y3v})~3%iWpu-fC$*W;3o7cF(^pjZj+x$+t52tvw+93P$sR=@rs z_VEa$h$?k$$F zJLii4oi~792Zia2aA<{iv$6nXF-t8SuLD9lh=#2pPtZw#H1R2VxJNVen&%q^K-(q= zy#!!o)TaVy6f;lvMN$dc(Yq8%YupJgt7!^w9y!-KJ4w>`C(Y(l=FZY@HFq!jtY_pp z87Bw04OeTdHk+gd?}$D{VD6r{?Z=6g`E#Z6G+IyiuLz$^`Kff)mgzukI9Z1F1n3#f zyW@7x%TF1|VrOO45X3(b5k3Lb6(hXBMF+ z-tIgrc$$@Hz^-UUEYy7r3=)1B78xB}!&%~MNPKR}`*&Ckb>APPsjb?1OJma=H%LT} z;BVgBs4HbhS|M}6&_~qX(O0a*X?)Dc-8=|ST~0v?+7G0MyHbV@vd0pT32Nxp{=X>s zi%jH77U2iP+ew);HD)Z1C~SHbah=WkM#*zf_=o~?7^q6A(v!HiH`#qd`f?e*S?7L$ z`nXB9?*(pF9Ut$ssYSGeXAK<@z1lWcj|MBh4EuhP(PvkQnIJtHIH`Q)fobVC9e|zz zr9^YQCbDHCuhTiYt$;-)G@cLjO+nZZNuHMkfHXa*^=rA>GSLCJ|7rq#llCW$NaIx>zll$32xb9N|eq+yacIUC$%d+ zuO6Fz(fKVcB@YT!#xU4gDms0=eYW8j4)^UG+nQx_P`gLrk!BB)HXDBsS~w4RqX3-n zdjUq63FiNIXQj+ZEHC~!Brgm>$WF}MK~hh2i}rumBfOm}=~0EoQpE02DTpgZ_?OfG z!USzIH!Y-9Iv^w2Ps(iScLa?B$gTC#ctJv>FB=x;@)J4q)&FP&|HOC@@!vJ?bM^Kp*gBJi}xSP zlq_1cdNj^&>bd;_4-IK7eBYWWFYpRF$;GQde%v=D@G{T?Csw00KoS#i_BuqyQ`*OB zA4rbrq6pvOXjsk9i9=8$v!&3s)@j5$keU6xQ0!6Mui1}Bk z`TdZ5J!R$7N-P~Bnn5_D9#s1s3hU-Te+z;%1ljKk!Ed8I#6%~s7zRj2Eo24926vH} zCogz_B*Ma1Lci$JHZw`qIVW&bv$>J7qOQNs)mU;NZIFyiyuTwlICK@4e)cN6;`<$L zt}#HXUW%tnQ{3#y-x|TnMX|28jK94DzfD-C^Kg-~zZ(jD!rCIHxsCMP0kM@*8#q3q zA$y#2*pRgBZ!hD|nGhcN9r_0i>8L|?4;AV%r`lgrL_y?}8#ZQ%w2!d+q?Mhhk4})8 z7UDrmZ>L{&L%hFI_YleWMr&Ribk(kxIew#YDNc{qqSoL>{MScpS- zNm3Nq(El=_lC`C~)QlN2WuOBsC)(3C3udPsV_W5xT)2obdtL$|<$vVJTBqMA) zDdRhcjMlAssD@5#@%h=GOttalE|kyBlO`hRtk*?>7BfVNEA`ZnCd3fXyj*}4#9luL zh+93a>>xFgikgO5d^JJKM;Xr&DYXF`ny5@BVs7Xc-v-z;Ze70uJpdcX03c5haQc5O zQuL@<7wU3O%&Gc-1$x+~jy5HorAc-X1qc~O~!R3`);oJkKpc$;N$X0Xi zc6vdY!da1es4pIWpZR>Gzn8J&lg!TD&kDtzeXG!I}ZZzjR3kZ)UsFn-uq+UnB|A z)_+^Af@O`u0#wUQc;O84*RRByq{VZiG~|9SmG!kHe(%WL<+04i4d;Qd)P)lSkN_x>rTVRfcM!Qko zM{v;z4^Mh3PFuSgWf9!kZHyi^%`>&$_^DE~r&zT*Z(i%aY20{5_vylhVf3*N>347P zm%jt&@XK+jc^93tAo99Vu15$sL172Q9|89Tb}(u%K$((` z@E&N~HIzp=coX6{l%odQUu%`)kR@3!9m4pO(Tl)^9oy}B6{>EuwIA~pUC>iT9BD1> z`ySdYen%-*V~(yysoXj6eR4rX*8GSy^ZF1dSvmqUZz*+f zd8lHEs)KkWfVN(eRmVBX@m`9D3o-v#shHnG+L6@TyEkPoe1z1;TWY3Dcln)9Fn~`# zgzZ^wW2KgKQV}e0DowCuPdahUL#sy*ME`dsz3&72XH1ZDwy(i0M>~pzCgHB=S`T!F z^L9VrK1|y&ip3%7Zha-9LI3-F4H@o^-&dN~l_x+PkDB|OhT${aQ1n*TuAel+32I4) zO?@X|pOl&cx0*K~p=c8VdSNOXT8|(x2$wGtE=N)Nb0|e4h&)s7+_0B+p5ZE|$C+m& zrxqYdS;sFA;MdOiy#sFX6P#%w%mDFB{l1fse6gdGV@o=$KDnkMnBm{)NIw@05`A{&vt}>Du>%mFfpSu@4r2 zlZZ?gN*Yp21tM)Ggd;teySSFzvV6{g?RvvzFb=u}`HHCvYkK!v7@zVlv{3L0!^a2l z=iux_S4}U;C=LEWi0F;dfGlpMyW^BXZuVLzR7KDKB2bo-{H3peFE`TY*U4_>Q5sSP zo3jD*LqUDZW`mN#TNJnj`9oN?E3yNK8-+%K8I*IXOAIb;{}Ike2)WuRz0dYDi_{G4 zmO(1Y5DqQ(-*ImnMsoY)mg|Jw8dLb2KpmY3`}rr}-bx0W7jSA`Breup7u zB~nX#^p!W}T!8XG0fOn8-n3r9wljS)`l~v+L*Zx3P)3s$G*25UoBtPYHqF`0t5%oV zO+nAuf$J7TZO%l{%urTawd8)U6-qQYK+6)fYf4$(sot$c?;h{^0P*g_3Q$t03d?gO z_-myF5sE{4-Lg{IyA9#>oTlM%cD;Ga;CwZ9~LN;q_!aPQVkLq^H9_l){PMU1tbCz7h*DIWSXsK4xLe z5W^7|ocC90ot8O9Ucyv5pjd#&^D5mkS6!kTeQICyse{`s-i}`B9m*_S2tNz$s6N|- zhaY!yTNZXzvi8gsz5`}?pf3f$RZ|BypoLE4`Qw!S zAL4Tw=UKb@A$t``r5X5nR!+@Lvq8kbBRz>LL_Khk5a-MG6r9LnpJVzP*S`SbqB7bI z)I$o8xX;~d_a;j#EcZ6HJpCj4hJ4g1C6ESXtHsYu`>Fq;#h!SNktPnWS-5-*cp`!9HVAu%H%PUT?t zv(?8iUi-=#&n9=qLHS#XM{Qz9Sd$z*gqaKF|8_HX5?GH4e6n%x7`N&q`fv#5uv1E; z3L);=yK0m!#Vx09579DU{qHUc7?qfcLbOa5{ z^#QDD2P%O$HqBs>q=%prm;K(uXDzB&fnicZDCS9 zRY4+LCZ@luKJqc)4&_LQu9Pccccn)*UZ}(GpcZsFER({G_Ceac%{orJ@O>CZ{VW82=knP|K7V{r{>~rp7VHJLVWE{^1BOfm( zci%|&dmcC$y#oHcBhP(D=I2B2McA#a+k!LFRBu2`D7;Ws_=M1|dgWK^}Py(fSo4(q# zAXfF}P&YsEa~v2UNUPRd?JFe*_hJoJsHkghJ3KZ_z>Lc~%y7mg0EqLqK3+x`hKj!! ze!o|MIQ(?AaPmY}HOU#Cw2%iN%eg(pU#bPMP4n;1;&_EF=>>2R5wKn>XIrb4KagN? z$lMU*z?Dl$>le(V3SH;cd%ziKG!5x&X=rXV#<(L zEBKkX%mVeW_WUdVzZZbrqrBjgYE4U)G)KIXiwY1gPW0{B#v8gJ*L^5Cayz{!4=U*l zPgtVuo51hvr+G;m!88I`oLkmAq@&pPKq+strtNiLm#{uZQuvM>szUhjA!hzB3cb^X zi8{MSGgT1;(6?cAg$Z*%bY?$;CHzIk@NF>o(=M;l6uf@=t=F2s2F00pqy+qUGs0m1 zyuh`dVc)|X3_rHr^vzkv(kldWmh`*a>XW$s7?!kR4$a+VZR1s|N{Lfa^K6F~Kft_r(2fo=;^nojDlX})1QN)cjfJ&D6%@aA#qSWr^Mu-^Ww3;~J=Ojf#ebNi zBpc8IskbPhCUBhzgR`1H9JmEvVQzkMPq+!j2J4F&h}0iGt9&@pyK$o2%Q*4jDfr}r zYd^5(P(g9xD3uH!T@3U6?7c^4jEPf%5v=rQ9~kkaZA1L{PgH6AE>@ZP@U~n42n`*Wb)JM+kv6T_6IXl}#nc%oNAbfN5n6?!r`8sf^7%rK#JHM|FOtFNCU%wjP zEj%|jXsyz&i>ggQPv1%}a)Lp$xm#=0gUG=B{XpGDDa#m$8N= z+H{IVDj>MwwD#>z9Gmo3|7fWQbIwtzK>(sl8M3&YVelyF6uTw%uFuYBQ8c-*Xa2yu-pd^YC2(7oCmKZ=OTdv} z(x>0@{A}Uod`DUlm(%!>B}|xxcw>1Y=;}n@4@t5sCI5me>UUMTo3j5kp72chXx80g zuWOeHZf79fH}cr?uwa|Wxj6vub-sdh)>#+z0*>~tuB|OIIvI45^0YP9AtmVK!R;^p z;AuQ)&T6f=n{p(2{h;TzasI{JH$4$kZO{$v-|b|cnXI;KF?^!8I^LG0eI7W;?J@Fh zdK6fryjQIiSL^=0=T6S|L4MRT@&>XHbSdLlq|N)?>aH@sBOng05;=}3c*ZerP&DL# zI^R;OTs~nLeMCEYy?Sg^VTjt{>v5OtfrwI?r{WWCJPfigv&ZtBj2Xj@D7)Z;!bSsF zi(D{{k%m6n-n8+4fY!K`EHFU7LUlY*LwHNERkoFU&WsQE$*%ePqPmLS;Vq^MQ7M0v zQ`IH5@5$D0hB77jUuH!lCGe;i|4^m3se~2(g!Qei`qo(4Ew4u>^AER_CBllm{$U2> zE7%l(I{Y5^0rk0}U5*@F$U#||K@R8TzN=T0J1L>ayD7)3wjm$WA$kVTeHqR7P(OT# zJX?`IdXc1qrn_V`>0;>bezx~>e;Ql8UGjF#^u@+D31X$+`s9^UyB$pMYx~V+*q;xw zbh^Udlijp?U;hUj5mR%)Asqz$5a9Yht>UV{Mr+27vbk`Fcuu>wL<74Fi}c#fgk56M zdQ_r0>TE~)_&H>4ie{H3tSKKF!J_=Xf6JYWeNaMcmHWP`1O9>Q1f=x}c~bpT=$bh_ z57pP4nnJeG3F2Pn0r9^c)u~$V_>yapdsb6P)CJDvd2ld#%m9{dcUyMyL@=$$lI@S|6ur3GH zAda?18yYRUYn%tK3_$o8MW8Wqb$ywY{H0oOwm>q7< zAUs&~Iq@s17~=uU@vZ;2;*W^z0)*`$KuC^ZB3+IU?XUUw|I4K{S&D!s=xjxK<<~^N zH;C-FZ#L{OEIp~2vkmnT1-M)+PP%JQIMfFjqaTgGf|{@bQNZV*V9j1Qzcl6;ep$lcfIR zShX@(X~GH~h01Y|RoT**eO2|u2iDd(;yWli4=S3Cp-X=Jai&a%HcHz9PbH-;_ZWmr zhw=8!c->qhBN-eOgQAC^^PmpG3T}Y3du?q?>y&v`2vd`~gaN$WdSor*V7FI#{?8Rn zSf#jRu|2c-zM8#fQNnx_<13MGf^srb0`pn+`eB-tfDH)O{Q23cvstvPNDKA9W4}-JJbEOwKO2cV=m8;rd#h9pqQ`v zXa0pwj8~D5@)MnhJGM8X%SX1Bl6DiqulB}{=frTWF|Bi^+>zCkxOkOb!vy@bAC%H+ zeQ^zSxskiVeD_-)hZL9aJ1CsBi?Iirgy7&c|6M$6mcXAt(_Qg<4?I)mX~^JUwEv6` z(2~S%K63dMFrCo1wsebl=!T4G9N6@LvxtLm`fpi}l(TPuOw-a@opLM1unh8(?fRz_ zpXiM3dKuC{_?ZNm3yCYC*##I}w+-f_lWZ;+Rf~E59B#Z1zI^=$eCZD;$y(%3*9M(3 z)|2`AqTfcw;F<5C-2zAW#B0mu3=ITkkJ6@(Q<~iP)GpK+U66i+(9Hunr45(mxbBBB zutpw2%SQXaNh6tG2ZgEu0+HUT(`M)LogM$n_Eye?<1z!VS7G#dap&T$RhDh~2VUR6 zZ(#LRExo80xH*GtCh4Au-<@9It6sSi0mY#L&JQ1JvopF~S-|N+ zgpVG=s(x(CI26v7*W~i3$|AY~*l`zF-)m+nLJHis) zi7ae!fq}oYksNctUY|Nba5eGpRy_=>k6of0E0Z&r zyb&ZWdUYhY51z2ECv<+JSh!F|`yg0(xb5>unVZW9N;syq>dU3?ovC>0x8lK@JwMJH3cKt=` zAHTC4){%Mifi?~U>z^nt%UfV0KM_8moH(m8-)y7rSAgl-hBAGGXGms{IIUi9lWD4@ zg7duLT`%c>S+!Fv9kCgPfNQVM1*_pkvr{<)4UNnYro|Q_jr*@i?77!LA(wj%^NDjg zc-wLdWG1wqBdQa8Wv$2VF&n7&PaIm7*)b6znXFkW@meX4`9R2uL^_ts0ZI@+o%S*vXl242q{v5$np-ULLwp(@G@%J?Z7_6e}0*PVltJoBO% z9Wqm;l)$%}QzNa}DF%VQ_hW# zHz=1|Va}c~(Z?yDEm(6H_5E*sG&0 z55mP}3__uKFmyYs+d#RP8ZeZ?cc|JUEaRpz zZom_nZb-8gNEXwKcr18B<*fKW*{6aD!r^hbqXnMUU!vSF3p-D3ZnV!>VF96JQSyvTy-0)YJUGfF&QlBQXWfG=5x*(ziko3@)}qXi*1Gm zEA_e3(1xnI1Nv!=Et4?RQ4clxA9cKL<+Uyh&ObyXt5KMC-x@mW-^DZR_y$f~#ga zRK-Mw*l663KilftsTg)EW7MlO{$Jq3BE`T};k31x{&M2atvBLk-rd)`*i0MCDP?KA zsV1s{#Zi1_Tx*mzIRd2_v7F;yLyk|}=*-U(Uut*BX?o#C8FtACbXawZ| z-!5N|#w!W?JYpv%NSLm3TY7E3;KTl8SIi)N7W7_j>l!;AohCSUYD2~7zfse>pvjA8 zN$84_N#JH5SX3*wa3b$we}5;QD+Ln#-I38cs(wU~x5?X~8{d401irxx1mmNv;-Q=c zPS^nO-|fFfY*jYt)`wf6Tpr=|c>HsU@Ltu@Wel&09LDTh7l z;4B%PAj=s+WoSEY)$=kwD}9S(HK8> z#QQ8fe~dW`gx|GElWEiCW<&|`rt}mNNNBINQiz#h^E~DByDg@3G^3?$nS7>kKoh!j zbKLhxLwVA(*XaA&5~41uuika&v!ZNF2^z6UXn6%IjMb7Du6d0pAITt)*S|Dtbzsyz zKvovc!)s18pWl2}O`hjvocwSSRT?q?SsNo(~-@rDm@B z98$Ki(hhC5WV9F{pP34Y?^0ZOd=*h&o_tUn#IBRUkj!i$C0@Jtta{fu(_U}I!>E{f zuk<46MhC-3-%h4ireJCcPz?mE%5o)!;5LjkkdPJ(v;q`8*3G53W(+0-{ZN2=FDperTMNQV<#?eF-%cN7 zpy2W2QBRNke#VSO4ODn;wUu$$pbUnPUc9JcZI7mgpw1Z>?8eLm+@cgQ(KQ8Vt2QEa z^$G0$ASrhZTMBM5mAlkAyD|O(6v+d(Jw*@ld?@Wc%f~<0e{&%pnAU-`hbDH2sb@L^ zW3T-fuKdziG#gI6Jn;*-#DxR5|4Mp$+i@cd!JSv_@NG^qTFNpNi@=D7jRp%HdL|Yp z_6_@?55Fh>7}kBL;tU&vk+2TNeYVldUXNnzq%+iy;_5uPBWVY&Z+3+thsLT|fnrS; zI%$1LJ?$h~XsHlt08`v?Kr)FmQ_UQuOsxGkVxxG(G3^kmh`J}N88SN2H?)oy9_eQ| z7i(f41K2(l!d`SM`s(k=6x^Bk>uD?!v3UEUfYEiOn}x6g_mHukm|l;&hp5G{D|!RH z5d(^H?T6yDQ~~QTLjTvV5ZH5`QJQ#~5YDY`s9MQU=wqO8A3_wKoMhD#o@kY;fOdu$ zXVpv|8DTebuxf9pm4-9iFq77Z>r8__^8k0>-nC*P-$ZLQK=x;u?myZCcZ4DXxf8Ee zP-o#jHsr0DbLKt%vDPrEEvEz{aBBqy>_JZqLAaZt4SD_P!PF_;b&s``M{CA!6O?h= zo*B$g^S9>Rk)3@HPbI-yec+4h&}#uObNg@iZK%iRS@r5k>MhngFP5$}4!Wt(vk1?O z;as$PfcR0}Lo!OkB{<(CJ>n*E{k z6pC(uRCO>Bhj1ou^7*J*4(t32LCyxz>yQ36iW4?@Dj)7l_sY|1j=Y5PShr%P<1JrH>{^gW+ zW}tl1Ue{Ljy-m4xQ9-p&c4 zE7GGe^;9p*l?T0Qg%&VuUAPZ}y$4mI3RHuZ?KUwn@>5LmJOB17D|Ad7ElYlMFV)hB zrvl||M)w7Ab}q9*AWA_@X&g}LiVmx?nSiqYA{g|pKb>-7$KEg&<#QHW*95c%SUxQ; zuUUcq#3eK9Y{t>qtSRb_T=HtvlEui%nGqX8RpdyC?KwA$g`#fTlfF{yuu@z;B*OAO%Nn{B55gw8}SoL21GyAYYh&haXp;s1FD z$;U3F@WTyLp=Q|a)R_^%{#E_Iwn}w*t(mAVCg>zm%V?@vWi{_&7*X!$4Ee#pO9_Gn zYH%EW?U(SUKZaTY?ISPs(sU*CwwfF8nI2N3^wIcm$eb=fHh&=0?9E<}X@;>1+dZ9) zwbD52nyx*Cx9<ts_2Epz%d}!#iM7VJwTeph}kaU== znrLaP^gUapD*)ZgwQZ9QLNze(9Kzohouev)@11WeYYQykz;-$DR>mM3>#$|dy7QM{ zT%evK1`hA@fM*g9kUr}X4oKGK@xW8cIR_lqW)j`x)p9wx&=!+=$ank2_pDRh?gyi9qDo0mV7C+OFU~W;Cj)j_2fLppF@oS>WZABePt8Sw5;d;H zJNbI`dD}x!juSxuy+Z~4H}p$CX%22-o@wbD$mp={MSsjSxOVovS5P(1#I*3UqI571 zoV-xV*r=~9CMrTDsGxtZHn%yyOWQTfVd%VZ-O;-wx_D_jRQCh)c^fUsw1en-#C{Ef zz`r`6mvR!^Tn~(bMbR8Tbj^BH-(9$UO$kvP@Za;;G8=}zJB`n34xm>?VXFZzJj$nW z!TJ$vMI>%#?ZX<%Sj$;$U*AcSEgP%qjrHyJ2OZAqh3{}df9cHPpch;@cvgzZw=>|_ z{pRS`GSqY9`zPj?hSiEx>-sCI!?quwDqGa)d=wnB-LON6q$GZ7tB~4}3ne-?#PDfG(?S z>uNb6fF8k;p?Vf}q!qmm3O3QgAxx)s?$l+iEEf49`o2CE^%<`CSR(ZsYzX`uiuUGK z-dGJ<;tS`bvNdmGsFYF8OaaPYk4tP3B)f_AU+fXSutFwNi#-v-jhvm8tna&F<(eag zyO#2o_+%A0W~n+#R;~!sgH3zph@F2Lbj==`Ez^@kt5%3J#3Ujb~ z8J+`A1}oUrzrd-Tt;X)?$Kn*7bum^mgju<>T1NZQ*AcOQMX`}qvs?GP<1@sYPG1FQ zs>E;Y_O`O)t5`cjZbyI|Ux_H+R~LK>=&7KTXhWkE&ISp|5?O9A?|!eoQhp%3P_-ss zCGREPUeKet3U^2jNJ#S$Amlu#R{Ql8>^hFShIF ztX<*1M3>eXhvIT!IRnqZOM3Cig9KqB`xJ&9u!7c?r^uhLo%&ccJ`Y?{*&YtF4^+@V zGBnu-4QhbSXzA!!-9O0EgrB14n-P@{KQFIWeinVaTRp?`JnJdKT=(RQ>+<$m8Qwt% zqzRxuG3>7D)g5B-NZH05bhg+1hC?R3F=^pfwHjb;VsNlf}C24?Wa>??z zyE_j^0N*+~MQHbkobWPAL)2I5 z-&hf>!p`Ys?c@<#ZWIv$rElujBWj1L)n!(XfLYnZPSfE)hYwI28lw3lQoRj&7au1N z&QXdyc0GqNysQY;FRusl<_+NLc%K#kH=bzQTj|Ww3F&x5v2O1=iJ!BaScss9AcYmb zpc^P|ncS-7r_S*gs+2(oRLC8${syGYM4s)WO!k3COT(;`&sx7w5i<`#UHw51WwoDm z(9MOl{`mdVRApIn;T_dwCl(4euhVx19WmK%CN8_-vG;|JetbaqUYe(Rg}FkqY6fh9 z{Fa|?R#M&bAMNj>Jglx5t3amaSRzZ-0ee<-5H6G+mES$60Uff1EvgkiU>8I!jQ1`C z4Lk+RPS6Jp1;m@6??GU?1#y`hPq&`E7TKi<(G{SrndH_$WU2a@=(L_-3pi=D-Pwk5 z&KiYZ#8W+I8|JZS-(q9YU5Lr z8Io=^ZMcF2sR(xnPH)WaSNzueoCb+Cr0r>5eo)u9(CfX{!eo${nY zotMEvapCugPQK(M%P$IE!NtF0Hq5y>JR{y!ne|#9e#={p;{wx#qWch8x6wy+#p+?o z#}Xr$4_A}|GY^nej>{F?z(iTL5#$$myyyNTXTul2cgL(fsFtc#qq3;eVk)`$MInOs zAqIm$=&t+ye*r2qC3cTmR)*o77>Kt;0rRh3ROv}{5u2(X-a}T})cEM2EHcPZdjsIi za|7yw^TW{4+G+ktRM&wcLGHNTCU-~a+}BHvU%5MCBhkpNz ze#JKQA2okIHb5Vm|?m>?EU_i zS%|j3ku0Uer`ZsdJFdiiZi^a^UqjIbl&+xmf{qI>mDoRvAz~$jZTQ8>robi+^R%v# z2gq71J$|}r_rFw438RzVQ@uY^-oEq%c6V+QP#f1g3XGn)-brycN1s*b>dO0EAltW>}$LBC_ULGeIs!e`TV_y_&O@4zIfktxI(?$HY{r4 zB#+Pa2Mz4#`%0XstNkMsr|MjY@p%g*j4;2F;*My){30p(a{e>tdXr4v()pw4oB|&h zTxMp#aZxE%tVjifRWKUQIOU2s8@YeyG*x}6`5+WI)k2B`g1OjJs^j}$v7?HhE-C4t z9BgVxk%yCx;9kD|f9+iPTNCFN4kUy?2)KZOt0W?I!6=IeR3Hh8Kx-|i6p^w7sEDY6B#6o?2?R3P=Z?MikGMZLKh8Y! z%$ax2Io~;R-uH7HN4h6_!o~*DrBmek-4BJRW;W+hv~kLm&LO&O?beB2Ut$(L1}c z8>t>$VZ}?NmG-4EHbpoUHHo=hnL(J^XvR;q680i1baUfF9D)kyr=|L;AVZbuhUs)9 zO3jx8KGO8}xA`fS#0%h{qj!5!Q_%!>d;W&omlZFr_eK`3I>GuE zT$>5mrf!dU3QBWvlN_n;3-2esi^1<5Uc=m(R(d@vK0^sQsVhK5*ZuM;`vZBl@r!k2 zJa8r~UZ&GO{{{7d-`8?*jj*WFjCtL{)BpFMXiVL?j>La9)mmvbh6pDwf&sul@6Wq= zPEP7D*@qeqW1Q%(O_E&&_uz_JYoJ$ANFjF2wTBaB(LVlj;?X9u&u{Fi2S^zYMBVh8 zWOgGB(OTnEsXJeAB{C%%b0$qWn0vMjb+AJ*eFZl)tw~|vCP(NDG zSBsK=kW~#-L{}%2%I?|ka~MCNXsKFppjmKjDjExy?2_t+CY+zLhud4DOZv>Dgl z$Q_VLpNrZiL*D!;KNgKBSwlLfBjJU+?-d)dp^Bw_kzW+qK$U&eJ1EE9*1foK*9_=u zMBL}*ISDoNam|I$v@4zyvEHI)19mT_Mf6V67$@-8h^=+hn*gGB83+*;U4kjVSdocp zoM2b*F3hCHYP9!Wc^;0Ra^ATem|HX=)vA4+~&`3g~O9z2?CWz&|I+KYIM<&do(VTJdzemdl?_h z&glD8dQ3K5s?a~+E=;~gwXN=m@6Im~zrF=uBNj4;aGA>u*|o25b$(qu*2jhvt6u-~ zqh@_4S|T=}Q_dJ;=nYH?c4nEd0JynWCgHkaX7*S&N}+R3SgsY1QIBVd*B!}dVs8cr zh*aVps7US*_f1}cFA0b>LnvjxX>SHmIyhVfb8$!7MhA)ADv6w;{OWT36WzQi`;Ef*b%h`?R9O-Xg_;Q zrnQjY_ygwA_BKQ$`)=yu;^uu^T7Bxc?x;{A`d{sNaf|0_ZFEd)CAb1fZ|#d@kOUY4 z_gEL%XerxO3c;gv7@RxtVXZNZub+pd`iFDVs0PRi=_1M( zG`myrj=5y!Lsm%c=KCuasVx9|)H;lNn?O_m8TVz9xgork$i<#-eJSCD7?oGp6>PMn z$;mq|1uh!CX``7);XBIKunbb+gZb@ZNeTC+oRl@HHgJ(->>5H@Kd9 z={w60v$ypA)LTM#8oXJ1c6+L{UOL*0qg1dONq*~4np=H7LUQL;<-G#oor~!meWWyB-x5@lE1eey6xB$%kivUsrfyK?*Ev!hD}F)RD*lWWdn89Bs=q*QSw@ zl7$qVH3<-V3}m;%B#%M`qDMX_PEwE0-V#kqc5tphS=mmR@5QscGk=F>S+bu#j$i3m z>R=wd48ye3Q=lXJjCl;|4q)IKI|QLgn!JPmDhl#RRy7Wc%toeKv$hGrY*1!DZvmY4 z-i3=hCS$tW*KAl4T7q$%nL^@nQqfanF3;)*XGH{h6}ZAs>yFxcy1h&i=dehDxT1-4 z_yT#Vx+gyXqXz%$RXL>fSla#XnjY1AZ>ub)L$fWxW_3E|MM2vjUpc%CNT8tm*JAnt z9MA~wkQu19O)^$t@{-8yc-p(%+%XlC-JPb`tP4ywYMjMyGDRZO^Al@r8ySZ-tK51IF?oOg1&DB)Ft|2kz zTY}03gQDj3oAch3WJ@cv8nb;xp`aUrk!%u&f%Y6NZLJG@?QVPQBorWr-kUykBwS0iG1CXEYMF%F&= zT{YS?s0%a^lC^T%_w8$`;gX-qQYDtgxV#;u%hZdDg(_1uU4(oEMF1-tY&_d>OP@0| zuU*jGm!VB2>1c@h*du*Qj~juWH?Ol@K9J_es!69$r^daq^azqyu$Pg@CND+cLp@>n zAeBEp+cY=2&Z@0R&_4)Vbspq-G;u$6ia8%2vEAvbx8wCVD#=`P4djZ5tf2_U_r}gT z*edDGH5P5;iD5YGUxMt;N9tfwbu|cGm)Wh9=Yvk5YAqH?RREbW7k5GvGln&j$G+SN z|9*Q?V#gO}*gor^<#5nI3GJQAbe;nY7}+{|?OD)?rg;LZN64xAI?-qq5ldg~iPy;s zY&2TkoERSA7a&~)D<)@`Z5*8CEB2<>t}I6ZGc?td=FEhg>tQ6lNh7z9mXX=2>^#=G zVMD7~f+GhEV~8Js;!#U#r=55sU6G)HUlCsOXMdf&K2}m|iLn)mC&apIz>a(#Un+jf zd(8sK3tQ64mNS+YTI4DBW0flX6^3lolJ4%y-<~*|%h2W?=F|B!A>KtkW;je|@foTd zZR~s-_k6xGhWqai^|J=Gw@pGKVq0DtEhF_o(3g-FzAXAt)oR)5i8X{Pv-SRgFG)+2 zMyqIRj{OQ{qZ5vz07lLVRy-ezS;sh4+cS#FsmEyI-)7A&==iQLkV|bOqVR&fQ1Oqz zaMIG#o4Hn`wL&~asBjHTCw+sVa4SW&!VAtq1tqX7-*a*nqcmTn3?Oj*aMyEM&02HN zhM7kY=JZ#xrFLd=3nB^#(*dh+Z}nF4CyP)3XpUPzCDfVAnI8GO?BpTq5OdHSfvALC z=5i=-Wfxjr;DR!RqP8KYhRhI+7;Xk74{<`7&Tz_Y^NA6td;z%aOJwJ^&&Ov3J|plM mfzJqhM&L67|2GIIgN^XgT>vK7xt{&WsINo9x7Tb-Joz7a*0L4= literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/bootsplash.png b/data/themes/default/images/background/bootsplash.png new file mode 100644 index 0000000000000000000000000000000000000000..dc92fc8b8e8fa7426acbf73f1b181633f0569f5b GIT binary patch literal 92824 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ͽ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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/menu_footer_background_left.png b/data/themes/default/images/background/menu_footer_background_left.png new file mode 100644 index 0000000000000000000000000000000000000000..15e0741977c5eb4d03b93ecb8b47a12dae088301 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^OhBB(!3HF&oS5o>6k~CayA#8@b22Z19JVBHcNd2L zAh=-f^2tCE&H|6fVg?3oVGw3ym^DWND9B#o>FdgVo1KGSMYDQ;j|)&pw!}4}#5q4V zH#M(>!MP|ku_QG`p**uBLm?z1Rl(iUH{gAWY93Hwzo(01h{pN16K`{}DDp5oj=r+& z&3@i)f%)Gj-quOkd6?6k~CayA#8@b22Z19JVBHcNd2L zAh=-f^2tCE&H|6fVg?3oVGw3ym^DWND9B#o>FdgVo1KGSRqAfZ9iSY8Y>8_`iF1B# zZfaf$gL6@8Vo7R>LV0FMhC)b2s)Da#vM0U-vuxg2hjdr6GNz#A6nQ2djmhW-u_Eur$3`?LVPdZN=6@t&@Y4 zUhEY%IL0xjIQrbnh-^+T&G0_MH0#GDTduLJHEl9H_Do~xzJh0SK72Hs5|o!dhfgU_ y`&_J3M{dcpHSPP|w$J&#j`jLEu0Mz0e_%Kk6A>4 z&&^HED`9XhN=+({RrPg3!mq>}k!+4k+* zSMA%kZ&lRVurm-~Gh_MRy7;SAd)K}C`gQ6|2w?yG=+B>;Z7l}IV9@{e<%<_5gbqP< z>=3{GwhS)0oAChDsQ){|Uw^II9-}w=`OkdOgfuXCw$UcnZ1$?SxVTkGP?3*&tnBRW zMLNxZSa$r|ecp!4moKlHH-A3V{z`-Oetv#sr=Mu9zN_GI(_TJ`GRzj=tD x`t}VG8o;3X9`67QY|lw1dEWjCAl9WHe;MlPug^(a&L9PfZBJJ}mvv4FO#lK^6kh-U literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/menu_header_background_version.png b/data/themes/default/images/background/menu_header_background_version.png new file mode 100644 index 0000000000000000000000000000000000000000..7b0c10f72ee9334aeb3caccdb933485d0b6605fa GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^4nQo%!3HD?_RTT@QjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFUY`6BQp1vtvLZ*%H@?66gHf z+|;}h2Ir#G#FEq$h4Rdj426)4R0VfW-+=cis(C<#+MX_sArXh)UNRJ9FyLX{7^6AE v{#uGYtM~2q_RK(eh7iw9p4*nzudi)j-d>|J`Ly|!I*_oZtDnm{r-UW|qFOtA literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/module_footer.png b/data/themes/default/images/background/module_footer.png new file mode 100644 index 0000000000000000000000000000000000000000..73a377bb8863f3a68794cf3d55bd716eccea20f7 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0y~yU;#22%sAM9WMtuM1t7&);1OBOz`!jG!i)^F=12eq z*-JcqUD>a5FbbF(PP?=6El^0d#5JPCIX^cyHLrxhxhOTUBsE2$JhLQ2AtWPJ!QIn0 z;C+f}9s>iTkEe@cNX4zUHw*jjk{II_Jg~Dd-ho@H8zT*ZOW)P)n2&5Pi zcBnD}DUg*64Ima_Cdlaw2_S-j5R*s~!L}1;B9fJ~G8`!^YSuIUe#XomrT+aQ$h)4d KelF{r5}E)qzd_jm literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/module_header.png b/data/themes/default/images/background/module_header.png new file mode 100644 index 0000000000000000000000000000000000000000..90f41548ef45355079a7dfc2e997edc7be7e30e5 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0y~yU;#22%sAM9WMtuM1t7&);1OBOz`!jG!i)^F=12eq z*-JcqUD>a5FbbF(JiI-#8Ym=N;u=xnoS&PUnpeW$T$GwvlA5AWo>`Ki5R#Fq;O^-g z@IFN~kAZ>F$J50zq~g}w8-{`m3IZ$}n;rRVS^t&VTK(`;$=Rvw$qF}20Hmx=q*F5_g7 Ohdf>VT-G@yGywoLkUq%( literal 0 HcmV?d00001 diff --git a/data/themes/default/images/bootsplash/neonlight.png b/data/themes/default/images/bootsplash/neonlight.png new file mode 100644 index 0000000000000000000000000000000000000000..75220a99cfa04ab26da3131458bf652b2a210dde GIT binary patch literal 453 zcmV;$0XqJPP)<}V7?OKi7}K>r zZF8cvDqLZ?G+xeIT3@@M0Q~+Bc6YpxSYQeXzfR=6O31x2<{2aPAF*v?{~r4(?jqVu z+lqZKw*8z-Lvp-$8+y+drAn-}CfG+?5008P13-|&6_~inCYgY$u v11Jy-E-2KR3jhFM>P3RSNjCoh095h}+$00000NkvXXu0mjf!jHAc literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_actionstop.png b/data/themes/default/images/buttons/button_action_actionstop.png new file mode 100644 index 0000000000000000000000000000000000000000..12439a8682155e6cf29179ee49ff5a1465170e5e GIT binary patch literal 1229 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_back.png b/data/themes/default/images/buttons/button_action_back.png new file mode 100644 index 0000000000000000000000000000000000000000..254e68df4e84ebd23a41ab1716aa521d73e8e3fc GIT binary patch literal 972 zcmV;-12g=IP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO7( z5G)Wn4*-Aw0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z0009c zNklD4P&uB$)x^HqqWTyKWkckbN0{ob3O06kzdW-7@@4%Et8+1RTNI7PYlGKzB|yA31Z`tV7BW>sf-<;V=}VdZc;BK z4<3yOG0rlwuZemYMvTQOg`3)Zw%z2>aDU?6bL$<>pKhU@l82J%{!Q|hGEOPC| zi+ugv51eY&x%B)x+Bz!l`0=MLe(#Uw2NZ&6m(YmY+hoP|mh;>O$pb{D1ZriCmJsr}XDv!ige?9CL&ID)QmF}mbw>3% zopYA~u?h&CwNAA=c-R~FtKq0|A_Gd`9LNjLY+U=WsFz(hXr3RpiH`p;;f(72wtee! u@LRw`Kpkf1#EcUscEI}IM$RX8V(l+k+V&M0?1lsY0000LIK zifSGM1Cx)Zi(^Q|t+#g#J){#Qj(z-Y-7&|KHTe+l@?gPpixZ~n^~J_4Nzn?Ck$IeP zyg8^qL()rO_3cuDUAru-r|@V_X?ogI?$tJh`C)*@z19gyR$FIWyJ5V|`=|Zw{@pKI zr@ybxvs6_QUcGv?|F&)0;-aQ~%_u7?i{en6SyWi~@#~v6Z<6=M)$iTD{k!MX(@&Rg zje0vbQQ~Lae*O0L_De5IQVb*vbe-H>G*v%;{=8|+7L}bbev?!@uV1?sx3ampnSWcZ zy`80{;Puj_SF;Rtos7~73jq-?pw?x$>j}$C2-~ZOtDgzSYJzDNL9-bLJd1B_Y>~7YvVWFgW+_ zwe^y}Rq81b68FzuU%b&r;{V>sSs4o@_>Mi+zuX&c2h><`+NJ%_48B%FS*~O&kz)|n zxlB3v=Q4fY*3`g=oh?e*7ReJ+a} zF9fOc6yYI}OR^Cg$Y$AWGP{-QZx~Qf`r)5IU#@uMFsa;dNR5Q2Vj=ys1 z)Tz&B&z{{54566VSWgjGq2q@8H!D7wrm=KMgwClucjjcwQoEbCegEFQf89DyeEIb0 z)8^jZUh$rAf3sl@>kAcLo?pUXO@ GgeCx>07yds literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_big_glow.png b/data/themes/default/images/buttons/button_action_big_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..969e17f585edfe97cb0be9c14d18b025c07d5112 GIT binary patch literal 774 zcmeAS@N?(olHy`uVBq!ia0vp^SAbZFgAGWki++~@Qk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{W=Gupn~Aa&*?2dA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMu43`{kiE{-7;x8B~}n>X28r1jy}Z#|EXL~!xhvwDbh^aU@TvXil82Y(jVEDc># z^QNEz?v7dW+5E&cEZAELa@1=!i@Wl0bSMk1_)w)KK25jxoA&GCjqNjbfBf)LR>)a} zoAclqKb1xfQ_jcg+y7NEFt9Y7y_;UX@J@ph6W@Y2Cp_e5-dr@p=)ek=UkO4z<^B0_ z`_G@f`@EbXcG{GrJ*>B^Q+zse?94W^Ix2E0U2oXr_>^@LW5Ieai6Dl~|Fdqb7W!K1 z{x1Acc0ju(;{mS;c3#nD$IsRWYfdd(mRi2D$>q_ajzm?-MSLwk_LtPm-MsDl!vq`2 zjIE3ZZfAbK`}s=i)>kWXGIeJC=d_;|SZ|@Rw`+~m#3*$M(U}Y%IWKL|zWcBJW6Gyb zPfM6=tg6~>-Te8E`98yeZ`&4c+JB#aGe1NAzH|S=Vs^8wS`n z^_@25^@5vI3m(16KiabSQt*_fAcqN>1;yWw+A4;#{5#!u{!{Sn>i4eG(=0Oosn3}T z^m<3!&NZuEx2zK?j8Ii=wVU~T*COww;T!i=mF?eT%CN)eRi)@=-LFdgVor_)AQt2X3c?3{Mw!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY90dvV~(ebV@Sl|w>S1?9SV>*_VKw)$B`pV@hKmYU$Wka zd~xNVYnOA|wUbvbzKgZy+Q~9|W%jxSP6w85k-W2LE|VwEq6i-+kB=pv#9m3B`_EOk z=lwSUhM@iT_s{lGJKyW}cv;lixQ9(|zyF?pHtln&#If$w$oVM-5_kNUUp5a7ooaJ_ zV~pOzN;!$-|6Ix~3$A7@y!_H(lFE_7IXvx$qt875+^@hfBlkAXoRr&U+)WLU)3&Ou zzN$4bb?1$|?VJ{;KHHSp$Q4IvP3>Cux@mjNb=RFS(=-@<>^m>}A!pG88%7Za5PBl} z!h&y+#v?v4S3#NMg8E`$QIG^<#LAEz&2xQCPH*zLZ1S#Q)-pxk%kfnfGS{XA%~*Ew zY(>f}wZ&7Ecn(kaQnmN^$BI8%r;8qzSRMRco3s6P_nG{yQM_lmrR)s_Un#c<#CVc3=ADnHwW??)_(2UOsuxGn@6tfDy#t>FVdQ I&MBb@06t&e<^TWy literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_clavier.png b/data/themes/default/images/buttons/button_action_clavier.png new file mode 100644 index 0000000000000000000000000000000000000000..43352b5fa52d7e16220429d88e82215e5abfcf0b GIT binary patch literal 850 zcmV-Y1FigtP)WFU8GbZ8({Xk{QrNlj4iWF>9@00Op2L_t(o!|j*7PZUuU z#eeg`!V0?4WMd4Q5G!K?QHhl;4Hm}u7Z^+|ZAAPRP)i#Ui8Ync!iK`cSfPcKRtAF! z2E)RBFz;*LvzT>V$j&Z1Od+!qS<9XI_9jh-84+w#w z*7Ey+KFZ+$7SOF_4ukPhK#T$+{#HPS2|S$j?I@h4JF#+=^xC z_S#cm7ZCjz@qxlfu~>6zkBp`4*1?Ow)jYl$VeeYJ{s{Nh0z&GW0Xa7XypFP0sya97c=EV8YArBK%_L( z>UBgdDa}spHvoGX^N}E7d0>s)TDY?81<{n)spX`RbGW#;{%P^s;2I&YXlZi+;wuZW z%h0~U;sq8Xlb2_1-T`2B?QJ^`{IKWYu{G`efv~tZgGOQ%W4(WjRClWhz>eJagWf}k zjobS@Vewr?L$l7IMZ(C(&mRsvKb-e%U*Yh*!Aj!*r-gMEi^)kNp0xPb)R{F*nJ+QM z5?hCsE}yYkIRf8yJ&PW*sKX;C1P9EbD;sI0v4B#M-aK0_P3|Y&a_l%$D#i8f#%60? zwfzju1ByVIkcsh`i;oM%p$e|OZ_pvy{bfQ$dh_S%uNN3LfNdb^Waq?OCr<1I>%Uz& cPvgYKA9GouBUT{XaR2}S07*qoM6N<$g0wh=^Z)<= literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_clavier2.png b/data/themes/default/images/buttons/button_action_clavier2.png new file mode 100644 index 0000000000000000000000000000000000000000..d1cd9ad0b74464ebccdf8e1cf63455ad1a9aac85 GIT binary patch literal 1293 zcmV+o1@iidP)8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11d2&SK~zYI&6iJT6ImR`KX3jt6G~dsmNujPM^_|!=tV>*?j?Iz zgc3D}V(}&(1o2RM5YIhn7kY5To7j`kUgB<-%h8~e_y_Q`4{o% z(WBoJiNqy<7cXA0u&}`E*RR_`!o#Ukry)&G{sWGI)*ZYUHI z3c&8}Zj-ZVngoMEIyyRzMc^QU!633M`(zFds#2*C3WbnbIeJofB*Nh^x~}^HWLZYn zb-KE`e4nnaE_7W-mg|)-gh1DI!r^d3tgp%3l8EcNNYdv|%gf6chCwVA17LD;62mZ9 zTwL^R78e&W41>wZNdRK87=~f6yuAE5nIwI+7+MnfFCcbycHCSp$CWEr{7%cVuq=yE zCm)TQa{?Bw0Mci6U#5Q0b~!rtB+7tntgyAU<=ZBcNrr}o zSYKZUAe~OLva-Va_wU)=-KAEm9hM5Qy1MF?%VqA|x#M?Qmc{=5euJSb%gC~f5CU12 zktE4)AB5vL*tU&jS^oPV0)aroVx6C#|Gcvvg`S=sg25nf-n{XvCK8F%M((vS*49WQ65PLk|65%7@ZkgJ&!0ci?tinPwVaVJ zb-#G=qAv~97iKDz`lbZcYW2|AhZ2z_$=4ld(%81`W8LC}5DjNoLr$RKj^H_{s(S1@ z$k#};is_xoisLx0rfFh$c$jQ9>l>)5imIw@y`c>c4-*IkgyT4_R4f)t0MpacEoVSc z6goOOzUyg4LI}b1^fUm)V)2uF_Uzf8bzT1<91atWM%molq+Bk4*9;tmlP6Dd^X5&) z#>N16_3G7MLesQ~2M-=32L}fSJi|(*(l#=oP>9aXPQRVaX7e*MGnWMa{^{Mld-u1o zv9X^{oH)^~s%l&J7t=JIVzKxso6Y_?H#awDn&!qoCS~o>31f?S00000NkvXXu0mjf D_$qbp literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_clavier_off.png b/data/themes/default/images/buttons/button_action_clavier_off.png new file mode 100644 index 0000000000000000000000000000000000000000..f288ffe56de98e25b5e990a77a0eddb5944c1b8c GIT binary patch literal 958 zcmV;v13~WFU8GbZ8({Xk{QrNlj4iWF>9@00SaPL_t(o!|j*9P9s+o z#=kp^cd@XrgxDw(pv#S>5`Rf?ntAuA9o zSsppa%-lQYUz)p-g&1Rdicsv4ZgFPDzQ23Uxu4DfKHD=jH{-dR@qSsesr4j?1CRn} z#g#k(J6hH-F0^lD2_YYyxM}E`-&`s0y^})fx zyY=<;FIBY>NRlLacX#*k0_4k%+VaboTf6-|p<}{5Y9RU}lYK#W`o4 zP6tF}r>Cdy0gM6ory`O7c+qaRzZj3le0zIaMv$dz#5reKmbF(`S6|hoI;}fI2m#)E z_1-H0w`^3La|Xb?_ZmW|E&85Kt$@jm$EFy%=Gy9_9A_VwQ0-ofVP<`37`*Y^ODhQ+E|TU%>4 zH#fhWpP!!s_$vyV%##`mAy5cGqB1s-cncvAGcT8#q9{0oKxUTo`~B|#;OOY+4*=-* z``^y#|L&aAq9|Ibx;O|C@pwG;!{N}I*-D=09sq{JVE}+deCM3B+wFvzW#Jmx-QE2u z&+~7tuCDH*5;jSVZf|d|ZES4(d2w-Zwor{Qvxx|c2uHvsCL+SjY|GS$5D`TYvR<$E z1^@Q-3O|T1AjY zd)Bn3zl51-jK(y`vbRReEHN{EY_D0VF#zhElc|=j2?#sqR-!`Nys1$DRausKmStbX zrl^sQIOozV%U+H~qdfMjI!|f{z~u7s@>c-pcDox5MvDJNiP313$N!wfJ)Y+{@oWdI g|83;_Y|qyI1#G!tf7NUee*gdg07*qoM6N<$f-X9>{r~^~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_del.png b/data/themes/default/images/buttons/button_action_del.png new file mode 100644 index 0000000000000000000000000000000000000000..83a9b6fc208f80dabc409dc9ceeaa4213d5756e0 GIT binary patch literal 984 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_edit.png b/data/themes/default/images/buttons/button_action_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..49835aa6a3b8849ff0d51f3d288991cc63f8b197 GIT binary patch literal 1156 zcmV-~1bh35P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z5H2RHXf-zg000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000BuNklbIv`N zB81>02#pUS?A?bbie^H{_klp*XP3*>YPZ|#-XdV3P$;KTslS$%mS#jz{F4xJ1ppKw z1fnQ1LqkJ9%+1aHZn0R5k|be&e;?Uw7OJYg3IK|t!1FxX+uOl$94;>}Zv;X3F%pSv z5kjhWj5K<^-meym#dvslh+r^?Y&QEQzo4n9387F3EiElZuh;uE5{Y~VAb*!5X1Ck@ zS(ar8g79V_03e&qLJ$PVvJAJ|{TYDyevWWftCcx8I6yj`){InDg)GacR;yqb1{6g- zE2yffnk~z+nteK*MlzX%$KzoDaJpm#fP6l$b0kR;D2hUTeSOWr>+0&@a5#`krL?_L zsRT)qU@#bTu{<76ZRIP=GK@xJ%^*xB6DpMo78e&WK0dB7U^E&b%ksDP5mi;eFicG# zEEWsa*Vob2)rINlX^f1FU}|a#0KhQJlhyYs4b5OMARG>(xw#oLGc(9!GMJp4L|gu`KMY;2&r zyBk)k6=!E>HTRou2EwweuJjxZ2Ub>Au(`PjRaI*Sap$XMAXckYr{p*e6h%RnWhjb* zL?VGiBJu2eVp;Y9kblRz(@Mo+QL)?YwA1NCCX>4rdd7h`=f|>L4 zbLIH>I2VmZf7;&O{(}&5qdh0?y=@EttN<*xAgSB+8lv7V8NelgzX>4~jj@mNFdgVor{r=Nx?{U+Ge1TY>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)DF!Z|`i(Iusz`@NjX-3#EwZkJbcy;<%T7 z;_)-dOG~RYUc3p|u&8^s?4CwxUzs^w-)p=TQhpWtZ2HlxVw+V`s}yopdIQ6<1FMx! z9pb#fJbRZ;9Xm5;=w=qXUxxz4&K)R^6?;9~;n8H}BgN?nyg7}@v0~}z-)o$%_B3!B zuunU=cl~Yklio#tm3BVZtk*qPxhC&pdp!f+!mPT6(3}Lu8pfW)xz|!XB?*%-K|0{Qfxed)24EeT(b`PCBG07zs#r@VKxkF;8qf z;h+L0kp-brFXpoe{lBo9=j+|y`_xYy2~5o{(w`7)b8c?%wrAnGB}_MuKQ;NBkzq aeP=IU8>ObD>Z$~c4hBzGKbLh*2~7Y;Y07{A literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_editor_glow.png b/data/themes/default/images/buttons/button_action_editor_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..380a7ebc8937f76643cc89babc617b9d3dff86f4 GIT binary patch literal 1266 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00dS^L_t(|+U=Z6Z<9w9 zhTn5$zKbu7of6kg0)iqVp;DnrsAAJa_FeNY`X7w{4(z*a7Tut#5<*Q?fu%xe5*dfs zroMc)nbU=HBOqFKjeVY#Eq@E^%%gA4jC5YYDTKBVHhwX!Sun4ngX{0|C0z)b$2~B-!8lJ40v75gt4+S0~>DmCB@C4d^Roy6H*G z{Pn_~NQ6X0OS*Un5s459JOcm=Iq&87aW213CY9-n%FnsIGq}#9axW}LwI)Mu3J@^h z9nclH-NKoXwccqt7muP~W7*XJ+B85*fPk59mLu+GX>a$=;JUM;D=WOlnZ?ZAfFVPG zcZGk1g7%W!r`c>+L}Asx)#S_yX_T~Ky-<>nJZQ@x92Rn1hj~4J@sso@d4Xr9Folw7BUfmy}<1zxli5x zpIP_tQI1Z>|LY%6E-c-4+qXWwi)8Jxjbq*=nCn6=it>z`aYziT*TUTS?t3M`dbo} zQqNAjKX+o~^G~z$f}U<2OV_9Lj@JIX5Bac9D9GE>UgM8R0)~YBULIqJ& z5Jd%1R1if4QB)8`1yNKGMFmk56+}@%6ct2KK@=54Q9%?HL{UK$6+}^v1PSU5!E`>% z>i}S?MOj+Tc@Wea^3EH?8zwXXotRrD?g7oCwg1o-!$jl_aXO0_jcvkleu%Qj5E|Q* z&LZ}Pn2G3|Ap78GJ`W*6WZBiiNp4$DW(MuH3bN?5+thk8GvOq+mR(I`F38-8eb`=- z$y#;AN4ZahTm_)bIN-zV>K8@pMho2^w;cNYcZRnC=`I41qh7gyUwB;$GmGRmqymQw*q7?!)nDZ z81Gv%Q(QU|AVVz?VgmAl`Pr~PDr!^fHG*o1`7aSv1`i)#^z~!dz=#R$p|SiLAj=RV zB<6U;UvJbF3y0(A1`!g>1pLZ_9#1m=$6$~of4zK_A)UjhyVZp07*qoM6N<$g46{@x&QzG literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_fullscreen.png b/data/themes/default/images/buttons/button_action_fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..6f28eebfbe701fc67ccb32d16d6e7b0c3edb1bc4 GIT binary patch literal 1713 zcmV;i22S~jP)WFU8GbZ8({Xk{QrNlj4iWF>9@00tFFL_t(o!_}EjXcTD{ zz<>2GU7e)U^hJJniWN9y?XWPKlbn6|BbHe zNj||Sl}e@Y@$nxsnauao)6-etS707kk_2oDXa=^AjEsEO+1dH`@Xv-}FgZDi<2bQ{ z?%1(|=H}+|@0ppIU%I-wPS4NJzW{y#-l`FE_-t@+aBm2k&*!;x=@MgOW9zEjojZ4O z?%X+c?b^l0jT<*#yLRoLM~@!83>1K3xY=}|sjI8&D*)TJ>F@7fcUXX_sVR;fJI2eG zF9GQ2==hs3*Ce2YuB;BIZ)s_11sEC{;?=8H|IfZ^DnSsedWPdTT)uo6fDIcqeAeFH z-Yh(r8oDbDNF)-81i+IgPpaO;_kA=?Ls68PXw&z7T-U|-ed_A!kY%}i?dj8}xUP$) zX>8iGDLpYUp#h2-iDqSr*RNl%f|VqRR4P?-6G$Wy*tU&r+a#0!b4sr3GB-EpZ{ECF z_I+O!e3BfEbk+Q95CnLhS8=mApcO^I^StU&B?!uqR$j}pDT;z5NwID=RaGgKO79Oa z?~R#3P+?nfjkPL7{g{Vzc6PF5%N88R!F636$03)?F*P+6-%3QXun%7I8#iv0cR4^q zLj&1tmhSHESQY`0K1#zu5YX7zSUxTmiwq15#A-SpWt`!z4xRt#=qM8t6Q3TqS~LoQ zL$@bM5{C~T=FFKhzk9W62JE_SRUhej9>rpjg9i_C_wHQ)`uqDo*erq|z_#t$n#9u5 z(keeWI5%@2M-?b z;>C+{QWS+gapJ@~p@Sg6vMdb4_@G?70yv+~OS7}H@3be^bukQsLZQIY(h|09m$NR< z^HxEhI(4cd#D`{7C={?P>z$gNpPxtY$W?)D+m=kzTvOEXeILhhFijJ~Fj!bv;O*PD z*L7UirLL~-j|Ut=KYaKQ*L6`< zwY&l!1FXggeB{UxE?l^`Dw{HCa zOapl-tX#6(D){oyp+jHy_4R$5PN%>4l>XLn9P9S&+yA+E@#234>@2V-Mar!W0=l`W zsi}2fU||2YZQFLG)9JqiL7@7+ug2Bm5Z=jG6vZ`7b1|38P2RkD^X~Zg_)owamirtA zV21@1C8Ft+Fp(zl61vDalt@9N)+5^Ta)6=$TtHOb!%Y|M(f4=b>fsPMe$zGG(00000NkvXX Hu0mjfdyX}o literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_fullscreen_glow.png b/data/themes/default/images/buttons/button_action_fullscreen_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..3c67559cd4f9a6c567b076996e694a8a6c321acb GIT binary patch literal 2713 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 TYCQ%Z00000NkvXXu0mjfNZlL% literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_glow.png b/data/themes/default/images/buttons/button_action_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..6fec3d40a1309d5b720a3770155dc918314573d6 GIT binary patch literal 985 zcmV;~119{5P)^|BKA0000TbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAXI2&AV*0}Q14_VZU6uSPf0{UR7l6|S4&PER}`!|=U)2#_&h$2aHL>4>>y(9 z4P@Ynw}V(lrWvvUFT%<+BPR-jn85=S!}~Se_f!Ue9W20>z>x>ks0Srgsa4&liU5H9 zec#&H$xD;7ZfcuuRK0~H_h`-u01HOq9ykvP04y)4Whquq&)bw|r~Sp*!RSqcSFZ}O zzwbYFo>yj_CCSzytXW_HQ&toj?`Pr)A&KTfunEH$#4#C15%bgE=6}{{Yhx$dWU^%N z?;$*s$|em11l{Pu1HlO>Kv)zL#)Kb&Ucoxp+SvIgEltk4Qd)=bjEo-%twJUdwG=IB z@eoF&Fwhdk0U0Y`^b`is>ZQq9ol={-$+QM)6Tnblk#Pi+6NJrxC=X(U=CJ4rzDjX} zz>w5t5{^pACn>Y8!WIS$3@CuaQBnEBExl{WNg~Rpq5E8TZ{iiXCtANm`!s<>;E9NV z41=t?N)3|dP$tbp)q)*+%Xcv^f4{HC)1Ep707kR+T3$A~=|(fR@uocUVKwM^PKcx- zsbzwuh}I0S&*-RovP;Q+wl2hI!I z-UgOCy@`jWF;Y~A(0DdE`|WGBzn1c6R!h%d$))62H{&dyFgDbOQIKug_2;D zq7aSIP<{B&FP#^BeU$5(6=3*A@Mz@G$fJ=*BlkB_Up?{ickTa!tY6oxfy6AqTnJGF zC3#WtDd!HnFznuOSH9rr;Xg-j%DHEmJKRB#A<$gNp;QCNlFST1WRTs|=Kio6^tQJz z4ix~5e);+HHQ?8mchrEn5351XiuaY&1(ZQM4}}^4DWfg0g+`&EP?53Lx}JJYSnjM$ z5=#MqABOphiqUPntd5)Mq8N#55Gzr07@J(0k{VTY6&iyWgIJcZZgffQ&}B2|V^v)E zSjq29z)d^{T#ByISEX2|0R+YjjB8bOYEv_FrDGQlN%aV=GW4BbD|o>2422;q5vo8D z;EBY;LLIlMnWfYI;_S&}as+y%Fi4t`8X)MTJ=mNeEhIED%_WWrJA~mcB92b`i?ehv zdef|To}a=x5UmF6=xSiaR~cA#Ik0q0Tnwy((eDkvmC5-p`~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_glow_small.png b/data/themes/default/images/buttons/button_action_glow_small.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3239968681aab7281ac5ff180f45d73c04bbc2 GIT binary patch literal 1217 zcmV;y1U~zTP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOV@ z4-YL-&0O~Y0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000CS zNklNYLGyeilLc=e6DYRc}-Ju&r6 zgWJUsx=u-cl4OTY01v?dlP5O>uY+TS%mQHL+{{b8Wgs00((U(iuyKq?Cka0aWrgTl zq$Rj>WC}CMoiIiUU6{roAE@T)(JZbF1<6uqTkshGM?@RQ@CRfogeqYNME4UH0SO{O zl9Cxk&jmYX!aU$}Az?~u#R7ohK#;(yAvQV`jnJ|uzvzrh7Oj#>l%iZh%RoqX^E6sM zs1usO5Fon10Olzb1Bep>a?!^!ZG}AzxOc%3EPz4qTHq>^Ew4MSx74jS*Eg`DjyTvv z+XtA;N~Wsd&OxT%-IT2^vYvlR$BP9k#wYMdBWpFHbvv5#e1t{_-oF4n8nh2_+bSmi7vN z4~RrUPKqF)$f&92vikQEh{3=!3%@?r#=~a`nn6yoO$!@U*r<8$Y7yYR#&43vDvDlBLt8v|=B`TeO zI45Zev_#nGGpi`V30a`j1l0$_Vx5IvnvBCidhL9BY^zw3!X-g9i3y4Z`2+rH9Uujl zDX=H;1_OSx469c*Z>6CiON-ysvs0&Uh8VA~@(qJ^-8|6!0onn8gdiaclB`hBO_^?# z==b}-eyovhdieQ@Jw52gcx|Dj&SVU=n2G`OU>NzP7aJJ36lf@|N*TOdnVK#B#J4q` fJ0l#%|0Vtc_SYjfuPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iXT7 z4jCbyNa)f400bjRL_t(o!|j*dYg|Pb#((GR+1(_~NAuORv`wQ8Rs%MzAX=y&SVirn zy%2<4>P@et|A6-*cq{0Qmx@qOXvL}+DaN)T+DM5_G_+xpZZ^q&pEGmLoEa~AlJ2HC zX}j4Qp)U-(Ff-?U=9y<^-Ul8>eOL|l?Ig^@CbOcJsQGU-A-Mr`)XZi;))pXaAO*BU zzs?RBT2C4R5)eR80|;u8)B;HY9Y7Dz1*9WzI{~6200m$TC3yPCU!A#e>B`vK=YR#EQVYb15o*$sL93f9+WuOpDM!WYO4$fM9Wj32Ry%R0MoWn@ zDU>gp0wfeZT8h{c=)@|_l>|D4lK!>{y4zB;ryUmZ?zZCsA<;s__B-(_kSJ0pxiuqc z$L7T0evS?HU;+Q+DvaOEQgHovAf9@3AVx@(NfK;Yg>6|J9qi@gk-elGo2mI_$|B%} z!+RKeafr$J922w4NEOxt@dR2nz=-w)N+$_w7#ZsCF;c1e!0Yt(+jMWJpd+W zmw07lKhGWN(DU$I zMYUA9cRN;g5vmZc;vy<8AHH{r1AUz&Y@0JLAEi{RFg=$ckO7WG-Q0A#l|<0M)@Uiw zBEZz#tS0a=I>ZD%b{Md_Rw7?0Z}fMh5*S}%LWK$Ky180N2pa+7O0@9NH6JS$iroBn zkz%2Us8;#>s~@(UJHK#;mQ=ECt`-6-Y-DSsKnuTaRg0M{AAk1E1K*YN7cOsc9f-yl zF|LpH1lku(dGxd=vBRK|<15fY)-kf9*VhqP4KQK|HAX3n3Yt^9D+M}?t>W#N8Z)%8 zbaNer#oce#7tL{utXJEjRLqX|4-5}0)uozYCz4Luxs&;8A}XT82iXZbvJt(&-nQMN zZ`z600Wdr9HU=ycD)*LGy#6z=1mq)Yp||rj4$um;18q@_xkDi6$ji7<(d=zz#fs65 z9RWye_d+*dvQ&+YFc0HzYZ+*kV$CK{kK_Ll{{c`DG?}KKSaSdX002ovPDHLkV1m^+ B9i{*P literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_impulse.png b/data/themes/default/images/buttons/button_action_impulse.png new file mode 100644 index 0000000000000000000000000000000000000000..46fdb564dd48ff4a2b6c8048f0381758eafbb62e GIT binary patch literal 1254 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00c@&L_t(Y$Gw+NNLyJL z#eeT#;-l*LXAG32!8TzQ78Dl^ZKbO&#*KF4uCywn3mF&}-6)v>VFXL53kRedXBjHE z5C>Z7q8o)u?IK9gf{jp3agl10sn#UEoA+juq=}|AVw?}M$i4Ub?z!ilbKkuZ$3x2e zj<%g8tRnxdViU-K9jF8vfoh_t%HMue|WuK zZ*6UDHRlkqSnP8s6bemDO#J!s<;x%t0TNl1-fP#cbp`@~(WkED+y|7cc&9X=%9{3WXRR9wr%#M+kw(~?!e ztFNo8V|sd;k&%&OId;1pA;fpj82Kb>6-6lt$j6T#nVXxVqoafI@$rJyD~fWW`{c8V zZ+3Q;hK2@&5R8tF^7!#%d_Et&y}hTZb7mk;r<3Q;pX2lS0C@WJDf9F5+`D&=nwpyO z1F5K};NioE1OfrBU%#Gf@9F8mvMdG$26Al+3k&GFPHSuH>45};K_ZdJu>po*05C8x zKwDcIZnv9}k&#^g+S(fL-@ngy0Iy!XLI}a-%a;pka292^{+$cS3Xq4ed;7al!&gwyHd;>C+RdGZ9yvXCSRP19&; zX(1dAV;BbMbQ+(}hs|c=-Me?}@9&qiHEOAQ7>~#4?(Qz!S6OCxc^O^T2?PSf<8c7m z+S*7Y61;x>x@3*0XK{>anq0VWfuW%xW@csp=<4dCv$K<_sVR1McmE$C05@;mBo>RI zC<=bRpYHB%mX?;7oSZD*Ia10;E*6Uc(Ae0>{rmTM_UsvbeSIX8$y3$(E+eX{7PVfn zh(@E_xpRlr)zxp-ItfVbBT!pgThOU#TF!!|X`aYTmYt)5R#o*FkRx+h*cR0+5kkoyfAx;o)I& ze0==3#l^*WU`xu=ir&}PclE}N8Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipn; z4j&tqSL;at0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000BH zNklA#mdvClQf*&O*C^3ULC|aR|gSd%87Bh6QLMKgvE-H4Yi(?i1 zBAaF{brFY%RuMA_qTnQ2QHR)IOl+VMVs4ZB(V-^9zmoV7q3?F?IsDFZ&UxQ^eh2<1 zA$-x6fNy}Wfv*5dh37MX4Dc6l``CU4qV)Fm_WAw(Uz(enn;Z^@@);|S$K(H8US3`X zgTbG7cX#&ywHQQpyWO6prKR7htE;WqY?hOg6Qa>5x~^9QKomt98X9PCZ^vr2a({oH zot&KfVQXtE1n7AXS11$;cXoC*U0q!g7DwEBasN_=jXJxw#tAtUnPZHxw*M{CIVoy*$N_W4MkCS zcz7U}%VD)z3*T>UZfI?7EzDiAJT*;2QIvN>00@GBq9|yZR&rcP5YsdfMX@3kW18ms zLB5QJh6Xx1ItuN%xj8mAHdtF*V|#m>{{H?#Uw3!+n-=jVkooy}mY0|5>gobuc6JtB z*KxUATwGkRxw#2|-|r_72rxQ2`Z*wri;EbB!NS4+5d^IX*rnkx0B)e)%{$I%0f${0YqM?Jd*O)9AYX1j6U@6{@gUBOi%G zg5%@k*Y8Na^h&|xkK-i>P1AUIcqqFgQn>-9X_8K-5k(PMmJvmfgM$Oc#>NN)0xT>n z5DtfNyWPZMF@}bQh(@CrhCw!)ef3@S>KxH^9aU9Hr_-cTDfagE@cDcQf`HrY=I-u} zfq?vUahjc9E ze$N%Nf@QQyf=H57F_3avQjwRWwzl?3r!30|fjEEeMN zcntWv*gQ*peSP2i{r+DSMUiz~Cl-s5OeQf5qapwni-o$nI_m4|5k(PIRdXvVD?je; z?ydnwaVl5!^z^tr9?!hP;c(h)HtT2XNGg@eCK8E1L!r=5;c)nOAp6n-O9X0x8ldX2 nZB~%Ocznm)1IY?&S0?@in*yH96%nE`00000NkvXXu0mjf;DY&; literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_impulse_glow.png b/data/themes/default/images/buttons/button_action_impulse_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..1806197f39b3e1c6fa1eceee558ac14dca34ffea GIT binary patch literal 978 zcmV;@11eF|wXBce!M+A`qa(IIX zvE>D_V8iQJejP8fL3xA-Wt&xk!XkKK8wGnjA`09A?#nsHaEIet$O4n|JOvC7moU zQhYDCE0j5bb~^Ht*d3H|OQ!Veh;lxQptK$ZIB9W?o%; zDb>s1uxm=BY-udj8&F4bqIa6-<>Pr)ZidQUulSZ=6|2bFhw?I!W>CvzfXFGJ4&_)w z+C;2czLhcuD$UDWnt7`_7$e3AEDlu4UqpV<_c~Fge7JO~JYj zrl$c9)Aq*#?Q=qpccE9Nr{N|A5dp|DQg}dhp3h;>*iH#k8_+Q4=Gt&|JbG~Nbx;BP zvj6iZYrwBO`bZ5peO&`mT*Dp;HzF-mtLGi$)bs@go$V^oR@HU&zMUg8T)Aco=lO!b zbx4Xexo#jpOe7{TZ|B*4H*@4eh4zp~$ZM9rlhcjLC6;I2mS?xZ0=<;A=i)>6-7NP< z*Jq=fCkG3nl@r)g$z!9C(xsgfQmQtc>{F}>N_&RC8`Xp9(e+v0fBv-F+Soc8ute`P zucU*s1FL?G11oiPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipn; z4j(4YKc`p#0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000A` zNkl(ViHZ_$4A?~%uDVhbbdyCvsMwt$y45Zk2?&bS zMa7kvxU}dZ&1Mj*gt{*xu7atci&%*_p`sE^(`1sli)zTNKi8k6^z6>e@Sf-UzV{60 zga1kB{*?=W4fq`R4A57&UJ>{U_!D@4o8JSGdV72Oyk74Q4u_-7YPCw$Sa~v;{QKzW z=xAkS<@-n^@+*)n2NC=G``wF+i)$v6$(YOKh(@EFo}N-D6eFc@fTY^1ZZ6Qj|{ z)zwvQVq)T(&CN{(DBOWGD~hty)z#H@e0+@0=i}t$q$*x$YHDI`ZjQFLHg%K7!CR z4OLZ9RTWVbUsW`p&m#x|f*_#N{j=_PJkH_aAug9o1dMlGQu0b7k+>%UAj@(|QXBoeq>u2StM+f!9lBuRQT1b|MbLy{y^RekciCqXn#!(cE}q+>Kq zdp*c=Vqjo^?d@%BHrtzY-UQ-wI`RAcSS%KT!63D@wf{Yc)9GY+c^RY8$ll%_cDtQG zAb`nadK<|8{ywQx>cRGV3__M=W@cs>9UUbc4)gBay9Z$&(nzIJ?C#t+mA-mG;VHgNT<`Zwzifarl+S-6a|yX#Msyv z0CRJ5ghC-44hMli06`GAzP|os$GpfRg+hVZ*;!;+#^>{~y1I&{X)G-*F+4ns-|y%0 z@{-BPN!HfZa5x-zJf3HJM0kmz#>dBLX=!0=YYTvdg#~Oj8y6QBba!_%I5 zifA;-#>PfkBp2wdYqw9sB-Q5mS6izwVnhK1fgOepVAV_W=ZPm>OOiY ziXu9lj(k4f<{ugBx@V7J?=Hl5k+c03*rdcB@xGI<7EmJiQDUtizXUa$8jNs`1up}^VM z8RzHc6pO`*0O<94>g(%iXlTG-Fp$k=^TA;7+ejqxGf*tIa!pT9Pruvk{?Tf++GSZb zR%1uf>2xlYO8ucI%6B_EJHG(Ahb~wKpbjttHMhA|L5||>J?08HudsGy;seI2XjZma RO<4c{002ovPDHLkV1jWm{@(xq literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_labeled.png b/data/themes/default/images/buttons/button_action_labeled.png new file mode 100644 index 0000000000000000000000000000000000000000..261106e647dc21f8be73472271d31e59c80f773b GIT binary patch literal 1012 zcmVC%k|1?kF#tAI-h+aUn7(S-7x1N{j|gYa(Kkm&|ph zi)7+xeMVk?XFM?6JHIY-KHPiGx$_m4W#OA`+a@psL;=w~2(*K0UZ8b>*MI|P%d$KG z6@VmwaUc#PyTD`!AO&IRE~GMW0bBv?9;hxPb8c?#!Wip3%)CntEG7YaZ^2vVsO z)6>(Krpfj7b#rlXF~7IB_Z?6dzzFbiXJ_Y|OeXX3(a{mBtE-gD+57P z8TR-0f1014{}d?6Zs1N%PENkBwI-j>hZYh*xm+fn&!e?wYHI3bH(p0oH(*CcM@L^A z92`(8m2RV(=b^Rc=H>>&Fc4y};=1Q~J>Qg4J^xCj5{HL}WV2bn0+6bk)eL}2rE+H= z$8iusFg7;WalO%K;5ZILLqol5l}d$dHcOX{kdF`kO!%3I(dw>K`6xwORuY;UOQZ)hdNTp?9wO4bp5jX|-A? zrBF&CrTkylRG#PIx-PEkqP50x99-A!`<{Br;I8Y^ZntT-+jsUxhG8J3LYr$BjYP;dIsezixxP3W6|KIHKI{y%N%-&_L0_Brc?p*$G0 zP4J)b^-)ktsnCGx=d0rOhdSfq<9BYFril;&t@T@Hi~szRlCoF&1TDbA1w2LPhx%2! z-F_X9$D`?Vn&ac+-gGog6Vo(96_3*CH1T+xX0z$g5g4?jBg@n-FE3w7Daqw>B$LU| z2JK`rNiLT|O3B&T**Q=H96?8xip|c>ezLs0{B1NE9dccl)6-KfE-pePF2rIn5{U#- zN}A24v$nSORk2w78u(RMmW6HG3V1OyGxOQf($eR#SnR#w;o;#h&ZtJC@msA{d$qN- zwYj^y`vdT^Wm#JIO0jL*2JkNM4jmEH&zD|E7zu7g&|l~Xpmoc#t^q_)Qttu_O6kEt i2HEaU2G5t$efu4hLUTL{_Dqui0000~7Y?%^!;jRn*c_ zwNQ%m)^AV>C0{4x>qw#Ws-K}qDbzn$s?uC&E|Qpg@lB|tr4Y-9V?zx(Q z!!u`o%$%8X9^yFe+zFRfZe{bs{Z6c_j_2K0R0v)j5CB?6;yvQPrQ_o!YFXA&&6KPh z9n>)^_U6tM8(ViPtga>i;4!4H+E;S3_Pk`v5SGl*gDI0I8sD#&<8Vn$)uIK#S-D{V zVu$o?_wn8@qOHMsPh2&0+WneKzaeU0`N4If@qV?H^LtkleN$di2+h^9x#abQ2ojESB6>3PGL<<1 zL;$D|L*~jzGf|~rJE7)tAE#$8%fYCtb^?H{qCU~DRyy&GMZGO=#Qo4zt$yC?hAhIP z`lJ>Jn%uJrF-$<^06-G%08v3I>QE0~4o0KLkBbrT(_t@IUq5l7O#oP1J6Y6gIRLOZ z$+>M!)w*^KSZH^L!9#J#z+pz_M}Hy&fUm!Q@Ch=%NeiFCMS+iCx>xL0&wqRJLxJ`6 zsWeTjtyxpGzPS2rr_;|azz1;BMgcq%>ee;Vl|iz7CM zS)3|npk|B!>ViN&?nFI@hiy|l~B&9Io zH~_Z|Yi}PcPcwYtpMz{ewMHC=Ocnw{071Gy3qt0a48>pmc>h{P-Z0wdg0}=dWz7d( zrDwZSU9*fsQ?>eeuWMPjsHp3Nt`K(M@`sgl|JQGBJU(39p-!+?C6`mkNnfgiE`%&% zp?!83nGyhe+|N$6AbVS0rgmtmmYEJ0cj6MnT+|rGDoa&*wYXDW=B@#V0f+?&%f=w7 z?gv=`y;`}pFxfQx>zn?jya0rzYDwNPhDFJjX#jx%9fMMNIRRD2stAfZLEI$OCA3J_ zM}nQj6wL)p(GZxn7ThAC925b*khqzsojO*<1k~Q#nd01VxDAF}Zjdx0)q^vTHZ{9y zYB%;DXi2DK8cQ4ywh6j literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_labeled_small.png b/data/themes/default/images/buttons/button_action_labeled_small.png new file mode 100644 index 0000000000000000000000000000000000000000..64611cb7b5397382d5e9621671dea9f3c2831733 GIT binary patch literal 1018 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iFV? z7aA$2KLgAF0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z0009~ zNklVcId{(7^X1%g z&&)j<_n{@OxMwV>$2<%j2oo|1{UO9}(BocWNe3C=W8gXP0dT2o=72QtdqTeKX*B_yWcDy9h1%+JrWx3|aQ;v&b#$L00)^{;^6 z1YiQs9LHIbQc@@s#!3{xbzKUD0#ZtrmXhPu49@ex~?OH zKnU^9ABivwiK2)ois*DYgkkuo_l&o3&^u|D^xL3I@?Bs&W%-`s_`hAchVkR_6n}lm z8ip}avV;5?>dX@Y%+Aif_Rus+~LSPuiJ+cWtArKot1hiVMR>!vOl;b#5 ztJS+@F-;TGG)JDFj^kk4HqB-;09rsKl<=z2Xj}*($mjE9v)Qq3q--`zKA%SjL9JHv zfLB0EQ^%UwwY9Y`^7;Hr%d)H}its#->+9>09~kH6=E!6+2q9><+wEep`0dHb$qzui z+q_5t>6Mk0uQxU}Uf8znq|<4AT#>!GxoKZrT~+t@_rE_qJ^dLt2Rd3$gW)69n+a07*qoM6N<$g4BW7F#rGn literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_left.png b/data/themes/default/images/buttons/button_action_left.png new file mode 100644 index 0000000000000000000000000000000000000000..8bad2272d22db3339c41dd2e57e29a367a4b7e7e GIT binary patch literal 1140 zcmV-)1dIELP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG{ z4KX;)Z_bzi0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000Ba zNklJxDZd?gPK?Do> z7TJlVE0IE%MZw}$SGuSW1yMvSm=_ZyY5X}!NM`1CGfAz!ruq`!fq|Jj_n!OZ-1EKX zd=;LX;yh2sYBBkdZ~0#vsDKan3h+MqC#jDqjxQ5P1AhV6zypBhOwv3a&zHTuz28M5 zk)H+!2i-oOkGHVP%S+DA&OR(JFVF4m?d?e^{{&10Z~^V3qodzOqtRbI9uLK0k)xv{ z5{U$sWz_|Ms;c;WJ_ZH`aJgJ$vsuF7@Q;Uwhd%=u1!w}gH#RnYA08g=IzK;WW@d(X zJpLvT2?PQxEiKXA-Ocv)c0L>qe+`@qpb_Zm>FMdREQ{IM**60L5Rb>1ot?$9ECvS$ zzW};`M$Jhgt*xz%pIbBlwdH35CYq_357yjUtd>3UuMd|!2yLr;q^dbu^8!e`q_k1sf4cU0L;(N zGc+_*`PbCc#Pswuwr!&*3Q|g>ln5c%-Q8toW~Sofsio6tVzJoEBa+MIaJ${;y3X3# z8vXtKw6(PXU|AN4M501-Aw=b_SYKbSFfW(O)qXTmN({q5RaK6Tj+mUBWMyRquh+}X z%?(piQ)Duk%6!YRux%ULwkZ~iFRoQDW{qW86bc1SPEHsfA19eiqN*x}Ves(qz}?*) zH#axj-``^x2KjvcRR!~t=$lHV2#3RLZEbONb%kk~*tY$7>07o;Cd0zQLfwjC)rh>d z$kpPjDv)|zRxk0TIenxB(AwJi>;h91rKTJZLZE5dGa!%lvH+<8Hc&7O1FzRhAP}fD zMv9`K>w4uvt7n(y^?ET31E2ud!g)z#GMSVRf=DES-|v634$bfP6Ny9+LXb!#3P1uV zD1Z*U8yg$@W@2LEH@Dl3X_}-`DYDsYU7Kf*$3sU)2b!jl%jJ0g{{0X8`}=Fabvc!l zU@+L;+1WWfGBWZ@M@PrImX?+`iOB8kEy-l^Zf9rb`_0YGKOB7{l_vtIEUvm7nIY<+ z@*b-@(@BL74uCtL_%SJ|I{+G=NY8pnPFW@gP;!7tfWHA9iR>* literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_less.png b/data/themes/default/images/buttons/button_action_less.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c419714b502de9b1260760d2a47629a9bb7de0 GIT binary patch literal 934 zcmV;X16lluP)!zQei_nc!5VH{EUa^EYVZhW9xa#O+&dhW( zre3vL@5FNZ!obY=^S;k{&vV{6kKnF}^ts)Z#gcozlYa`J0VUuSVBP3Tn2d?kmjeC( z{se}=Ie?xH(t(#tOG{rmj`Pjj+}vlyVzIz8*l;*}*X?%SG@H%uwzs!`1G<0`fCOHy zudgp`Y;63J&*!JYFl2v!AJ=tBlF1}Q2!UN>Qy=OF$7Y^pqddQ&UsV*c&@JN zMt?&DUVTfs(<2KLpsMTtuv4wod zfl`WGE|+;ba=9EzsRzf%$5N|lT4o@cragN4Bp-==G(hyHPH44S*tY%Pn0~)cy{ePUqie#P@yj`87SjQy_HhZXfz%z;aSYKZ5oXRQc4Dc zfd}+~E0JCmXO@?jmsVF-e=<$;MI6U?p2z9w=|nHjv$M05N+qO}1VIoqo6T=`cXxjT zhSy@s1f~}k7r(04>+6Q1Fpa8rTx4jA1hC5;roi(ArjQj#;dJ{&-p0!sk?0y1ATQGyA)jsO4v07*qo IM6N<$f=gMaZU6uP literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_less_vertical.png b/data/themes/default/images/buttons/button_action_less_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..2417fd0724155745e1a15ad69e80819deccb72cf GIT binary patch literal 587 zcmV-R0<`^!P)WFU8GbZ8({Xk{QrNlj4iWF>9@00FN_L_t(Y$L*KjOOs&~ z$3N%UA|0ksgd%jg9LtM>5~e}()*M~=Pwu9RNkTV8Fhdc|XbWmS&$o-j znp-gTzEsG2E*~DwhjaLzUvSyYEG$6y?gWvWk*X)PlWY-8G3pVkSV$Z9Ob2|X(Uu5OaQt@iJ zl&eRK>*a2_=#TVNtj1e=AtI=WSc4cUP4fqONKaU=Olamx+5(jZA z^5yJo01ki8q`M&6Z*iA_pv|ZI+jW=#6X5?3O!xAsxKtne?!!Zj&{1c?8DX_Le`hl` z;OS|r1!*s-bG|veh29%RPr%ou$s^!tBANu4052mj>hjxl$7uKI00yrPc|eGRs|~m`m-WCWU}P^-zZ=^fk!ef;1Bj!JUMgwL%!;4~g~jz7;I^C#jebBu zHcU_!xOFyBR=XZEGmEwRLif5IIenTp*~)S$xBlnr>DlHm!HWFU8GbZ8({Xk{QrNlj4iWF>9@00T2gL_t(Y$JLk5OCx6( z$3O2oGf6fo;*ZV2OmbL6Aq$p5d+^eu7Y~6#1wH5~;L#o>r65u~6hV+47hIvztN($A z;z6NV6g-IA5@!jTS|w{US)F%gdT5enP1LSq==Onumv^2Y-+A8e^Um`KnnhHfn|ndT zzp?hYBY*&&0x`e@LV$b(5RCv7@D8wmKY+KuHGtj#!WbVP|8#C{?wf&uflqpSd%I|Z zTwGkdJv}}BWo2dMyUoqbS5-j1sD62GI-UM}d3pJ#j*gC~<2dZ^?_*gOzVAN@03igX zX)-c0f?*hx%Vm3Va`M~V-Q6F7a{+V$&$hO-&D)R@e2qeLkP(@bHjSDrHo8Dr!I^K%r20&ynLe z2qEa|3dUR8ws9PXP$*R2D-;T(QYmVcDerQilp-7s2R@E)IE+&2P91q)YBfy@3`Enk zd#g|Kk;q2_L=R%z-QCU9)D!?48yl2LrQkqvxg5n}u}Q&k91O!~X*@kW&BVmS-;Q*h z)z#IOdXD2X?G=kfa=F~UKbl(UwfqWQZ@Io%dA4l_KN{cnDVNJ=nucK*XqtwU5-BC? z>+5yB+S+wpJkP`PJg%>=ab5RuIpVr*lhez~OBNRw0qVj36S4*k{{Op2KJ+IS#Mhlb zZmWa`ao`?bdbOAI0D5|Q-g{{n20{pwQV-^WloDOnn}9UL@&LaEL|t87UBzOta59vb6;N{@pv35C6!9WSy)*3es6E@ z2jEOJaOKJ9=;&87Gc#ZJ_xC@GMx)VoWW=`Z^7;As>$SDDmF?~ApMl>1)mT#+5N{Z= xM2jgcP*NI(tlz8i%mwi0ZKGtnN6waG=U;_%J|L16ZIb{1002ovPDHLkV1kXfv@!qy literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_light_on.png b/data/themes/default/images/buttons/button_action_light_on.png new file mode 100644 index 0000000000000000000000000000000000000000..62905f876b16414cd4329c9b260756bf01b6dae2 GIT binary patch literal 1212 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_next.png b/data/themes/default/images/buttons/button_action_next.png new file mode 100644 index 0000000000000000000000000000000000000000..4eed2668e8189ebbd6c24c441eb7cd5937d7089c GIT binary patch literal 1089 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 DDUQ3= literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_pager_next.png b/data/themes/default/images/buttons/button_action_pager_next.png new file mode 100644 index 0000000000000000000000000000000000000000..db7c7aaf481bf7889713939d99b39832763ba005 GIT binary patch literal 719 zcmV;=0xWFU8GbZ8({Xk{QrNlj4iWF>9@00J{fL_t(Y$L-hOOH*+e z$MN@b&gnR`*>Jl^(TfN|n>VqG+ybf4gjk9MLjPhAfpaL$iy_5HNV;iL0xz8x8ptN2 z&9m>*g_F!5L_24zi=NwaIG@+|`+dIf9Qa2{u6vLw?7Gq8YN%ngn}cl4-fjLCGQGSL zZCRRD7zX;fwD^X=zHP+Ym>;iQf=n;(M14zN0xsYK72pWOgtPT(sS-mN0UV&|7v&5XqB{jylM3q*t~_Avhv%j|fbLfe5@K?m(o_IB=x6 zH0B3w_CS#0lRK@jZr!g(WAs+frsWG+=OJ~3cqU(pciWK3m*NO4nE+uwjAg|LQa0f_;L_RxN8+qQS*@5JM` zpWVidNJ@|qAPU-z->90RmA;ejTgAl(P5#$4^#hra-tZ)|7b5@w002ovPDHLkV1kHc BJ-q+` literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_pager_previous.png b/data/themes/default/images/buttons/button_action_pager_previous.png new file mode 100644 index 0000000000000000000000000000000000000000..233918beef2e7ef5bc321b7951d772f6bcd633fe GIT binary patch literal 728 zcmV;}0w?{6P)WFU8GbZ8({Xk{QrNlj4iWF>9@00KNoL_t(Y$L*I*OItw{ zhM#lq?KNnlVq8?wRiUVHQ?jT@K}t~qtsh7s&_CEkp%jd1q;VnA_O?*zrb(pW(zq~- zkl4_~WKI_v2!2qCH#c4MY-c#{Gc)I%IRpPl$V~&W+@Tvjt@L!i^mYDLxo!;-%N@F|46Td~T2K21 z63ZRBZln23U<{|ROTIR4+aKOtqvmsh>9Au{Ic_3C-PF$4fm&ch3bijm3*8jOnIww zpH%dFOYC}}HL{zEp1F0+f|gY!nMfC>yytUYKCe8e1n!zHm=lC#e5*Lsw|k@;Mqs|L zH|uUHdZzX8J9j9QyG{_gVYfsiA+AyYlcK7A3=x!^{XH% zM}VN#(n7j0-YbZObYUE|md>^0=t_;)w(Ye|YXTUtL^cvz#WH9`5%uZc(rKO}7ft)A zZQI_p--#!0zqyS&p_m|(Kp52L{SbhfqNRbeU;Dco51agt8{#*mbKnvAHxkYO0000< KMNUMnLSTZ{H#AEC literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_pattern.png b/data/themes/default/images/buttons/button_action_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..635199472654833fe4e0e200af83317863d32f3a GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^EI_Qp!3HENSSmt+6kC$Fy9>jA5L~c#`DCC7XMsm# zF#`j)FbFd;%$g$s6l5>)^mS#w&c!am$oG+D<58fHY>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)DjRlu?Baovw}^=ODF`9 zg3_J}9#;Q>y?T=k-g>j3&|A@44n6b|*i-db@b1Y4PeQ1mhsH{yMkPc7+0Hb{{CIoG zgk*PJjY*b%VR)Hm=6#+o-+8|8ysw}eBY@GmbU?J?g8ra7#sKhue_NxXRV;)COaPOu z@fjcoK%$e32h@Rgz+XTOXm%3Of!Ol$@^|a&>pxnSH9I~&{){1@TCLX3&(HtN<#HQ) zdwY4{E|fe1Of4=hzRcxvzsBS7sO!2MA0Kmdb%j!DAOwUEB$G+z=H@UA1KYNp)z#G> z4h{}}0~!Jt1HRth-+wbZJNwPq*%=!f8(dyq4nq)<$t2s`+oVz{PEJn#SXx^89jmB11Rwx#W3==amGwkf_&}cNAR4QcwRlU`a`q|kw^s3^FH~Gd`MbN)A}Z&Y1)JClTS&U&1T7F zvyYBH2KrMbO-)Vp6n_jP{}Z%{kBY;--|sbzOoWpxJEV`~F~?)%X2&(jW)`sMTsnDciB|xoz8@ z$2B)MH|^pfsm}Okv+vs4T2Jx5?c3{5uAf};Q+rZf*9S)Ap0CnhFTCn>`)5JKR2 zURN*lB)OF6y8Z!?_i8B}@PS67(P)^a8L=#ji;Ii4oQ7dw7{)+XQOmM0O;a?R&3dao z5^#Z9rBb<+Qj*DJNF)+NTgnrO1er_*DJ7Lk<)T$z2_On27Zw&?ZEkM<9E-*DAP6Xx zO5EMu4RrH7IXTJn^fXdR>h*eaYisMLqobo=!p(C?=EeN{{HshR^V&4cnbFbFFNUFr z<2d&1?QLmycX#{n@bE2g9x4)kq6qL6@EnM@$lbep>jU8->u;b6{BxgeKX%L<)RD9E bzAN@06mLjAuFinI00000NkvXXu0mjfAcDQd literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_play.png b/data/themes/default/images/buttons/button_action_play.png new file mode 100644 index 0000000000000000000000000000000000000000..7a600b70f04490472c478367b37de47c96146f9f GIT binary patch literal 1056 zcmV+*1mF9KP))=bL**;l3&FweP<_$K(Tj`A|>+xPZ?AFW>=;N1U{3 zHc$cH0vEs~fK~_N0{p|n!`~(niSNVVaMZEfwR{r&ylfh#~N zbuiw^$;q!bHa33tcszz>SsWf7lF#Rn@?{876op_g$iTn=x~@|$m#^aS_zycfJHG(7 zQs0JG+uPf(2L}hg$Y!%FE-rF*cGeC;2nK^JFE0}ghdDYrI+~c6_zJjGfNtQ+OeXWI zVHlm$)6?W~IofIc{rx19NvhRqIUEiLfxk6C1zc{oyYu+?SmtuM8-++Iv27d2aZpti zMfouCNGWgDYMOSlK9|dp$z)_C66vbPN4veSP$=AqWLXx9qTum(T4JDFE@N319UUEa zVnrg6n-mgHNz}G&TrSt60Sv>y=kqlL;&QpLZTrbNq7k*Ksy;ftw6w(5))qrULr(@# zRkfk|L@Sj0{eBF?U}a^6(b3VCwokOG04XJ1U0oy+3C73A|34tN^JQUSfvKsf)_|nb zX^O?-y$P0OHSMgkvy-{GIik^MLm$Ork#suUJR{fAYsMVMp-?E0&1UZ?uUsxST&p#c z16Nm9sH%#t>!_-V5CS2@J*j6h8RGFcl}d$Lt%hluIF8fQM`+E`?l{gpr`LVcG)bq^ z%+Ag>JTKaktd8SgSr)syyUfhYJR8IZG4hbDudg#QGQ#HOX3MJ68r2X_ortMaic~7q zbUo6{);u^%)3ld5W*YjsGwStv?+og?j-n{owoR>8dtMR>fu?EqfOL0v%Q^uPkQz_} z>}s`I_51yFEufx~`+^`imAup-_mPo*uV|1OmijF@zA5N~K&qzPzsBKOGwz`(}QAe$z0Fj#{lop-`YyD!pj&?DP5P>+3@Z zfoYnR)z#G>_xASQ09B>V%16Lw(P(r!7K?q?+uPgccDs#sFmic$SVd03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00Z7hL_t(o!|j({Yg|%rsvuP1DvOXt2d1mg6>{?GG z5&;P?)LpqJkUq%e03I;iWqZj)86-x5GEfBayT}X*4``qX)PPnmnPi`&A)uTL7tdb& z^6O7VOQqQm!hb4J6h)y`uUCHm=!4I#Y_4@l*?x-TfH7e9(pOhLyL92gd*XgO_cWR# zof`2Ai;LeceE9ySKm}-YmC95k2jtUyI@`MUFjrrH_*A;o>+#%hQkcyub&{o~7bEpK=B`{T z6<+F))fP#Xhj^hd!wRDgrpO!fr)C zvwVAf-}8(R_(6Ka3Pr;eN^8$AO}f4Mzq_s`#tqICg=fr#I)Mf zouXdtIP0yI3ge|BaV{c1)JZeeVV%cX$L7X;jCGk8IU>^74fblhi}77&{qEXt034qz zbNRJ%0Q|AM%FWe#2eWvo34;*vQsP}q=&^V!1dUpQD2mXcy(d03UZPY?Sy|uMd)^>K zoYZ(5Z7cE^4nM#&j_)```o^F^(#$)C=4HJCIcT)68d*dKvKx#F71A{cm5+XE?I>2b!fB8ah`e=Kufz M07*qoM6N<$g0HIpUjP6A literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_plus_off.png b/data/themes/default/images/buttons/button_action_plus_off.png new file mode 100644 index 0000000000000000000000000000000000000000..52be1e6b7430245c1b052dad1bfbcc3e571e796f GIT binary patch literal 1258 zcmVlhLOq>7!03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00d4+L_t(o!|j*LZWCD$ zhX2zy;)!F&jglFUtchTOkYI(7AcAK=Gh$wV4G#rqo&agKAhJPNA`vJ;EZ87r0TB-J z*x07seJ)j}X48&5QA~`pm@FviZ2EHg>#90`RRKTjjGFq!b@h$=i<(TW6G0S!2tZt} z-~{M-J`MmLfGZarg;6sgmI2fOQ~@MYFpHW8U;$(Rh5*J#VWMMRiUHK4DEjUG{ri8^ zYPDay_oo60g20bPqk{(z9{f#2A4({iekMA`BQb#Ly?gh5zj5QnpIMecL{60}N-3#U zt8mWA!-o(50x$rePx43rAgNR;>x037I-O2Yf-IaPN-1eJo0X-drL|e1j%NLYF$P*| zueJ67)VyA~ef#$6>gsB=wYAmPT6?9G01&OUH^$6N`e@cEVrFlQVXZY!uFnH=_3G7? zG)?0dFJ62Z4u_LG5MvBmYyGT)63x;OBJ$2TveuG_1oLYpwmoix+_h9I{?81rqyayZr!?-0zgp|)NZ#20I;*OGX#LkmoHZV zBrjjS{POwpXImz#x7Ly|Miv1PV~jJ#aH)(60JPRL9*+qCj4@=b{f{s`efspETCGM0 z2M2|7?y$BPV;m7J7MeWI$r$5AB)D_u&d-fTBT14Z$n)F+z@_%y+Z!8W{EX`B zqbLf}G+ih(!py|X1R#9$=+OrNxNzaZ(%rjvn*h*mw|m>$+oL%ImzkM}NEQKM=bS4= zNG8c@t)#IbUGdX z>eZ`W7>4To`}gDWJ^-N6Xhf}6D_UP)k3W9=7<9W`>%A8MUPK%-`-MP=h(v?{gj2_t zcXoEZ9QV$(YuD=4YBgkL-rU?=dG_pCFUv9pz(hpf3nBo7nZ5VkmVYes^svvLKmTWA zW22I$Y5eBRo3CZT6aehKw?hzl4bR(i_tt-!x+k_V@R>+wCf?HBIfwA`%>_ zSu#&(1b|mc@l;DUS3i>HIp=wPbT3j$g{4BvyrJ;`Y*7^bX0!Qg*%Sq*?9ifSvw5!9 z>-Eci)z1?e2O!(q+uH?zdcB^WVx%}6C3?MHzuYq`zi~Fli8DK3{cj`Z4?DB=FV{Ny U60#cg>Hq)$07*qoM6N<$g0g8s9smFU literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_popup_back.png b/data/themes/default/images/buttons/button_action_popup_back.png new file mode 100644 index 0000000000000000000000000000000000000000..53a70429dba145b68d792fbcf23adb8c649b3cd5 GIT binary patch literal 1663 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_popup_glow.png b/data/themes/default/images/buttons/button_action_popup_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..acbd715f39ce307848cc9072cef50aaba32f3aea GIT binary patch literal 1343 zcmV-F1;F}=P)?(n00004b3#c}2nYxW zdPO9M>I(zu%cNJ6c(m<3v&|r8F)vaVpV*FMFqp zjv)^qy@4MfZ;E@SF^xM3i<_s59PGN`4}xx z+a!$t%iiA)A&Fp<0|LfY*eCI)ko+aEzfyfM{QBX;R@nOJ(?54ks%BZy_kdp`y)TI1 zZ$Kw9XUKKJmcmqI?WBN&m0Mf`-vrGY8tlISzjvcYH;Z`i=|^`a5m23nnT&YLsa_Sj zlSITk4dSuQfngv*o!L{IX~2?V>)Q0L(UsN?!Bp_z=kI9mc% zY;wV0?eqs6_YxczP*t%>Su;1)PoLsIMIA$Bip(sS=0pT+evVinwM)%p@^pQdv$(j_ z4}X8ELV@d8U72q%PXci-Hp6Epb!WKBYRhPwwT+FbitcT13pVJ}&ldB^8F3any$!r$ zsf)Niv5I$>`XLUUb%cm^+rhF)rvx3O#PLbp8SZVa)+^s05x;x*aGIXq@{qmWPFmaQ z59cGt3LKDpibG-Opgazqp)l%3#kLMM0=Gy*qq734RrcCf=h$UZmiN8NURywAbcQqp zw>FAx9Y)=#aB+cA0yT-$R(X>yTkyM7d6N>U1vTd`uX#fhVcFKS&&%(DeC~kWbO`@x z!4Hiq(P?ufI&H2*r_GhKFnc1IKfh*M#nGpa%>a&(rPzYbco&{wRZn8Xe zM~&m$dlR2NRU?Iov1HvKu^eDwF`t~RZS{w5vD3ok-I>-N^s~i$GTRUroLC0kuv|%+ z*mW~^+m1(vtEof3suM54Bcnyc2g%J>#98Je$45M=s(dXS{Py`&Mcer`74?%aPb?bZ zLQAtIg%2?E*w3+EcI4{la5crn;F%0IwYliiRC12ivVhG2J2vA2BFDnJe;a% zXfjPmc@T5R%W}ADaXUb5*e7I%G0#Vzt&<|)yiVgm)x1!oZ+rvvKJZ>LH-Qtu8Kk<^ z^h=3QZn)<2z2-4>Ixi*tR5dSh;uvsNe*QW0zg*!gztzYZTVYJlL^z%2ATkA_Q6Xyv z)1Ag6G=tPtUx002ovPDHLkV1hG( BhvonP literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_popup_valid.png b/data/themes/default/images/buttons/button_action_popup_valid.png new file mode 100644 index 0000000000000000000000000000000000000000..496eb9bf5320ca0303df9f0816eea2de0038c788 GIT binary patch literal 1449 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_quit_off.png b/data/themes/default/images/buttons/button_action_quit_off.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf1627cf236146eaa3af3b6f081c46679707656 GIT binary patch literal 1045 zcmV+w1nT>VP)GqnH!03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00VhRL_t(o!|j*LPAf+c zhX0-!%nU|Y0UZ)2<|q)7_qL>aVV@2ENz_HS@}I^UCe7?H6`f+P(>l+bS2_%Xl z8I4B2U0+}SLPYl^6wS^_UWmvVfXz;)^FzDc{%JfOLseJG6=RHUZf+ukpf@)+KLZ#7 zux~{q0#M7cY$PO3h_IR|U4SZf7GSu(ln?-*&N=qpOVvh6s%i)kNeF?w_oS-Pia8=71Y%~c zs!vtYAcP>+S}ux$RaI6^R%`8iL>2=fA}NZ3opbbG?3$t|IE3(ikPw1+@5x#l07UaJ zNs^eoy}kAEc+7d8hd1&>y!Ygs(`7)^ITxIBTvo<^fwWq!tX{82J3BjT#u)8(yLNVb zcXzk;`1t6jXNz+#5K(1BqSvIEOeW-<3)Whi_dL&S9LJg@i5?srY_wXfwdvUY{{H&e z+1c0A-_E%(nM_DTmXd~s!=cUd+^T9kACWxIowb(Q?erI}Xp2F$r>8`4pPYOw3FG;;MPKx3|A%S*GXb=ig;nX0j}c(lj;G_5ajICL+>h zKsbaD$|9t%oi*NjO4Br&dX{C8_Z~BAC4>-`l7^W@RfC97l{5fwbad3{bUL5w_4+g# zQJSWas!F+50f?#wW|pNuh=^2mD$O&HR;#ssd3pK$#>PfetJR`7j*T&YO&g6yPF1H7 zVIrdUf+zrGW)TrT^HtBzi2M8d$;HLR?E*b2i-<2lUhG+uivAL+DrGe2tsGgPXJu85 z=FTi#L>dJk#u%Py=~e+DV@zCDXkAnq0pN?G7&M#BZ_B1ATCqb*n$6~VzuzB}{i-Y? zO#m>yySw`p02+uzpoPget%H@=eT^w$GlE_*bCPGcIEtHAJ+Z^jvs>RJ2EFk P00000NkvXXu0mjfKw{X} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_reboot.png b/data/themes/default/images/buttons/button_action_reboot.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1b7031f7fbb30d4ffce8f412fd382f4896f85e GIT binary patch literal 1261 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00dDamArRLNxWw4r^^e(|-8VhNF*dRD!$oQiJZTO)^Pc8A-|u^~Z{VvPQ?vG&xAs{d z)=bwp5QqiXfYTna13({Ua{vK!dxW2Zu?Bz`1JXbW80i8ttO*bRb)W_`J_lp>337mR z%C=|!SX^8h9~;XWWB!vwmSq{Y(J1`<^yzQ)Fx+f|3cG#mK8!d(YWeczrTN9h>&;dx z_9c>II+V$?Lln%B9@LK z{4m^~_E?OVZ4(8-zJ5B2@S|v8CEA0kNEw44h6H_p*vTX_*RPX4caGG|3~|Syv9*P_ zxyj!TAJQlm_r&;NNFZVc6^cFR4)I0swZ_-Fm*TlO=5OC7F)@LJA+?PSbhF9$%nXy4 zE^+$81vXYz$gi$~$R{9LqdqZW9ab826rsWp)y2rEvu8Pf=MKgg{#;%r|L762yKY%b z&do7@^CmObt|6Ai`pQZtR)rxdiUvwI5J+Im4kPW2;*P_2H*Vn9>pZ)6kLugEdt$a; zyx^bpb*|jK%ePmqP*_`|md|$>3Az~SS0R0^wabXsD6N@XSinjoc=g}`?{m4%{P(wR z@x#&*jEyMG_$d1S9%?f9uML>V(2Bds7nwR6Oon4syp-U-%^OO&9Ai^c_)&xrp%nz^p`;P%$q_r1qWbO~ZnfIu*QnRQadtp=6gXvU? z*vXSL%4J$wqxO+zAP_$c@jMT=Rs+EO_z?>_-@E3P%Y;#cSF6$NTC0`Iq_($lU6)3! zM!e1Pk%2U|#&=zIZ`SP4E0tEtyIUaQYxX8qEasR0MW*HD3z`1m-Cj8MwwQDKNLLLf36BT9t0 z2!1;_pUW|t$uOSH^1e`@*=Fk5>MB?krmcT09w&4DJf7#VzP8qhS0Y5ily4A4sIHSY zgMh!**6=)!%=|o~nGC)Ns$J&32(hs-rY~MZi}3cOScGN(@Aw^~RPaUz+-9vPt#1Z)+HR7xdGcdRj3N0i0@Mu`~Or|GGtYL%+z zkxHj=5(#X_+1bc-(Lq4Nb^U3e1O|;o%qNR0VwN&~&giYWB(CTLA*gPkW?E~w7dvboYV{88c X24TYAqp$Qg00000NkvXXu0mjfao10F literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_reboot_off.png b/data/themes/default/images/buttons/button_action_reboot_off.png new file mode 100644 index 0000000000000000000000000000000000000000..7335d069c9a18a1f5432dceb4d6a509e2d02e54c GIT binary patch literal 1428 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 Z#6LQ(*GRt$Dgyuj002ovPDHLkV1hTMn0WvI literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_right.png b/data/themes/default/images/buttons/button_action_right.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6daa0546f2ff96cd3d1f2c796acad72c544308 GIT binary patch literal 1119 zcmV-l1fctgP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG+ z4JbG_CX>@2HRA^-&M@dak?_?!z000BF zNkl1v@B^oNmcnsbW6cHsN1e(BM9F~Rbs16km2;0E{yK(-diPN&lm2n4Vg z_xJa>-R=hJVCi(4bUJ;sw6yfw(b3UoRaH*`T>xyrhq1A-k1H!HpIj~%#bS};<6}~( z6oz5c1b`$-baizxJUooeW+Ru&F*!N;%i-bSufP`p_y*{U#bST>{r*?C5CF+!l1L0k=)wa%E`$IiA3VR)HY3YUB@sCBuPRLUROM(X;${ivRv7pNF+EtJ;mqqmGe|6 z0}%l-nal%6nx-KL0!>X#?_xn!RWwb*X0uh^WipvE5D^f>=N#y|j@@p5cR1{JJG!nv zyGDG8T1k?sI;^+1_t}auP4n$Qs~gv2=;%O}WmHu)mzS4+IygA^9k?l{vf%goKXi6>eisY|e{?t;-!?Zl*M*VW z+gl2S!so56t)FAD*q?@Bd;v`1kpL=-t8PnXh&51o_tl+lrNX%-uU7&2n)7ngz@R_!om3ZFMaNDaZf-002ovPDHLkV1mJD_l^Jn literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_rolll_down.png b/data/themes/default/images/buttons/button_action_rolll_down.png new file mode 100644 index 0000000000000000000000000000000000000000..3dcb0994fa9765895884c7f91bab9ce4b041bbb3 GIT binary patch literal 736 zcmV<60w4W}P)WFU8GbZ8({Xk{QrNlj4iWF>9@00KlwL_t(Y$L*I*Pg6k@ zhM#lqwNyiaq+QsGD-*@mjll&ihOhv^@D*ax-^j+8P>P8VB`mnIAZ}<&OpF`B1=TbZ zDlNBjT+qgbkGN&?O<)4Ggb+351T1Ix1G~?PF*1LG7;~W6OJ? zx}`~lDA426=BonVZ6ogH{80H4$k_5;$g}hn5CA;j04RZ&&K$j3sth2+00*c!MqW2z zoaRK&GD(mCP;`u}wbFJn8XKMjBIlaC1F%|{?*c~aX5B9cfX(@#vewNyU>cfS03oPQ zbQcmwemlfnNE|5?f#6jjh)DUy?0P}V>XtgvH6Ttqi$_*I4>(%C1K^2W`8fNqbR!_+ zAHLePlha9sU3d2JHxciVL7tr7xwi{!kFM;+K;xx~d7n!sj4xMHJ#+*#ATX866b9Xy z__nGRRJGvF#J8Vk3Nb~e4fFwe z2L?~kdOHwp*O85M;!IC^m--yD)DA@3b)=EN)qkq8b}5L_{u@)ipw$XeK?tX^xv<|1 zscbHc5C$rjK~(k|t>wf>CLi$&VkDD~pw`5>mh4}0jcwa*-FQ);-x66&trUI$C528k z&jK<4L>f)|v2EM#mEVc+H=hF4Tft#LVn7Jgk8f02(Sx3|)18gQr#1e^HSrq-I{8mq So1IVq0000X literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_rolll_up.png b/data/themes/default/images/buttons/button_action_rolll_up.png new file mode 100644 index 0000000000000000000000000000000000000000..b9dcec3a187d8c14984e591ca2c3cc2bfad98980 GIT binary patch literal 725 zcmV;`0xJE9P)WFU8GbZ8({Xk{QrNlj4iWF>9@00KElL_t(Y$L-h8PZL2H z#_{hvyR?WDi75x+WQ>NEli`3%BEg6;Qc9wU34bF84OFxUMxxSkka%jv7*1f}Kofp6 zTI%k;9!g_{UYfE%40D^!B+n-^^Ult|W&5{DeP{ILm(XEb`=B7bKm;_1xC2EC;os%e zrKfi*Cm{D(WBgwW$YIp$8VPb?Ak!j^BjauV9!^5 zw~~zS1hEA7Qu(M6c?ewdJkJ5%1DL;L?E@6?7lT3otR&+*h`(6P(!SbvQ#YmqrI<+! z6ocNFnZ!U5r3iF1f`E~|Gb@v0S>~dY@BagFrZ>Wm)4A}uLPn=^ZF03VweOm#!G-nE zxj;szb8VFlc>>siSfRtpcqSx)Mdg;MU4@lSgs`fWay$t{t`zOHiM1KJ&G`lo*DWFU8GbZ8({Xk{QrNlj4iWF>9@00V?cL_t(Y$HkY;ODk6x z#(#5WCLeQ^BAQSzrcfl6AR=NnVsT-!awq-;mRLpWQjkC|x)C=ntS-8!d%>+M>q6@y z&|(&XSWOo(7)p}WEg4N_CeuxlCVnKjHwk?=!S+N5;1MX62UI7M0VnV!&+}zyn?(S}0TwMGC{0;n52I8NZnwma1IQU7^w0DMKaCLP>GMU7-?Y01r zBnh9-$H>SCs;Z*vdTxGx{)e-(vs2(+D(T{z$HvCKipS%uudkC#CObh00|NtW zZEZ0)ILPJY<)1S%Gv5QhiBi8i5D559(^8x z`}+EtL?ZE@)NLEnG_foTS(cHckJGMg+m*SBqEzN55(#c^ZwUs2?lK0Y+8L=-s#fBL zfh0+EcXzkMg0AZrhJnN3pgLDD7_3N0Jo9-?n5K!->3lPR%jKf4udg8xr_+gPnsv_@ z(TG}Emf!5(+}z~w@Q~5b(YionS#Ib)(F)~WuNRlg#rF0#6B83HeLm5u3vAm)(=;|V zHVB16{~wTQy{xURF*`fk8jx5lMmn8-`ExLgrWbR&-K?yvFg!fmaE)|2O)M5`o{_Tk znhDFYczAdq9*@^JPuKN^bCqT^kjv$eWf@gfk!2Yn1VV@xR=>NuV`*uLr>7^1#Uh15 z0n4(Q+Jw?9?UrS|ShW0JC=`grVk|B$);ljcCsxa{Fbsq9^K%v!7CsroM=|nR?Ck6? zK0eOg-d@YDQySF}^-jcSG)goYZMq(5=F_}7N>P+{9W(XTlFE!!w%pUxQ!_$URU}Em zG);=d;-`sF2oyzm0pwXOyWE@4=ks~5*X#8A{oLQ*SLjq#6;)N+S{(WPe!N~U`FuWK zDxeW1Mm}V-*`yGHa5#+5=j&L7=JWXohr literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_scenario_play_glow.png b/data/themes/default/images/buttons/button_action_scenario_play_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..862e9a1ec70777c707adf35ed970a55da7369d92 GIT binary patch literal 1025 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 N002ovPDHLkV1mw0Hyr=~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_small.png b/data/themes/default/images/buttons/button_action_small.png new file mode 100644 index 0000000000000000000000000000000000000000..c2619ae2fdbfa2404c6e61f8bdbd6bd14213a7c2 GIT binary patch literal 665 zcmV;K0%rY*P)k|00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-ai0TCB3_?6ll0000TbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAXI2&AV*0}Q14_VZU6uR4@pEpRA}Dqn?H!!U>t_uFW`|g9{49@P^Y5AP_RoE z$6H*aI29@mjyl>gPznwuLlIov(n09z;_OfyER=#JYV>fh1O!niCP6IP>5d*fyZQ~k zcY6p~-k0xtvV;M+DijL0^?LnXJRW}$jYe-k;U?Sd_Sb5)`qpZ-K6Ja?@2prXzG^m` zpCw5O9u5bLMk6ejOPo$8YU_ewj3Jp!BAd-35D36^U9VIsy=VP?|EsF1FX!_)bX~_} zGNHCON+y$mVHilIQWy@0cWgGBd7>y@m&;{1jsw?qAxYB13&fY_bUKYrr-R*YcMw9M z(6w#buq=zp;gl`Qf^FLfhrfWTX_~O4K&{+KQ*}-Bo4@pufwFyMI}g2CX!Lt=hd*L7%`_V|QR zIsEc}9Y$sGIo6YdQCa-)*}-Cy`H@a{bV~E9KNF)*v1OdM99~zCuM+V>~m&?7b zR4Q*}S$-Bg_dQ9uNIcJTH=E6!X_~FUVDRM+i23;GqD(<;00000NkvXXu0mjf4l^FW literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_small_glow.png b/data/themes/default/images/buttons/button_action_small_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..68f0454ee09edc44c702b4e3c6c4a722939928e8 GIT binary patch literal 757 zcmVk|00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-ai0TCc0VI(#L0000TbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAXI2&AV*0}Q14_VZU6uRYe_^wRA}Dqo54z5R}_Z7fA4LgR~>jEVh|iTY9GL< zFVKLaK1H8Fe1<+nrcOd1ArFv@99cp_0+yoQYwFqS@8Cw;+nPel6)mi9csOw2|Jdv7 z!N0^8_Kx4al(d7r4itn)9u8w5kj`zNzJBq|_rOfb-tn6sK^wr5a7P+sJ5zf=Uy`t! zQ3bBSzr23&?GM^Je*5y~0q`Nr8F(tGXKW8B%&wr7BF4bh&4Fr?c5I(Q`C#IWRo@L! zE}MG?_$~f8X-|rBOx^=`Wjs)8E3s<&wkUu%CGE7?Kg%8YEL`8I3_oAAi^-@icYsfy zhq=-C>}gAB3*^)1!IZz}JLy+-Bi2R{jjH|}(=qF9cEQj<#I$(0Jp1)xa&j`Az^ee@ z=x9#Zdw|2kl(q=|k}bgd+idsC?k&++_qQEJX1iY|AFt~2daIHOk_2u*U^j|Z!gY0HV{Np%2cvp0E0P|6mqpV1;-`bJ z7IptrBwelQE7%Pb4e1HART00000NkvXXu0mjfc|BTd literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_stop.png b/data/themes/default/images/buttons/button_action_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..7938e67194b12c403fcd9c42d5d7d9c76dc14ded GIT binary patch literal 949 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 opyHDBESKbzXTcFXGCDP!~buibw=wAVRK0(QCZP zoSEq+nW{03&7Zz7Fz1{(^E~sO=Q(p;h4xUI*Ym!9!hWG`zXTuvH!uo(4ZHzHUYgKH zw6N;HEpQHeZniD0Ip_xb^YioHE-x?t5)OyMKA-OmLx}6^>)S%1P}tbm_;q)8HxE>R zht@KLXJ%%;-`d*Bc)i{c!!S5HI-*o6VcUaAh@vP20s*F{r_pttySuwDiA3V(gM))V zfkKPO`|a)RKVq?1v`{Fpwzfv8R2oJ?n3|emeSMv9ILzVU;m3uAg&%;wM3czdP$=|H zN=Z7M9vTUNQmI5bokmJYC=_}Jyakk&MwHRfQP1)5F~wr>A8Fe*Qc6tIL{(K3<-eK7 zwryvwrfJUnVzJ2S=_!#&#M2V7_Sl-`a{0-N48uTC6ue$} zB82EjxSRV#uj$TYGQ?srryYyM$Ye4-FJDhYQmGX2cpOdBoIXv{h{xlkQmLMZXuV7t zA0OxP@)CehCXSbyQVF2!Rmd#SP9hO)Sg8vMd^n2Bv8a zRwJfqw!Ksc;n?!__7=;s{$JO$;xTYPB>E;Y$k4i-A-e5|i;Ih|K9BTFMANjcjyX9w zdEFOlT2~^@C;NQ9Cxg1KqbLee%APeKgh11@HX_fk?AEBP*Xwn^-|r3vgIru(IO)`N zy=_D5H-f<+e!ri3yV`u18|`{(u!wk zX(>88JNx_C*w{B7k7slk8F_ek_vufloWsma6Pm3ph`}=3EXIA!m;AtYvoj;w>JQv00000NkvXXu0mjf DfotC} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_upper.png b/data/themes/default/images/buttons/button_action_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..5f3b5001434d338acdd90d42603f9d31b617605a GIT binary patch literal 1016 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_vertical_glow.png b/data/themes/default/images/buttons/button_action_vertical_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..9f70d84e73d478f56a9fd5918511803aa9ef6f08 GIT binary patch literal 997 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_action_warming_up_glow.png b/data/themes/default/images/buttons/button_action_warming_up_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..169aabca3a46518a48b8d9ea7345c0e49c4ac668 GIT binary patch literal 899 zcmV-}1AP36P)IT3%+_pg~w|E{!lK&>Za{tonoWD z*b7HIl0Cm7e%mtNA#E(RJ86YoY#)?}b2qpYtm=$TZ9fqzFQGij{VW}^zEwSH_ z`I`6d*G#8-khgEY&dcfP%`o56t=EP5d`bjl&a;%GumczoQR)OBLTMBBu1T9BeOxY= z>&45LYv5BxzBV{N--qvC&G--4`S~YJEYHqZoSuGcunBvYK#9<#HEM6GfU4wX6A_JJ zXp4O(Qr93izJ=Sw^wVQ8oi;LC)Y{T^kvxE!t@wP+uRdB0==pKgUwM4#2@w1wbq{h6 zau0G3a%Uh#GC%>kA86QJd3@;!5Z!)!^VRoWnOTS^%k{bd;p?LtPWYA@AeQTOA);hv ziK~B11$UC`7MNr@BrJ`}eo#7G%;!_i&bZ4lU@@Oh$viC5K}L+iz9iFIppw}rWtURQ z?pnmcnU5Vo9vxi|Mo*sHZZP_mZZs+paVY7rA{Mf{l(xm*k=g2`)}G8&z)EnG_DLzl zt+jcK#~VjnkBYV4E(ka16j87bN-4*gc@h$a74~XUYhQ`jU@v8#15>2qw11WK&@jl( zySf;XYT6x=fOoRbk(NYkDy3}b`wP0RBNIvMAF@tJ>HSW#jffT3>%;})@#g1Quzr@6 Z^BlbCYGe8D3oWGWGIAWq$;?3`UbpDQO#puU{dmQaSW-r_4dYjFX=#u_J{YE ztQ1|f;BIPe7ta^2XHw6Kig_=4b2#mKp|x8pOYxuP%V$g4B)Hev9QvFyY39isy9&$a zDvUr2CoQ>I^D^!8WtDVKzezGuydl|BpJ<)zUzo4|zxB@9XO~r;-%ez{8m+!l;#b+l zDN}c73$CB6Gf8Li9iH0VX4)&9&1ai?_D%MgUW0UQ|^q=Dih85s{<#kE;4+Z_E|rT z`K$I?ztc}cFQ0w3+;f+TZ{#s?&uN}{ZTq$^ZL4~ed#bD|Na>!5waHUlS| zxv6<249-QVi6yBi3gww4844j8sS56%z5(x3RPz`Zm^3_H978H@y}fDc9i1p~{9!#` z(3*wOSI?eHpRUE;QrEEgx8&P7`3f>q((H@p*1Wvtw$%B>Cl}`)R(1aeyO!=Jv=qB%>9ly69URuPYl zp5K2;%}!VF{A8cWUp(`6Z<{w;l*ifl3KPJR64QS1BI=>H~067x1i zte+fXKKY;jr2M6K7q7b0IXOiu>Bfu|^;0evPkNL8^k@6py0cpUXFLg>#Q*O6hrI6( z_IuWq=l`5Ps=4{s%toPeAJ0<$ahrCsn9^_>jy`Hr;?A-nCj^mzXX9U<% zmv8yG=;n2^wf`q3&N#My?c36AXSvxjf9onTOP5V#YvJLL6fjaq0bz#|4HF!Jm{F10 zi4BB7k|ZfeNKmww;^n#YINE96OmUt|Z}uw!J@>Nk`nAm}-_zKdi{fw9TzvD%?Oyah zx9ivTPr5TT)XvYj6KmJzhq;F->4WD27 zY0QViqil8j^WA`D?DP)tv-5gSvHMMuIsX6D zhRpBJyVtEf@9w=-Ud7UDQ~bL#2Mo@hn)+i?_G|6Optw!{&+uSb-Nuy0>wAD)22WQ% Jmvv4FO#s|XHoX7< literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_configuration.png b/data/themes/default/images/buttons/button_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..1f7d8a45078e7fbc25ce340823308f9069806385 GIT binary patch literal 4595 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

sRljzx8HKEo7pK9>Xfuei8a-B|D!-r@$gNugZa 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_configuration_stop.png b/data/themes/default/images/buttons/button_configuration_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..7a47743f42566045960a86620cc4fc21f91924bc GIT binary patch literal 4022 zcmWkx2{=@36rNIK$i7Zv_oGbN27^H{mXWb#{Uy5$S!OKBSdw)xBPPYzlC4sfl&zwM zF?KQe?Gg#u*AnvIp67n|+PoM8p- zyKOLeK%5A%F);vD^+T6{7xrLNrw|Z`ga7Y10ix!M07|w{G{%T+l!b*$9dg1L3h zPFOd{2U#yqq+EV%`$Ry>h!+F4;NiO%a0T^2Jo~gwifyeThwU>P;jt)}nrHX#U-m#- zx3jk2JADo%XcJ@LY{1ljpEWW#D>-BZ(X=>R&)pXqj*i^+S&^-0Moel}=8tY~ujz!W zH~n-OsPR%=3cr1u1>{jH@@fnQ`tS+{nn7fmfmaKp(sziS!pedqiT6eEIZSg|E6kg>b6o4^)SOsXYdN35q?|cjQhjR##b?JL7r2P zX+V(a9_OSnj~Px%*U!s*DJsou%dWQ`0(}@Cr>f%9JQz3)a|mc7#j_)4;jyZaC3Rro zqsW}O9byuZ*H@);oL=iTd+R|i-D7ZWT4BNlksnb)w6r7D4L-n#z7N~*;VZg4dkZc{ zEq|6iEj?PlilKA}KeugcJ`RRMrfQfx>g0N-A)fjGXN*CoiV>M)Ol^j9xqCdPCT#ru zcL8mr4EMmQr4`M;h|}P&f-l{$~iG#kD{C`8dvD@R#eUuPI{>n5zN1tK>-uz>E)&wH2JoS$qC<8Y|HK`*=dsOHtHlOtip zSO~1=UciK&C5k@ivxOu*eS1f!eZFumQt6c=jHb+~hxKYFkkAxh2?#Qa%ZL_M#4}=d z*a5frNor?zcR#_ktS`)^cVJ*{WvnhICuinhshR8uW5qC$UjuX)O0)Q;l_sKJfotu; zs3BAp_1-*#F*lhqfrbnzH&>O|UXaS`oBa^SA|fV6CyVJ=4b;DWov^uyJKSjFu7RZy z)V7f6Dwd5Cmxe~`r)o^CvJoVFMwtzJb5)QI*7xMZ_;~PaJ3HV>apnYo?xdg71n!=m z9%W9J&4_&du(!IFGHAoEdiN0|q41yM+ov+itrXmTu1$%YJI6v&dwL4DIcs$I=V1Lh z6Es7uXlM{NG&GDGI}HMY_3mKpt)rvkjP^~yN(tJqxLFzpx!Ajwy}(OCo$fLyzI(GM zT8Kdwn=4A2I6Oq^9jvHbZ;9Fuw7$xmL69wFtii3f*Ka`eqC_n9_Dk0t=^nfiQ5z>> z4mVA5%GrBfH7;bTyNRG>{Go>8NYCC7-dzunGG{y`MWusnSOF&fCCp{9xnCEE-op65hS96si6W&;rmYXYjc(^?<+8V1*hHA|YqRX+f1-GX^_T_1A zj=08ttPgn5;|-WWJ6?L!;B_cn-u&6V_vUc-ru`(lZJeMk%M_7Bd!UP@cBuD_j^<>* z>+0$dF^7o$BK-_USkm5JIN&P)JtB%Hg8=}wdZ~R5hbplaj~t(vP|?*Tc{0fE;o<*< zteDE)tF2X$CQwX6~K?#gI=Kn#CC_Dv4ie*0$2?m$QY9A~32-#?E>;ARsn zndau^GvB%>o%8q<;}YaKX(ex}oQNklslU!u zuciow4XP#O!sEnmDtankoWG`0Wo=wSlpjJKA8xm-V8g?OB%*hCzdU*+p%SIsVRh-z z{_QiAx8=b?M3kG85NF$mWQmx?ZDe$GG$LX{63Er+(Lh1$Q;WLczx0-j5KvpX>Kuno zV5J{MDziIbn9ADPKbY_ei-Oq^gHovh16f{OQu>LAAMhmi%S^aPQrxu)3wJEGE2KX& zlXtYf&rsZ@8nLuXb`_#I>&DvY_S<*3@iLz`-}>C=wgpE)Ch9l46{~-x5-KcExi1Yh%_l_j zhK}?=+|-OqwTW|xU>9LFZt+7#; z{p3)3_dys%-?*-XRX7X~#-7yef8TsY%h;c4PvOPdh= zn2MXgKqPRGe{B8f9=rDcN!p&}QdOPmIyyQk{Mgsqdsn3+10Bnhz2DHYu-)mUsvrQ) zS61!!sXII=-TGd^6~LOj(qy^Wq=`*Wh`#VBS+vt=eft6JOIp2{-EQ*rp5v! zi%}euOo)s`#=ng@(&pyfiB|3OuYTX5U*gT03A*CQgcoMT0#tW+JX`A88Y6bFw>mfS ziOFosP@>5CBE7i5LDEb0gqY{yAdMa)8}kYQofH&&2_A?4sFZDXM~)=-l`ibszFggU zW90d-0-f8zdn-;i7E8jO0c1Szv$?ssv7u!7r7`5fLyaB`%p>#izjay0T&|_)b})Px zZR)81YbL%BeX!no993vG*;?2Ld*EKl>GdL$FJi@b2a#G?DE)?YflQL@a1;_^=A6cr`fNC`pu&^N)HKS66qJVBORI z^^{Y^9EK531pll6+Q?xh!BQ-Y%#P!PC zlDR$o{JQHbWQFJawDd)@69SvA?+qtaxx7s(EBmLV(Tw_Bkd`fEPm=N6(xXr)g(ud= z>e$%0pfgubVM(7zAdYNnHw! z0w>Qd%;R%~SD}oLnKC9wRGB{y(U`%n>omIJ@6LY9Jl@$%(YAZ7MGd)z~wrQhz( zf9ihA%j*=k{$Wk^k3U`VMKfPwkLRB_3XQwJsm{sz(ukWYO-8tfRp47WzuI0%4AmyJ zwCHi)0eWgyR#s(Y<-4~u((*Ke@Kc6`N$INF89XZ%fjHWg^Ka z>A1l`>y^nSe$u3nu&|1r9ywIIj~P&#`QFY{ruL$9o!TtGK@f^aJB>9LNA=Z86!=^IHiZUs1{56}=V7mF`k-w#VX$cF} z4n1S3yDJdBHre#dr0L?NOS9eCioe$0uK$XsbTT`~TpU*&*wdEp8sEoh3^h)zIKEIw z!+aO0Y(4%%Ft@Of&NOvfpMD=POO(HFDhpIzZEbDPWOVko@o|W~g98wo*cqTrp#${T zc(d5c;CdLhYNX=mwU(xIds!0F)cURUFG;C_J|EoLq!!Ts?Az1n!G;Gz+y^Pp<*8>c zeFrXQF#Y1I1Y+o}4y*Kg?C4mV!K$Vw`^kN*UPiEgt137 zFhF>-X%_{6Pj|x}cNE`Nfd3dC1UCp(J;yEDb-$+2z-fs4h@DfckqcSCbK~=lVkP<< zE>UoACKV$8sOJO-)^if%Rp*o__#K$U`unqZrmvUQ(4@I!EeHgiSWYV795CbL?92iR z4GmRzQN!l&8BtkT3A&4tJ^=!N30CaI*^x@pOM}&+rhnbjG=R81#Y5Q?6%|2idfblg ziALtJ2PuXUpjUK`6H!{znh3E+&8^XlHX-}oQygSjVm=&0&$ Q;7kod8(E;L4BYPh4|qSY?*IS* literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_configuration_stop_on.png b/data/themes/default/images/buttons/button_configuration_stop_on.png new file mode 100644 index 0000000000000000000000000000000000000000..8808ed85ac20cb60bdd3b02c01497cd9af56ee3b GIT binary patch literal 12501 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_down.png b/data/themes/default/images/buttons/button_down.png new file mode 100644 index 0000000000000000000000000000000000000000..546b71fa1604d91964a522d346ed3c9c1e48701a GIT binary patch literal 604 zcmV-i0;BzjP);800001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXD( z2@U|ob|ohO0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z0005A zNkl}_@|-Z3a;P^ zuHXu;;H8ACoJj=GP%Ja}kbO(0rh8wlW5cm@KLkzK=LqI(ZA0D0>8SU`n)e@M+5jLC z>b`fh;slWY&|G98)|=egTHoGHwRPMW*Ha93F)(F$f~4W10NSgO*d`J?{v)%?QTWhN zdH}%W=j(_a&j2T`^i>cYf2Ll*m^Fg>bpiAy1FZm>iLvS^yd$S40mLk+@Axo8zCF7{ zz$t;|jgas12Q&b@gK4XzoiFEqd}a^Yo!eXnFm6eoJwAy!d(YdW2zt>7^_)0+qS83D$EEVLtV00_iUmCu>`1hg@LDyGPJs3$6O4RY#2C=kD`$>*LU qM4T{!dQ|rJN!?^AxPmLV)c6293-z|LA9?-&0000lumg7(yRyAZ!!UeWJ_ElN}Tg^b5rw57@Uhz6H8K4 z6v{J8G895GQWe}ieFNU7sOB*+Fs6IDIEGZ*dV6=T*Wm<-wukC7cZpm%c}`4aceiDm zOkTgDoRi?AHIupY?moJ(Ug|>R{zIj{nU`L+&ihA*~zy?2@9l(Cmk<*v259$$lpS*=cIUjn)4)CX4lO%5Awh6 zuAQ7RH)V3l?u_D`Uw8lMoh-HdXux-O^+ZS0k8!Fy^)K$*@^r4Lr`krRSg*;!KPxXj z`^|iL^GAoNe!1&z9X-ik+^AK%^`>6lUONNFx&22!_a`*|;uK@y<^W>>9S$)89fb%G zcGv*I4GE4w%y_T~h?$yL4>C<WFU8GbZ8({Xk{QrNlj4iWF>9@00IX|L_t(|+U?!3PTNoz zK;dI6rE1fq%9Ih&#RFrd)Pjkzeg)KLt9S*kOhi`p3|?9>Re1qIMS-M)FJOhFQU2>90orYJshrp=S=JzBo>r>!Uc;KumvY(Dj z>P)-`z-fr~$3w{g6JwRSB{Vq+cZWTme!(TFHCE}xrJ=P!XpePmrmdrQ(Tepw{%J>wr5_r6*5;;@(^#d*(QZ11 z*V%JkQdE1}1nV0pq_~o8f|b-k1}hn?B!iUpZh!Np(mvL4_GwNHG=%xjQkeJ16rJ$YD$Jc6VX; z4}uH!E}sk(;VkfoEM{Qf76xHPhFNnYfP(BLp1!W^H#oQj#MR^yqAYS| zxv6<249-QVi6yBi3gww4844j8sS56%z5(x3RP%t=MR>Y6hE&{odv|@_p#YJFkLyEc zs5MBxQD#L>B1`y%QqEE zlx%OsT)BC2cJainFL%@C-mUt3KxOLB2%G<0VL?B6!i*w3*|a6ss5DPa*)Zv#7g5|L zhnjm?Z63^#i7XMkuT2|;76q)v5MqA#RO{>BWO#9vRyw!Npyu7aPYr#^xxDSZmyA$#{ UOZ7-KFftfCUHx3vIVCg!06L-4p#T5? literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_element_cut_glow.png b/data/themes/default/images/buttons/button_element_cut_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..2c26eb7927789b06d49a1e8fa406fda0d92ee72d GIT binary patch literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^Z-7{hgAGU?Ur>GwNHG=%xjQkeJ16rJ$YD$Jc6VX; z4}uH!E}sk(;VkfoEM{Qf76xHPhFNnYfP(BLp1!W^H#oQjBt<+-)XafGvL&t&CC>S| zxv6<249-QVi6yBi3gww4844j8sS56%z5(x3RP%t=UH5cx45_&F_U`U1=|B;Oi?+>= zC!FvtSb9n2tjN36#PGc5;y(LypNL=CwQ1*y@P%pzLjzLpLds@6xR$VVCxs%J`nHSX#}+6O~)1*|zwl=m*WbAG2P)+O0gqp*8jkCVbK=;|vR8mt2#wVG>W6QG_R(_Q?d*=BYTi|C2ZLE}pn4tBmv8NuVLN zZ-w660n%sxOXcW1U{ttz)qnBSPe-MA_hoIaJ@oDNd5_Ys40o9KSHvkRWY$l+c&m2H z@nvTGk5t}%+;i*Q@u)4_2@iFauJH?3&p&zkUZ3NdZIiDEUVNgUm#$YbZI}4VZ>{G( zHh4c^`u{Qh)grbXo~5O+TUOaIo?DzVJ<;>$*~hxCb62glZm{QETi12hahnM+Eiibx L`njxgN@xNAqy-pP literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_element_glow.png b/data/themes/default/images/buttons/button_element_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3c2c35d7fce046b32e0ac2e71e93e34353b30b GIT binary patch literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^Z-7{jgAGV(fBw1}NUlumg7QaZEO73c$nWJ_ElN}Tg^b5rw57@Uhz6H8K4 z6v{J8G895GQWe}ieFNU7sOB*+FuwA1aSW-r_4cl9c5tFZ!^7V)S+0+j<{F8`p1WY% zR`#mupVP@%co6$Be_Xqu1avBA)EFSi!YtFOFAbg?o%&_54M}mo_DWiBD;#` zBo$99o};f06`0tvo@=zbP;3%ZR-C|gXW6b@zop+4nCxZIyT$1Js)ucdXK88dk(0j+ zlX4pj4H(l_uA6qw>(~Ca#hH@pOU^equ0HF36sVl(-f`af!LhZaDM9IvYT094x5S63 zGWYa`zM7U%BoqGI-KO?{$<2W8+7Ea?Florn-(v3l!2E;q)vHNw_i=t;e6dw|&f25D z#4H%&q*iY!Pu)@`^mgOQvzto4=tXbbcWiyxl9;NC4>p@^pF8K6R%&0_ZNoh$H-4V9 z$?BeJM7@LJ)6h3UYnJdCMVw4fm0XjuVG>W+q=Q~;+Bmp;hBuB~^oTUw&GP%fo+WGK z$~ep30qJM|dCbH2@iFat~nQ`o`3T4y*|e^+a_NTy!b?6-MN?-I;HxT-g3`< z%sBl3>%YhQuekCSOn&uhS4L| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf9Tr|*W20Hi)`QHKEpd$~an8@p zP0cG|a4t$sEJ;mKD9^9)=%U z=GmTRDC@MVQgFuv&1OBtIj2SUvhdC{lGsv_eKKLs66f5>N#!q|hgg(lYV_q)%=fha z_UYj1iy!$tCaHK%Dv{cB)-lp_`TjCx<*3-#K7>3&9seF3f*YpRUUzTZ ze6TO!_c`xZA^%MedRaNKX-lqAX`adxHtC?3QN+mvRbsin{P)^kZ|`$^b?3|crnSL= z*4i&!!ftHJva^y}8C|Ni>|Nqg;j|41Q-{6V{TQI?}p;%s-;=~t|y#cRcW^_ zcq4<@IiFWYl%#4drd7AfZn+=0{E_ts3GdIhB)!?xo-7+_(QRKhJeH z%d~SrudX~hZ}C}X#?g~2*38mQSC;M1C=yw|85p463XG9Dr;`(y&b$g)BQx{Mvx(0> zO4#&7nCFH??s>qrqfdHLUw(ac{PIV7*`c+P7x|L>wO2-ezOm`v^_3L`GN8C!68wpK X-P`7=8@5@4(k+9htDnm{r-UW|9+5$z literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_feature_big.png b/data/themes/default/images/buttons/button_feature_big.png new file mode 100644 index 0000000000000000000000000000000000000000..75e80d536a22961940fc146c17cbc4f011746ee8 GIT binary patch literal 983 zcmeAS@N?(olHy`uVBq!ia0vp^SAbZFgAGWki++~@Qk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{W=GupoE;>x+$9Vj-%<*JpJr zP=mGoQ9#R@yq5|kU+oJtBy~(!y)Ue=h+t}a;Am+1$aJS4*Yw?Y_QqN5t=t#gxBL9T zgNMJ@-rqBwgW>S$)2G*O-?q&z#c1aA;NalL2^%B4QX{X;pFMlF{Lh+ymmfZS=)ZB( zrcY`4`R`x9c#(0cP-f1YIS+pQl3MrrQ|879TQ82rn>QnMbaWIZdMvn@VGh78FDDT|1jqUU% zIscrkQ7=lY=5c5*Y zMNIeZnhOp)*S*fpEIhshq+C>T#foj$&%>lxx0*~fS-s6YYD>vxC+4L_eQ(k$CyMFL zU3)??{z8_=`cUDhEo^ru1?uX)cvh%h3G_*x=eFFaE&t|!T@#|UFl;p=gU;!u#}@O1 zc@BSwd9q6{=k~XyJF6crd~5-38L{rRT6S{FMNXQPrA5h>1?3>9m2*_ zulGXr2UvIiW)cJG+2`Qv=jRr8VE(K{uB*RKc(3TZ>1x(ipUW&|$t`Q@*|d!tH#U}7^{!sM`hHSo=F7X! zo;?#kY|v&smv7Zotyf>I{-0|*%B88uvTXTsLt|rRP1T&+Wk6uZ&G5LpyF35-_3QVS zUw-*~Wr)_%<42QLhHk!@bLZZ@I5Do)nvD^EzVT;%7u_x%7w{IC0~tJB{an^LB{Ts5 DyOzyQ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_feature_small.png b/data/themes/default/images/buttons/button_feature_small.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e7ae0e359d727aa1c4868f9052e9145c000fdd GIT binary patch literal 928 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 X`MYA7HnqU35QH+eG^)GediQ?-O7a@E literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_home_bloom.png b/data/themes/default/images/buttons/button_home_bloom.png new file mode 100644 index 0000000000000000000000000000000000000000..e49ce259986332664442ca757c97c85963286a3b GIT binary patch literal 8782 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 Ef{rK6b^rhX literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_home_glow.png b/data/themes/default/images/buttons/button_home_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..451da301d10cd2685d6fabcd973d44c4d490ce42 GIT binary patch literal 5626 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 UEGBD?b^rhX07*qoM6N<$g79WEVgLXD literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_home_stop.png b/data/themes/default/images/buttons/button_home_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc6dfc23d34716ca69cebf8bfb6520516a03c0f GIT binary patch literal 3987 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

xnlGs@Iv9j6Ietx#XTZgN{<2b4 z0=$cSo`xEW|~!}-&%YrzLhBC$_t}Qdhn{BZ`%AX*ElQJ z^|eZM)ycOYUmmVj;+vI@m2%~(!_{xNs)|aQt&*teX|z3SI?B}M$-C=SrP*M$-9l|J zgi$h4MfaSruq+IFhJ0Wc^aHXyz`KZ|2r07Y%loQ6uY6=>xvepZ2_OuWN_FM#X9F6o zRcGHy%>iyj2Vn>%5R92d;Y;apt=3V1IRrI6){84I9Sh-bCkN^LNN(OAfG zC`!S5;pzp6TyrNUUO{ytp3*^H2$JfG$W|u+Z&lHx=_J;rTgfsy(Zb~fqgNTKWTgrc z6^shv1qwlOK@%lg5;RnNBn(%5eM>b3vV0;MO+fOM*!vYNs9-){H5y!g)8_-0pbDi5 zI3Xy7Q3l2eI0)=yW^uK`x%Gro6i_;W3`QB`rI0(J)D=y*%l|jHBGXLH@K6M=2I~## zJmb;I^S%m?hKe9q19tU-?AE#*_mh_bQV3aY7>@*X0^Z=&;4mv{k>IjmCIT`O5vjp@ zgL+GpL+TV~1vSdb-BK!*RcGHyEloeKZN&?P6T}IHx2QLu2CH%@xddOD&oO|-m5LFI zmQZ*B=TW100kbl&<;kkEZ?&Ncz%!|33cr$Rya8`k07*qoM6N<$g3VHG AxBvhE literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_info.png b/data/themes/default/images/buttons/button_info.png new file mode 100644 index 0000000000000000000000000000000000000000..27f81b2fd99b40f99f64ea92135ed979d0638c1c GIT binary patch literal 630 zcmV-+0*U>JP)jK~zYI#n!)TQ&AKL@b5YIz5INQ&j=FSnxbGjiCdjtz#o4_ zAxptx#<-N=(9u|=4nqEnx;m)1bgM;CREiWTn1ttRn!KBPu1mAI}T zx!}Iosxntrlgv8vz`7EC%Y2U$b<72qTP+PhFAUa=jyKMtq8RbJ{o1eKeO+elnE8#J z=5E$3sVYOA7|YA|*1l9`?MMWN+FXmR`l+n;0l*zoyb!qX^6_!$`9>&?bDaqB+ef$l zECdDs{j}p5fybmy0KjiF)I#8KhzbBWMg4p2%|Z3ZyHlLCBhjxWhcsD{VV|>{aWkbC z8{w=Si8lW5;Pw&0I{<)>4{v@>(vfK6pkB8C`gs7st0WEQ8zIn$OKCYxU%T-|eauT0w!3oa`2qEgOVQR4*w2w@zh0y~c% z>=v3UUCqWNkocYVl^?0V01)19o`s;SA)f&te7H6BU5N#cNnZv4N1NYnR=-yL;rDVX zu!sZ#iXuc=fyx$|E8SG!H}9T*&}?i04t6?~*Ks;xy<@N4)@ZkX0)Q8%0DpI^3Nhzn zWMVOheP*K^t~KV8Cd0MH9J5gdvCmr6zKG^y(_QM-Tg9Z%UcFU3Hr*u=&05s{seSh7 cw7$2$0R{l-GX4gU2LJ#707*qoM6N<$f}VUAr2qf` literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_key_del.png b/data/themes/default/images/buttons/button_key_del.png new file mode 100644 index 0000000000000000000000000000000000000000..10a9b080233c96ccdd47ea20599ce6636c12d56f GIT binary patch literal 395 zcmV;60d)R}P)+ze!Sv!eL>h4`8i@waxZo6%ckyOREF1 zkZZ26@dboH2uPkG-MxS>U}uwU4Om5qapp z`3gj2sI_gorggE1ESsizlCmt%fk)tEv{k-m5s1iye>~+7RekNw8+q@qff;ZxsQXaW z%PtASQ2RYrjee?C&bb%qf0;bbCv{!l0XM+TN`AN2?*D1M0YN{BNqiC|-)#UTjxA&`V6`422ieVkxtDO%XAe}Q0jXTCN&VGs41i}P*Xd%T(V;ma^H zOp*kll;`Ij-ehhjR=7Bt1B+V@aDjJ>T(awc5|~{Lv2CTX5@d-Nj;YiR81Ys-6Ql z0WiHNaWa`)2GFa^A7{Yp^_oRdj7S~>xPDPsQ=LxdNKym7B-@glqz%ap$qj(-l1?Rk%ChXIpUdWdyj(7CT5FF195&b=(lkBTwf!^qcr+S) zOVjj$G3Jh>(_O><3HBO~#~-sS8%R0?@b!Oye*;AtrXEOuvbO*L002ovPDHLkV1mk^ B@&f<> literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_keyboard.png b/data/themes/default/images/buttons/button_keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..22b801a7a5d955de02b2ba28de27a2f4536f7e61 GIT binary patch literal 423 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf1|-9GYMTQo#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPSlQ55!pwG1#GC(2O64!_l=ltB< z)VvY~=c3falGGH1^30M9g^-L?1$R&1fcGh?c|e8#JY5_^GVZ;-Wti9OAkg}-etS{# zlO0{J6ldqc#8l03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00vS?L_t(o!_}ExXcSo% zfWP|b>c5znS-a_8LWT@F@vrl=AWKHnd5}E01Omz`D+DwzBDz5&Dn1y35+BSi83IP3 z)t9{JixEUfqXB(bU;JH`O=fmsdu=DPn~q7Gq`T`@?L(^C>PjbO$5dzLz@@0$)pfsn z>fCeAJy&9BksJ-j)oU>wSJTy30#~k2b~L5TB)o*Sn_)HK>R$wIgDHT|YMOObtVwtc zZv*RA%L4_g3F|i#ml?=_3iyE_5Vl&->Qg;39j6)C8qNcAz>mPJbho48==3ktE4b6h(jY=FJZe9z6J)5F!iw2bct=t;h0! zDY>9)fGF_m3l}c@e%G#DzY7L~Vb(wjg+l)M^XH>oU0qk-y?gghU;@ZmUqZJ{L<6cU z=+CcRyVljz)U?xnNj{$^lgW_J=RJj06optUMko|2_Pu@k_Pf^B)=nYBKY;IncR=2@ zTh+4Vn)degU5P~ED}cGVId0sz!NZ3S5kgc<+f7YPbaZqOjYf&ZVqf(3_Wq%>v-8iE zx%>zeoGvc_RPWrmbB`oRk`RLK?rug#Mk)#o@Z!Y_PMU1Ly8zR~FbsqctJX|&QG8)`c9x-`Apq8|Umwvlt;+Il3LvR2 zSEy;4765ql>eV9PLZLvRQ1HyY{eC}^^uf!%eEAXpRaKR$s;cnhrcgv`8 zytA_tUDrt@5+(3w&z|Mpy?Z=+_Kdc+HgsJtLbtWG0dW2Lb<*kd+JN7^dzYg}j~3zY z+_^(M9w!tEapue!_V3@1&*x*^x^)Z;3>2ZSUcJh>bLUpYs}v;?i5T&C{G)%=G>vdL z%;@MSCr_S42*LL4+Zh@fA`*$9sw%3g5(ot7>+7SnwH1J5GRfu3m#MCsD^wyh%+>4T_@B z+uO^&efx^gJv}`O1IsdgzrQ#EXL42IJuC%$lBxLpenO#8SuK@=@9XO;3%%5PJ+X0F zmI(v`%Rb|VZ)s`yD6}m;pRedbR~1}U)g?ct8~)OzOU3(CD)mulrqyV0P16;g#u_8&9yU6&n%(I+DQ27@CT()GlqQxmm($8))v10H_Y~O?s zEAm_`wsAY)xOd^J4P7V{mUD?Ee5$Kc*f~K}Rn?;CmdoWZO>-yiee8`QXf|-Ev6R?!w>+Cjg7p1{d!U46hiR+{rit5NB_^R-hQ`R8Jjk3DvqP; zdd>;&1TO${6B85PN2AfmfddB^9v&{K&`OfDWYXh>96WdsfNVB9H8V3a%R+5jINhNR z%mcII zOtNs0m9tI7E(qE1K^6|Ms;z67g`&S*Eybh4k<+{7SU7o@Vd3ax#=6g2znkuJPQ?P$ zEZ6`a&N^jR<;$xiO7P)~GiNPG=TV_i4#0V;Y-?Dl0JIz4a7;kBgAc&}0Iq?qrP*l- QxBvhE07*qoM6N<$f@l3k+5i9m literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_list_down_glow.png b/data/themes/default/images/buttons/button_list_down_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7abe47c0fa75b557b88c3607b770432fd125bf GIT binary patch literal 3060 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@01H@2L_t(o!?jsWZyZ;4 zJ?Fkx)z$1KDN<~GS{}vGOaKvZ22cP`R^cqO@KV{#j}iGZGC#pw<^5H=7Uv98k!3 z+%z0~WVgl(Hop4U za#hlwMxJ!LSiOAxwzfY`I(coQq_9-0di2yEeEhE&TX3vHAYbx(dGUMq4A(vlSApW% z(o&IeScXu=8coPK7yzJ}y0+@c?6=i9p^jg=nv^X)yUju}ca>-|if$94)erlRo9}!7 z++b_nv9aN=1HUJ`wfxrtzeX#LQm2x-pwESpt(-y(%7%CvkoXq+oZfgVQy!F(=P-tv z;RLCl%Y{Lx^W^@{YQhHn1@L?K?Dp#2SQO2i<#N%OF6I!INnbE$MWX>g&KWeDy|QNy zZwT*!GIA$K&e)nH9|Lxnt$C6V_p4@dG(t7Hzq6UJvEdOAv9@LTFtp~Rd6a%hnb)K8 zB>`O$K|%(Yf>{Cb6GGDE=vTb_KLz%t2Y02R$HDCItZr*%~vEvBO(R##I*ugCV@e8^TG zWDHOk68@tT4<&!x5Pc;!A=S>J^&EJeT>wx9JCi)t*;N7X6aE@cSj1o%Dh)Od`GCeO zu?Kn-trO@Sb8Gdz6R^``yz}Ke>+7Y3q{7IS;E`ELAskBB1^l6hyzisYsGe9VTU|$! zry9JNgx#}i`%9XA8Mt`(%s*l{C@uOy5f4 z8ho>rP6mKq!XDg{f3W&zE7FBA3l5PrnjT!bJhKp)qGlreiqYwol_gJ7N-dVT)9E?Z z*M(o&)}gAq;tlGINlviPh?ZRtEeIu$htsn$6@z&I0Es*MZH==`VJ6rVqTaq3J3=V}E@ByLv?_6kaF^pv)+VP}2}7-k@S8K?03JT>~h9 z?KglFfc13(>%i(JajMfB-8%O*Ku z3|w0&o59{eeY@S89BuwNhns6EE?-xv`7^I)2D}TPMgSlu1NCx* zxikA0PC?&Z-HF)il>o|azaMaU5k7iCWtOdgPHs4l;8n7qh-OrEy2p$*SgEUKc(D`? zju0@)AAh%07oUDwZ@-|@naxf<;m=c8xN~hg^GQ370K| z>tOsa8b5UDy5N`43|AP7l{v32%@uYDi;GL>pwsNf5^HM)X+}E$=ucUZGhn7^LYLnm zQm=!LZytvg>$Zq`A*#IS2=l>6iAl@^*dgoT5c8?}?oi-PM5>%AZ1ZGUZ`emAg!9tsOa>|+~Gf%yNDrW#L?A%otWW|s?m^&gM zpe1M#;6+kPE>&hBkr)6NI^_i0CM?T+1>z#f7BWdq6dG4?`MOR!oTu5sxq;8P(&-GG zrkVu@o>L!LLqcvqONK6>IgutX3Cgq>MC%}6-a=@}n6o&{L|%70 zP0n|(yEZm-|FhNnLG!_6rL}U*LXU%|(p`ms0HIAGNGVE~7z{#cQLKPKhem`S82KZT zo}gsEX&3eO(%&5XCqNQ5ch09OKWW>~i#*}(UH`r}Y5ehU7>CV)nr0W&BM|!(CICvv zE*L`(WDkssFe~VJ0%$)oJj&qiq`(0%Km2yt~9p@09GTfFxNT%6o!6Oyr|Rwjakl{^G_zPOygjYQN+p?BbOB zM*!OIRB_F~-``pt-`?9n8wFSqsuMz1Lg2Bx1N5hGJYuRJH979bar#-%&n?d=s@F;V zE~VlN@P8anZZB16j}1AR!!R_Vn>`>v$4=}|Qam_2=>AMqp0yEXN1#s6lfL+KujY*4 z)BQhg?TwA1LKL=A-iBqwN^Zh3lj$EQ!2 z0hmcy=M?xE_%GJC^sAeTxmwEOa)O9SgL+h?acDK)e)DC*`n5BF{-spqr@%w`+k0@_ z+)CJ;p9<)2_JyrA$Hw0Y8)uii=L|3tbQV?d>8p{0EX(If%^A^8!EL|+@%g>C>9r(M zAy36B-l9yx2k z9F*J~7D$Vv;zX@580^`LT=^F*mO1V}wgM@@LIe;g2AefQSriI$(*{%o0Bg?)Y~-LI z8q6Zx+XeBVgC1hkzb8R3B;5M1*{Dw!m2fv}HUKl_sb7dt>w>SXrXX;C#r| zGwQmi9tERu&)vV0^XtCFAOG@SKa3*wHZ?*ow_|UtoCgF3GA$Bl%Xx`FaIjm5{T$j8 z!ZL$|1k61(gnu~vpLW;s5)!V+{5pk8)2fvLP?ng?n2@tX z)7#a5Z|r|jlF=AQMt22}$$;Z2UH$(W*KW??>HXf`7{C90jsS%%d0zgyP9I)90%1WR zLma@kK=(?Bt-3Pm23(jE_eMHMX`KFQOZO z&pr#cy1$K!{iDiDcCv?VnbC18Tck(#Y>4qa=LxS4-V)4%!`LKg!dwsPsywa_`opr- z9lt(xJ25iEwe4{ADvC=vlya8LDjF2wnF{zBClBZ9N)@hW1P)WFU8GbZ8({Xk{QrNlj4iWF>9@00u!xL_t(o!_AprXcXHW z$3HV?X7|P<#@uVSu`Io{#_BB^e5g;M_$Lq)iFHwmh<_HvfUpnYUKHb>m%t)ENUTtT zi3mOjKIF-#AXY^YNuduCqqULSVpC%i+s(#JvNN-1rVp9f&Suw}^=5aI1BbJFV0S*} z%Ru!1>=*w`+iKyEj*Ecn{D9B#?1O>CQQYz!eu# z0|LMoZVv!@1>iks57-0@AnlHp3vc5>`k@0r6;KPTbjNCU0p1%ZC%ElG8^8?k5lFh@ zjJp^Ia6E9;-PJ0f9{5Qh5NJ4k`t;6?8#jKldiCm%lrm`Bw&pla*-S-M)r_v|#?;i* zLM54R9`;UEn zeSZS}1^fq?1}x7RgFqe7P*+#?tH+NY{~;6#H2{o{kMrQc1KzxOgJBqD1rkPNxqaK79J=)2DxS;U|H#;@WN%@D=cjo}Qjl`}XboJ;43@_qlZG64TSu z72Rne1jmjYqrJTyfT5wGzqGcto(H}MCV*)#PHV0M)-*OY{uTs%=n(+naCn^?D8BH*v*wH4I#3k~g?>-V>B-)8&v?bO%Tud1!Bt@-%zW55Mh{NNg(tEwshUcY{w_W;8%2m}IDS6Amf zWHHUMEM{kC(RCe7)3Wm;BP0HW1$~F1qRl(vg%|EpsZ`FN8-_tJ7$g`BmfSRST}M?_ zQmGWGs%GD2I-N#J>8Prz_@VKggv`rH@^%|23$))MbzMhF$pZNk^T9uTq&W^kh>AoL z$8m}~tcnFMrA?RQl>H$SS*ERc8(&7i*?WOnuBUW%cGBD1TUJvkd5cD)96x@X9Xob# z{rdH#1?3_3BlG5WIZ(l7WGN z>>F4J-m4%_?9z9A&M+bNB-dzyh``^!LTA|mK$z(qH1Jg7y zO_M+%kj*W2@7|pUolGVHICJI<0DJfDB^r$a5Rb>PZ5zw7Fbt#MM)*y%&>4~kJ~1(& zT9&ooioFH2wYAaR-Hi}}7cX9L=+GgO$z(R)uq=y?jt-=hL?RKQ(I}>A7H#+M-@ixG zH0EC!wZ(XLTU#5wy}f9f#?a6Z`}glBkw^e=?bgd` z!oa{l4sOm#Nk&IUfAq5#Wh#S%gA5K1 z=FB~O_>d1DKIF`ejg93v|G9JL7JUF|l(-EK4>LSGT#@XMPYH|5D#KEg9062a&ajJi z&gFKAC>p#H*EXMi_}So|pjdF1bzQH>ozpK*%;U(>$5r2?1TwA@ux8DgJn(YD3nB7U zgit7i5JGVm;EDV;uFUM$rA^Z`(*T<`ZQ|LpXE`hP5-Z1XioT5(YaWICX!GXHUZN#a zsnoQ~X#1mzWKJ}n9v>fn3((Ti!us{=3p%Q*st6%U)(b(`)YNeB;6VT;CnqON(@ZfZ z_)8DmGm|th_2kKuhmPYoLI^Hiyhuw+OGTX%psA^e%a<>+YSk(LUcGwtjJe9hthei) zZWsV+fDrKYjT<*Qo0^(_>rY|F#>PJDhVoS%$z<{$%#~9T-mWXY=;8_d zwak@Nz5?o-o11^RVZ(->JC38-wp~`6Q53}%LS){(dpB|K-o3v{DHFg4;J?6>3vGI) z;)yLDe9&D$wcD%QIgRoZYyIKL_63Sr<|=I|cl4JG9i@O$B$yNVb^c%D6cv)|{Gr*a zby{xEDbgyRkh)Y~7e3%hl*IkjW$z8-Wv~AOO3{_5hmq+n00000NkvXXu0mjf3WFU8GbZ8({Xk{QrNlj4iWF>9@01IJBL_t(o!?jsWZyd*V zJ?B<+PtOM_@kOEasixJUpBiJucV zdC#(CnxaS!In&)$_hd0ceUKC+TJi-N7&fcWr*56P_uN~=8%=}&48cqPy|zW*5#GFWJu?24zOyt?ZB<-LoM^ z06@fVV+jf7!C`EZR5LdxO;sK@2cy%nGnhQyT}#-czXZM^ySMm4GT>#eu!V<+L z80YC;$!GvTnP4-{<=NN52SV+jct&c^MjI!kBX4~_DeiYMIUJ)JKi=I+*xYmiBECWR z;_yGa1Ir6YxFz#D6m9?*01SY##AL>VoF&?8e6#n&EP|4Z#y~QF!jvAOf0X2jMuvVnY6)dm=sV|`iS|F5*5GS#i)O}xRpWR#Zh_yBLff!QLmFpUz zCDE>dh;W{|wC}(Hfl;RFfRJet(u`;hc)SvkUk?ceNF=jIDR(Tyf!vp9ScKRmbX^uk zAP+)Y99~2J6l-fKV&xILdpn^`sR}}0V4q+BF(&b|3r`6B(o!R&x;2EX8NVk0=+i}< zMV+@1R29bme{Y!fAuKl$-p5-_IuLHLfqc66Y_o{WpydKrWv&2W3V_Eq3dvzFq27^ zLNZ6-=-VAe0PyiCy(}3GRFKQP1v!q)V{b7zIofOS{dRga0eleK+{C#A=*{ZCS&=Xy z!dQk0jV+ZW2MduY>Rco%0XK*=H+YsjNlYEqx!+%L42QyRZ9}LUEPIQX;W+_FqOxmx zF4VTnr_;%DofCAXL0@w`@>)VEJcc!2}|3=tecWhE`QhJxFzbKJGa_F*Y_QAGUA~v?e z-A}$Rzc{?r{oSA({BBSVzWDE3-MgQBUt;5%0KNMTlrN-!Upi;z@d1Da0f3wgoRR7( zpugIQ5B_1HwA}VoqaQn{7z@RYPX=Xuvb^;9>CQG9Ncp@({WTU}U7>!hr@z{X_ZO;8 zF|xT7+r<#E$Pfl8IfCifQ@dZMgM$ap_m2N#`>*P^gCC(mi6Upff}nf>U3_nPY$M!X zs5;$XbEvo+ntVGrR}nZLECb+k%j)(*4yRSbgFpQ{-VT1sfS1zKrcY@=E#Tq%06zo0 zw_A0C&B5AbHFlf8#~yf-u6crjYyjq{P@;%Zi+2ToPBIH0z~eK}51OAkogM}fmeks+ znQjxdtn7nnI08r?09YYB7jl6aZPm=cAG{I#o2WYvp#4?AC1QI!JowW>r&Gl_g|w__ zs|dCV$CBh7kqyZS060lP9l9@zlyyp#UMO{3505|B&TzW{l!5c$O8^-rr!HC8y8(YV zTRuT-ZP`cosIcW;FS!a5RD;A?QwKY#wc@fG`>6} z=2@Aii`c=bHjCJTGT}CgW$~2fyn^|bm3(*(fwl%LyHezQ(`ToLgJ)ZiZF5v+K zz{f^;E{lk9Zu6-HuaXBvaxB>~ir$HuaeG?1&;p&q!;C!F6n9gDueTjvehEmz)-Hen zN;FUiKyrensms%Ok55;ar>a(2=XPcXz~9XB*Cz3JLka8Ket&PJ84U((pZ>ty|4a7E zli0e(-Gaxk9ODE)DB8)%abw+neS}F4`?ZRjca%q!9^c+`e7)_jR93vQ$ht}j!X|}H z>9LTfA#6D9-ah>_-TQdH`6(TZS2~gC0DIpj^*>(7-*tb;SYLMxhrsuEYd7|747do~ zNpRX6U|GHpHJ9+_tSS<4Ry)eS+ZYnVVf*7*5&UFVcmiN^^YudFe7$)F_{aZaxq6ET z1r;(8`0{|3vo_KT;K$RKA%^JzmYc&(?$(b5PyVOkEOWl?5D1&ln?SvjeRdB%K4t0I z6ib4jyJ!Sh6gmTbApyx`9vDcAWQ?_%aB{L|SIKJcQ7m&Z`o#*A0i6)xxu854L3t(` zAoN@>JZ{~dz;@c85)7~isheQkRK%)UxHU%qkz-@sv9>$|}v+h0xb5_{se_W7wDLusoSe4!iRiySuY)(>L4Ui^E&pIi>3e zxTUN+1a62J5DWq{z(gpE^w&gCxO#KOv!7QI1WCA}s7TQyCK!(#{xe%W$>{vlqCI@P zyEnn+mpK9ywl_SiJ*wLx9a~eHG36BEi1c}LR-D}d0_TF*42ATcFA#&J3*2l z1SY{Ja65EM&r%WhtM+)*qH2I`$7{X44cWcLKNk25oj6YYN*aLP3ne=_g&36Wa)Iz` zR6}~>t4w)NN}j_6YENsVQ7-3CLX+!@w{9;>GsEqF4y!Mxe7lK%Yl82z@}hj+E}w-h!`3JZ;@AD{bo5B@1*8;;?{o8|upipr=f4FEzH00000 LNkvXXu0mjf;JdDP literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_media.png b/data/themes/default/images/buttons/button_media.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c7586834f8d3a0e01609eac41dbe8bca9717be GIT binary patch literal 3183 zcmV-#43P7QP)%EN=h+03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@01MMeL_t(|+U;FSh}2jY z{&JI4RZ6>U!Nzu0j`&#g#s}J<2tF2q3m1YkBO=UzyBTyLxE;5yMMO|hP|$_iplcCy z(;{Ls3m?!fbjC+JqqbeCN+tK^U-+NPtyHS4bXBUW()WVk*PWzu&;4@Fcg{UkF*a`8 z7%pGF8~{)#6yUlp0H9bb0)WJWgM$Eoa=8oua2!YD4C2|@+1T|j7K^ArXhAIL%HHLTDpr92W|O zmPixpaefr8w2>DlX`&_hA_J)%@ZxZ6nOrbH#d`cGS5L0>1C} zg%ODabpN((gL7UppCAZOtyble8ZAMDVJLAwkwys7Hfdt(IP<-z>$*a^06Lq(y9;Y4Q6^5bo zJXBnwCwHMR8PT?F1VMmuxr`tPW*Ab^v?$P&sn5Nkir15m%*!;s-FE2JTN5^-wM@lM86Ap|VT>Iu@!&CQ`)E@NzL4Cl_B zYl}1hV45Zl95{dr7cOAUnl+f6orULlV2nWsA^(1sNK$ikWYC2s z%`d zMl=jVPAV--dc$>HR4Nr5IdTL?jvPT6!?G-#Jb4lTaR2^&IF2LhM5KArp0A3jc$vm} zHmw||@gxW#>QZ(!Am9?HMk|x&Uq#1+Ny`MCUNSZ1L z0&vdp+i$(;Hq_U+rz?Q!710Spfh!}on@^iIt$ilag}?e%Nwanf|BDyCg^dQwQS&j(Y*mg)?? z@8j^{!&r!6Sr!f*Iwa>u4++h`6Z2KK5xTWrgky=*?VB)7Q;NxUjT(j_48uSW1jyxb z*t~f&7HaI=xf7gogkf0IHP9*2(1ztgktWvTbn7OfF`6;fmQhX9l$v7Owrx_FCLO-- zdaweG@9CMOTZ3Nk~JB6a)dr#>Nsa zb{K}ZapMLqUc4v?<2Vlf_~Q@k+qWaLr`ci3 z*^}sct5&T-7=|^80AuWj^HDL`gLA$h>k+p;v7xF{F}Ph!;fr?b$%s*-s+bl@2!Y|@ z;Y5qC(NoA6lQCB{dJqKj7PI8p=zJm}T|e64-|C?2sh*};IO=rv zl@@7YHBOQk+-*$vNa;6e21{(E9?Gcz+&Lz-yGAgPAy1>98Q^vfjTNJRhs{`>F53w`+TVH`Vl z44&ssS2s*I!t&WQi1({bbKZxM8S@9@I~midCj*!gXCddGchz z_NpE{cpyIkLB#HN`!@ABR5R&EcS?GKn#QhPy^3wywsoB}zVGAOwQDl_qY?u3K=-SC zqu!fkLE{jnF2j62kLS;yM1ZOJlgMi|f~~qfjWovMgAZ1>3e|t)`#t+fp4TTCC~^OyPhrCcD=D z{r6woym_-Lq~V<7(xpq^KRWV%@2EHVLq4C!*CzA)n7n z;*h6_tAk`ECAYFf8p5<_)S3~7AsolS)2C1I_U&67Jb19JB3~GWc=qfW?%cV9xw$#n zf}z%JvP>Ev@--*436~WT(IzO7CkO&~o`-6+inVLkV*mdA`1$9bTi#X(f&edHzQodq@mUipuyLiWXbaoVQ4|AAV;kep68)ZC}7j3O&A>=#q#CLF*rDg zfq?;pVJJ5{KYjXysi`SUO-+GwE<+NvO;9%1s7#*~+>|(3oHT7PlJ=o?Od=8W^r|j7 zDzqs*rRH<8RkYtGtE5rwSN9g+s74?U)bBW&8K|41)b>DzQg^W_#i#!hN$8(?P4(EU z*-!P_4YMlxrFv4Iz;;ok%6mVz5`7J*>q>nmEs@x?}PxtsK8tNfYaF z7K;($+;P%yv)Js_uyVZEjiPaDq>0_D(niv_m2ky0X*8aX#$k(D<7likj>cN!Xsk7k z##-ZOtg+TO8f%TCaS!ZO#T}rr#&Lr+Iw;zfps~g}tJ1jhS(Vy%qOrzN97~)mw>@gy z*-tstX&klJR%4B$Uj`MMRjJ=_1@!K>kZQc}-#S{SakP;%ZiZutLmw)mgEZDy#Z5Ji z`qo;FHIBZ;I9B7(+ete4{&9`7gPUrcLZJY|Fyu)ZYpmi};?Rpv=~d4fYpmj?8ix*Y z97kh~Yj8u2Q!bYQe1EqA@coN}G}f4KQ;oA^$r2cbAy3j+V-?2|XX(u^(zGdDK}02mk;&{*Rd+)(3u`}Pe0FgQ2}0GOSf)mUSRn`#_wB#oQlSmJ0SY1|5F z>Oz$e0$;y=1pq8twoGGR~sL+GK09(r_R{158( VGB`01uf+fW002ovPDHLkV1h!84oLt2 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_media_bloom.png b/data/themes/default/images/buttons/button_media_bloom.png new file mode 100644 index 0000000000000000000000000000000000000000..49e7e086849f90f2d819633295081051eafd271b GIT binary patch literal 7509 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_media_stop_on.png b/data/themes/default/images/buttons/button_media_stop_on.png new file mode 100644 index 0000000000000000000000000000000000000000..80d709a29590ca6a5da9106ed38a4372bd9db645 GIT binary patch literal 12462 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_next.png b/data/themes/default/images/buttons/button_next.png new file mode 100644 index 0000000000000000000000000000000000000000..62004c417ffeae73edb4344d2cb0f24cc5ff55d2 GIT binary patch literal 4466 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_previous_glow.png b/data/themes/default/images/buttons/button_previous_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..96274241c2e8ea2371742adb0cbec6535fc51a2c GIT binary patch literal 7202 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_previous_off.png b/data/themes/default/images/buttons/button_previous_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d4eea12764d591f8457967b72b56a9d37d9f21d6 GIT binary patch literal 4671 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_rot_centre_glow.png b/data/themes/default/images/buttons/button_rot_centre_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..6433bb2701bce7739d482332d02a7486009170c3 GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^IzX((!3HGv%U7lYDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVot;lyTI!DODn_7?Y>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)D+~^u<)+TeFe>a-6{$_-(&TX7|^dMi^ zhGy9}3GCK4;LQIl-puDxw)iR=A8tKsQZeEE*2ID>yp8$yvy|8RW*<*Hx!axR!ujWFU8GbZ8({Xk{QrNlj4iWF>9@00N^)L_t(o!|mD6PZL2D z!13?fVt^_?Bpx6{FcEAER}!`HAO~u&^`Hs-J^SxiPlie&iLu16H3B!G{3s`aC7Ngn zicMtuJg~)W1*5Pl+oUgP(w)pCpM9Oqyqy)Ch-dOwftx@#&_*z#43vN^D;4_!AP#m2 zh*Ylw7z(UgsaQdr%*Gw80tKK5>|3drUW6{5$qUc{^Z`RIn7EA<*wt=neMV9^9O z!Ho`X`IpX9X_XJ*^?}lXy}dF$TB+HQUaa=1N~C^_2<5$Rm3Q_1?`1YR4@0)Tos8}K zlHsYe%1(G~T+s)emyL+gWm5RVE*XM>HTlLsGGppAs*pCgHC%2!k_4oqb zXT0RF5@8l0Yla8Vc!sU%>s}qdTrW9Z?3m+KogF z+7!KXWj70KDa={Pk>Ve)0Je%O`Z9-~O^agc>-bn+L57di40MH!#AteDuKKfQ$Hyzc ztNQV$VCQnl=(c~Wgeht*#j>EAuGWFBu#uRY-3*;J%q#5KmbEHcr3SrMu_sPKdx<^! zI&6ws%aN=I8?L9A-_TxT&$n@yq6>@B`FeE8{*joR-3sAjy)Jv?l#g8d!9mKN0*Q4pIsFL#%>wUF0 zE&9=Dd5TaJLJPS^(f1cxt^G|D9uC_Dm}%C-P4NE)I|p!q47bgl;f??&w!;lBJKy^P z46fSB21h5{07K5vX3(ZXPxa9ZC^g=Jw$q_;UKzOVsv%y=`~;3lLc+VBk+T2*002ov JPDHLkV1hCxbq)Xk literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_rot_down_glow.png b/data/themes/default/images/buttons/button_rot_down_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..c835dfbaabffb86b5699350e0da215af09c4d880 GIT binary patch literal 839 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_rot_right_glow.png b/data/themes/default/images/buttons/button_rot_right_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..6de03040a28d03917feadb09180291211216aa5f GIT binary patch literal 831 zcmV-F1Hk-=P)$9Vt%03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00N^)L_t(o!`0cpYZGA@ z2k`In-nC*QjgGN{NTru+C^)E1QpLfkG@>AME4qmYP7*s7935&4{sH2a;vh}xBnURw zXp<5s@uF39k*Jdy5(Le?4!%j>CW6qum%MqWybs6A=bp>^6 ztp=b1VBJaBp8$Xa_7Z>#&Ax_>19;^m>=z_5dtG2TfE<8r02L=;d%e)b(=HQFdICUH zvOT7F+MNS%N(7!b3Hzf?sg0-IQ2=uS{h@g$0FcuS3jo5D6WtJ#CfGLgZB1K%Nx_Q7 z;FgU^srPi%$~IHgpp(zaqlUq6a-ydjGvU{M;hBm-qR-usVeokXA>#a2EK{D;8f-QU zc^tz}v=Z=oV(g2@`2zqy{YEoY1LZD{zwZW`sT`~uXr}s+`HfZrj-*Ovx6n$!!2r84 zl_`h2fmQNS!?G$viR<<#vZ%#znLFcE+0BrW!D%a-x0GR(o+X9@EJ+;pp4FgWEvdvR10NkS&UIk(wsNd8@bS8p z1JGP4ihg00fmde98>xpE!LdA24=?(K-81RpX_pWd@_*ksxLmu`~fgPNT`xih7te(002ov JPDHLkV1j*nZgKzs literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_rot_up.png b/data/themes/default/images/buttons/button_rot_up.png new file mode 100644 index 0000000000000000000000000000000000000000..a641fde6cf67d3175d9e20d37e5cf32ee3cde941 GIT binary patch literal 787 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_rot_zoomin_glow.png b/data/themes/default/images/buttons/button_rot_zoomin_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..072442e5b5394f63b20174fe74c50533e1f064dc GIT binary patch literal 1264 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_scenarios.png b/data/themes/default/images/buttons/button_scenarios.png new file mode 100644 index 0000000000000000000000000000000000000000..ab850b4a2fc4845e36cc9c69378cc989af0f2a32 GIT binary patch literal 2713 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 Hu0mjf``Qfb literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_scenarios_glow.png b/data/themes/default/images/buttons/button_scenarios_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..112d5cee9bf4164c4de6b5dc5f071d721b619be9 GIT binary patch literal 4371 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_scenarios_stop_on.png b/data/themes/default/images/buttons/button_scenarios_stop_on.png new file mode 100644 index 0000000000000000000000000000000000000000..91c34d7808035a13cb6b59a46bf9075b6a24b710 GIT binary patch literal 12466 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_scroll.png b/data/themes/default/images/buttons/button_scroll.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4d7a3df392abd9b1c47fdbca3008f222c285a3 GIT binary patch literal 850 zcmV-Y1FigtP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RT0Sp!xHHi!%QUCw|9dt!lbVF}# zZDnqB07G(RVRU6=Aa`kWXdqN*WgtgMO;GP-C2jx!0=r2>K~z}7?U=Dk8&Mp`KkwaL zVq+6XY_sGNkP3|%Tsmdz(nS$0g8zVI>>nUUDIJ2)$)Q7+4uuY#9Q+5|q=FDcDy>*T zJh|a&i9{Q{-b=27F)D&$lYqm0r{mpwzu$-7`#tX7S8yQ>$N-OlG$1}wOajNE|=f0t*w0ps(=ze1b8$# zIaypgvaQKL2cYcbA2Q1#H_ML_x@Avn(zyGB!5G`ucixW@hFk@KXW?kjiGW<4P$k%NiI2 zfNk4YmW5J^d_JE6Qh=d%`XezsJRIBJ-lkTobr%IefKrN9tA(a%2qEs2Gzfz3T3y$> z>ua?dJ3BiR3WW%e0Cc_6%@V+IoGXER-$w{RJlY1*x)PjXKbf`lL;NC*;w^jqh@ic~5UT-Uue z;qdTqAcdx>=;h_37X`^?`GOXti^Y5^pZ$ty1n z!$1guQi^uF{eLBw5?$A?fn3Vf0s2Il$@TPF3!)- ze~CmQL+y4O$8k6~IOwZ~HZn3oCX+!*iRXDlo!D=RA-oY|bgPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RT0Sp!%0si80VE_OC9dt!lbVF}# zZDnqB07G(RVRU6=Aa`kWXdqN*WgtgMO;GP-C2jx!0z*keK~z}7?U*}HR8bU#*V_AB z=D{T6@UXzdYAUrhl>7l=_#f1^lWDDKZ2bp@g1UcJ~`2(r2V={1yAAd`R# zDCMN3+kr?1S|CsY6G1yW+rChAqTB;*Ii`FgfJDM$5w)xL zBM_1%>O!#Zp7SIP;_>-Kr&m=u0>EiMAMML}B`gG))Jx_2m7b*LeNLAVx6> z0ArxX;Yl1MwA<+>h70FP+XAZEiGdy=MoNNl^c@?Yh<=mDJNRqFDbGoed!7QM04YEU zkOHItDL@L40;B*bKnjrm1{tL;zXMyJ^86$FiXteOniDhsA^Tz?`}R2S zOy&-E5FAF_ne1x-QU&yiuxEE&8&8Du6Q3 zE@wa_B?=`nt>&%`&jRY@N8P{}0pMvPyHP)~NSCSXW*YV*;wr?FsKK0m1RW4{32R1| zls8<~hsKT3()b#$-GF&I2V6=OqpwJ5jRp|tJlqcLYVNC5EM|Is0b0W_m;Z*uZ~y=R M07*qoM6N<$f|xHkWdHyG literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_selected_neon.png b/data/themes/default/images/buttons/button_selected_neon.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca2f411337666ac5048904fa4a9103d8ad65507 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^M}U}(gAGW|X*0Y6;v{*yyDx`7I;J! zGca%qgD@k*tT_@uLG}_)Usv|)Y;0U6Y-UpbzuQ-J8qFkjHiMuRp%A4a(OQ);-a^)Oovr z`JBv7hUNdF)z`LouUN^!cc#_(*Fs;e?Nf{-w?xVBFgn|2XtqVSHfv7#U$>Qo`>y%( zzFxI+``@x6 zxAe96W(GFygf9**%nMHQ7%LyNFb!%XZ*>)q9k3%l{c#rW8R80^okyQGOa_p>03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00Fm2L_t(Y$L*I*YZFlv zhM#k9LQM@63!>;tu_N@K{(Mlf9f-UGOfFUkYp zT&pjc>8u+kJbSox^nGah-X9KqJGOUPe%}-%1^Ji$yNuthG_J_mq{66vVL0|*ECr>_ z#6e^lkj$GSj40zSmDH zfNrk`MB+1mP^nyLjwKcT!Mv=z(3~)A6cEm@MO>cWP6Iap%-E7x1B>tSY|0@n0z=() z@VYuzcy+9@UfL-<|CC$ZFjN$r>x>kN&kh|vwWFU8GbZ8({Xk{QrNlj4iWF>9@00H1hL_t(Y$L*KFYZE~f zhrc(8NzrT?Xf8%Pc`@lp3gSi@#MD!a(2D+(g-Vl}i!DgOGzi60lYn@Q9ujDqB5B;+ z=OJ6zwmF$>4Apm=VVK`HzxUoS1OMZ4NO17%-Iv(;t%VgqGJpjdhFo9KPW;#4@Zbqb5HNBwvo^V+W#*-QZw^TQeY5yS9YBQB`pfLzY*Hh{4QfUp21POAk454$bEIC%)&lOl7DYdmb6fvzja<%> z4iNGFI!NYcwzk=v14lOBPUpQcpI5x9TC)kdU| zjQvg&Ds9U(YAf6Y;vt!GF7Q3#$-(}shyAf2!C3k5EoPmaPL-gaNOJh%!EmmBdcOg7 WIidg_M8Ti{0000;800001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXD( z2@f@j-q1w=0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z0004h zNklN_z)qPqNOy~{HHHq`x?mgVY=iYnn;Q}g^N+mNgYU07e3v)h` zTPNaZbi92__WZ&aG@J67+ztU<%rrZorKV~g?hCOfWK%%`?4?(#6Z|eMHB_^3Ux>w3 zV`>SEk&h!RK)fsyFQlV^(XuZn2Ihz2kx3?A7={MI&l!D=VVWV}UN)W#Lud8*)5(q( z0B~w&&4Tnz2AYcFZ(v%8dL0LU0{;oRlx#dz18oGJs)d$~C!^3k@pxVRjdcYeEi&N< z%f|nDSGl$(`@VhBi!3a+wjcu@2CurbWPkY_$KKXUorS+*x0yC{JB*CAodDSW6wOSo z-edsG!^JaZ5Y}9~iS94(k4y*{|8X*td;i?|lzxp>u4(sPq7yoKD=*QR(-vF9#*wF` qP_b<6#T&U(|GX-dN~Kb%{!8yzqV$(ITj5Ip0000F0g` literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_list_begin.png b/data/themes/default/images/buttons/button_widget_list_begin.png new file mode 100644 index 0000000000000000000000000000000000000000..c7be9ec020ae9399199efd10b40b6e4120098739 GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0y~yUY zhW{YAVDIwDKoQOYkH}&M25w;xW@MN(M*=9wUgGKN%6@}OfLBAPPscnLC?s3r8d2h$ zpPQSSSHj?2l$uzQnxasiS(2d;l98(5?&%xwK1DST=z!~Z zxP*D;C-xK%L64=(J0xpbY+LmoS^r?#cVtfDY?*{r4qYORC)95EDwNGp5)#Z~>NMND z`FCya!K#kb?LRk4#jyY_Cj&U#7IUsGJoVJoMMwFOh0?s8R~Zh}e-jYAuk@(+{@T1* z9V@1szTHvr_9i2P^2ep`!{ps%1818Dyf6D#Dl7Q9W5?^=R~M&qFz{$T-PFm+-Og`1UkFoSWf;`t0du+XV|}7yXplAOB8AIVnH3$l$b0}8%I5iXW4d<;DY1AL1f zTw`MB&|qK?WMxoT#K7Pp!qCvc#Ngn<2oc@NuQ`47l+#lyKQjbePHevZ=kT6Nh8c6F zoX$M;^vYZYhGlou&%x9pnULju>Z#GwqRe|X3|Fo^nzw@e^E1YTqBosP49_m$)S&dV zC=sL~#eYg=^&*A@9s=rZo)+c7ET|^N0-dKtX)q1%pPgks@Z^RtE5n(E{&Rp169A@S zB`$=|uTGnC+Vj-YBS8PISb5Yo@H;UY0#7|X0n^YA)ZmcYU0eUKjNSSE+I#;Wf8X=5 zqGHwiu=#gb8M3~f)Jq2j_`gFL_2)hxV`Pvp&PRkl$T7j6gn1bm_bs?{xD=EYJzf1= J);T3K0RVMOM$`ZR literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_list_end.png b/data/themes/default/images/buttons/button_widget_list_end.png new file mode 100644 index 0000000000000000000000000000000000000000..abf79c0b6f8a8432d11982b09002d1badf88ff2b GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0y~yU`DUf0;4sv&5Sa(k5C6L3G|H(?D8gCb5n0T@z%2~Ij105pNB{-dOFVsD*>7+O@M?-ph&lu^Mz+K?qQp5r zH#aq}gu%HeHL)Z$MWH;iBts!2BUQoO(>LIKifSHE;RjC_$B>F!Z*LlU9dVFod#In4 zsC*)i#XE7eOv3CripS4N7PW4f#@*H1d-jo-w4>M?qjw_bFZ-N&_<#0vpG}+U=6wHa z@t&C>pi`)}D0vM7gQ#nW{kh(cObpk#W*f#;}0Nb=DFW7uo5Xw;BUEZ(SFM zNC(EB-ud=;WpX~lfvq~aoAzc*3B4n_1A+Gy|-*(^;)|{(`hKBmGGe0@s8}Qz3 fF9doH100a|n`NfiTsez*H%QLY)z4*}Q$iB}gJYKO literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_list_item.png b/data/themes/default/images/buttons/button_widget_list_item.png new file mode 100644 index 0000000000000000000000000000000000000000..cb02ce16d380f917f83f2b4f23ec8f38a063a8c8 GIT binary patch literal 899 zcmeAS@N?(olHy`uVBq!ia0y~yU&gB_U-umNreB z7Fu$#G}-Ek6YF2WYx6?w=ZhPBHu#+U!|1btV#&?D>CxZc+uq(K&%jW1B=gHj)#;)P z4laxgf5d0TMI8C^DJ${&(a(22#y$4Bm6v))jNw7Jr`qjz(&uD*@9eyNBQA2ykvRV^ z=7FuPOJ{HG-I~4j*K$WjR)#-*K-E!S{hL8zAi0g#g-xTDO%LY=3S7*uoVkQ~a&Yg% znUDTm=)HY>`fv82$A>b16y5OIWf-q+>$m1J)13C_-~P>>URyo;>B6*9b@59kmKEQ# zN~$Wi3ViMjxzcf~_M^>p&J`PPvde!udeeFFq0HA|4RgL&Y&^$ZAUE%}vhmStCww-> z=}(`v_0lgFkIPT0-Cep@teF3~@4HmE6Gvh~(JI9S3=R8Fil_6lt1XwZFFVrOv*MiG z3ZSF*ZDe5h=ek@v>HX4oo$)d}cX!n0s4z5azQSuO82GJ%fgydZ^q(AIa5!~nFfa(R zGAJx!U~my(U{K;h7Zm^|Aym+x-$#Fy+^cv(=~Xwk2>Vt2)s3v1pzdG$1CKgg|1;`F|nueRPP zZ~e&0?aGO{yL$zkI5KBl@p>(Mb$S1%-Ls#ru??EDEbr`f&wk<8dl;TS+_`sm+@E{Pj9vT-@G&+26a-+%V({`1d{^C#8cW?`rbpLBBD=AR#%H}3rT9VB}^&VQM>-l^}C)=2O( sJjl0OXaBOZ^v6v#29W=M*zaS~3ICS0A$MvoFgq}Ky85}Sb4q9e0BJggrT_o{ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_move_down.png b/data/themes/default/images/buttons/button_widget_move_down.png new file mode 100644 index 0000000000000000000000000000000000000000..c378253f888b5a44e6a9b2e72654aad4722e2718 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6K!3HEZJa-iaQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GGKv`~KMuu5)B!GhKC7!;n?AN)3c_p>KOkes2C?s3r8d2h$pPQSSSHj?2l$uzQ znxasiS(2d;l98(5?&%xwK1DSTsIb!0#WBRle137Lkbj-OEmY=)Wi)`{(}u z|M52}Ez)HQLjJgJd&u+uzj0LV-ni2T4!mer`PJO`vHqT6{@UUnTZ{z1Nk9IdoNf{= zAt71r=vrs^CtX7^#h_5Ho$0Z0dW1z>!FFQ003CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00AONL_t(I%k9&@O2beT z$MNq;Rj`7BLWa5sF4aDOv<2xVA{`v`9ee_@n>hIZQbhU!T|;$}f=HIml>`b-K7d1t zMa*&V4*{FxCJrv1@p8`R$GMja|MfSeD)no>R_P9Be@j&z->y2o4IrpWt>?9XecHA})v1xtk^srMeXROKSllPe$suY4YjtWvNs0B$0E+e=03Jj)eLf!|QM z5`crQT2Dpq6xhwWK@8k-o8?>iYRVIk1b;keq_PC0!9Q@*026pBo))k;KeK8A$KtU8 z!hlfM5m`=y6Y+!%Fo9F??|=pG3}q)W7NVRa!A3YhqpyWY;5h=e0tJ=!eY4z2n-kMt o*yumbO@f!Uh`R3HX2)da9YBuBL3{7-4gdfE07*qoM6N<$g2s5Ra{vGU literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_move_left.png b/data/themes/default/images/buttons/button_widget_move_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ef48f09419b490a8b4cf0ecf7aebd26bcffb6137 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9e!3HGRnB|{<>&kweOPE)Nf9vC|6+j``64!_l=ltB<)VvY~=c3falGGH1 z^30M9g^-L?1$R&1fcGh?c|e6No-U3d7N?UFBv=;3zzvtTRbuSljZ=R6iakyS> z_1f#%5)u;s4Gauo)J`irHcpSY5q~cy>BspO#||9W(3c}#xaUFM|MMU23r@EY{`fEH z&Y1%TK6EEF_x;L{0jdf(0^~M3i5nWoe7 Z7=$k>9SBpcC<3~N!PC{xWt~$(696G_ZIJ)~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_move_left_big.png b/data/themes/default/images/buttons/button_widget_move_left_big.png new file mode 100644 index 0000000000000000000000000000000000000000..2cb2d307c8bac5b3edfa889c562970bf11233da7 GIT binary patch literal 451 zcmV;!0X+VRP)WFU8GbZ8({Xk{QrNlj4iWF>9@00AdSL_t(I%ca!4N&`U< z!14cVM9{+0#?m5+4s6MXpG#93p6ABM1>p zNc_05ImAoubayl5%dB(z33Qa-3I}X zO7mfI(CuFc%=#h#X3*`Qr4XU*iU1f9ZRzh!tn)Kd6LUC*0Ib%dy;!J%nk4xWtEq-T z@zDtaDAl7iL{ET%50;vvaj=oe_Qf)H%?HcfepgKXYS#sm{~j?1+YN)_v(s1G3Kp(V tsR3UAnsY~N2QKMsUxmYPbMbz-{taB<)w9zIPqqL6002ovPDHLkV1jHkv~U0b literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_move_right.png b/data/themes/default/images/buttons/button_widget_move_right.png new file mode 100644 index 0000000000000000000000000000000000000000..11e624c9bdb33affbcaed7248be68909ce91b33b GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9e!3HGRnB|{<>&kweOPE(ydYe*!3s6Y5#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2AtWPJ!QIn0;C+f}9#CP8r;B5V#p&b(3D(68YzL}to5r^N|1arz^>~Zor~ZrA zvtECVYHR!NGez>q0T6hRo?5l}=#Mj!VqCmQ2?;;`-|v0QT5kQ6&CuWvkblQ#jpL3v z|C%4#JD&`U?-fpw{__6+fBhaGp337jTh0ZF{N?-oesgbHQ=o$q14C7oyxzi#n%+Qn OFnGH9xvXWFU8GbZ8({Xk{QrNlj4iWF>9@00ALML_t(I%bnCcO9Md= z2H^J{{D>FOLa<2_(Bi;a{uA&AbYvlY`4SkFgr6W;5(|Ur7xTNZ50@g_>ir%-&E!Kd(=O+Vq;0Q?pp$&F}m(r zv9W~Dub)Q%_nD9hqc6DLex6;5JC6*yhZARx6DR8i6yRE4gk z!1Aa`P86+&dVI<05e%Vh_UiGid1^(739=xCkQJE-g&?_5DB^{Z&R|98u0jz1pZ&LF n5`yGEEqz_1;snYI3jzSYv@Wgcdi&}S00000NkvXXu0mjf^fa;R literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_move_up.png b/data/themes/default/images/buttons/button_widget_move_up.png new file mode 100644 index 0000000000000000000000000000000000000000..af9268a51c65845a3a644ace4ec6fd421309a6b7 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6K!3HEZJa-iaQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GGKv`~KMuu5)B!GhKC7!;n?AN)3dBsInmrgwi6p}4*jVN)>&&^HED`9XhN=+(<3b63bq>? z806W#T3py6Ve8{E^UjC)oqtvRFW0lN9skes-+GN%{PqQX5C8u+j+z;>KJmx@`@C9* zjvY90A$jZ9S%OCoChdJYOYg9~TYSmK`v3py6Q4hvQ+Oco?&}r9T75G? P&S&s+^>bP0l+XkKKO1Bb literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_move_up_big.png b/data/themes/default/images/buttons/button_widget_move_up_big.png new file mode 100644 index 0000000000000000000000000000000000000000..89e1b13397657ee2b3b225858b0cda069b80b127 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6K!3HEZJa-iaQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GGKv`~KMuu5)B!GhKC7!;n?AN)3dBsfrv2VEs6p}4*jVN)>&&^HED`9XhN=+Eak-ar*7${a%LyB-%bcw{~QgZ9S9s@8yFh z6J9A;ba)-FV!k9M9_|=Z@z{3ve#^Oo zfoX};YAKiQr67?ym0PZnzv>pTUHrSJ;bd##&(})}nqLKfd-8;}$CO80-*eYW3*Scf z*$okg@0P6I8&=8up{e4IN7V|0X><24-XwcX?L6Bfvk%X6n1Wcg@p=T_P*X^Ku&1F? zV((mCX6BfyYVU$f*UE2Sk*F8GY+d8yMIRatZ054Q$-msFTq<0FVdQ&MBb@065*WKL7v# literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/button_widget_resize.png b/data/themes/default/images/buttons/button_widget_resize.png new file mode 100644 index 0000000000000000000000000000000000000000..fa543f60606c5e6b291c29aa66df541d8d90af83 GIT binary patch literal 1482 zcmV;*1vUDKP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOY? z4FeHI`dTRf0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000Fc zNklb4#6^5U8?Q^f~0tP`HVsIK1qExm~8_Be#Ri!4QNRd+L#N$-zyg$M9 z&&WThJg5+BRSt4l1akwqV@YVTqC=*MDxEuTO4`{j4fy}$g<_kXuE z#@yxjubsD-UHQX{*Tw!=>En-o`;hs0vro|sGSdJS#^5a2&!J{6{i9L; z{tW5=I7n*HU)GLJQks0TN{v1ZvN`0{oP#3V8Ie0Ahxu? z8I75jnVVB>6Xb&Z#Bf(tw?DjaW_9;#41g9WfD8$Il?-Y zD`yk~DIt(D+wG;?Sg+5r*1xyrZ+itb0GqQSC1KeEb%@#+egnYr?3se_g|tXW#7awT=b6VM+n13L!~ZLc68t|3BEgoYl{;AK89HdM#S| z`>Fa{8H2@7CRh8!b*HcPv;E|YwfpPrb7;Q-xO_QY-8fkeWq+vj(@)g&ZeEz|H~Y;s z^YN>3IyN;vJn~#8n^Li4jAbdE`qyj6 z_73bP7jJY%pT>#ec;x^ZWqNvGAL=HOg%Gks;ctKX(6LugS$snF=?J~x$}qFD2IzDe z$qf91v5~L+^Znfi`|iaX9Y>A}pSE<|_<+LA)WT8#^qba}(%6P#J6=BZM(nzd9W5M} z;xzEG5a3=Zl#ga76Tmw9EVMC#RfJVK%DcaOv+g=r&-Kfa{G|q;iBL(hTH6+?+kZUb zQZ|tiywSGluQ}M=i)%kWvp%!9xN+^t6F78;SHBq5t+!v>-o*5q){Pqr8x(|MYGEn% z*DHiOaDfCdk`HEg;e4Npyvl^q4E zS!^j~Z(0teWMvCm+b?2koCer3v|Ela3|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD*{^d6a&&^HED`9XhN=+9McPz;E%M3*^%++SFP_Z&l#GZywik$HWC00nIg&j z5vF%5C#6o>tfIb5g5k!;8Bgp^`bJML-^@FE)yptXy?aVC7#f-{tMANvU1Ym^gXF&} zA%|zwPAZ+`J1IAM`rfU~4d>Tp?NU0KImva>)$X*69Cp=l0wd=m8UVB-D+E2@4wta3j_clM=C1%QSKzm~G?B#doPUkgTy`j=hW6#DI zh68eD)?n_ot$qv#M9vyi-LTN$Veq-i%lc|$7afp!j%n#9vW4Cz37<#)c91X>m>Xa=?)r^Q4%HDO-g@?C{j zOYZypKYsn%Q~k{h2bS|o+vRf9nsYPM%-FDU*1C+>o4zmQXV`O%C%ONpSbC11t|)_n zt8tH{S^weE#JLO&wmM}}Nnwe__A%k1muokMF&x;>vv$L+%#QzN&m?EhR*9c1;;FZK zS+x31m7DL1pRqAm`~W7IEq}L2EL!GqiJ#Z7E9nV)oa#=A>KKLx3ST|f-QE>*-YBPS zho%1}pQ33`j?7|Yu$KG0bP0l+XkK<{CA- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/menu_item_select.png b/data/themes/default/images/buttons/menu_item_select.png new file mode 100644 index 0000000000000000000000000000000000000000..2dade17fc9276d0c8f611cb5ad7f8f8033b318d2 GIT binary patch literal 878 zcmeAS@N?(olHy`uVBq!ia0y~yU@`-;gE-iLq`S|&03gMd|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD*{^d6aN!u?Y!ja;uunK>+S80-qMLO#~-eD6j(lG+M~2(3eTtf zyfgRH^LtnB&YoN4v1~`j6tTHo-Y+I>woO_Zq@S5JFa2Ugk<9mKyFKq`vjD9m03O`G z@%ndL>eZe}K9hJR%Tyd?IMCIu^4(MKb*AC{TN^Z2Khrt6vXYTO|I5yKV&c)_W^cXD zRzCL+_e}H5d!4z_z?|VmZt7K@NiwRE>Xt8KeqFhK>TF&AdF#mI%uEdV&bu!ZPJXg% z&8*5g-435gUoP=B%gryp@o$fiDZ>GIrSy4E-}!A?x73_waDhk>Dm7e+N~U}O*g#`z&O80Bz-0i+a4;nabo5xWkARZyj9I)FB!*^&6U zd|x#%N|xP9xSRO->>q{(->r`C6NAIfp0B=k`BCzw8D4eu7dDiRB9o3!2(F_Zc?__qw zec74xdB@X|ps=$i)-W_Y-?Fw~(M; zPP^^@*zbysnT!6ns=5c8RhGN4GwiwWyecXtC-ugbLSru@Pop!R&hRogTz3Yloxa~P d;E$F)gXPTX&CeVb0ka7MgQu&X%Q~loCID1xRM7wc literal 0 HcmV?d00001 diff --git a/data/themes/default/images/buttons/menu_item_select2.png b/data/themes/default/images/buttons/menu_item_select2.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f3e128fb292103fbbe465fa58a32a413ff8ce8 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^Y(N~w0V3ZxJ>L(cSc;uILpXq-h9ji|$mcBZh%9Dc z5DNie#{C?dl!1bhC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6e)dAc}; zcyzwKc965dfT#80bq~c*eZ57=7Mqi=xb6{=))3R@T6%PM`<}=DQyU~0((cu~Z*gPj zm~(ia-tw8|_B&S356~%l?)W~{Qr$#I=eAVB%^>0Vni^p6hkw$NWon)xmhHRT&mDa5 cc;*g9fv+n0qG6s_fHpIDy85}Sb4q9e0IM}nrT_o{ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/download_manager/download_arrow.png b/data/themes/default/images/download_manager/download_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..d3daa1f2dba8969d5d65f78f5acfec53e73f7e9e GIT binary patch literal 1386 zcmV-w1(o`VP)xCTUu1Yqf2RvBifzXc2D(Uwsq77oRG4LDZtHjf#la zmm<;&q7)INw5dMW1S*1p3RWql(+jm=Dy_9zotY$)UUHwa_F6tnCTU61W+s!`4d)y< zXS3F~|GoCVH-}I`TlV%zuCI$yBega2hRCrehKYw21UeeSnc>dH0PqYi=i&g7|}Qw&HYpY z2?pJ5%ns0SLNF`MBmxJhLIGO+-tOi5i5is1S%y0yF@b zAc>)9>M1nY)$)2`23%=y#i!&5L%$Njh4f2mCEf?<5`d|}_Wtni zmuuE8d8BSlt8+3rtHvG&M+H_B1BG}}htj5auGa&r70f(7Fe)iuED_W$Agp?VeeBS6 zdB|c3A=4Irw*B!>(uXc=x+jwr17LdfWfSLmyYUW1*Xa{6fJo&`LH6_({DF~BPmh=m zUw2gwhvAM>Uw5^&_GU%PIv32WbL0RYdl9vL4C@^7c5Fnf`|oEL`s;!X?pddU&TTu~ z+4V+iKI^SYHf&=`NvvMg+Rf{J?=|gJvzg}>#WV7;f!&X(B!lh8zxjQ0OLs?L&D4u5-gV{ZsGJ#)N-{)LM64ZZow4XK^_uJ6uuQ75SN89EP$?1YNFO}k zw)|p#YUSwKno1=Z1yL{F_QABHAeuJSY|ra=-SBroStWh>h{Dp**5rJG9L|w!XgZGBLAasi2h=H>C zcUq+SRy`fu#uMzlZD?&yZT-gwfg2cx_a+K!2dF~~M*(E=@3u<0v1zt$-mv*(po&)) zFRIykaX`$7b^~@ml#YUs?R)RuxRSWD1_OY`wo^_CPdUf)nedw${xG1YZ_Dbq(wJ2N s1AvA%PX!<(iO4`S(zj)`pG~~~01jD+4(4@BWdHyG07*qoM6N<$f=)wo5&!@I literal 0 HcmV?d00001 diff --git a/data/themes/default/images/download_manager/download_disk.png b/data/themes/default/images/download_manager/download_disk.png new file mode 100644 index 0000000000000000000000000000000000000000..53221842dcc23aa0e84d4e1c54c89565515f8703 GIT binary patch literal 3644 zcmV-C4#V+@P)@nQ5hnk3NDWdo6cZ4Ebx^#)#ckVFPZljbs zc2o6&pX>s3yIrhv;Mdq+zVXKcP_4v7Y%lx?dC(#V0<_lCLw$7+N~Eilni)veSS0b= zuM}}yk>m0dS7hMqiC@i>&wk@IL@A6hr4Lny`l^oIL8Np%5mqA2^)u!~LaeW^^Sh6J zOEGwg$`hP2xJHi)m#=c=@)ZzB)0BgQAxbGk!1sN8-=CfQa5rEpR`|X@mEkLBLaCkt zthETx4mGvWHa!kl_7j%8gn14)-x6M*)3Ymka+l9O_&HI&M<=Q=*Xc0VikMRqwr+pG z#wWk#d`mF<8wA6r1P4zTKmI+^f5ft%^7@?Slpc|6Kcv-a(d~B0vkWED`q7VmWM0*= zJE9bMp3j1ha~7=>wy!O(N%cGIjpr$_~8$K zC|aq`lz{oh5XUk8&NgpczD!XRhzPc_btMW>g7G}Az4aEKetMVXl@)M~BuVf*56}16 z+uh~$ix+9OS_}popoC@=F&M=7zR&!^JoQ?gD_7s-;e!XLD#Y$Qd&b<{oF^hD*TnMj za$PAE00cq61{W`0q~Gro1OWhADJiU- zJ242~^P0}NAP55b{XTa;{gkNDKq;+F`*H{W@i*H%w+>((bkQN;NRXW8D~!S_7^Kj7h`$2jL$S~|sGe?Y6% zq|vC8Wf@tP6NbSHsi83j&-1Xh4DHUjlWRh2-He(||Mfp4B`Xg;jj$ZL4dWz3yUhx_wmYl z0##=6-ibjNVx6|S5nb&Y-1S3sT+U*vTB*7TN!r}r(YvREH zNs`iRHVA@%(Rj@1)5}0fWt0*G!C8wa^}m(kA#>7NDYuqvX$s7}2+gfWqo=k|M zh$7F48Vx#gbER!Qm&C#_#P@w3K3ZpYZ=WPf$+H}#6n@|_nv5BzDFQrtyooJx#^W)0 zQQ-R?p7B^&S*FwZvZZ*&ptYWHD(771CqMa#y!-CE?j)M%Dy?zWqAM1;u(*geN2is- zTI!8DS(>u-WD5cOz^BLyLM zRTcbG5Jx$lvyOv!c;Q&l?+B} z$)N*`UkJj}T9npvS}CN8)yDHU#&__2pJzLpAVRy{B26q_7OhlADMelsC5TEB&tEvl-MgQ0 z=k^_%ttLA=&)D32N)Y(`?B_q@!{2;J9LKcVEpFer!>@n!E849l&X$^JM0LiaA@}Y- z;Qrd$mwsO=e^er~JW*Ypm->V;Mu}1#5uwQQGFDf``xl~;bHwq8jg1Y$dY#{V_+Ok_ zTww9k0><Wud5#E((!~7@Y?dOvF1r~o?3f;I z9y*?GZIL7iK@iaGbm;f{rL&&|gwnb@%?nwUv9hwlWHRB-ojbgF^(t{3lO_p&+7@oK z`7&K_u4HFt>Nx5+*T%U$cAiypjA}ICo->)lE6*~LG$jl}+U+)@(dhYv+dYX-bVYMD8FD45ypbAlW-e3>@Rp8x!O|LU+7Ts1AKg(1T@ zCdo2<&x5ke?ViLZ+K3P}n|Pkb(y3E;p2xLo*ZBD3k5O9FsMkwA^xS0Pd4Z|AB(sx0 zG}fAGZ%S?Sq04BEwYKcA1OfN&-=|iq(P%X2cDv1c_wLDs3m4oAxzjX0U%h%2r4+6z ze%^ZPEp~QxW>wwugsCMv6f>^NB$5)$0MBj@Jw)epG+qF^rt`l z;Jx?W`?D9C(O`0TF=NOO2zkex+yLa!#%gf9C@nq6N6o2t||G>t7|B_L> z4wS=@JkKeLf+S7J(v-rMg-%xeeKa1IL&}$dsC=)e>V@g4JLkxTj{t?*q_`BCNGszkXc;-*@x#^K!jjN5HKtFH5i2 zW4GUT$Ca~(L1?WB!;tZKi~}A%cpx`#-XzU3wzs$4)bH{0`{PYH>Pi%f{QmffQ8< zFyHIB+5XNITI+{v4<7v6{{H^6mw^z#uP(*^pXGoYm;jcq*VpThv;GI6JuiB=2donS O0000i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvR`Lp=I7Tw}? zauY|%LBp9+GY-C3_QB?4N|90exktDEe41-Knc;x=wZe0se@*gHpQ#fU?CI9a|G+8Q zd()JZjTQBiQl5JsO*K0?X9h!u?<985XZGrPe?8?y#l6y3uD%#68T0m~bliTklEr0P z>wj#uWR8i+-~O68KQ1@qd)X`V@6yr9?(OfjkGdCo%BkJ_cV)*HaqSCxRgO=c`0CM( zBX68`F8@BakU7SVy?S?e*!1V=QnR5nwBCmte{V1M z_g%ZackEN=$E-W%c*Q_S?Wg6*!qPwg z9#6deSieWKLFJ|Fj(@vC-rcTz*1$V>0E z{kO;{C{~B>c~{w%p3^0hE}jbtPtHjyJIKLkaTerUpr0pBju-OZ-hDb{Qb{;lxa}VH z2RcvZ-7CL4_2AWKWm~#VyG;7>g?GKQEW=uptx1n!W}n`=P}($^dBN0WVO#FTSV^+xM5W^rK&Txbkgupz)0zmZ;ErpB_E%*e0#t}9VLj^t)G3=zW z6%E~z)2DlWD%)+BV8XEF(v`01Zy#-%q5?`(y}S)!v!XU$(bGHaxoLaw{>&V(f~Uo~ zdcS+uZfxFrSKE#KKqlX}vh{Dww;emTd#8=(rm~VB`!?;eu}`jHn3GmoS@-P4hg#K> zQ5XBB72fpxq~HlkbZ4h7FYgg(NSm$g|K7wbJNW3s=0&pq1FfD`pP$^LHZ$i+cDeV{ zdA;`y($PnMJ^d;x_!$^J{Qsg~wfnJOL;kLFz~Y6$)78&qol`;+0Q^_<`v3p{ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/download_manager/download_shadow.png b/data/themes/default/images/download_manager/download_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..51702859493b285ff3c8587c5b51eebf17e731b1 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT?!3HF?F3(vDq}Y|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfbw*|$b;CSsZ;(;{JY5_^JdVGe7Ri0cK%ixRNUm+b zN2fpk|DWS_-7;^jzH^yIMGf(0z6Hc6J5Z%*FeEStfgSZBewao=Q<5Ma?d;0Ab)iJjrkEbSG?j`8hW*7MwI9GZ^r-P8*B>bG&c0oL-fCWY4g@8Pv`sXs?8>{~Ey2xK%YEB9mgs62Sc+>WgO8 zz)r@>g7Z=A1b{|~bgKxa4HauL?|1!3`EFm_{+hBq=Q2bJLizAV;M7QZj>KnW#u{wj znUH8R8MxkH;Ch3l^_u#vvG5VXM}g}vgx#5@ir_WJYY5%!hzJgw8{yl6lR2WP<_IPT zCN$N2!5uqpd(MD1a2mj@P+h7BHpqTZstu*jnB#q`n(PAc-13}W%X4}`Oh$}40e~fG z0dN5d3zefF7e#PB(mY!(rfp*K8pu&QD&ge-^or{OMu9QUeRup&!00ML< z7_CX~`cjb2v{2MEC|9kF`(}5?03zyI0C@mN`srmQ`jkL61hSz-w`@VZE6{8gAfh(D z?a6VF&JKyz%^=@VM5W@zhces~{QA$|@{g$q^8lVeuwwhp<2`}DI}fY`?WZ7@MeAlN zH7lBvWb^{$r--q;hAu503LCA}iT0@6)Mdfj+`E1kh)xLCK)i=YBY<{5rfkpc*hyFM z2*pD^RkUdfc<=y?dj;!DR9vg8u|}Ph-Eb* zsSZ^T#DYRKFX+&Jpi;=QbWlXZv8#$D6 z;hxVu2M$+U*JUTd-_E6aJa^oxxntB^>@JMIYp2F+PJEu4+VyjCa>IjG%?L1H#XhaY zXO8|C99$0E^y>SntBK5kX0H4?Gy&WL_NeNUS|Wd=2sIlL!H4Q3iv^SR?V~T z$!xTV2MagG1<3(HtUjv63M1{qe_Hne4$8xNEPbSz4d$;W5SbRyfHB@&J(i1au54@F zT7@4kprXGHB3_5Ec%Ti0bKUvW8-RskQNoXxW;fpqLad$6h?(g3X+u~8?J zS_D`)RW#xG$}Qju@YRSt>!cHlttV>PsQ7>tQ9I~lQ}2JH$0~PGE&*SR5Op%CS6j{c z7p&+fK|XlsU{5Yp1=u|{<~!Y6xets2D}uOACjNFS6k2S>^Opk?y>uPy$tJ7K+{eB{ zd4W-oWkiR%vfHCAJ9bME+bFTN;dN`~RO}hxd?1rt`WFfyJN0d@1ED#vK-d~V3IG5A M07*qoM6N<$f?LE7O#lD@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_action_simple.png b/data/themes/default/images/icons/icon_action_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..1e71188230bfa1b7d4f331b8cbbbfc0518a5e9f3 GIT binary patch literal 585 zcmV-P0=E5$P);WJSXzxf3$w@6CK3 z^B6`J78clzH8svA@BN&rJ}|~uYwd?|&X~mnx>aU!zz-3*l;`>5abXdWbyfXojOkiyUvHqMuIqauas~Kqj5*iV#)Xp@c$2;r`XTm-%tW9Iw){`>7v7%_@0%OddW?@U!!MC3GZ!CL!iClo+->)ZSd Xc3!(Kas$jt00000NkvXXu0mjfau5D# literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_analog.png b/data/themes/default/images/icons/icon_analog.png new file mode 100644 index 0000000000000000000000000000000000000000..4207568932c59b00df6ebb20b484322edde3357d GIT binary patch literal 582 zcmV-M0=fN(P)000k>0jUvR%>V!Z8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10mDf|K~y-6wUn`oQ$Y~MznNW<5DUHHguo#W1Vs>RJ3$4-O3>@B_E{tz_;z+|j9gSOPsmp-GsBN> zhL5Fgw~IxH7eZYm*#52Py+21pcL5v$ux*UF-s|-~*8%_G*n5A2h#mtF08ap%6_FRC z(Wvv^VDJ6qpH3fz5LWyBexHcC0G2}t59@$wnu?+*4y)=XRekN8n~6$M6n9khCNrN( z)AYmK;5^S)thLuvbwfnXR8{q=-EJRbW-}g-zqDGdqX6E-7@sv7jY}dDVvJ)ES+drC zSJerC4Q5`7G2U~|ePaL+k%@@BSJf+3RlQ4+M69)Y#+XTxB+_g)cU9Fh^ID8?*%-4| zmSqSbOr~!lx&UCcEXy!+ihn83^A%&v4iOErEIYryHyjR+GxJ9x+RU0U*YB3qYx=+ur*V0N}lU0AL-!{WMK?rn7UOVk+aT+^qm#z$3ZS55iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0upo-U3d z8WWRi{{8t`&t}BH&CJZ~91|m>tT{_eH|op$PMO;hK;UM|r`6l@WSI}Rl8<3oNC%zs?u@pObhHwBu4M$1`kk47*5m^jW za~*^koit`w00kvWTq8Ealo zF>&f8MQ@fsk)t2)>#$94cip`#S1EdH$00854Ds$+U(bpgNc>^gC#WOVoMd{#H*K-P z8V;$o%x$c?n>RhuS-t%3XN&LkdVAJfekrlsNPpdi#^)1~q@|quXQ#$($#&AsN#s&z zwvXOb`{#(>H-q-dJqc2=YaTP$u6e*YnU_N|ZovVaYffFpibr|A-&m<|T=D4j2}z&b zL+?CTd&}-ZUg*a5(+`FBH7g#qJGUX`*-@vN;*#ImGydL6SXx{Yaz!tybW8lf36HGT zZR|Z9xW!6o&Z5qvfm?1Rczk3mzgiLE-rQ+ryktkz^ZwPp)OqX9?f=R;JJs=-(5gSL QfZk{DboFyt=akR{0MFW&wg3PC literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_bool_scenario.png b/data/themes/default/images/icons/icon_bool_scenario.png new file mode 100644 index 0000000000000000000000000000000000000000..3966a9ef683b212a1e620073f4a95cdad692ed85 GIT binary patch literal 584 zcmV-O0=NB%P)000k>0jUvR%>V!Z8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10mVr~K~y-6rIfLY6HyR{zu7e)0nc)GEo`;2Qar2#$@W?pNU<9t zM36&MU1cHq4|s)*X_6%tQ4ql{3Zl)4c30gMHW4=|Bq&N^vdNCkMwYO-%f(+eZ|3*C zVTSjlP$;mD+U@q~;c$2=pU?j)7K=X@^Ts;RAPBa{-BDy%jE;#_xHmv+ypKHh{&T_tv0DtD&K(aB4_FHa=F|S zAQF*#|B4M`-t8C5vKq_0hk{F`QmCpgfJ?1b>q@iPJPTY;(hptNovsB25Rn~#IF4%~ zvIUsHzHQsj4)Yxe_B`(sunXJ(ZYP&La9wxyU*JTKlTJ5)JMG#OmzP$uq^qmI(pu}USVdVKcY+{@kI6BBa4Fa@jBB&mEO$&O0H$e1>G&`8 WFP(tMlYnCY0000P)pp$K@`MQEMyh&gJ7AtZ;H%hwlK5IB-dsF zi)J%pbwp%QMD~biS1I+PR;%sI!_r{~uIny|$O92s zOj0obeW2v2*7|0pQgLSC)vTm3rZbsLUW>>nBH9v>GoI%i3B#}~BIf|S0dOgf<5z>h zpnxplx^9h`9cGSP*IhoWj+yTj26CA^_h390hPJDft3mwb5vN_@_@O(QpC4 t8WD8>ECSdQkzFEsUa!};h$zPYj^FnE2=eWKV!HqU002ovPDHLkV1oOv9vuJx literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_camera_on.png b/data/themes/default/images/icons/icon_camera_on.png new file mode 100644 index 0000000000000000000000000000000000000000..8c96f23aef37a285dd85d3cce8c8f83f31c9eb82 GIT binary patch literal 687 zcmV;g0#N;lP)07J2Jvrb?$;1}gWAV_{X z+4vP8mU?&4Qtl|!s0aqJ0UIEUXtdz)3_>0P!*RsH#jM zTyqk3Psxl`7!}pNWxv=7+yijhBE3NG7F)h_A%M@LvQb!;+yz#E>+y+fc*pG1?s*l? z0WY0oWUiv+#m2m|qTC0*fDTkyyKb+?GWl_z77AAdE&@5<&@^}4{#5Z*#4~QUB11qm zPyn*PZs5RL%Ue~ed$v9N;-5YtfFtRJn!M#-5+w>W06EZkuqK0{&%@KLt*iX+`UQGt V&4WO$(OUoj002ovPDHLkV1lCKG4%id literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_camera_simple.png b/data/themes/default/images/icons/icon_camera_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0f4842e812c2a496d5d68311c771ea1b2682d3 GIT binary patch literal 611 zcmV-p0-XJcP)000k>0jUvR%>V!Z8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10pLkQK~y-6wUjYv6Hy$-fA5~LtDI9-sf&n#3L=z(4oNqm!`*b3 zBXx2RGgX4K1iLiB!O4c}-E=nyZcPV;lp=zKinv%@GkLhy`0hFQ4oqz>sQBOB_y7Ms zzTxAEdcDrP84ic%#^dp2fNHh+snKYBpT~$Y<0y)5YOObc8^D5*Pk^^Vhz;NO-^^mI zS&J|X`&#P*U>VpKLTm{kwt#(LS!;a|hGGAY67THnYyeMyca~+{^*rzB*L@tvwLH(C z1J{9v&1Q3RZsI74t^!@)SShu7+7!U^yd$O5DsT*R4O4EcwRVl(X|-Bk3O!BJr8G^K zinrNy0Lw6QjZc8>EX!UNT9PCqrPQ8MYA;EWQK6fgZNp4WX)BEBEv3|p$z*Z?pi-%P zl~S&`uKT)-o7swgo!=6NVfaW0aVg8Pd+m1nn@K&&^ZW{cWmz9x*IfbV^?K)R+kU3C z{u~6sJAx`@a8ypEX*PQtrlaTswUe$8k+cxeF`;9m7lqoYjgj4EsWe`+x>s2_fDC xXsxdSw*jHGei{V9gR}Vm_6g1HG5p=P`2!FE)FDTs5fA-tZC-^8uSL(il)AjYMp+ zrNv@nBa0v+HY*mEtLQ%vVX;~e*+s-cunJfzh=RC^g{&fe5G*ryUXl0mwlG=p@~+KG zSVIzpo$Ah=!Zn`8X~esM7v6Zx#v#Gft>+V6AP&ar{O^P7%?zh@A0#|Hxo4$cxB10B-?YilXRsx7*EN z>gEzN8)hDQp0_fuUS__>%wnx=O&{E0W?|;riv$x9V&+%OEXJ7n!4fV2*dGiATVt^A z`{#ST-cAq%tuPEv000pQfQLzZ5o3XrQrDv>+OO4WJpc&9@c3vndfe~#mxu_i>(&9( z6XNIDZ1%L)I-F@^0@@f3hqvN51^~FO8z`mD=JWZ_(^xf&Kx^I7S_k93<2XSsm-{vg zs}d2vTWf=MyPX1nOeXW*ah$DmI{hn^N_`QLbs`!jj;$nu-=DA;W9}x(Uinw+8e^U^ zvv{7jJb8hLJOS`qDYe<@bWSelgR4Yz8NjDvvG`#^P_0&f645mg$tk7YG4qXaIZ2lm znRyeyBLF^t)x^@jU9i@!iO2?kJb)p99{`R5IF>-Z0$8h5Dj(-gqcLU)z&a5%0W<*Y viO4Pyy(pK<+e8#iPa_@XKhX1f;eXd38=wgK>Rpw;00000NkvXXu0mjf-0>2h literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_cd.png b/data/themes/default/images/icons/icon_cd.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae93a96e893f3c53ef2c587418123b119972d28 GIT binary patch literal 675 zcmV;U0$lxxP)WFU8GbZ8({Xk{QrNlj4iWF>9@00IX|L_t(I%bk=@YZO5c z#oy~46I4PXF=nP242YQEH3t#A37$OU=vVMF`3<~?2QPx21i?R$O9TbM5c2s$tKoiy1Tl5U2nR&fC(mv-EQ}ina$z^#@u4lG;;uM0*C-g07Y{3Nt&cB zk}u1$+@A#2B9q=V8Qm`?N3sAbHEo zR{jAtO|wMu#xZfiWZ-%5HuQoJXzpCliaWx0K1KWy7}QPP^E zasq5)Fc>_k>$*R&V@nE6(<}psA%rSD&piM}(%gM3#+Yjo_yfl!?cLso4j}*l002ov JPDHLkV1m-!9vJ`t literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_cd_glow.png b/data/themes/default/images/icons/icon_cd_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..810d0500f908e1e8fb9f507c0a6fbb688b8d82f0 GIT binary patch literal 768 zcmV+b1ONPqP)WFU8GbZ8({Xk{QrNlj4iWF>9@00Lx5L_t(I%bk=#NK{c2 zhQD*)o2;2Jg(S$0Rx1fI8iNX{)wGESk=9Zm(ZZ*Qo1$$_3zL~aC|cw`A_|hgO=0dz zin2yph*E|j4w4hW%)ED6yqOs1jg56ymvis=?)lF>_eeY*=Wo{BKW(jqGaU$ubq zbxdjjH;2>h#$_1j0*(QDN?Yp)bE-Pq7%GhG*vQYiz}!&!swiVXv`#XMh+d8)2WM&m zvrZ!1Adx3PoSmDha66iGZj>FSyl5bj_(vFkh;lvWq&e>m;|KioCiDxSyRCR1+<8A6p`*K;{JkocS6u-R>GMMfrG(YbrQ&e zS`}U!kx!!XJXlQ5`;tYvf)aVHh+C@ChNwPO;iW*{cX>-FKdQp^Z4Rf~ZB=5`T2U%d0WWHNs*9?eR1ZLl zBBlUhD_#%K8Ei8i0N4PY#TDc79%!sO*C~ch5Y#85f&K@Sx1s3j=%24w%5sGNv%DJm zLZhR_EyE#_a_)oNq}04SwC^hPMw8Bmz_jt91GijPPJq0tJGan>#XLu%N#|MJiJeU( yLc3QZ7d)X$AchhHawu;E<`8c-oEmyn>!RN`z~t>Rt>X*;0000|yZ}|hF%~EYgLt=u3jcbShfYunp z&X5qQjnzgh+=6*4iLu?z*3L~JHd|2}8nBXrf(Di)1h^LOp-*u4LC}*-GP(EMFOxfS zN7ZVT|Dn;Fn2r})Q;aYRz&Ts-``TVnjfS20sFplY#0Q{qCADoAyqs*guY+o%L5ZGk z)fKUsLA!#cpb6{%6-8|Je5-yd@SzV+!5YARWIQhg_c#u2#m2_o0S^RqU>~fJdT$68 z`Ups}g^9#{{*^dAtpVTS;8rDD0F-%)!F|6zEhuAb#B08D89#7uW29FmngH>d?_g{Q z%6-2+T?jT^%x1f8K0dBe2e|jJSNW84cmJ#z0v;s8MuCYR@pk)UIovPuUjxgct!y`! zkC%df1U7@1IzQ8D-t)UA$NAekKJv+~pe)(5e4q0=UJ6w+eKGhx8C-FX0StQqn3>vr zm&{+y_gyk?rZ!-i_nHPyUi$d00f=-!(u;yQ(q*96rBHiwD=^$`q=$kp_0K<{yXYrq W>6dz!>sd_z0000L7rxXO9TKBcoHAgfNH(J4 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_config_fw.png b/data/themes/default/images/icons/icon_config_fw.png new file mode 100644 index 0000000000000000000000000000000000000000..61a0a1c70388b6fe667f7c8690573a759f8b9311 GIT binary patch literal 6722 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_config_info.png b/data/themes/default/images/icons/icon_config_info.png new file mode 100644 index 0000000000000000000000000000000000000000..c15a0c9126c2b60e7aba9d42bee1398af3342f81 GIT binary patch literal 7863 zcmW+*1yoee7hZaS1$N0Lgr$*&rMpv7x`ahSIt8U0Tw1zQkVXmVrAtwekX~9z0cnN* z{{H8^d2`;(dFR}@_nSNSeP4pUt~v=39T5NkAkoxNF~sz-n5G28$2`*k4RB0{$CHR3wLqg5> zHXay*8G7WWYUZcx>F(~};RjImaj^4qcn%AA;pYr9a&~~JYwGBqJZJX+02oO%RTPZ^ zmySX#6Rj39SC{q*Ea%*67K2~5S7+r3q#=+MY8A5_d`WE5(50fGH*zBJby#lKoKst@ zI1=IiG6}G86*fvpW_pz<_6>H%gG3`**}*|b5>v-Z2BC>{zhzAT|8gsvb?jl zc7N?-fZV0z)mlvhce*h9(>#83Sr?gJ;hn_6anJnP9Rv13@r7PCS%_ML!F<)3C#hid z*OM6>$^$@$Hd8=KRHT-AM-K()gNLHr9je5Vp)fp^5p6~=<^+Tm!UQ);X1;o$(8
  • o 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 T?sIR9gbdJB)m3RwvW@&7(6QXj literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_config_l18n.png b/data/themes/default/images/icons/icon_config_l18n.png new file mode 100644 index 0000000000000000000000000000000000000000..f73a54b46e82dbb05c47931a35f3832286b52f6a GIT binary patch literal 5553 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_config_network.png b/data/themes/default/images/icons/icon_config_network.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5ff8c73eb4327cc65262e739ccba9822e2ad1a GIT binary patch literal 6570 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 m3qn>4Cb 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 WRDULohzc@95RevE5UUV14EP^bpisg9 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_config_terminal.png b/data/themes/default/images/icons/icon_config_terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..cf85a679fee9a5da302c0e134efaf08866e2ff7d GIT binary patch literal 3135 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 VgZ5O@Y1{w+002ovPDHLkV1flo%$ooJ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_edit.png b/data/themes/default/images/icons/icon_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..46bf239f92e2e708021333110bbda3e326883be7 GIT binary patch literal 578 zcmV-I0=@l-P)FG=%?bn4)u(!~xgS`{Psm*-Fi z2M1k5R8$c22Xv~S=#Zd;lBXi5#l=MzhoZs@;$m@7sFM%}akE&lf_;tkHSahHw!LYS zobmk5{ct#3@qM3es!&YH9ZE!=0V!Lq=+l&!*>C%DE#c_my#Yh>1*r8q0p+&` zhmN}CGrw)2^~Uk&{R~lK9Av#MM&+y*1Xas?Pz zYw3L!M@F(Y^YztGu-rH*RoAIHkAdlbJ%Ndon(ghP%ivlV3d$=)H>sLk3fB-${G3bn zxxxAG?V_;c6uFo6y&!{vUXp~7?480D0Iw6#2FKd`*kjn-cdInng|(>u0wem4py@`C QcmMzZ07*qoM6N<$f-$xY)&Kwi literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_flickr.png b/data/themes/default/images/icons/icon_flickr.png new file mode 100644 index 0000000000000000000000000000000000000000..86d14a346e70e286bfb2765d16512c4bc5408f7f GIT binary patch literal 6883 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_groom.png b/data/themes/default/images/icons/icon_groom.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6120de068d21f3547e503bca145c3282b76c46 GIT binary patch literal 758 zcmVnrNTZ|?O`_r;xFWb#aR7`E zsuC!Kf(EF}A^3ogijSzT#ljN@WD6k1L^pyk;k%9&P+PF>s)7k-17|i7q)U^*vv-vN zz@dF#Tz_WH4ND@|x+SieE2a>W3PMR4BPr11;+SoYs!k%hIo;LvHoeHvLLeKjUr}_S z=>C<7yECobN34|}#)NiKRLWQGhHZt~XvzeInMs9;<>FpVpYdw?%(7mUa$}<(j!b=- zVEu-96Mt{$N|u$f(^%Py${rQ=9AIp>faI%l!vaGfgQyNBeLL*lY0Ljnudv0!lmJeq zcXUEkPrrG;<1v@fOz+q!gmXaUGV^^FmCka1`yGJqt3Mr8)w|OJV;c>C5o!cepQ#=l z$vhovNS3DVzwWQvjz}HI%LRll5UG3JUsY8gfA8Ds(Z=zT(N7A;5StmfRPPJmWV6{2 zV7le{R>#OiRStsO4CnOr+FLC@XWP1~Rka;JL^?~ln)?f9Z*B-}*d%a9;H9X!lFl^^ z0eGI5m?w_OH+5BtV=kZ^0euiD*UECOpX1Gqp4=3fi;81@wdXb^BF-zE z1o}V~q!#5-WTm65r}@J|J000k>0jUvR%>V!Z8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10p>|WK~y-6?bN-C6Hyce@N-@go7GN}4T39LSPG)eidfBv)q)?O zk<3eBAqaLhf}Nl?vLY;K5t&IQU}q^)2>J)?c7mWTZdQ5050nLAN#Wr z?!62@-aW-*5CoXTF*8wT3703EEX(MeTbQ4p{}6`Z@Lzy5O?Rqlty-4&&R8<&b-U5KCz9R_$`=-Gn(kF>L&#%UDybWNtx9Ve9L@FLq59hwGOoIVD zRMpcYmjEoOYBAp!M?rGK4{LtCy6-thFJ@nla`ufL8!UBC-Ym41xf?UT@cE zG};94Swzl}yh}0=kt3y2X(%GM0NgXid@X8g?aOYryC@=uRP{2+MOD3Rt-Ue6aih`L zQq}7K7K|~gBm2nb|CL*t+ zC|aG!a(y@)zNl0x+ePi+Q^uIhD2hJ)9u@yTLdE$Br-WFU8GbZ8({Xk{QrNlj4iWF>9@01S0WL_t(|+U=ZeXdKlV z$NzI?W_MA?!1@gym#pX@pp^|3 zuiLPf4|EVvu{Er4sX@rBkt(mHHtZFJ%o?ro+OMZ>r2)u9I96-bRNl6w!wv#W0eI!3 zRB@i&BL%@$8h|V|IiRug;-F}QzCO^EkVU{A0Jq}bs0X{2qALL_HJTit?nXmHJJ||W zGp&Hk06XRWcFRpPTJ1BGfX=Us$qcdzAS4{wYZ10wCuX-n*9TpxWLIbo09$B5eMo~o ztD5T$f*cl_CcIV!;G(k80PMC^ciELHwgFh>rc{JUG!vsMl`Mh|m7(h87AYSYaHej# zB3{>0Zd=i{)yzOU0^kw=Q|Mz{nlXbwzORUKLf> zO~yzS*R99n@txwurfFhkW(KBdw%zkG8zBVIXcT>YeNa`EpTFadJN^#fv=F;3ArTHL zT=`0!VoBxHN{d7y-R$CQHjArQueOP-pcM)Q%+1YVaBvXea2Nm(i^Y1&!V3k=cosnp z%DPcw9?jf1Pp%S)1i$&hg$p=y<_r>v1U%1c6S@uyhr@`+bAL?VG5 zJ9eek4F)%Oy z!!Y3cJ|sy(c}5eeC{&SJ#VS%`dKHwM@quC6HUJ=(%i+ThKWvj(0i%@Sop;{h9+U~I ztms;h7svY=g$(gVSy1)@YrE=|wNxsFTrP)znuLrd))<;urj&vPMxjusnKdek0zyce zSRLg$j#G8kVwxs8J3E7BM%A)xGzuC4H&+exL8j|EVzF3I^`~tC=6N3S`8*GajTF{U zf0s|)7+ni^T~k#R9UUEQ$W53m%joRvY{>hSmEREHW~Oy4y%h}LT4%CZbqRS^n> zpzAtz@7|66{(fkh231u#{I>gVQP6}CsHzHG*P&?|G)+S^8pYF3KaHWGAw(h(-ooMV zlHIu^Nr9~mdX-F)Bq)l4C!Tl$k3RY+qR}WcO@ky!2!%q3L?YO_bt~R}`)zFAyt!#t z#(;`mgL#N`m;*>+j9%5Px(vd^!~~8WJ&Iznh>?*I_`VO{_dy83v17+DJw1(VHro`K zO2CSu@YwIVE?n1z<2djly%J;`Q^-KjZM>!^r3Juq+FgE?vTv zD_7t+4&HzNef;#(PoR|Y>lvJSpk-NxrfG=9V$gLR{r&wYl}gBDGAI^{C=?1Pl}d13 zx0OLl4YUP3l~sGPG6a@vMd+x!ZLx=b}u3;E>?X}l%{``6Pz7I<2dQkPsPOoZ#xb3#vaQygj9($9?B%XZo zNjQ!JNs_Q@*Df46as-4B_`Z(|7cSuN;lsS3U&~u4iUM8NF*rDgXP$Wm(P$K=X+n}D z^!4@Og%@7Hv(G+@@$qp!jcbEmW@9QEA0Nl-ufL9PI1EXWkV>WaG>Q;{-+ucIZ@&2^ z6h(pSx|o=ls0)O}aRz$t-o5DP=)ly}6i%Kz2|@@C9z2M?zCJwu_~Ur>)mLGfCLG6E zKlAg|1nqeq48y?LvuB~}Iuu2L=Xp>R1w%ta7#kbI{QNwA`Q;Z-N>M76P%IW<+cqzv zG!h!NY}o?SH1X-DpJHli3IOosmtSJ<-o4ndV+TT^5YNEN>$~mg)p8o8lxM!Gs^a+Z z<9PVthoNa24jedud+)s$p->3#zWXj7eDFbjeWQsOE2FBa3eWS9OeT@f=V2HIW@cvK zx-N&j-ik4+3YsN9lv3>5w-1`8;hS&1;mTrDp|{?83;Xu%!?tbP>MA)XRx@*57q)G~ zw(SKmo&jD@pp~`wP}gq~=;4#Pd85 zLKX}d(QQ}$tCFXKBT3ebqs;j$$fepkI0A6+Q?U;AYfQ&kc+2IueQS^>W*``KCMO z_C=7Q>OIecZQF~Uu?@Nb*T>+psSXj$V;@mkJ;4FGg?b>YPqUxXw{pp;^I zdK#xspT=X4J;vwu0PywKUqjb*3=Iu&g&T%}6DLmK_uqf#Ua3{wI9X}Mu7w3Do5k5s zC;+L2hiQ!y`b>&zylB9{`>Fe?wnQEhKGl-apOj4nzkaF1XgO$uZW_H z#bPsCVpbfoIJGlP6CZ#4G0vSkhb>#S;HjscLL?GFCX>M%Z@htAE{8`Rc?5UgeK#nj z_~C~i@cHMTBNmI{x#ylkEEdCk_uYq6r%u5%O%Ots1&-^w$mjDbR;_DV(S~8bFbot5 z1(>D@%d!?-W7{_WWx;B}Wf^?XnlppUlCK|s{1KT<2BV{+NTpJsl;X^pGnky5#N6B* zKKtx5{@uR#;tQnHX-rK`VPs?kilSg}aFBb3>s4>DSVTIVMmn9Y3b|A&!8A?Y_oit| zE3WAA@o^43nM@*`PFGd6Wm)Lx=vYy8GsudfARG=a_|>5pMp%N!%Bsa;5w7cEetsUl z@8jCFYcLE0j^l9G4gj;WvoH(;s;Xjkc9th-;#|C$T!bZ_Y<;{DOD2=BZJV#LXR}%5 zhH%~Dh|OlRyavtogDp2?wlgIbi=n5dhu6?qvc#0f;5m*1%d#Lz5_h}ILwTOJV6ED+ zELfJcC~2&QO#^O$&n*RaMxXT!S{WPjg8^dsZ*GooLr<_Ns_q2T-QaZR01Ic*=!buVZe1= z5JGVA;zj7Xj+vPm{=BAXa*vS9<&ewe_&qoJ6ic~L9z?8`)pOUP%Lag5yLRFB+i!>K zx;T0AB)lWz5gd!}C0((`oGAzn?>8 zUZ|D#n=7sMz+wi?R=jrZ+=)meg0ZnNeD~dVn46nJCX?aSD@rL6i3CPQMsVrUCFJvY zzHjX6)vK78m{<^-#TX6%p-?Dr5Vq3lSIdD8Qa7ttPft(tsYt0*;@gu-r4lY)yoiGb z55o6-o?uZ*IV^Dxnds`7ns3Cy(7FIEE{=?kkHfMoY~Q|}Ct8&&O_Wj|-^Ii!2%NZ} z5v1Bmz^wqhr&X=)Z1u z=F_S@m(rcgT-42HJKREUgJ%|QqE@LZ=l@w{Do6^7au|*lgVMcmO%gF86Ce_Wt9Rhs zmH(jg=B?QGjAnYEWFU8GbZ8({Xk{QrNlj4iWF>9@01RYFL_t(|+U;FiY#h}Y z{?5$o{l31&F?M2yB#ujS!BSLG1(Hw;M34v%0Y!>J3#xdipsIK&ed~LrQW2!U6R8sQ ziAx(I1qmWZ6CeoNP$!CWCC=5(+Us5KZDx1Q>4RsS@p@)nXy}_0J0vyT$yPfhYsLPcGt$_a&T#xsejYH zb{X3R3m}&R%PYodu3Qyh|Gxvzs$erK16MY<63ugT!4@jylWned1 zT^pO#{9DohEGkyeU<8B8e8~b3Dpc9LhP7S*KE?dXRR!Fw6UK=_QPu?ATnM2Wpw(O~ zX#mbE^UP_OTV9oyw_ApxyF53m;o1iv03Zk;Fc=85|KXvBcJ%ptt73xCqOLGjxj%1? z%Hjqi0FxLKZ;Im0f6vW*|Cbv#zSTrdqFESJr!ptn5Kc_OwVIDra038BiUr^7?fvB| zU0wV992W#3ATAd`nix915@Z=DEfm({+3d*gE?)fmgd9Z92Peh}?@^Rch^OWYx+FK(XgPBR7x_xx7*Sm@m z0^aWjiAEPd&gUVPN{}gSBI6{;06c;Ku2cfw+6od5gC&#TMA7wREVk-jGc)rh-42Wx zZPa2d0X)Ll+*h!2W^4)IR7Z1bf?Z!mYk}5^*)TrGS2fVf!nnGkmgMID zfntpJ`QVO5;fY4!iberSAohdUAh=XRTaFHwY)PD4y2kUVz|v!kQPPfh(KfToNsoE1{%+Q$1- z540vvfH5#iK`DKpRW~67p*3sJvT-Bgn>WMT*0y}YWZC>Z1Oc9S9G-X_;k9egyJrvb zckg0mYz(twW0=2s^}&R0WsaHBW-Uh4dIPQ7UMV4^(Ss8NbnV=UmBYhug+li~qeBXv zx4j)JhljCpcom$`3Uy(;AgMDj_I>!aq-9zuwt=pIa&)Ywa#c$WlUEjDQmBY z>Qv3s^)ALd@i+!weHDSOu8Kufqet7LkHXv9it~pKL8`;XPMPcpO?zv0TU14@+j7oe zWvh+WiDBXXer$N<6}W@Jnm}fZL7Jam=$q4NfDm{h5xB!)xPn2D8je8)ySuURjW=-a z&>>`Q+;EoB9H-0bx>w!MtGeq{jCE|?iZy%pf)j+Q7g8yg!|b_pNc`{v<|ijnOs5UQ zJ>hw{LLr1#uSV-5k03rc2;S?hx>)=9Yp-GA=usp_N1bDIS$CtI^ZNGDIyqVuO`IGn zAAcPE&plUFKBmPYrp}(ly|FQ*u3ojC$7LDv+#Cv{qnI8Y1>t!_AAT5Zn>L|iXb6Po ztyMjOfOY%#gLAua_nU7V&CyJ!(`lGsviKpChTgHtdSC#3yLVd;)r?{4yYKMh@#7HZ z=4xjVrIQ*8q)y#MOB~X>s%2A?40j0*!O?Vyy`}V;Ti&c~u zOZhy`A3ciX#6-i}scWBpip=fXSpVXS6*o$J?d@2*cQ3{dAGUo$mU7&Ztzf&1=Ik*NMGN50pGx~Q&Sju`)$llOw{btu1$}R$ukTs%OUzfa6RHuv=e$jXO1{O@!kR zU$X|Da9H>8!rUBYuUxTRFx~j-D+D?_(P7eS6G1@F_U*WI{J4GHLc4p_s6Kj`Qe$J1 z0`2W+9~?9lMvA!{u6_1dO`9ewhlbGq)KjLFli7{`uP5YtjP5Oa|9a zox-Xoo-lo0%fJ9`oH8evDE7QBt5TKO_kyZWGMvnGIqwrP`N3MSUIpk8Q z_Kg7xKvM_Ky-`WRwUa0D@Y7ElJ}0Bt_1=0n7nu2?vb+Ga1HSH#k3*IuQ$Ml({;J+{i5zOPkG7wqp*dY*BkaZc`b=3i zbNRAkr!6fp+Myc-OOk}yYu6B4z1lc@_xIz@_upIINz?74>t1ymH1pNm1n=^C5$fzT zo&0+f6OP?jZwY7zZ{(kzm_Veb$MErRcQ?RsmeLXrI3k$Te3VGGvBG?@*rKdw1kB8p zD~_E*V-`-SI(hCbap@BJckVRY;UXLdcO-&bB4KI1wK=+Bf{D7Kq+AZgd>-?+ZXsJJ zAZf9<004J5jGRd?IX5|pdk)?ik(rr6s6y|WNhFZGdDAhUiA$FdXm2;}DCXxa`Ezp| zeBm%kq6oq7U#vMAc7R`2LSd;`L`jmW+H(~=9>|hpJn7TZHSOUp%bSIQsXqWHiK3%E z=clLPjYf?_vfFLRAII|xb6hNfYxuzfjS^<(#xGYexVTXCMn0W(^bDFzsi{Bh_i$?D z(`i$mu3*rTKf`UxdIPQZZ~9kT?z;j3Q>7}OPCI(4RIOYq3MLK%ZRXP*3|jJM_Wvo= z1oXN$|JEfX?|F*Jgs+%R2INdSRLW+eRLsSwC`K|tFX#37Km!XK1etIgS&xXEVEuS( zA=ZYZ$r_tsJaW-i$0j}P4Z>StO{cs;M}5vv4lxs-g?PIqey z8x~P=1^l7*o+#(_QQqt4_&~@lgd%=dB%X7}S__x|`loB!_xUd({q02%{L!rd0000< KMNUMnLSTaHBV5t| literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_item_screensaver.png b/data/themes/default/images/icons/icon_item_screensaver.png new file mode 100644 index 0000000000000000000000000000000000000000..74b3e05a2ec722785d87cb6ea48803ba3656c844 GIT binary patch literal 4028 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_item_widget.png b/data/themes/default/images/icons/icon_item_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..e42ab008bffc85fcbd355a26a5e77c5cf8a6e471 GIT binary patch literal 5863 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 LSLMBub=3a=7JhH8 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_light.png b/data/themes/default/images/icons/icon_light.png new file mode 100644 index 0000000000000000000000000000000000000000..cbbd9a713b0044a5fb141175294cfe2e9f882a96 GIT binary patch literal 469 zcmV;`0V@89P)WFU8GbZ8({Xk{QrNlj4iWF>9@00B8kL_t(I%e7Q7ZUQk7 z++F#uvqS?zNJFo3jCn3ZkqrkKt zk3Bo90muY1H_Y7R@>MP|rSuFpfChfIves^#bCaQq&bf)TcEil8Y+*#4dhh2Ugr*lq z#4RFjd(jX=i|wbuH0lkmv{FCy~oy&nSr6h+Z0rCznxKiONs%uSy@B5p^c(LzKj z@BKK0(9^~MPyxX568~y=_rSwO@v!h7wr&?^9Am6SWQK@)B3hq!1re;sZ#0SI00000 LNkvXXu0mjf2O+^6 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_light_off.png b/data/themes/default/images/icons/icon_light_off.png new file mode 100644 index 0000000000000000000000000000000000000000..11dd040432fe7506969255c72963f3661f73cac4 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolQtkMrnqRWi3!hw!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Hwr>Bc!h{fr*ldSm;Iqh7PIDsAy2(l63E`|YAt*E?n~G|Wslj`r5<-z$^;NHO-# z-o8t*q4^ADN1yx12u|L8{hoEz`-1PkX8qItxO_=c+C0}3WhDVYmz3mZmS@AHXwU!v literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_light_on.png b/data/themes/default/images/icons/icon_light_on.png new file mode 100644 index 0000000000000000000000000000000000000000..09560626c9d527423a8f096baa8c74cf5fc85d6f GIT binary patch literal 504 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00CS{L_t(I%e|D%N^c+DCASHwj8{N5+K$I@g1gm*kF)x9RwGs%@B;;lhvqurB8dDSFWEpF!z?InVRNiATRh%p% zT|%U5A%s|4R@yAgq2?MHl`yt7A4Of@W+~`Xl>ZB$BD@J(>R4>I z?=zR@NA-BwzVbt{->G11YYCm_pI=OW7W98v-Ujq%QT%Ut%RP0n%$7SBJDsbQ_s9Af zFY*%U5^}l{f`>Dn*)C4(B3**gy-&A7=^oN0II+vjc0-6TSTaV_Uzx^=gSQP3rS>y9 uT|v`FGX7P|e$bfsL1VJ{>$bQPS@jAcCa(A=c_D8A0000Q0xQ|Bk2xqiA6v{ zkh9qR9Qg?O3|Aeq$7Mv4N(iiwE~F7sS!ihjyIU%x$llz0HW!RxvssnAYWUCp{ob3$ z%uv7I$8CgaYP8nwT5EUz8$6jz?p=|d19*0Wrye{Sjh=Y#Ppq~3X_~g?vRv$^Y1*>Z z?$2hk@8j|KQDblr1g8K_M5LEx*){+urQQTVun7QJmTikjPee{dq-YF|qUcO(y-GxT zK@c1RfcO6HbUM8=FMLcyds^$&D2mRi7IOiS?27{lMWV%>{Vdw$8cFuLKci^7t TG}Sw%00000NkvXXu0mjfM~eNn literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_moins.png b/data/themes/default/images/icons/icon_moins.png new file mode 100644 index 0000000000000000000000000000000000000000..e002e2f81f87718511ef19a90c9dfa98a19ee27b GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDVAa<&kznEsNqQI0P;BtJR*x3 z82Eu~{tia56HD8Gf|4b!5hcO-X(i=}MX3zs<>h*rdD+Fui3O>8`9MjSk$?4F&lqwb7X;MjpmFehkwjZv|?sH953TF(yEr+qAXP8FD1G)j8!4cof1WOm zAr`$?uPAySO%OTu@&8U~HpjKji$hrqXQwa==56j>`&Kz)gT!C9ro@Lwc{kpQ%m0wf z(Ufp&Rf0s$=ZJR)jNVPr{c+^*;rF(C9(KI{?KAPF%B%bbHs`mm-P-)Sxw|y>{q)pI zORGI+rW!s=;;LYakxrKTWOHAFH|(nV13`<-SxUH7H*ZfL};W!8O<-!Qo=ZMu23Ss|n0y8XdpGmIbbMMU@Ih3Q^e z`dxdI&gX{T@)}B?j6~kujR?Koxc*&XXlzJmsWp&q!E@ML(30U?FVdQ&MBb@0FGCp@Bjb+ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_myhome.png b/data/themes/default/images/icons/icon_myhome.png new file mode 100644 index 0000000000000000000000000000000000000000..98c3afd1586d01fd57b3379ac108553c8b7f3850 GIT binary patch literal 908 zcmV;719SX|P)WFU8GbZ8({Xk{QrNlj4iWF>9@00QtyL_t(o!|j+|PZLoP zhTpeaD8W<^EZws-V&%h>k6@6%jX%Mk>klv?hAX&1Yy`B$)N{5}LbZWd=rUfo8mZWA zVY{@6bF-G9xHk-ZZwrzHEauK01<`K!K z00x_0pNq(QrPL>q(szKym~j9L0PY8fE)nT=}-W9rPNtZ0=lki z0hkeyX#lYsPIF1}1AqhDw!NMK)LKuH%mEk*Q2pXx9|q`s7m>Wu|PaVLI!RwD(hR4R!^qmcuU2~fQtxtC6-i_JTwh_GBPKNgWW z00RN@l;ZJtK9x$d``mJhp9nLqv7}{Fy4M zN~u!ZPYpXH7e%BR)lovIJ>SpNa9Ai5w0|@*Dk5+3D~URe^A*6GZad<-ZWh3_-|rQ} zp5Om5yH^4+!fk#^L>5G3NJJKmF;h|4jRa6@odK}a^mxgC-rs`wK>Ehxu&%q>3Kk7Op@e! zKp%IV#7V9jW0Jl82cO~ZWBPVw5Ww?Z2Ryyy_>(Z5iHA+6l-dTc-795WKlOP30dECJ i(rtAgLC0_-`#%6k|7=3A;-ky}0000{XE)7O>#1~Utny70>B>p6fzvL&t&CC>S| zxv6<249-QVi6yBi3gww4844j8sS56%z5(x3RP%rek9fK`hFF|_dr6V+kb?m01^Zwf zmaTWAgjmE6C>T@-i73W2I2W*~@O2(a=1_@{nX~Y2?s|u9&6=E9nUh0X^wo{^XP;%S zGgET%{kHR6QlQAGC~JN`VL`?l%QCIFxWeyWOnugEm?kR1_JN^*b%WutHO_~&t9YuN zv0*Xb{XE)7O>#1~UtnI`^*M=5atF*%H@?66gHf z+|;}h2Ir#G#FEq$h4Rdj426)4R0VfW-+=cis(C<#cRXDjLo7}wCrE5t@b7=UTF@2Y zwKJZdv0eL1xLiH(ZUS4H+Ooy(>z|v<-8I`Wwpmg_V&C7t=Xd=6y8dP8@ppR5R~?-6 z#>Za7BJ!SW<$vu(KVH1u8)6*MGxy`gB=yil|G>Tr;r5a|E7CsPukVTB0fMP%UD;n) zB4j=;6>)QFE1h4N@c-NO_lNZB|E;e1cUocJg+Sja67CxwOwO?`ysK!g5<0A* bAj-fngUPF3Mq`#a(4P#Ru6{1-oD!Mh*rdD+Fui3O>8`9o=8akpZhDy!gr%cmm*s^STmdhC{)&T$kL-CINlS;OXk;vd$@? F2>^LTk(>Yk literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_play_simple.png b/data/themes/default/images/icons/icon_play_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..7638505c2ce973669e97b771e2606033054d372d GIT binary patch literal 420 zcmV;V0bBlwP)! z0KSiclTb1g99%L9PU7SX_yA6A25$qN#6b%#?XBMWuSq@*8IH*F9R4F5J2b`|8Dq}> z0*j%Et+k1Bt_dM9B3>z_F16NiDm*xG(=-GC(tDqT5H8xby|vcLjp4o+BY5wZF~$?; z+`YASF$>(|UDqv{`OrD{P*s(h1@80SC(OJjrF^REdV4nb8()MFcA5FvTDvtHJhflL zMARYTtCVtIYyB|`OhhXw%}N2S!M*1B8wX6?j1DulRG zN*zx@N8v2XJOD5etq}1#P17^2HBUhSMs@|j*AfDNow6)%rh=2;P5K1c*K^ba3*E&4 O0000ycSz(=?lPUGEPDv~4Q@Zi=Fa1_AnKWX72LJkJ*g0ebC5Q8ZE2ouL2#*dqB@Rn=K2 z;6X$-NFD=t1#qsaYaxK8IF8?vB)N0WZ3DOka1io|qiLL`>6f+kgyi#FKv|ZnBCPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyc2 z4kZo$(B_{200EszL_t(I%f*z?QLbAX=|4h#H+ zy5}xR!A$wS``L~0YS?r8l>?D@abdv#l&84p7JjE?>B?6y@KZ*!NG5KfmB*jC8}5jn z)E5M-%oJ@7+0QH}$;@7p^mOO^QSjH`00ICr!H|zynzLXoGX<~M3+HutgS%JRu$RuN zx|WZspQZ3%0tBUvZKvT9K#GANbUGf29Eb7(XC98Ll;R@SmBPplRQ(aik*TazG~w8)nN zq3xrQyiyVC38pQTo`IA*07eM6uO^s3- fduvWZ0{^KujgFen`{VuK00000NkvXXu0mjf1YPw* literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_plus.png b/data/themes/default/images/icons/icon_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcc510ad3bd175bf97f5b3cc357609f3e5b298e GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDVAa<&kznEsNqQI0P;BtJR*x3 z82Eu~{tia56HD8Gf|4b!5hcO-X(i=}MX3zs<>h*rdD+Fui3O>8`9M zIEGmCCYO|!rY>MjSk$?)`OpJ>*2%W}M0~y}gxPX$NOPQ76kOdH`(+Y&DO*NZQ1UjK8loB=s_kfD28zntw_s!{#Npq8jgFSU$DeE2B;U@ zoEYOEOan&+UWnqoS{tj{uk+!7!I5@m7c(XZrbV;>AkwMga@uW9yJy&fa!5qZ+Hd zp$H0%IStzHh*~PtEb~si+ z(7p4OA=i2OJGI;_d6f{}C9#`>mZakx{~6Bao2jvCdu(u_xCZhv(RG_*!3H+$d|taV zVb}Ki0xMkHb^MX`*!JALtRmO{3k*oh@UUL?FRj*U(k$LRH?aG2S>Q;o;Ev@<5WZCt z&C>ItJUd%m{}Kw>9$4?w^S8dof)D%U4~?RKQ$??l@IhjWFU8GbZ8({Xk{QrNlj4iWF>9@00HbtL_t(I%hgoBixWW@ zec$H_>or~zGrJ~Az)C9vBI;it2v%02jiMknB6_Hm#bM!rjaXgb30DY$So;Uq$yFAD z7ct3Zc2{ypd=l}aHZ0UufvTn?kGEQ_u+eA~{eFMWFU8GbZ8({Xk{QrNlj4iWF>9@00JpVL_t(I%hgm(NR&|& zJ?DMjIL^4pP1aNjfmZ4&MPvq(T!k{Wt4&mkq96i^D5+L0q(wrTXl0Oriy|l+jlzWz zG8#k-$k%NK^N(g zLIm8xImZ+_cA=QyfD2%XbTiLdDn93F0iZ-&2B+81Zn^fPy%8?P(m&fqs^7?RuEf+M5Gyx zrP@Fn@fQV-4mEAh)(%W;@aN{Q0yw@%^iv2>Pl22>L#;bM)yAF&{VcjEXx!wDcgKLU z^O@YMNMGtwAotb8qm?HtoN9<&0CKAkW+8S-rYat-I_x=y;l7ub{VbXUkoD!gTg!?X zV#zYmToiDC;BCsgHr!hMKJw&E2^aFG1)W-qG;he~UXSl9p9%LS%i;1Y#X}(Ofo?~< zrD6iBt=bSvmU)I3C>{aOYo*T7)~XlbyB`7oFmkYTuAx6!Z>>28A_}O-!0i~0?wDNR z^;+gNJ{T+Y9JgJ>F#sc!IzvTzyZ+h rT3%U;@Q+d7JGQC*(d%vh{JMPu<0|636wBy=00000NkvXXu0mjfiLoeK literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_scenario_big.png b/data/themes/default/images/icons/icon_scenario_big.png new file mode 100644 index 0000000000000000000000000000000000000000..c0235bcfe32c06c52e47172faf20caaead23e2bd GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVosExIQ0M5%8!SK}*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#MV>B>Ar_~TYySQDY0k#R=EwG`X}yn$!IVZIn9X`@ z(v&GFOWHcm&$s`7{s0ghaZon+!jq<`bY`EifkD9n&i@ICiGf0*qP2dV-Ig0V|Ni?s zd%lwRJv-fr63T2`Z>X zi*~IBp>VEB1hW;_Io@oc3vm~;i=f2}1TD-(A+{0w*#v2{3!AG^&iz_=1-UchZG_&{ z;p08edCq|&*LC?Hagqwv{L-n)P&u&|kD3_=1wW7QfB_)Dc&)S^WFC!w_!n?Plih+p zk5~jQM4e8=4XfGOp63sq2pmj4zGC7&fML&YG-_sdfv-R&gyl-PtR!%{ZW7w9gN4>t zulL_^b2$U3dj4m@3UG1w>&r& z9t1s+Q3N`oO6Ptm{cf)?Kim=+AXD;YkzF?N0{8;F7b>CDZO{+I=}_UT>V!Ym4BYgC zG|Nt5t}i8?g9ZQu3%`1U@t$JwPonX0>GHi#HK*-TbQ=uDI=*G6>p2|?!aaVF-e10P1qiF;M_zU#fi7A;c(VqYS002ovPDHLkV1j=+ B^oalf literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_select_simple.png b/data/themes/default/images/icons/icon_select_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..2511b670c9ebd68d6b3516348b5c252e45164622 GIT binary patch literal 526 zcmV+p0`dKcP)? zX$)#>qv?`D5Ftrnm4hIMELQ|V;9-{{3MsU(2-cPscN|z~cG5hP$9exSIMvSYxAQS9 zvm>=yjr)k?u7x3l7r;|hwIXujy?_7T;8v^k82AJvA_B13f9DoBgs=e20$;uNXM@0% zO67H__LsGGum6te7ewSaunl||1Z_5(sfa9bTZz@x@(2Y6ez0_g0n2UFvff?N#7fd#=#`uvAZJ1_*O)w025<;HwhF#?rUxS0gu&shY0q8 QBLDyZ07*qoM6N<$g49LhdH?_b literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_shutter.png b/data/themes/default/images/icons/icon_shutter.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2cef9666710ea93c116fedefe933ef95473862 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTripZ9rCX*N(uw!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Hwn5T5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug|411jv*GOlM@yQCbSr?*%tHPpO?A+XNJ)tj)21nDaJE0L`8I3a@0=$-cs^$ y#lgjF!ZZ6OZng^LwR^VMGgdr!wZbAz28OM{f~#C_+?@b4kipZ{&t;ucLK6V4aXu&j literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_sound.png b/data/themes/default/images/icons/icon_sound.png new file mode 100644 index 0000000000000000000000000000000000000000..9330f1bd189df9210d95e05198b0672a7a5f6b5d GIT binary patch literal 581 zcmV-L0=oT)P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RT0|^!|48}^Nq5uE@9dt!lbVF}# zZDnqB07G(RVRU6=Aa`kWXdqN*WgtgMO;GP-C2jx!0j^0zK~y-)t&=@#6j2n0pL2Jx z$%mq(@{16~T_PzYxS3@OK@rJhHDITLU~8vVc6JI@{sTiuA+gXI!d603OpwI{LUyye zq7YIB+n_jekIlvmLuM0}eXGko?|JS$m-j-3il3Sju3x`Nk1|<>oD&-n^WLr2Pxlqv z(ODw%ar{I5M8ClZ+&DF0YGuDw?kgBTl?f|$xfEJnt6pK@kM2z(%vmva0E(YC&y<3O*W**j(EjRMWpXd{3Qw?R9l$z9z`UAT zYF;}wxVZHF9LO**l&*z$uhbGV4I8WTrJ(tsE72``6ZKz5HHVqYWL9F+X^EGIhU0q!N>Zh5{I#xia>;_zgj6QW_kYs$bXEo TQAKAO00000NkvXXu0mjf65RXh literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_stop_simple.png b/data/themes/default/images/icons/icon_stop_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7ea696ad081bca25cfaba334a6f36cdf879395 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDVAa<&kznEsNqQI0P;BtJR*x3 z82Eu~{tia56HD8Gf|4b!5hcO-X(i=}MX3zs<>h*rdD+Fui3O>8`94h{=$r?XthU-Kd~tbm2BGctT)&c_SvO?+)9Z1(+| z>^`-aFHOR4Arr$^Ce5XbJLXg!je5QN`@g{Ml~LMBJ?Soc>K5hP|L)E4@Y}2PT55}2 zT@;?zym0I_lor%w_`sI;ZO0U&klUwcn(eXw(VnpM%7z`&gYPD%#R&?o*?ODf+?njJ l7q6+CJYBLs@p9XD7D-DZugQz7xPh)^@O1TaS?83{1OQ-BZ4>|i literal 0 HcmV?d00001 diff --git a/data/themes/default/images/icons/icon_string.png b/data/themes/default/images/icons/icon_string.png new file mode 100644 index 0000000000000000000000000000000000000000..fb76a58e87c49330f45ae86f772e26442e6b610d GIT binary patch literal 443 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
    UZzUa@b`?SmBR1N!}i6rE-x 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 G#eV^PkjUTw literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/album_back.png b/data/themes/default/images/parts/album_back.png new file mode 100644 index 0000000000000000000000000000000000000000..3a81d137698399b501a04c9c3454880c560e5194 GIT binary patch literal 1054 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

    PI9LblcKU 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 RdZ_>a002ovPDHLkV1j{HkthHF literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/browser_list_decoration.png b/data/themes/default/images/parts/browser_list_decoration.png new file mode 100644 index 0000000000000000000000000000000000000000..d978615dbbbd47a5f9dcb565094812c2420df889 GIT binary patch literal 3186 zcmeHJ`%{xg7v3aqES;hX8s?3|h1J$ueR=j?ON zX=X^Esj;mw0Kjy65Mw6*NF)G=E*u74q2a_NSYQr(9ms$sJU#@}i(p|S2-*_|fQiMY zi2#=hKOMuyZx7yz?KHxetRZVFX0qTVa{N|yd_YWeH19|}2#Do{$MYg7iQmWbDZBVQ zO5pZj=0xOYN8n3T+Zlelj`fW7?f9?#6C13$wr)e#sosFp* zr(bjg;sk2FzFsDi&AaZur|V4YPo8I0FKY7Qd}Y#HskE|jVWhjjGp4a3OJs!s+*>Ot zKProTlNTmBD>;T=Pb8iAvv`&h78Yi;QjQ15)n1@#l)%J@U(rOa*@aEZP>oHHl}}R!xg(_Qt6$>Mqe@xEJlQ$ zLiz!4-VRzA=oik`4X@y}=A=;wnHH!PP$iT09@yJw1Md@|r(e)JUXBRms@ecQ3dS2* zFYOZg$<5JqNZ6kv^u6(@r{~U<&pSYpq#*eO^vWt+eR~8>h?WtYM_4k=W@!0LWiyk| zWld`dmqbqu)!wZjfb$(jRFf3D%s&0~V=pdCPLL&}A>+Kul9Ja5z_lrnyM(CpntDfj zkA%e)wzj0YLvk}rDgf(Tad~lI#CE@G9@|QM{8CxsY5^l>vyzhKNZZ}gQ5Fwn+>Rn6 z06Q<1%H_ie(gP93{zQsxw8745UQPeK$2VBEB3SoT;)*o=m2<}f#&lw4){A?hhdmkLV#c;Kv ztYRJiCLFH%$+9ck%I=8tuTN-A&zPFB50Ze&0q1lXV7BExL(@Awyi{|f}fSARHIlwZ?_2IZBr*jtOG zJTKifp$u_(G*uSOoJSTlmkjbP?)j_wgv+FF7S%$h*cUUJ_G> z;3ktLU*bJ@d{Tkaxi^9fbP^E1!6C4ZP%J+#=OptJ17K2}Gc+czOppOli@ZQeJQ{E< zf2VEpMg~tMd3b4B3a5GPM1EiomSwUG=5kX+0*TLQJo%v)-e4u)IeW1M55zCgY2NtK z`HBA8WUM?T&SHMGWjYh~cHPo?W@o`-3hl0(+0=X&(aHdB9JrXUJ~ku$eD+jzj|p4Z zf$}0IAsnvW6&pyU1CfTCYu!4DKUpt>&2bwf>c6%~5-0xh;q$o;9RVnycppIbF-#oc zt0S+RWm=2i+NH9FFq=_cn(l0cZ$=dPyF(;!z8_86yF-53Jk%5)Vs-dH(n=&urzL8N z{TZ~RT5p8{%|zU#3nW{riRkKD00Li{-YHnO$rADhKz!8HTeUR81(Efr}cKrh9RJ+ zc}QpZWE}c1n(BZ2ZObJoUp7C2fghhr-@NmY)-ru{Cg$nGe&IyxZZ?)zJX#Rj7R@NMj%hqTH`+asqI;c56ZYyqH zPN*^gbeLiw#6Lok`Pj?EV$;S^2emsMc~^h@fajM3rQZLk5{aFRk@|6sv*uOLkGrDk zqZx;PjzH_N>>-;cuGMFyzMychuojNd&i6aUroRvbC+>^>=YV{Mw#4dXG~MWXoPO5d zbJ+P>qycF0$S~5--ojSH8~vtii+0 NzkO>66uO8!P|- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/calendar_back.png b/data/themes/default/images/parts/calendar_back.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d33eb4d667f19275f4fb5da3be442f5be81df4 GIT binary patch literal 1067 zcmeAS@N?(olHy`uVBq!ia0y~yVDtg9KX9-C$!x*cr$CCO*vT`50|;t3QaXTq&H|6f zVxao#Ak65bF}ngNC|TkfQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglhUz9%kosAR&1M><` z7srr_Id5-n>&^waG#e_9y7Pk(mz%$za_jt$G_8-LDy i_kXT__S*I9+v6X0$nhI!)5S5Q;?~>ShS|Y^5)BW{O|2r&1btB05_HE!s%t@a z!o*+9EqbCYd`hvqB0re#*eS}s@WHiR+Z8zUqLy$hn%umjW|H4hJy9k;%O@Ri zsr+3mYxP}%c?VMr+c}YY#mo47MDIP3{9v$j%lF^21q<0Lk}OoeN}O6c6iuze5qTHRhNA((tX`@y7Qg_j)j8)s`So!hnS4)Z**TlM8j9-Leo zdQ?bZ{tu=LWnwC!8O+?F8_)PgvR?C&bvc<}_bM&WE0a5-Tuvo4;{4hd(ba64GuBSI zbY1RRz9s*pUl%*>%)4g5`Z@UF*GYcU8Z*3BCiH#ZQFo|v!j2TwJ z{rB;nCHqX2wx<`(XyV*(<>|>-hG%owJw=}tY5%%5&yo9Ck&8)xM=EawqtvFk%obb}>rE~{tk3|6yZYrd>gHXA114t9B|URzhmy=UQP zou5Bz>>rsGT$7w|W%2u;$FG@v=smaj$@RwU*6(+1*Clve+MxX_V~NV&aGqr2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4iXZQYLJoEby)3Ta`2LCe*S0lJhl6f!mx*srj$GB<->x#!x h4o6iTj`J%B>HX!sz7=|A^lh{L) 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/camera_mire.png b/data/themes/default/images/parts/camera_mire.png new file mode 100644 index 0000000000000000000000000000000000000000..8646fa6812eae2333dfe5da3669498a6124e2fca GIT binary patch literal 20189 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 z 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 Dekh}{ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/camera_nocam.png b/data/themes/default/images/parts/camera_nocam.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe4dece1a45ab85bcf681d61eee1841e821ae9d GIT binary patch literal 5089 zcmV<76CUh|P)a^mfPSb08q|=vP)9L^J zB|XyVL))}zn!~ZJlSdyGg<$LmRTaKjDV3(FbFr$bqA19Rw~VAL%d#wcBp6Bd`0-==p`+0VBj7-c zMk5DARaNWtn!Gv7vMkG-i<`}c?2h_K%Cg*SHti!BkH^ki3`MeDugSL<70GZo#6tv- zWG`O4NRs5e_uhk{gu5xva}F_ltIy4FzjJe0mK=q&fW+>;q9`~dgTcUgPE}Ph66d4s zb}JxpJ}QcWqmXz=lu}A5jO3qx{z;NVv&dIpeWjF|&*#p#+iW(g)rv$solb|tp@aD9 z>WUkr)9KW?xL7Pm3s6cuc<=yQIfrC6n>n^vmgV*JwLg-Zn;UY7#6~ik&72OrzP=`h z2q1CZ&U(G(ker>JIY^44;E;?)BitufS6A?MG8idkS*B@9(l0meFzFRVAvgl(=T%iD z&@U#vAS8L7bF9!QB#v_|iekIndb%Wl?eCJd+bxF#yCgvJ@4x@vVv+fL?jX+de6d)N z51mXV4hXOS5^5#pQCzbq6+=rjTS=<``}$lI?c8TrT}-H3$hut5K0)G6P!8 z^Zdsje@v1@$0AB8=b-?C^NZLP1qvAshd8R`40kXXU?iNmL`4!rt6+=%6mk+sG>br> z`oj-DIE-2p#m&tP_f{s8iF1*2qJzO;KA+=InG-%|XJ`IM#^W*Wjvyqf)rxyDm{voP zTwPspjsPPO$Sep6rd0un55X&NG#`KbaUBXN%TjQn&MOb4kfzA2M-obAFJHdYEHWGp zzyJRGNQxjxB}LUHEhCY&i9f9dA!(N2fByMr%_3=Jqjq}3q3 zhLLC%`TOs`?E;73y70IY1}SL)y*4>5B$`DaQ2pkcZ;a~_6ajvy;6(9wil-7NT-n0tR*#-eERLT z-$tX+ZoY`1O-R=z#Np1BvMhx-9M7-pK9a#;fDQLlkoc>l%galpl%6m0<(FUjYm>4p zxj1|{9O5`UNF{AH8!is-4iZeOp-4Ddjfy0c;D7)9_r%N>;ilAv#^KnB_S)ohD>$!T zzfPdiTbAXgpML7;M60U0xw(m?O@u@X)+PdyEX#0uBPtR>n~;-sIWoif>!y-V2O#+I2^N89c8$&)87Ym@paDM*_LDW96!L?E-4 zk%T6nJdtECUc9KPiktX~T^Bb<(=;WWXd~Jr2+94?Cb5y|`6BPU^G=c^m_@QI!*Td> zx%79UQMHMn2)c|Uh*q0IaxlTetTP?8Viv)MTUC{yO)!NBYro=ANO#EW4j|Di^6tCu zCQ0)7=bt+d#nJC-wcOHc$gkrYM26+ELN!DJ?sqw6Q1f>crvk|as8H*elJu?V(B!CYE)qQ^plX;nZ% z(yFjOKuv8D56P=nugbF2ipH>rQffAv;RK)HL~(*oh{JJuW3gBWiU2bt=VhkTDOLm= zncWj4H3|Od)2G|*)@2cL-1Um!ej<7K@?}|;IugEg@YQN1I8n@y zTz6n6+Mpu9?mS4F2!?y2DoG%-KmPb5Ns{dH^3uF@?7BE}$+8T)E+G!bgH%Xw1R=rZ z;)BG1?^8Yk63rs#=jTb1JbChjbY0v-arC=huQ?FdaPvIp;_&f!jE6`N5{}G3o8XQX zkl^(uoZ*u0{6tlfLuTsy{9Gw@adClNm!M5>-9*qPI1U#!MJ1i+DIyWb43OXBnCWzi<8VO{;1|;r5^OF}kp$6dQ%DXV z_`P~f!4QE2TH{W%WtDXIkkr>Eb&^l8(Q@|i;lngdo%tfm<&r}@olY@B3fct6;hZ8M zRg!=tR3-T%84ib7z6K!)qSekKdG_pCk|f#Nw{M;OzxO)PNZO=3D(TeqT2n|gi@>Zi zd%lRE2!gZ;cA`R}B~+W#R7p{h2xJz7BzE%2GYv+}I%`A`kb_iK1o0|3m=#WW&1S>#7>+{9vgG3M;c$pSESJkh6hTduR8>_xB%!q06q1@MiA3_(Uw)A25|Rqoa0Lpf??jtQZ(t;X?{67N`zaqCi$IMASY*51av;XzF?L;oHol^^2nm*B&3_sowfmeSv**vB4~N6ue31sVNocjg$8h19WE|cIh1Az;2O!}B)u_tRzfTs6 z#g0Wj`sgDr4iD8PIH@40B<#+Mq7Y7jbdV^ennHrftSE{G`^5Q3?h}6`m{vpIjzFt= zQ%#6Pgfe4ICmN~%7SM`FWn_&XGmtJ{*T{HXH86IEJf~A_EJ!2OF+%Qh1uCHif_w1SHs8g!4^pB!ScH?Wp(oVi?lAU2T7Z2W zvx50F6iNHqMCcPw*d#0L)h01Y^d`j7v(6wH0K2d5rI77*%WXrB2Pw%4M!Vwf;5PQO zk(jUGkT_%pf5<8cBjHj$KD288BkmI?#Bl-(gT!3tkSL`*6D{!Xq)PHkK4lQKVjO#; zU&p85z+x|jINWakJo{f7rx5#Tq~UTDf?2`SaLu2*?B<8CU=U^04N;Drql;zz!;ozYEnSg5hGlCXg9E@0~;f-^C%}`h+8RjJ&EU zTRHlqe4N3Wk#p@yCyFfq-h@3!&AYMPxihM43)o8`o=D`t!rySKsuF5Rm_kC4_-hln zsuiTyFok#`(ep)MX$hS9Z97pLknOrKi(qvwL?N6z7tBQ|<@hfXXE|US=`A3>Yg&vCSgqmoEkB|{bx zNl_Gf@v*6cJFd%!My~WK+ai83f-O2Xb57LLpghGOlz{CAR9D!EJ@x;+8cU*#J zhyybg93*fEu4WNaqjAi|%M9kl8#cxk0LSKW zRxaD3zc%rq5Rw%PnK|DW8d&)A(_RX}NzVf)gbY*#Bp45#d*vXp#|nu=D;g+g0E>{W z%M4Or0u#yFuFE_fv2{5{>P9x6k`8g^1OFI;&h9nO<+KS>Iv!-gJj1dp5|h@!#ouJhSI;k zA}}G29EY3qt3QPZtZ-Oh;a|b=uO&H10D$mtM@4%gF`ayvUW0iEIu?2S_;Jl6w*U<} zZv`j>vjP`*dM<%9!pFISDa3qr&8_}PGBe>e8CYg6Kwft6Ou);EOW-aOlFwi z0SU}q)oX?EzDfrx0u$2W3XTtjknY^S^eR&bzF9_c7_IuKBpHeGU)b%EZwGjVe0We1 z*uaK7eFihX@vJjJ5qKU43`?TTT6kdxI@@P??)&CYh+RJ9a&e)XSQ;dD#=?I)O|nnm zQ6@68$Hd<4G#yp|BrpfStk^#IOhwaIHkrYe016f^<5fmMwkRtCurTZ(YX%lU6w(wc z9M&f|z2WqL(@tj{C9aUNXU%4iHAU#z+PnWj*TWt^swoG!y+xXb9j`^1hxgh zAK-DxjJrP)ljsWyar|#4e`ZhxN7g2WEzCU)61+^Snnj?DXRo7ad0TrRUf3|%nI!&0>dsOdH6U{a^6WD z3JJBv1B$?a2bz605IN7SwUm!mG)|@WSesaK8|(uCz*n233#m;)k@zox3|+s(6@d*B zh$^5hmrJ2g<(~+Saq>KD3E;9w5QQ{li{#B*U;!O%*A$_G<8QbQ5+`u>MB-1YCX#>( zuv0>--zNvW9nZq}E-zwOsZ%_+ zXsPU;h?Wez1o?URGk8wVp_&0Cfq-nZ~MY#Eo$^Yvl@LT6BfOMjq1&~hkC`cmNBFPF-X|<`8 zk7f~wMJ_HbI`)r&aBv!O@JzH9F+#{)pguHn#5}jRzMI|JQ1Z~f9z^+%=0)n<@ zX$nb@Hi@^zXnnobIGO3}DvT7e8WPW3@WYQ~xZOe0K{DIJBJuWC@L$u#QAkuI@wTiv z7LtSaOTNV-c(>C7Tvuxu(jG}WNOWEVSmeQj2hCDQyujjEWOfgc=)4GKk*I^Tg*d!N z(iE9#7J)TnHj8vQHRO*(*gS``#ba$*(=x64BY|z32}MIr8Wk)c(#%WE zB6ovAdL&5`6P_=((Dq*y*DR;6P}}z znLZ}KRy6UPXlNYX9VGWzCEd!4%;)piYO2jr{;{TB-?8Zp`n);AB6mZZn9T>epa@O^ zi9ijo%woqP9hqi)(vBd~G~;8Dnch@WV3BxnxNvjShsTo-cM{1h7IA7cv2F1r)=czB z^dYRUR)XB(?LJdTkK`7MD5VbzI4nGDFoLTYlyxVTyc=Y;V-cKzxs!F19!coUusB1< zA`Xl6dF~)2{$xfPdUwdodAQ!-8_yT%s}&tVa&$6dS)^B(y-OlkM5s&k?cO%cA~5R= zZ_V4M%X;UiSp=$iLd4X!o<)3F;PfzMw-|Y4u3G{%Z6b?vK00000NkvXXu0mjf Da#?Bh literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/camera_reflect.png b/data/themes/default/images/parts/camera_reflect.png new file mode 100644 index 0000000000000000000000000000000000000000..28e73179ac315425064b5be587987a2cc4abbba3 GIT binary patch literal 1169 zcmV;C1aA9@P)Lm)C^-ZD+vjKKy7>h z7e0VOK-|fYRfD+6Be?Vxvap3-h2TyK0{Q^G@C9@sGn<)3cB6(tGgH>RS=eo=%ldP> z+BTZ{en8qkT~{pX=eehDRktr9U&$>i045?3kwiqy2-_&T4H&I34T5G%HY8X;buMgG z&`iOTl+XdrRZYtRr~MCG5-25XK;_iYmQ}aBplM0i2pMocP`2WGT2!s_9tjyx9<;ni z9rS2r&0bN^2pyO*=C@tBJz7vu%`_Xd)z#J6t*xyf3`3opoAcP;XsYw`b8~ifW_NdY zZw?O+FEas4pA_*1RZSg&raL=3bM1D!rAi?K?n;-nrrYf%+uPgc^6wH^`a`op%RYL8 zkgcq&%yzrom#QjBlE~iPo{6I9;^gE+;yAX?WGcy3FBn^^)sn@-8==osJa|3B$1RoJH9aR77NceqKaG zq9`I{Kq?F51DJw?yYijkOQOPDtutV)vV6caj2>RO`$Jd+ByLnr$@7yUkp&$ z9NyDeEF;%{TiAZGUM`m&mp0v zY%oFw6y|269t}W^zN{>0dFy1^^@C@-j^@3XqWa>Yr;b(YYgRu8>Dp4}e0 zi8)L#>EJn4wAup!81KeU0tXb&_Oi3S%9jK$>eWgI@usE;An4I1HFZ=!Fd`y0rtbm4 z6Yj7E9=#{CEh$PonI`|xDV7QD+@Pdi~RSK>OG5u>DwbinQ)8@d~ zJsN;|t(DCSTGfR5I%#ObYd^Ac-0*a4^DIZYjl*3slC zR5XAd4QN&+tGp_tDro7q2ff$y`BO87eGR6HZfj|y+$K{h`TL5gB&ci!1*`UzAp{F} zgdXkY(_aJ)R5Hh(xmW_67?Af00000NkvXXu0mjfS|t>K literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/config_item.png b/data/themes/default/images/parts/config_item.png new file mode 100644 index 0000000000000000000000000000000000000000..9e10e5d45ee572d6293b1be10f933480529d4282 GIT binary patch literal 809 zcmeAS@N?(olHy`uVBq!ia0vp^tAMzkgAGKsM#=#x#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPSqd2dCw$4T_GoX-ciEBiObAE1a zYF-J0b5UwyNotBhd1gt5LP$ocg1e`0!21-{JO&1)22U5qkcwMx?;P}!4wPtnm@l;O zme7XICK0Bl)n9~)cz523Ief<{tZBBGqcW@Jl5Uf`bEX_z=CssL?T3x_2{S_rN^XIE>$z1-1&9EvHWXJQSemHs;fIT_!P~5 zvT>fT*|pAXKF_qwE>T^+bm!cv^M4*)xOH*ULvJVBjd@$% zJW*X3cCB|>s6MBtmGcS?(Uz_N#}x`8EnH5l3zb3yv^Yc;HU$U*DWJqc?!I|DpK)I@ z2y_IgALgZ%*qX4o7c(% zjf9%;^n>%)1M!7soA8=lSTsGvAn>4z>xzWe$6ZVV4Pj1u>U-zw_065T>p<=S`UUO@ z6sN-_79LV;v6`!|b=q;d$?P1zD~(GRCbOLlxc>CH@oT5!IkRKFPg--T`yw#5qol1i zz2%?WbLw1@lKR|?5#isq!uNYVdLG|e+_a?Cd0+Q}--LN7BXDZh5+kKO89Yp5~#%bMcE zc~7iPF3Npn{rbo(R9muUOlUv?UxBApf6VGQ# zOZC0FKYuESD9xL*PM6=d`2Lf7e$P)HwRii_t|C8qkLRZBw-JlwJ@={qykquty6E-) zCXuCXZ|`<_^iQ6nQmGv@?_gf$>m^&h75v`+Tl9T~u-CS=lgkODp~7i}y)OT|Uk9)C2PB@}{_p#= z$)fwdItKO-?|=)wI+=&Vji&`)PNL zA=DWW&n36!W~GOqIvk`Dr~zUzl8+W1GHbD#dCtXqeaY-M$1FFQd^xj1`qidCH5sul zX8u;29y;mvrv#gs=lIs}+TQ%eKdI;R;oFXtkJfyiRXORkO82&vf7ff8)vC!(^|X2y zVtJx|)c_a5udRm%x{x~op OGkCiCxvXi(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvR~)s5MvO2JCE@yP)N4KHKN2hKQ}iuuY|$5C^fMp zHASI3vm`?yBqLS9-P1SVeTr%x&<0&k7srr_TW@b}%)1pJ(f07Xiiv3F5fP)XEVcVg z*B_jIDpkYn^HR=8ajC`>w|55|w+aPyF6^2(FP*XY!zcdref_INJ|8Wb^u+9>%1H}` z!`r+!d49TL_EpVumC)wMNxKi59*}%F$!44H-c_g0z1eqUjrS(6O@5nlXYVrBPVjiv zojUc2)=86-Yp$wq%j$PI!{fmB$KTGL;XCP$%1#mE z2a`jWx|%QbwY;`2F#q+nuSwrje>26BR3cAT=}f~smjUPNvm>Rhk0Im zYI$|Bn!%Qi(5HsQQAuSP*PTQE8F&|ki!q$@oc?5E?yJzNtM93t%$?-B5i&kUfG7G;$z#4|Z)78&qol`;+0B&I+0{{R3 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/controls_sep.png b/data/themes/default/images/parts/controls_sep.png new file mode 100644 index 0000000000000000000000000000000000000000..13c8f2bf204a243ea0645e89aaa2552b1d06e87c GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0y~yVAKM#nK;;h<>&kwen?qc~KsarS6;MdF#5JPCIX^cyHLrxhxhOTUBsE2$JhLQ2AtWPJ!QIn0 z;C+f}9#Em8r;B5V$MNKpgoF>N60D08M0%PWd1kmZgBXDZHy9aSbTI_hO>Zp(DrWF> L^>bP0l+XkK=)Ns? literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/cover_border.png b/data/themes/default/images/parts/cover_border.png new file mode 100644 index 0000000000000000000000000000000000000000..ecadd26a2db4304c1fadfe07920e8b5b23a41c84 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^;vmey1|%P7U0DF6I14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfbq-!$DapIpSCWB3vL&t&CC>S|xv6<249-QVi6yBi3gww4844j8sS56%z5(x3 zRP%re^*mi1Lp+YZz3M2)z`)VsU^?ON?ZmF%76J+TO*Tx`YGt+-^@#z2KZf^C{+2%* W$8()cD|HW0CxfS}pUXO@geCyrt2HnH literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/cover_loading_border.png b/data/themes/default/images/parts/cover_loading_border.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7c07d8bc665b44d56d2e545c86a63b6c6cacd8 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^;vmey1|%P7U0DF6*pj^6T^Rm@;DWu&Cj&(|3p^r= z85p>QL70(Y)*K0-AbW|YuPgg?4sITO_Jx1sVu3=kC9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3LzP(3hti10q;{(^MDGiJzX3_JdP*-`Tu{v9CI%NH!~0@D=(JW%KPvC|NqKr wY*I~uhuwMQO>3@v05guYZ9bqC93{cWV5ZD%vwl%!1ke};Pgg&ebxsLQ08EWOjQ{`u literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/cursor.png b/data/themes/default/images/parts/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..af72978ef58c6cc7b1e45a1d63b98816318dead8 GIT binary patch literal 600 zcmV-e0;m0nP)RAU_KVkC|V!o3b{DFw7*K>8n#aKGPi$K5+5BFHl=S2_SlNng-Sv)~9- zmG)Q!aPB@^<%3(Kz054j(6nQc{_xT%=#SSG;o4Q#$m%GW%bg2cuz$@ zAI?fPms$+){vy+_2%w$fxf7$?*j_Er8!hV$p-F(41nzeZM1o*C=seC73-n%BPv}wY z8gMwoaWQzVzQsL@oy*>6Sx*ZN0DvCVdZT6iA_09kD=~y-T5unP(A0;s(w_o0ms;1( z`MD4v+FWX#73h!Gm87dZNf_XLf4r`o6cDam%?f^s;S1=dSr8tSGZ*lntea*bBH##B zJ+;H78AN1`P}PXQ=iYvs1X+O*e;+Kj$PX*`<2WE7A8v>JVfg}Xk@mO32U)&=%q)wD zMAmR35;C)_h=8GKN5)~3wE*L=306(N79o?ARptUA#xH@F_QSgX+GPb7K)Z0M7WoYo z&z&HoU#lY!DV{qCw?_nwZeuG5rfCZZf@xfR7`qV-I*)VWxJV0592ckR!v9;8eka$m mJeb@rCgJ3EHOnfwAIBekQ1%--e0EC!00002Ar<2q@hMqhkX` zGg$rS^FHtI{eSk^?tAy{ZQnTOI@h_*iPX~pQBmBb0000~ni^^^002_LDKRVgb;7}R z{*MXaK;-rUqynfMVcjLXx&G!ENDYAh`^arCN+Mjj;i6&U1_0b-`1>RRe9dGgTqJYX z)P6!Xca8oQC%yG2&PKu|HuopS?yAm?j@C}@099A(*Y4JDIXvIH+j1D#T62Ijwe^s1 z?>PYg8~{x^>a9_d)Y2$oe&{iw?H?CkWS%?|%JISWm`FL8Lq+R5pXQqjj; zqFgn=KYx};uW4{={{a7zo=jPtwdK%wyngKl02y$ZKlJrUIDB-LGlkWk-a-$AA0}Ebtvy=y9lzpTP7!2 zduKqg4ILa2fw>fhNQg_^47i|okR~3}3*0^HiVv*c>H;peEQW_ShMaW;9(oa6m^J9+&$%3hZNXYw;VH8PEoz@}q>)Puq-S#@@!xcRA=t}BfqX!+fl6oCa zqmHILBzHR=-)HJWbf0o&d#%MW#ZA`JNCEp-pEvsV9u?PEl*WSkeQJH1t+8?CXWpCv zL994pWWnH7Tij~Gl){VCAYF*okff>{J`g`WheOXFu}I(EC5+aU^jB_lhEv{lUbT6O zi=t{=0xXGZ!8FaMvE4%k&tfN8h|rVYEKDnCO{e%>$Q&v<3ldwEO}a8SeZ-z19_mpf zeg~4d^?gIZ?Hbi*6wHNDqRjKMycIn^Nu)dhUVfQU5n|ou^|GZ4h@6G10@@HC&F4fd z>MldSblBu&7)ZxgG0gjyO6Ns6yL5S)Gtd;}TOQq1{FtSZ$2uJB>kc}9Xd7qh+4HF- zy7sPM;_2w)498wbyYBo^CV)A5@KCL@ZP>jRUp^n-DKD-oKYjX)5*lq=AHUR7MC$(e z^(@6n@$s*0|2Vnx*sLr_j+835a)BP7-;wsRnC*Z^BDR1wAQ6|ujUyscYSV9$Y~tcN z-bYJLY8MWa_0YNOEK%bdmJ|vnz)M~Y4ajLlmpYn(emhszfvmp5&w_;ue&dl(wiWN^f`#OhlNhk2z%k}x$GC?CP4BVwuYW7;Tr%QUn7&}fkq6BBal!ISw;d7Ae_t?}5 z&FHM#k4N33(d#X+5F`%nti$1D=!O@oicNoN`0!zIgHLM+eek+-ZryHW(dmZJPs(U? z5y5LbXwjEWWDD3IgSZDb@F6dIkF%ro@8e{pmstTLL{n3Wzs10+;P0AE}bZ6A#V;m}t@b4Gw`e2;qUt{T(oBf3c z%Y!Rm1w1R(H@*#ghsCzU-F1ZcnGcRJ%J1N97>MGgD-7xsoZc;UvHbM>>_66H#!6f$ zQ)24VhLIGRrgAi2bx?FseqnC*e)c!EE;6~Y>;O6TN}+93bEP7G&-<{bgruT8Nn7ry z7bwksvKuTW_Y&i;HIN^wYwj#{s9^@?w8utYA>5LUNAb#fUxjnC{qv_@2lwaTXyorP_ zfbQ*w0StF9{`)d+1z+ z*Kw?~yF|NDd=I@c@=CJ5EGzwft#goJXs;Nb>>Mpr!t2hV$H#Lxte4Omz!k;HJq{+B zuhK%rrJokjK{_;R*#HCPOdmCloSj)PP0shb<-q2KO^;X3w_d94?<*p9^9xRQ7u|~D zzSPk8psLu~3LAhf6v;p^cxk>$6DuCWM0~Zwj2?hD!Zq7<<0EK7InqwY8y56+_s}YG zN7BgAPkNmY-*MrJ z&T)740a8>q9Pqxl@~H9obxPy4-9XYgX8UM`dt**x>~L^B*~_dtNxW(e(llR~G0MZz zo0_g!$(6T{RbDrSTHGW;gSOm^YIB^>NljS!H%{SKNX0A77zH zq!YJ@VCp($kI0lh&m|G>+;tbuEuWcquM%vx%d*?u-*i6Rve)tafk{G-$~r59$+!2m zyW%7BCaMprU%0*b%5M2JHt%b!@j#N=M9w`qqIhxaUJ>z^I!1vU$*SwO{?&7VP{Yk5fVTKc|4o@xX%EdOVy~F=Cl^4vK9ss;LWxDp5`Xakfwyj`U9 zlFcN`O`-TkoDzEch-x}CCfdZ5?G5u`J1$$zd|T9u(H5%sCrjo}7|Yw)Yxu{AS_Va8 ze5&^;5lr#%y2zTZ7;(;#KZt923dTQM#y71X<25w{w3=yRh!uY0HN^&_^oxekERtRB z0^&Hbc>$ljjS15&4UgqTILWa+s`dEYBBRr$pJ(l7%h%K_KO9M9R5f8^%XjKDH5jCM z#o}$rpJb-kz{cigbwdk(*XwEejmOhooVtdL2lorkH%xuZFHy5Tm`_&fbxcp6#Vw2) zPEZYHwHBu~K)iv~ZL|R$%5MAJtN=r`XBh8hEZ_GZI(h4qVKb(Z(<#5A_|3*W76V-k zoV|wDQso#&0zGIk(~8%MCz)@T;E9O^s}sFnPk#ns%0_vz0mU+aMq~8mfucGw64bw$ zI*+m#;U~IqTxpK^;$P`8;+;^Wu_tcm;AvFUNVLnPSi?xM$(Jo5P{SlOk=G^H{)%ND zEV4SfeU5?mQ)Rr%7a#*58n;%a5!|-xf+K;KSBRO)x8~ldx}4^C8+kve)XrT0tnO@F zZOD@WqoQoZyq3PNQwm&Heu5@8M)nJ2H@r5{NnUG_imq~B@@R${z#TerUmjZ&w`TVy zpPYQ$^AR-%CXWGcV_Xq`xI;iAK8eUhYTSXZXzKQjKodWU_I(JCc}*wI>rMYn_grAf z_k0g=KC#zY9gDD-ywu`fRQ-2rZJnu{@#QnMVZZNYNIeq|H!f$_WhR7!d*#;zkY#ti z@N!Rg{Y2{RKIFx#F}-J;ytsS9oNHVddJB0BYLH#v##zC_@1V4jM94bJzZF1CK`@Gs zDn(P?TR~$bjAJPyCHERiA3_xP87T%aH;Tjc>+Ti4XO2S764wc7siSPZo)!7^LV}jo zZv^)JA{RWG{AAOb*P@hH?Nw3Wwv=IW+F%(#got{YDpoYaXX`I)AERzlhnTCPVktN!e*Isw(WAp_8IO(bwW(q#8 zJ+JnkVdKS39i^czD?&in3+YmbaP=WF)u!E`-hU2JJ9{AfVsW7DgsT6Np~SPv9Y?=@ z2Ju>4QN-B!cC>kMcF+gt^Ngg4X0eR8hyu!(wR@b_^ErGF`&9Q$T9v4l+j|A*!x!vC{QIXkXA;kquc5&wzRH;BQQrp=EM|7CJXr}%~y!HFA|L9Q_qPifT8e>p%d=e@DD&6-Puo1y?aY zK2VL_a98?teoOSMRi(M!7EE7v%koaJbhJN6?N)^>o9OT6w#zK~n3Cz7+RV~MnS%7f zZp6g)??2bSGDE}j(9rQM{i8^@kyioLqv|p!X0@+v-MTLy=cjZ6;p~R~nANViNZB8P z$K_vKM=b5De}28`b)~%f-#y3j6fgetn&TG7T;v#hGDw`FJNn6Zs%%VLcP!;L zVObAWd3TF?3E&B5Jm?r|!N{bR_4)3{Eqk>i*0`hbsb3UYo}y83)>hy3^18CHb8Zit z)vhu_yg#~NvwRgBM( zR0pmj=VcCaGq_w{G1(57e|l+chgSQE6Dh~jb#wR6KFWsCK_6h$w-QA>$|Hs4$g}yD ztmN6oTvaZq%GW4y6i&NwHzlHTZbvl4wJ?zN?~>?y>i@Q4e(8>z)pqs}^)FrL^%c=I zrp;8zWAquR#%K_Mq;Tyl2W8VxDX-Qa>{bFH7NgmMSPg1(Y`!3KUSeF?dY7SUolM`$6Ztxv3g>tsy zo^R1qx56q5WXkfK`uG`ccB&RTF|?P9!iG zxDUw9Y~f&Ab0P0kJ7suG<_*MDOb5}JvgX8C*l=r~}^V_7$iqFw*;W;nda3W-Yg0>yohzW}* zkr1ID4Gh_0CsLF%kH`6v&k}m3J&0JLp^~wEixionJecG=A-n)ShPJK#ZCWX(09qRE zv`J=b$t^3Oa7F%3g6=nwn@4?8GDZ+EjP%S`w4JNrC zekezzl&;*LLu;!VE1MeF7f`VrKJ)|8X8J{+ED|E@9yOWeLZ{z#2`!o3En#tkk6{Z| zburESF^bJLHno>wr4>R>lEBG@)#5@HPZWRX_kMVUG=LA01(z9Bb#p(TG93N%1QwL^ zLGvV%L`jo(CprDbPQoABvWCYw!L@SP=idcXy@&&AKh0LW>(P0bsx(3dV#@G`zG(~$ zp{dcC<&?Rpv9p0~ zo%_Elb_N#|4_FTytA>$PFB^1$_=Zf}&z-7ce^*KrvvQ$)B$$-l4RPXMi+e-09?Hy~ zIVvw#?q$442BYa6jc$_7{5v31WJ+Yr-8ew!^4g7sIR=b^GG9O>yYZW|`k_q9RriI} zugYu`p|!Q6#hdN5%%SizP-g`|Ubfoi{I^ORZA4DNHU6tW!R|F33civ07UNAXAwr2Ecpyq-pYJzM)3}V?Aj0mE{ z2=jY=FQ@4`dvuhv4wFQI-HtkU&Lx+^1I>gPea1eGDqpHzOD^7&Tem97s6_03c)C$2 zq{BT6*zqY$)4e;8!Y+A|5=u40ruwV>rVT_lpP0f+-Nr6R7d4IT;S+U!gO=S6}mv8?O2=o zZ8fj&jd860N@xb~9p_ajEM~vyP^0&mx8E$$BfFj)ZxX&_l#!swGv2khR2m^aE?#C` z7&1cUrj+IT8LjtmVD6!0H`Ln~G+JjWN)>du-tc1I9&T>w_Ot+@&(SBs=@dabvfRa z`neF?&Fd-%WM#uYUsX!VeZiNc^+w?aNcPuCX6~VN(|HNIJAe{F-FQ3xaAo?%EG-qz zya^joUCDD)6bu45ms>44!B%t+r#H{chg$md*AwPDBv1(+RpNBQy$re-2h>Hug3Z#E z__|0VcH`_9_(uSDz%|q(Rp22k!kw@RW{XBCV8w;(stf140c@R%x&Y($yYV5GTI!B3 z_+IRBme*lv6xu-&V7-qEXOOs6srP)zZA?z*>rqdQhZ2jlmZG}6RZUiVKGpBGC%+Yz z`M4@(@GF~yq_P0c_IR*ROX8-~JYU&s^QbnuP2-}wZjbd)qVlUHdk3g@ zclwaqyeSV{0_12 z{#a}`j>@F=GUSBC>AO3lBkJ*ve&*hrUUa~8`&V@ zTOzB2Nmx@x3$Oq$e5T}y9`(P^Yi9cF!V;#!f5y>*n?*(6ins<+d#JFR?42E%yd8$} zK4ctncMi3aMg5#6_0xHCle|M=V4eTrt9-GagpHTgHchB{!mOi|_v`GC&FV2h+EQ6{ z^=YRHDvwo>ZfHtD*1+b#0uRm9kv^{s9bep}xaS}AEy^xT_i?C7-r+-!x7oyr0Ti1d zFyk7KA~W$=1vj&zi)^XW8^^ZS9yu09wIvzoE@PWi51B~b)u&Q z51s^}#h^=2iiGL$_PgiLuYAL=VEO|?IS8sX-8)dJfQ8lB563xSOy2m9QTS(ooHP>4 zK9O@nLz@F4iUQ0DBZd0p>6QwV$w8>jgfQ~Fw;gWJ>pr-dG2<@YdJHsA>gN5rZ`eJO zfYBc^%S|QWC~11gUOWv8>@FBBkvA9~)6^aQM3{0;@^nd1f%sEb9fJF})94jW|CXXU z<#BZG=+flj+6a%C$RTU_)?9K{*g6AA+!4z?Oj1c-JT%6(t$fed6ae)^V#RM%F;Bqg`SbO zQ@C}M_Tn#9cJU`@GQGk8hz%F2X_g8%GJ~sA^FzPOz(s-4!nO_KY9eVMregga$r*XU zV8z{LnCL{QZtr)wN2ceuJ1z?^AM}W*ZRr_`HEo?75S@hnWI8xrelcAUSrQ&~5=4-M zyUgwwn#O!P!a0XY177Hm%!P&<@-sdiz0)cF=M<^l$A6KnV#4-b(J2%~mrKy4@SCu- z*Bkwwk*15|22Xzc$=5?!L~l|`6+C%u2liN4G<>($0Qw4M9nu`vAA9px7H#Q;g)O5- zQdAl}C=9tg$jp|B&9b_KxjEV^S8L%?wFmc)daJ$*9Y0@9n8&q>UgcUs&cp_cq;s;o zGT|q&_uw=mx&);+K(tLL0>*~g4OjC^8$CGhSQbY?nJev%N@&WihftL zt^m}X_NS8HMEZ9pRSb9U6%vx>-M3nM4KwEV;hg#55& zbQ2X6eaK{nR=}l24)AqQdZT@!@P~u_Rj`hL$rZ(~Kk*qxW|)CdVEflaS3tDTbxT+% zumSAclEzE?e?z6Xmt||%Kbm>`8m+`J`FaZhV;SerT@ zImIS+xawlAD!!(_h#Y}6a&s6DjE~cJX8jDrl}~E^Z+e8YDvCHRjQs<-cavn+3m_`& zdW$3G>)XuhE|I1}Q}D|8cJ9sv8n(#~Jm*1YF@LS#pEV!q{baCQ3rMkPe|)>VeE*#n zz6ipY+j1?g8R5VbXaC_#5{^>%e|yvriT`Y1F_~5K%HF|&%Ki?U$Cs#qGlAJg21D)t z-SxfFUf-JSfp84Q>U5JJKQ0!=u7r;Qwcm=F&Q=fD>m%;7A8x`G8V#RTGTbRu-Ca2x z^musTA%cHXtB6RX|KGOdgp=*Nm3u|6a-Xaw3?dhfE4%Q0(XgZ6arb?lE~|#Z3DV_0 z^gZf~uwB}t>xk5wYFyO_&@F3 zC)Y6K6bAtc>&Bv~ACfO2k|$HnF*)2HlXyQ6iYxRpM4*~)1dC&+$SgET70mL=8?)Bv zU_|22fs01*`E0}~x64{k*NxmSUSx5INT(PHT0f^@*CrV0eI5*99%cP0wlOKDjO&X} zkZc{A3rs+N(cBkr{g2*l{|2})CY%qth2Er~fR-EHEqY7{$$8U{p#_W-VBS6PNGQpY z>#~zdvZo%XdNPpO7@lFYC=&`)gou_LH+Df#gqZZBqK@x)b&@Pe{x5>=9VU1j<{hk) zC2?~!P;a6ok!tZqO!^E*FNhRdgi2mI<)B;%@dy+Qs;WEz2R)QxYcTH`%WXYxCjeT3CawKB-Ry`zj<< zS+p_IC5%G-MH29-qu_{$pUz;&iA2jTQgU(qkJ*OQV%O?t$BG|jDeX1jL$yGi@~anY zKBl>XUyibvbWL{Metgp>PIJTcyaORV>=dkC{`IruCjkdK!kIMh$Jk87ExtJX-n*&y z17Z8c_B~AB@Rpiu{VEOQLbra=s~UW3-@6f8jxU}x z>3ns)8d9aY_tA6)ef#dcvi>R3T-cH-;U3JiZO!}{TxA=+4chQ|g-mNJT7_Hd? zF77~ME9l)7g0W@T;NENk)r>Oh#B!;}!|@dlE%fVBi`v-2m$o_owYR_3%gE85b=#{9 zlO}e1c5t*aOs_?_35&e&9Hb788Pw0?n(O1_K}zN?X+)6OwCLSmz&Czro%QzEDgpcp zFBH}mM80*d+__o|#a6V@e1kqeiQ+j-1zsBrwh`UTZ)>5<+9m%#;Ly0z#PIUq?k%dJ z6+vrZ7{CAa0@P1SQAv2uev9YsOpsI>FjY?#_q^@OwZa@aLiOK&(u53B2XViwmu6(4 zVZ1w;OJZpRIvhqq(^-j@WI{je&L~IA5-+#;2y#u7)-m6oF7aT6wL8I|20Snhubl=$ z%(X6D`VqDtW9om%MR+S@|15~1;DFASnQ)ox1LaD1~}sCl1kcrH@Ft&Vf*Z7 zf=S4~79m>2F_L66_Px`!RmH~rLz#<#HT_or%06#v3M;(j?}?ACi7YJ(2e^$fu~P6=Z({beb)=ggh5gp^#L z1)(n>LoYmtTDMEAD)r^3ed^;Bvxxrray%h(;=KroM~yzkq^jVSr~`w-m|0~tD)qhG z7P|%#$v!TI=j3+h>xOJLFB)+#kHJh)=8!5o#3Z|LRu%Ntp^yy#G4&s;cQ)A?S0F@c zKY6*Kra1lD?FzQIq5X@~@H|FKQD9pK9bMYld)VyDYq?6y6-EIg2tPv?A;_js6q41ZjT` z2m`ghU+D23=MQ!|gC)JJ*oLNLQjyDIs5l9~eVHsLxi$$w{Zs=26w=~5x;zoxS7KjF zb@r>aWE%dY>ru|nS}VdJ^Xez@=S5Xxw4WFZqeAR z{3u&izf3je8~cDGP{vdA{fI4 zjhKMKGPD)Jb1dnLhzx&+kkB^+2!W4iWN+L!v}kj1O5Sl%|5+34b4qiE0+sLo*bB{} zCt?Plz22%ouxd!sr-2<@e+0hxoT?XJxGD@I8?8cr&B#z-UzP1#2QbSJf5iir`n2cg z)scxRvQ4cjQQE%i=L=LuO!L1KSD&6TzgJ~`$Zz#k`%EP58wWi>UAY zd9FihyBk^f+PGF)ASpzx=4WupvzPH!T6uau5(&AC-!Fb1+<-3TbsOcXEVIYFlqRSr z!};r6C^Bo#hbHRN&$EoQj%S02(Wq#NX<{ z+VFTs2-HbnbZTm>9$ZTkC8~G09caDLS1}P0ekj!V6mD_WnUomBrY-s0@8YV0oF4Ap z;r)=dyisV^R_;qVL|58y2751{kH8Ol86dw12i_RP#JmNZj@Y6sL z)bGl6?T0g195pJ@ak6FIQxuIsoDCasJ^1U8_jRzxm%}_b)Y|-sAP#{n#3{5k-=Y)4 zND4L0N`Cuxj6GPM!kta0M5r9FA87aDkJnzPsj&yhMIgnx`u#mrJMu^@WdDpQ?A4YP z0}ey#i=0ARS&3x07;IC;;skVP9bx`o)n?N-A6Q!hTzG)ps7lxPtAu6PC@j*FCQ1Ho2sloVr9cA11<;f zDoI+FGI>?!K|@@*Um+zaJj<^c^}l7E9Bct7ys&_y(Ad5k4DL) zF40FUE;<}7^w~c}N9YT0ov}7OvXEkOx}p(_P$j&K$V#SN@(v4NFYUe=JB~(s-9P;;Ef<@&ki& zD}8~*wD!3j;uO+HD5N=~=0%87`Xh($%AB`8dNvn$o)VAZ3oV)?~;kJxSxh5+7>=@lIj<2Kc(@jAn?&q7WM{(`_l@6%jWp(bjpvTOElC z3b5Y#zlcJp@-u2eca!Drzi6gCiu;z}g?8s<&}uVMN`&9ClQCMM{@h`0*<`?m23HF2`asQ3D!9vYl_yOo-+lJ8K7U+jPpH|aY@?f1Ft^+GTIJvmM z(H>mjcCUL}TsapWd_A#&v%=sTq{m0Yy!z-RnXgB)R#D{q!VG9XA zc+{YRrXLm8sB@Fw;e|6aHWl6fo-6oIdlW|Wxcn__7o%t3BzZ)PaO)TR96sL1`A(c8JTDB`uoeyCCcs{?* zohel@QcxiD?wfynaa`EpQRKce_~u;r|3_sf`|>T&X{}JcMFj^hrrpsA;O&ktv$!DV z<@A30;n}f1vIs~jzCRL@3Ldx|XUEg_&?Mb*(pp?pdgIk8w8gTdPn4y1*hvRq#ra<3 z*qwz*WrTth%RI05AShnm3Y@>mlOpl!q0LoQ<7ym#wCca>CH+A8@|j4-ZmoaMMxn~! z1ER>*wR1W9pF8W1_*LiGAm8IyEHmOO4{*n$xQ3QX{oV+}<7=b=dQmUG9!)Y&6q_ja znN5#30fiajcN-9Yx!zxwlXmKclD|-_NxZSal2jb$D%mMj@CZQ%=@BQo=4nD95e%jN zxFi1ON1>0Iz%5c%#l3!k9r8yT6wDa8cNenal0glI>vRA$r@Vsf?uIPNG!4kVBxT4a z@?cF<@%EU&(EG3wblh`)9bNH9+(*tR={GUTZ-W6M&^ZUSCmRFnG)bwewI#Bs!}ajN zM@FfwG7%Tll@fBx{%#(EpBx3Qefr~sM(qEVXk521ip}@xA<|Cy&_(|hCSJf*>Dr!miQNl$#1O1sqR^L3g8 zs9*K8Jll*R6#`PcIMmYCs~c#uWdDzVCnpCL<_#Qpb2?wet9WNNr)u(W@vJUwcGNlJ z{I?gvhh4CPqh*_^2D?UZRB_B^on{W<hQC9fhDErhcUhAI(8&5CxZI4fIRQw!I0yg7+<|i-LBuif9#1XON|b(le~f_#V^CHr%I9(8 z{=w~`<+p0aM2U;VF1=9NBP2$A;@ABZ8D`7}==j1*(GAKSXR!U#E&sTSdtdT7)@>ZzLVIf6kvyTqQ2|dFg-1wBql(M-x zOgy|L4z}n-RizNzl6dzWqERMU(3jBZ(jiyqRNQxG#R1&sl=E{#b_IG5krN~QJlt^L z{GxS`vy)&z|5Z$DkBTQ1Vt;2d!xSdYx-79KxlraF&xw8S6?@P77VVqCRLk-0(5N_B zmg{~JDwr%(rw;zVfhZ#auVADso0>h&UnA02LBmS4$agX_dL5)>Ln_wvGT(=dXp8Oq zW$tBOdI&R>&A@<3(ti+GC>CW zdJY0JY8V>oKmd`VGn`sMUY;OaWSlrY4H_r{C2?Dtkv%6MOdN?V>>xh#mBlLx4p;mk zEw8xk8~*xR&*(Unuyc$}55i*=3G9@p#e=V%l(|AC6`H;^HoPsYrq<#iMnWC>*S#Zt zZo@j#yp9p6i!Ir$GPxqq?!UoXZDV~~x92(=_T$VwDwmNdnG&2#`PYbxdT7~A^mrI@ zDofmD{}OTB9b_~kct0S@Cd-weNm6Gc%WkdL2>4f1qKk{Y{Zm@lpP3`u9S>*DY~0%^ zdVHjmHkR8QW){H;>3p^h@-XL(>60*F46g4N$l&#s@ThZ6WW-OTV*n#Z$EcGNVHAi9 z=lkeAs|&N5v%L5I9?dZoP{pBw;3lMWJlFbDSjv0|*^G~01&Cg;}D&#RTlK&)_tR_wt%#tRMr-6FEO zM-(GvJC$-%dH?9-!NOj(uFHc?%db@T2`iA`A9Hf62R@S zF}L*6es-*df11>FT`%$|A%7=WbWu!B(c?fwmB3j5h~dK zL|oXXVfc^@Nh3qG)~Hn6#nlV`MxdN5QjJXw5N>C`fQ`(PT+zTf54zk`E~WMBLzP@( zc97f-k-#Mq*|*b@@%Lb)6Nzd!-}@Mh94I~@ZjZ?3r6mFLkoDA5Jld)LtJ4i7_#-=O z(pugNl+YNb34-YHN8fXLp=ByRR%4!-6klg0;*vBY>x{>>2E9Faqb;V#TkE^OpHik%niJygO4GR=uP3?8q3Snx z$Hmv5`&$7#j2gYtO-L2!Yyy`Qe%5cFX`pqZ2ehvIz@Pn{;3od-9xWHfqRl21 zyJeT*o0}9R^oVj+yYf?OIGTJHwp!KdrIyLBLlzkPs+EnXg4zp_*P|qcjScj#J6Q1r zS;e=FU3Fd?u_Nwh>Fm?@56)9RdlmY^?dAlF?)A6D4z0*X%oSw`TOQWQPF7c4Z0{!L z1V#+x9%|<4eL2VRC$Mg%9r^78FCIVtpun6lP^@X7jOUWYKKuCx!VF;C1qZTjFL$np z>DjQi&BZDn>xyzH~X4Ljj`?wF7LQT=G;8<dtCP8Y z4$#xPE9CroYV>@<2xVa8c5)as~jcF>O+#b0|TT+N7Vrbpok$i81#qEB_KeE zt6e67-JgRi$*Hn5&QNHyy}6T%epVIP=z}W-)>r*vvy|t zy?jqNTb@8eU>&%F6H)h#%@Za9Ol)4jv}n4^n6#J1UGnJuwnR3Cl8liINLAhDeluSd3hs!KDd^vcw03NqqiyvHtMJa8}(nOv- zzB4Lw@fvgEx9*`gPk>C@=dZIgB?zhupXxm_?Hf9&DWw%~ zJ4;}iOl7YpNzUaEbSCAt;?$m@sOaW71lh=qPkqkYIyD=;D09sz6p>Pu5Tq&y{8*h z*v|JN^`f-JU(yUVI{wO`eOBI8vFQ94s#M)_gpRaR31ilxzP~d+D9LuBc=*~l+p0=o zi57r4gI-dSS3U2?wSRGpH+UWaFK z2kOcBJcSQ$C-M`byb126+xgP~V=tJVQ3*x!wc~H357_oSyI*9IK2nOG)!m3q;A{X= zM)Lc{$Dk{*l;IIF#MG~kYET$lWN<*;7YbssELvAmp8bHLt(%82g*{~@*Zp#>&v4vH zoFVt0Ho9?0$a`SiDy+py5?Gb=8B5i-(tHCE;{Ong+s8-6Lroueu>61c^gvDH9i(qx zMblM(_<;3@g!U1=2uC4t)ird6`>X@djvw@Nj??^!p{j*cnQ|9LCk{uPJx2q0X;`~8@^>DSX@K*Uk=tg-kvEK+_AGEBsFnWh!IKW2d)sjhL!Tu0o100KnDVP5535FFS(vzdTT6 z&3T|H&iZ`zNqFf_F#lCl?Y?is%KlkQad854&ov`2ipFK$MW}wY&sV_%VpFTj2-Dvo zG>|O^WaL;xa-JL2H1>f00LCM@2G=$2HCB&np#r9Cqw3$|bn#{cv za2nxdYZOpbqbPMZHeBM%=}5D$({BgZ=LDC&QySCxz7AuZ2Rx+{h8n+r^DY4bq=-iX z9faQ;RTKRzF1bR=>zn>5!30e6a7@O6R)WO z1GNk@h3nYtx2dp0tK7Fh*S*r$Zydcl!+vsk19}bJ>iwRwQTuF zrlAKY2F)=Yt~bS*FdfIb29#Qko4D$!T%?b{>qs1A8Q_mFukAqlIjPy;6UQ={hIk>tv9va*Y787+|%Ioy`$fs?w&bU||aaM98pld*HBJ-C#D z{Ml((5{0vbnH$E-Z?E>9E|ZXOV-5G>+)a-wp@p?rwj;0$A>$=>u)=ct-=g#WSQmqJ zo!NDlBKe!|-b(nJ@6y%jEa??J&W(ax`b9O(++&-Or&1(cY$?54Rkk2@a<%y|hyawA zZ`TSITdLnw-9+@F(@~2?&T7>a_V%j?0v5}9e5AVMZTIl@-!GcELA@3(|IXazZ{F** zRy5EP1X*0!Mk%OwAg?CH(rU? zATP4#E;>wvg@vA|ZLSW`FqCx6IdIQi_-S|d;@eh(b*W&{gF!i^K?eE55EcQIgYfHB zj^r zf!pwVDw~px4Cf;gh*1gU-{eC_rQ8GYFzQ{Yqu{zlF4=0DU&zZP>%F9}WlC;aN^DrN zXY$W59d`Y!pZ0Ih6eeUO4?VIZ=VxrLtn-s#J<(MtSSdEP85dT;^hi)+s6&v>D_^j7 z*HP=x%eYwb0PVC#9bW$0es@&_?Q@&wMEuy!lI^r)fBW5hei$z3qsnv8FB+xQktZTnsq8GN#e9j3}9^jU928|^q4*)GzR|W`@xKt zKXVR~v7^{|1hnUFtgrKVc3@bt$3^$_l105rAmzu|EVgLcE}dQlzwfdEqMVUZr#b>C z-|=CR+{nl5FUdZw?tQF>?e><~htWIrhNM0dAyW?WBW{L$9%7w7`({$E4=C6Vz9x13 zQIGszHLjNYWsFrFN30+7b{cn@+689O^1Jt=we2bU*DKS^HsQTl0Vj2JkJcbA0C)0B z>TlVqM~hGkup@$cc}Wp9_;Q%eWob(M&y4b^d!q++o|$CLHn~f@ji*C(c4c(d*5S85-##K`qHA1^N1wX;o`x(_ODeJfgSGM2uvTCjQ$Cu$=R`9XN}ecB&0; zYnGEHG^WHpDThstH5eCNl`*qv*+5OgJu3rVF6@GEqM}~+C>E#7jP3gIsKFV`63+OS z9A)ZjycnnPEsjKeVm`}{;7Da(6E(~c49Bbbr~~OzBW@HZe7(aU8z5e6Juc3>s*aNR zy)*eEljsi9O!S54$L1;drwb+Vf<~Uc<{7tQJ4IZMvj|ODW^8>RnH3 zq~V+Eso{~nX>ni+ZDmRKfBIpW$1@y@@-#C1Nk=4r<9aZIP|wSooIPWyCFOi&>;ti*h%kZplm%}rXaD_Ag8?> zC2|olS0WYul}8fa+XPB@_-;^<00L^M6VfsSJ*n2>?`tUcYL*;P{|aMU?Q%!67P;A z{c9-IG2%x;C^LAU6}ZL!{lJx38oDmS(P45H*=UU4);6DjU3h5rj07@`HhS4FO*)xR zqk2x^^S7NV7O&t>^taENgbSM%5KL8SD`m2>tgVv587+-qis`Otas{qNnGQj}GM(ys z{Hy=e1Krrxrds-TAPkHELTj}}5P#D|B#^u0#@dLR}5`sFJT@vVOx_!qB41oG)O8$P}s z>*1fj6cugOhp{1mym`X+^<&W^YBF-AJ@>A7B z_|f1sT<={{LNVaQhIacc&KUF@06qe!8YYJhM}TYbZ>k{BRxT7G0P8MwH%NUuK zwC^jnQw&xwoOab6_PRX_d(Hrj4Z3DH$l50>jJt@~=3PKPCSOD04{A5jAgMrHx6~S` zidJ%rTBQip>H^jByXLMkp)+n0_niVbg)JgDro&VP17cogI37HcUO28n8I9-3i*=7T zx2nC%q(t+mo{ov^=0WFsXZ`LWaVh6rV^6Z4De-Kg>d8SBt(Zf~wf>BhFLDqvLZ1^zRYw_J|w@iF#W862Fa(`g!!*zTj%0UfzJEu4MEmZw%V z=i~8%&=l)6Fiw0DVgZH$>fgOE>CcB)Nk0-{rH}Rp?wmmUeWW>07ntWQlJ0GsAAm<2 z^g{sPCqw-K3xx;l79i><;TPJmjvc!P!ek98@#{N-Yd7>ic0$4V=fo{Oho0V30X~~) zXre`8{WbM1kkhYm3(|1jfC>v@29jzdTGN8ymJ-aO#A z&#fpHVjwS>S_0`uA$Wc~fABA*`h|2HlByA)z!;@DDd1-R`HmBW#^mt#jr(MNm}npB z4nBm>ku*oz_xOj0p(DW2x$DbI5f!=f#lH8F170_E89Q|x0|^ALFWYq=yCzXbJpT37 zwLnC^cVcDKTNm%9iN!a?;_PB~bc;vp=Ds60+gKkRwyz<)$oKp2CZ0cxB?@~UoUupV znt|=Qq{cd|H-}sW{sIq&_HUc^$JKfDJ7CJytxv@-psu{3R$xheTrcjMW3uNl|;^Sm>uTQXj z*w^#DKeq91e%ie_o~x`&pu_kf>2LEp3-Q0Y+VRsLCcf6;zXsxe)#O4rR%K{pY6plX@Hh{>5?}(~7}4_yk&xfZ=s}K6hZ{?uEN0C~IIi z4aP>JHGt|5U=RtNXh6FY*4^`=uF%;113GBz#Thu|5mY-P&3-T$Wa7zyF!%5Mp;Yj- z(Hp0;1bGJ@go(CbVN^#9>T4Q&TyI16O}o!9pYbTccz_&GG2sM(8l-Nm0_8*}he4Wtri>O_kC{P`60J?u0+KR*)@m8W)HN%a%q^Ub+HL>`}>4!;LZ z2V88n{+S<-kM6;46MGeR?1*^6Eg*8$e2Z3Wt8QM7Z_w$7`X>%zW#{z62gTX!~~(W~b#M1XBw z+rfMu_BXW-?zYaZ80ze9Z~pq_D}ji7{8Fb*aB+OkX8XFxpFWz}kJVky!yl9y){PE7 zFe!DWVZiH%_D>Oi)OFm6=lmau?=Q4d+pqJ!O~k|Tz4&Zvf0FN=+P}ZAUpC+OFP}}M z%)TBltT!CDdiA`)d)Ggy>!q%2*JBc1kG0lw&u^cJh{*5XzM9sD&u*Ia z0CVnvaBi)kbk^Gj-g$Mg#k*tEhqt_FV#kO4!fn#c`4<29^l0ku`T4nsh&(+#iDj4n zz`uS*2|PsH_`!7;to09@eqo)qc)0nd;ekMj(t*)75b+I!D-dj)7ofL%RQH(x^hqW> zj)49ZksWlv?I=JKn;TDn5C3x8a)P061CKM{pcSOQyQ}KH!dtslhlE=-=5Xo`u8O<9 zJ$%jpO^mnEUTm~wqhI5Wg)Z;agoh;E3mMw+2jKR&B~_P5R>;_2og~y>y>^|tD#8e{ zo*1ZISyFVwd>tQr4bK9;y^v>>h5SdG_;ukap*IPV>((#t0Zx0(F7Dl@X(N^zou1ua zBl*c`ee?;;gp&m*evjM|cDCJlHQfgB>4S8gffAO3VT@ojk7I{hHLs7>oqkwCAYj)a z=_Ej)-v(lDEj@_8`S<@d5?rpH7nH`|Vb+H`hEq*{p{enYDe?KqFDs4QLM@k%U@Dry z-%^NPYR-mYU%y#ahPtR#s7_|i8CEyTRuAj#W?6>@g+f^}sXyY*u|u<{g83CeWs4RM zS3qGUQ|*EbE{ck_b06(Tstz+8?;l6}(@OWjXg8a~!Trb0U{`*ym~D5oO(@;Fgx!t! z-fpkP4DZ=-2b_d9xRYf|7w;Y%)2^%~iQvwAqg|7ELL7nKrtNw zFsB2^s4if6kW-y53GW+qy)?!+OGbYLG@|U%Ruu~(l$fZU6?5nmLP2K%g+fw)+5{g* zaQg}S0L*juD)|Xcf%IEy-6P@hRL>5|=w>>Qfhb|GL;MR?Aqa;6z)vE2g!S@bd)YqL z+(BsDmv&>*;~@f9mrdQohX+q*wO42Ha*tO75xs8kcMlKl6?rdApj}sTI50y;z!2X{ z;Me2xhuENdKT~K;rkkey13tXi9>g9w5+Anb#k$Z`9`|3lGnF)v$h!kUH;rJBq(g z>#so{wA+8k$UR_imJIRX-RSGfE5V*0#mVtLSJ}gZSdRDa`JgWsLaz^7yvltqcN#q8 zddp`q$hGG4uncmud2qY`x@>YYJUl*{i2ucfFISwO`0x6*@i!cI1o%mCw^Q&b6s;2A z3#j*dJq8*3U2*1cnLXeLNcAEa@XpPBZ-oPoGhplq0ff&0Kq4mt+yfl(0G2!{kl0_J z4bYlzTKa^5%b-*3hNqkoz=DEmS6Hc_X4l;hnqLgZL$m<|4Jn zQJQ~&qrDV0kTJkDb;fi%{IEU%1r4A5d_nTd5*Tv-?3;(wJ=P!QWnHr%&7QIOJon;B0n2fE3r+|B)D!|yJRg9X zo7=)PeH;w-P8W^+XZ#+Tc%K5W;-s-KA=V@nmqKW?x|yr%cWOeD&~)phHWUsT4O@r^ z&Z{4$(-gJtgi2;d@v(MqDr1~(Ir;>4o9#_m@nb^(y4YkJnnM5##2;hF1i@#)_lRtq zarBm0b?3%;4A+Z^cPc-=iopKIPBMSQodJW4{2HHpv1$VCe#M&XkHuhD+^{p+xh6NR z-aX-Sm4Ao377v z6bdIE4L*-LSg4Lu5`N6nNmLk6pKaYr z?bfYS{{wV>b}lL^Pd}dmBC%s=+wKR2S)n9kEFE4v_Z8h>@8`Qy# zoE}K6v-_&S$LsiRJ3Xuutic!7>ld#?)Lw^pSm(Gb-d(2|0sJcmKDGUF_|!Vq9lYT? zxrn;mKD@zkz&h?nibr1ii=NLl@MGQ&3wXaJ<6k!TFP}_gA^H3AqQM)#U&HTXSgkHT z{(`oDuO(|e@S?%**BdeX?K2UvuYaE1HtVZz-%KQGxE_nG_ijWbmfPuYBWJ9CU>L5N z_3Hh@y@@zpU0jNa$b&C7y?6aZ6AS+1@rQ%o4)3)&-!$ug!+IW&^Ye2N5qaA2g~&_y z{A|lFp7f`Q^q)2O4&Mn7|FfoZKb__M97Gyve~k2xcTgaubf4Af5XmPH z({U5R>0s8WhkR;evo(x6I36_M%?X@EH&q*GB`6#u{LeUYqPeF7;J1h4$Uh`xpMJLu z!NRRRsG|9&Ex1@cP97lO3<%k`SD8S?;zw4S=gqlUuYvfZ@mrz?KbdWw^lRWIYZUbg zrg?T%#(M0-M*;SyS~4BZ#dnL7PgTIw z(-20LbLm1|eLgQG?x2Ia)MV9F!#GA%z z%K5)E(UreXk{{yq&dc#|bE8aafgtm$qncO`jGe0NZ?q@xe+th27><=HvY$x#jf+q(8RPKk6g^jQ#?L z6Xj3;@qdkN<%)(^O)=JGdvzr(#Eh}^332+G7NG5bXc?TbZ{BbQ&HQ8($sG{TY)npo z8gcSE8ZZ&*th8pFHQ}H2qg*>j#F4DrDHIB2Q39&IRGZ8}_D9^ix~8R$_M?nWKmp4q zI}MQ34|`XqKHA@Q5O`^CMDLUw4Y|a>L0cu8N1hI5XABHY=7#{Fm`&l&0nlxz$K17Dr*M1O!{g(Cu(}BJ0sq6Z z_U#^t@6=6Hw+rHMIpp%_m3(**e>*Rq_&Uc_V@mKyt7&DH|vwTI}_erhd!|0 z3$1^W@rdJ5uzgtdhjG0(WE-jW>F^5!LEhpqg7)G#ngBBW6*(vAs%sZf7#?_czFC_3Rk$;Y(x;swbmu&yWDJ#dwkeIana;{ z_~FXs5OE4@;&BwQ%=>*KH3ZpN)81AkKop)!9Pu13A5}2xey=dQvtRK^<4#~0Aa|h< z0JQK<931VcF?9bBytDJ`_@f;nIRvby9n7A`PMLLKUh=Ha*hGD6|=25#}E20YJ86^3H;3d{bu}gNQd=E}N9LZ#cl%wvG2Bpp$22x3&f;5^bP&X93!vkn4}~+R^ptH z#~^LZt_j0Zp%h!)>4iT z^NbHBxKGBhe$=*Gw&MVazKxWe2IFJnbBMn=o<5ZTBZYb+tqf*H2ms8_12XM8y#FSA zg8+Gl0n_S~y6VDfAicM9=U@E>Y3-bM(VnC9kuZUH+_^fMhTR#ET2UZ~b4@<$i4BJX zW6*bF7XE?0Ii$e-kU)KI9b<~`q)qz79eoqLfC72DRdZpVto4Rac5k%T|a$qOi+6Yp;R6Ed64%#?3*N|?Bb#le6) z`-I0Bc7u&b_J=W*2273)|8JWxBeop>?{!c$>-fHSwr#&(Cs+e`0Earnz86z7KT_)!r`ARG)@k;< zP{a74bn8aPLrzlbOsCede$%x7(TabWh@ZSJxGqc|;@gv&_9=`{d>)hQ-1qTFdB54- zhbn4*e{SEmNW|OU&#B*wmoIGJqun~n_kB$Lp8CJ<3EyiVdHs-z@2+R!y2(wI z5c{t2+*gD3-j4?piMwoK%^wBS4(SV=t_?{YU%aW_LtY5(s3R%S8aw1?B;%|4jY+S^7xVVCY zjC&Sfa5xmy?U7P1DZ%h)zf(O!Ot`{zx85Mej?jCm4q)gM=wrI>2tz^heymS4H$!Y8 z>~I>O<=D{p-@0jbEoWSn6cSw|^*)M`-@l(g&4Q(Y4nRC%!D6Qu2AxsUMrF??cPYFpoXG z1OTC>`*NgESb=KV$xTfqAlZk-Fmk^76954|^I`lmhdvLmezaja)BuUJk3^f~oN_>V z1pRcoQ zz%x=veU?yYt{wD+_{spb@27_C%Y7vQ7bbq3{;)6Z+pP|yt`Ekm`)&kx?7Q;;3{?{l z19q4}eR$#@Hgcbmg+Fo-64>Y_n@zKfq4Jy zQv)>_S>S$|s-T))Hi+t47_7xox=gj`FrbitQ`v=*{6$%0cCwEd3^q1qABCm_CYx_L z*I|^MO6~Bc+6qRVJSNd!{0F4iIx&%6oPP|w4&qrq=Hc;Cys_ym{&>;Bd&p&r>>t{9#Ev@>4PIWh>qLq`;cx^T`f}COiFC#i zImrIiWe=}@VhK6KDs5xgd(9WDHQWD$<0{VNgCEgo@a!1d*oXuEyC*FZ!e zH%)APJoal>Cv}Iv4?8^?8OGwnql$L$ciuXSxpyekXy%|4bfA@)(1P&e9I2U;i6$AL#?`#Og`iC;7xw9f&L z)0_{61^sRH?@RN2yt_-o-`|-Q?WuL*?RaAydPqTiP@w&YeIgv~fWIGSPtV-*=ZndN2{p4&FeTuP%1E7Jis`>LJ&{50fL}^5PW$c)7U{L7Q)eZR*Z#=Fcgx&lU0XWFr0-=R5qPiTFG5FoZlvI|qP=EC(lWELIo@ zwC1TPt|9+TEIA+oj?%D6+SRVGkv#>mq?9I7mE zXE@|>cjgj_BsE-8&%zTab>gMs3!I3VQ+?u>jbFXw8fazRGj|v6?|*QSJ40Vk!WdH- zeJYh8;kxVv6hiki9KSYAfzHNYZl-?N?Sw>g+U=8gtlxYD9wy>H_`y=@5Q%s>Y_bPS zY{D=$DIoy8dq?M65+>z@OF~W+h~Q8E`F~eCX&4!cZ;D~pIHZRSH>)Fc^uYw5d%UO`0NM8-{*J%IsE<&uXTbwAgKmlk?=JW+tz?zBA)`BK=&6Whs<} zFkN=H#6?(S->}YsK;`??m=i(nhQj7cY%kM6ke+vNLZLRsPm>#o32d2bxF209GI*93&EZ1RD5?vd8V592i7+!0$+z@l4U#+F!(1TBck!! zL~S>M3|ZeVYF4h|S|(-em%$aYlI+J``g9N!T4d9X6q5IH@8Kh}{4o&ysS-kB0;5|A z=7I@7GW(i;4XQlPNG0>BIR=nIyAv|^Tb}9YqZAthOW#IRH5d%vm>dD^5P%T*^KwGO zi6;W&dZ1`5(Vj+5kHYVsaE1V+gb8SXL?8ack{l1sk@rL5vG5Ul;H+8ut6QI*GXU7$ zdy9`Bqd#koX&>r@-gC3tA zO$+;rCYER$yAwYtFo-=0zU;IW3-u83J?wHtY-73ZAMQ;~flh3h#))}qtll6N6Je)7 zw@z@}{;73^!*!0~!Rr=p@Eg>w)BN(eyKXchcxPQ|#|wYZe#A+TTK77+uJ*$4?mFd2 z#HX~c8TuR>9*fm~?en=xo%_~%#rM8SeZR%tpTAdn-=Ay_UC+edw^#dE@COqKyu7#&RgoXATwkvB-o_QH?I*vR^Non8JUU~w zhZ{@h=jS3S+x4x1@SmS;*Yi*N^>&!RpEdZOZG7OGv!-7^qlv-0Br=o;87*?`#%JvC zC*YCexEP6n-TP$h-|~q6!2#ghv5my;4jcgiCS{6ekHw~2GxK-+R6}=wMHkEI0N((r zD>59dF2zn*^lT9wo1Wgi43BCJxv*9jP&veQ!_)2{Cqrb88yq@bD72*u62k^ObE-YP zG{sTcuY;?>_l@q$TP74|kHOUvTp22WnU=Oct>cqGh!Nqk<`h+o!tEmD%of~(Q|*gx;)1#!XdjCrq( znm?+EH%pt(Wh=%YU7!9M0$S)@9NFDZnxEkbjp+OjD<8)TX3uxt~#YK3LrDI_1G+o6&wsA?C}v3``A z8>l$0h+IBm7d&BXP=U}}+p0?ZbMh-7mJD)iD8@m;ApnET?{F4p>^H&_s|f@bilHz8 z*L~o`wg*{GW zA5pRY(8lvpr1l~3a?K_*{&_RFg^AH+Y|WZZ4iut~$<1cQ`_I0DH}1?$%!4!bJr=g; zoWXHGUj@k{iTuj!j%9ajF7-x{eN?&~7SOj`(vOi{vtEz7HW*DX(@16rfRsL?oL!LP z*vLv`xJ2Ub%>m$Rs7t61bqAlEtEavr;1G-R!(@Pc`yG6*^DPo~xoKjx_pv?>r$OuZ z?p34D{T?3<0ob;$^6+S=Td5kTTiHxI?YbbY8vLP-rUuDVJJ#GwvRlrKtIMYSrmp8O zjX^g*!gW&z^zPvy@^Ec0y1u*=Q4ikX)!4_DJ>17b8^lp3Rl^VT)#arCBH!;H;?5Zn zxoO(p)`g8TfI}VMdy_-JAA5%g{(G3GYpi{@u|jooT{j!uex%DcSJxt%Q}@?cr@2}k z<=uSP#(KKzMi1XD-a6CjYrk$C>y$d#D#KV+6xOE{-ginU7;B3}yo|)_sn)IU;jw)E zci)(~=JVq5sP(?Zgzt0YxBpP-`_jS3cbn7Ozsb_)F4|w@_ZNM<{{=C~Rp6aEaIYsL z&-(x$`QUZ&@!jRC%S#c#etjP6!&S3B_u_kUb#W;IICE3E_?18Rm78Fi@jbrt(9g}_ z(dqJH6TlBiu{-wzeAA(Ye=<2{4*d7gQOHnW{EVkGd513`(q@K71e+ ze0cZ)EqlcJ+bh5t8ZW0F@Z@wrnrF*(Izan1A|yPZI$Tw?g!T6aqp{`+rA~E)Tn?XU#8}!st17L~? zgskzU6nH;pz0jw8qoC~NsI6zP(0%#7$5H~IvQ06f%@OhMh&fk~Iw4@x2__!cDHLS|Ja^rrj}>*JRyjXp!7zoPQ0N{RN!3hT zcC2kj904z3gHdJk%&N!dEhawNKe%hj1bVr1)-pcU#EX*X90=$G@#X;7{WFEU*-HBD z_G2|MzkvUt()fu5=OWh~r;b6B4!t5F04BWyxP5hn=uUbd_SkzuK;8QH2>#%#09yVu zwJbQpc8+>5`#@8*3JKfA`Db_Nfm$DC(`kX&35GH3%kqNN&_6wzkH`z)9hM1p>_>&0 zCnTX*+)7@@*#N1wqAZj4keZXQA3M2UI?2ZjCND+yD;RAI*+&VzP@uUKCrt(CKx7?? z=-Rt7>38rK8z&fp39RNz?DA)g7b4STL|%c>&(iQj#3qT)W3u z;x$|k$1dBRGxwDb?^EBydR_~We*5mdCGB1kp-<4?O!}?lIm1gdzI0+9&gOseH@1O+ zh-%WVtk3xBaRhi8=;@WV)9hj|p1SWz+4g-CPy;4F`1rh&c-wJZ9<9BJSn7np4ii2N z(W$hMva8*%R}9;nGUN~J0U)M~?b^342J!d4-l=+=K}k+6_k7h|lg3!^@H69jrhSzo z++EPUWsG%{CA0d1sYF7>y5R8qZ)`Foeo%E`peC}9t9cTaA__fRG?1_={ zE&l<_cz+_JLra^Z#`oc@_75b(LD?}jox-z*kXz!cqjMpZTx2{jkWt6@gWA9{e~@7B z36Ar($YhvQBGK&WJL(8=5K|LnW8s_uu|6&vv#Y8a}6% zyMs_8e(!M~sZc0`H9*>W3PO!$F!mu6rzr!I6SJL=6QJ0l!rYFg&&Saat=y-H+R5nr z_*-jbRToaYbYeTL+X(E|DGJ!Jqt$=up%0kJUglH%n9wZcj;-5oTXJj)9_7y=yICYM zmBhzLup5gp{VUW5B##rujZ4PyeiSD2qlka1qp64AL=B>$Xn4bJvxX*sy6>&wd;p!J zE=iLvAxt2M3*q5tHB!YOxbqLkPx1CJa7F}<0i^c1KTjf#mHrD(a}x>zM%L*$?Gc)f zLEFX`_^ywz=2Q^KO&AD6%zhRbiMQ)KDUd{n3gre!&ONXY_GaEm!g6$86p_&5>=uQC zuyz|Q$@IXi_5>DYP*lE`vBT!1gD7aD++**fa}pqNE@Z^|%+2JpM3Q z4{TFbTcf#d1aKhBkFfFD^tx<^IQy z9&dI#aJ;eO>K?OwELuOd%tQ3AuMV+mY9RF2P5XE4{`!csy6|m>fI8a05>a2>Ru5hp zd;s3BBWtS@47s`5#lGL05(akghWXryWi)UnbL`^)|J}sJZ!Qya16-x$2Jq(|a6f9c zy2YA^m-=|!&7YO(pN+pM*uJh@|6za1=#Lf62jau;&p`WFxqTd@q@F(RI`=VNWNRPg z^hd0H-}=F`9=o~{5p;7K1p3_1Z4jfNd;AY;?u6@3`!O=q)hAB)54jdHaxWoXb-;)B z$(Ao*%NGnhaL*Th{4nrB$mOQtBW*qvAfA_-9zTkZ)LpKK$33446XQc}30s}}iya?) zdNdLL0lxPT_b)%-pG@sM0ND#*T+_L3GAg5-JTO97%IH1l&EdX4oIQ1At+_tCcBq z`S#V>B~5y9jSj|-PKW3tp|RM<8Fr;%&|f|CAbLSgtmhg}BjiqqG5Fg3S+o9>_;<%J zURcZU8g^iPxnW9v7Y(`$QWv2@e~Ucs826S2{A;b`w+XDkbekD>R-Gr9QRqDg9CnOT z%iEb_{__&$AWURTGEl{zarJmP9!zCzPO|N z-X;s(V@v|Olzxvr(myJDeaUAL#+Iyc`6;FO3<(iyl77?ZCC0{Q$JpoO*BBdPpF_S8 zX##cUZL3ck^8g14*f6d|O*^mZhiK%QLB4?Q@6MfNb>76#cWVWLz$pTk?$W<37LMUC zlomKiAYE^zN~|A|u^T{)RR(&DzjKw(o1L72&QcA+*Qr>Zi;NxVK)M3=ez~>%$j8Py zr-P83B%o>c^B)@06mVugwPaV)KugFNKNZQ)k~gITfim&K!GjVdner?ztwrqKC*5WV zWFHkwRcJaHOck0SO>eU~8Nc1Y?^5o~*Ir1YmY@gGh4kumjP=r$@or{TG^$)5a1 zLa8Q#WmwFsjZC{puh&;#?29v0AhdY(9;^1W0~a4Po>)NHaDo2A>nzrwYGPYBYb9$m z)a>ivdpCEL;X7-N`RwbeMiM2SVVk?6TesEo@=a^B#do_?C%4tsn% zHYiYua&vwzD%;o~i^IWLXE*Rdxj5hD-gq><5-v8E4gN>Si?NqZt_uTC^X8)PyfnA5 zdb+KPYMm>Vh0(3+9PhxW*iFL=e;>PPtYe*8Cp!lZpkiHc58mTIDAT^y*PrX`7NXo< z@2UJW`h?G#3G&lfesUPV;7mpi#5qxW{anB?f+Qkeqm&^Md@Pw{KDXKeEF~jLmFi3B zM`hw~ylx}80;3~fN8OO=2=GEICko*76{ru_X~J048kXI1aqKpSs|uinGan64tt?<5 z%}$ExjIFm%{ICrSF9)@Ry0uO;>~&R1%KX`h&59kVZ)w!WN6CsU_lEjH#nk87gc#11 z4CjT}S(Gvd)HF@HW=<}Y-RKUJu4;V64Mqz?=Rm|2mU!pHMM3CguNHmE>6KFQvsii1 z5uwp>Jkp+*)aR?l$A4*3+dd1ilj^cgpJ>YFf%Sb-QyvrskUCz#D9IU}uc2{Yk(B@z0BVg;dBIOifH)h<{_xvpI{>OGjq<_Yv z{llMY#MZ;mwVKEKk$fTnfA`=2A8SB)!V6Vxt>whon^d#Ms%w;}jnGlY^u-!~o{&ne zXkG&wR#WGZ=Hl(wlv${y#@K6tM@&aOE?INN+;+*uuhwn8a^vHt*BbHz@Tfh7vRY@$ zyh_&mxyqIK&0~S%i!=>U$i^6XgQ9W!29h{}80V=70|zZcAhT?V1alyr%vadu9}w>; zcKIEBLD6R#8LGIi**MG0cNTgH$@2ySI3!7Mc09h|S5L{hu+EN#1{?U{WBKl#WXr&4 z;Iw<7FB-6+^HRjD=4JF8|m5rV<{=34i$ zoC2{n)c%gp*a9HIDPZ>4=aNL<3$B)9plluhj1KR&d=O?P;He)iIt(b3l@oeQ(hR21 zp}6i?=(xw?oeLVHT2jA}iduJtgT!?l3CnSkV7A?Tw~iP^o(muC7fY1|q(8F>#2;h( zf*RorY4_Mf=%yopUOROPEr#0Sb&EHUqkSy$)6*c1e@JshF3!&m_yKsxggWgdls|J79 z$9u?qHx?Y>U4M9D#{&f9`l=lZi0CPm>n3*at`j@xcL)sdk)(n9SaV-p+urrvSoU~) z+#cVl`|EcKTqo8Ej@A|K+0!VTqEp^$yXY_Yrc-3|5 zPyCAU1!Lc_$W*R7r_o6pP$?I zvBgK7rEu$GbYN|K9zyl)v}&O4d-R5AXOc_vdZ>!uS<%+Vr*}_}(0gkiSJf_1u5Pu= znfBp!21F;QCqd$V9Ms_DLZ{an^;}`AV<>zI{ko(+yrVCUP<8m){wN^7-ncU7Sr|e)tsH^L2&)p-HynK0pIJYR%m|o4IGb4 zgsbc?jOuoh709{;3A-RZtm^PPWcx}+p2upFhcfCpv(%YRm_Iqw!TKtg%q9}~9*yrW zOmGx1Xr?)kYp1wq(mQKxe-U48Kr)W*8+YatkB@8Sb+*p~wmZRU*%1~;Zl}1NHEXyq zB>l*>`?xIkrkR6;=Ov{d&WdDdJLJ1@MQ9=x-Q~BOelR{@?fE9K&znf|7Wx(VAAkYT{JLNn4@C=0biR zi;U+W$Q8%r1kfU?`XNit37}Qs(}=CPj61TQUH5gH z!5`IqLp5dS&&fRMP%Ijg-JJkXSE{*`Oyr1@tRS|xf8E|SPOd6oA(xh11F_r&yGxNq z-1=bv)>8sOkIisrJZuIS$F=vzU}Xf)#Tu!M&_5xN<w99fBbGOvZv6!;}T!GVo#GNw1q*+E904%h5OrS$eqK|^N zES)_OnQe_F{77smg%nLi_>GMMnL}dT<X>kt{oV>@wyZ zHR}pRU2`@Sq~pMDS+nqPAB=J`W-)KO$oXu^%3{(4Yze_ zMSki}(-V8BgZne!Y&cwV-r)Cjb|d3|ezuLx3fJ*HT;Hz~9P>xGW2gMdAvfon25*av z3)V&UMpxwAA9GF1yl##PzSnonKO6A|Igl=u1T`v*nxH;JRYg`HRo7e0 zNNP=wx?9p{fB(mrUaD?pMx6N(9`3e~#6plp^Dx)#LpHVcA^LT<+<&R4t0U)1U~S_}z1J&)oMD-Y!2IctOF``S!4ixnq zVp=Mu(X@Eww>zm!Ef$@Bz7#BPIaS_ZST6ox37fVW(6dmn!q*$mav5;qZ&oOnd0h1|W zfQ3^b@j}gHX^hhP^P00H$RTF~SR(ACw$2;JA^c86)k*l7Yo*B@m$s-gw{^B|gt03` z*O~?E|Dp?1%4ee0bzszSXrxF7KR*f2y#L6bm7m?~fiGyXYxYk2ivuS2<1VP z$&|h^2?l?wD(^P@s5OGS8T|?q+hX)LG5obrrl^{?Mph8chXSTQ{9k`x-CUgB9A#Jg zH4_2(3y$`A${t+p)x33oi<`*ibbXTZo&^nD3tY82Lt4S`L zLY=LZ-o_upSvwT{hcQyWD8UCycfd*2Af%x4r)Wqq8uJnD=ij=x-Xq{Fm^KjrT7;R3_|(Ct|7__fP-1-E z5MHD)pk!HS(hgF}R<@AB=0DPP3)b_o7|cTFfX(YReYx_}I>^CN_rVz@km5JfuRq%c z0h%ZY%UZ)$lrK}d9VN%b?bAfn{VKy#@$^pXVIoBS(1^pWbD@Ar&ojEt90Mi>tzGiZ zLDpUqD|avBhYv9e_w4aC=lxY&3f+v+?)0MZ(Abd`dmH+JlL8z|i}3N>{IZ6C8;$l_ z!y1SzdKj6+y!~gC8(7>*As9Y`-QaU&%IhS`ONVi;JW$xE9 zw^$CZpZAGe+9zpaaoJZ=HdbDqQ++O(6`I%Q&pw?$R04COC(EDZqJH!N<-HFm%huZK z%dBsxm?u9?ua}oQ{Yl&_{?Fl)M)DFqnL7xm;4#T{3cg+8fBW%6k?JtZt=!~FA{i~P z$gRwU!_DSW%+JKo&=RQLg9tGpb zT-)a5TSi|>|L*$UPmTCbuP-kXCa7ys+-m=5YXx0irU{?=HWcueX_|1;&n0{EWIsO8hta-_8Djiz?w%ZXmz<*O?gw$z!I-|EUe-F60g+J%3mlipx}L zWj->dLhf}Y=N`JA_L%j@)Vv7ub{Qt-w-^pe_f&ySMG-=XVx_A^kv(KI9@k8tc&vCq ztGp!*{9H0%E@EJodn%+Ke6H*5|4$b8x4wc3Ij7=7zG1%W{Ze$Oxf6W$L$n3#B{YX;u?)&5iaL*bDj znjGlaf<_E5*OpK+Q&Jzqa~wW7l}wak?UsPzXrGar2sjt8l@m~`23RK+kQ9#PM|XW* zspkTsQ7g+2$_9f5|B5tNEA|`se5<|zojhQ^40Q)=f=(!GNR5=jrl)H4^GSbR;1B=y zAMCNJ)GwR(&x%lRIkmV|&U_hwRk`7Y?^H%U-K5xfqD{)S$`6&K(?3Vn)hl5Ah7iE% z_@0hWBCRP!ZhFy>V`EYpS&qgvWM3k>qBzvxXWhQ@7jA?fdQijA*nuqUKuUD3KLS8n zwmXCqv|Yb*6AxgNoy~W(=^!l%y=nLr9MYe0nAERlU08qfjtkDYq2zQ4l3|~m>A$(i zSm>jpl-Cb|;bfA%lq&C=3?pqN{(RJeKNo(=bQZ{bw-_i5vn~)qm$7GU)5q*TX(Ap{ z@bbI6we?_OL#wOFehh%DPr>+ds%kkoDfb^#j*e7V7E9yMC^NZ_MQ0@p<9YasdWTE( z8fxk%Gm;1+iiiS_y$zndDwdxPhQ~J0@df#W9m&H!WC86Ny+;wl3P(bWv5zM6M}&b_ z`?5c^FbFM1a$u!;uhEa_UiWF5fe!O`e2bp4SLHO&jd$^%C`x6V3L`;f(BB1=nsy^} z6cvQFO(6tlfWnEQFow&JmYo42o!U*gO8r>$ zg+&3yrwm{sH9nU+{2hPc7XDn*Yui9E?c<8~)@S#f>G4qA^FAo%?BG)|XF$GKoNjYUM&*_dTmOYFw_g-& z&5Ly+qG5heZ6EZV72uOm0tEwYy&jfO@Od9*PKC7>=oG~@6GZ_iqXn>V2;`RxzCDCB zVUu$Y=5VC@95Z)mp|Er&E)jd{y|G|hhxaWGM5sg}2Si<=u4BdRPm|DIo4xM1E;}5#H#a44t@SQ`egP;)R7tt zI&F-zRy|WDRQ4?@a8|U;Lz~F~)eH$R__e#GB9!0jaOh?9yNt>gDlTtl`W}b-V{9D*#0@7rvfJN)e4xEMEbVkUs z$Zm;{h8T?aqANW`!4@%Z)#(-ZA;E?#5(00#jy=plkYI~rW z%vxk3^}E=aOH*#^y{{q5eG_Lxl<{wk`!zf^j)0|dozF!}I1cy$k7?ewvg{04^sQvd z2wc7hZ~9^ujX);)XeQQaHiehV75JhfdBsUr>a2P zy-#W?w|I--^_q)0@7r4H*sz3$=nxQdLsy5<>yQR*OhblWI}2j_cGCo(ntuDf=D#$?zk-Jbp8e=C!DBFbYUR@hKUc%U@uNNc zI{3nQg=l)9KmVaU&(m{A^|>$oZty>3{IKE&miMoQ9@TxFfmi%qukhc0{7@NDANmr~ z`cLAc4}A;^{Y{2X=x;fCE_eM?6XrdK*BG1kS|C4FMz~n3WA*LJ^M^kCV^wfrj4IIQtV#UI9Rj%K zyr-cP2C~?9Jjb7@lyIJxi;{aYW5lkjchV&9iTNhPUp!oq*&vx>mzc>9RcQ;A-3XE| z{#yA->@TE?IZjzKQ}&cH#eaIvFpHcDg)48lzi{jW29ho|j`lLlhTZ^}Kxe-+6m;iA z@?SEAPZcyB|B)TjQFHgLfiA7#C51HygH|E+?MopTi9%X)_8za64@3Aa9;2g41(K1A>IehF#i&lp< zg$ZFGu~DUdM5a%)?BW2?PvKj?=yNS9v>(-^Vp9Xaf>X=|H$2Nwfyc^+Om2TR{om3p zAlD^;wJS2quhvx7U;G&vvXylKipFy0K&7qQTOw3N| z6TBMe2LDdg!r%KME1ZdBw$E|yjC;b<#A()dxwJ-H_jQ(kdiam=vVEpApDf|!^Y)|f zH4A;OQ}EY5*{Z(XAO2)@-|pw`7qzN`D(XYR*bXtH#l zX5p18Wdc817AR}*qHnk3T2$q4&jU1X%ctYb#=X)c;sJ)~wTvS07}_n0k18Gy5Hr|C zO9WLF^=lbTLtd}Pur+?4HT)DI@en3rnIEL^X2BU?HtZFAqO{SN@%13>WWp>TnqI+n zMhc|pS4Ru19RiXAP4QZsVdYXW5S$CN@Q&BqxU^%ycWF;H`Ko0i@Pr?oo51$}wuT0yK0Gr-X|*cv zRka5i+z;;8VqNa<=aCNO_v~hTXy>bswneGNPDH42WVmvT!H>q3$x;;s77voX(D z@(;A(PsE%9>IwLAf@}NS$L}RZ@n(lTD$cP|mX@pmpH9cpe7n*ZbiSasx0Z zItt6LLl{Wy5n0n9y`yrk!2S<$XAW)-fSduGSGMN4bW{v{d49UV zYjnAMu3kFi>GCAy_AL!2RW2ar^jz-n3giB>ujdDUWaEB;AM&eYx=&}`uzq=do+f_6 zud{l%aRw~#E4mDPz<>57m1`mt`<|`~*zpekJ=rI9YuLYDF4M#{e10>%UY=L@Q8XyU zzOY=w&->J-oknvu-QhKTi*fCEnx}Q{dYb|8GBj6ru(0 zU(De(MqajWamKlmgfHylJbno9zimlL4D;>vb>g({1D$sgeDtwqzVG$wx9EFKBfR3$ z5&Lj&;9v6au;5ScGdn#|ebCt${|Rq{hf^L_@Q9ZGT6l!w&-S5*5k8~9oBG_Z;T1}` zwQs%uJg>oD&^KOQCLnd6rsuo7uVs;Vy}V}ijnpuC{RA2O1$`!=|GgIVw-h~}@NX*k zyFRJw%P#AmX?_03&!4I^ikGWC|08E#Ag4d;YI`j3D^d?O_JZ)bFWN^dr-r(=3UI@( ztL1ZtpJ1)^f;2oz_NJ~j$>n0PH<$d>82vG|ZFFf37oC?SQ%nuox_61b*P0fb**4jk z7f{u+9Hw;NP{(Vxs$lxO0G?(zVMkk|3vLUQtFHj1Gfc{-w{%XB`k$x!Xr{{qY+uN^ z`c5VfMF&$_eiHDR19Fi|Dn-~Vz!T9n%s7aOMN*iaCQ5rGv3A-VB;bYz85)>nf6n<5 z{QBD=Y;*fhOQ}U+8*IxYYWuu8x(;A!{J8GzD{n+=u7#i#FWS}{Q=#~5z`VaQJQ|8y z^I(m31et0vE79Yo8z5=u$Fcxz&Sbz*%fU7o7UUD+)q~3QLeTco-Y@fxP^e!UE8&0v zzP|M!a`JC^*@t$4ZTfJU92l0jeMo<*O9L!(H4O))9;T4{+LQupuPp>e)UN8Nu225;&~LDzmGO!BWxeK4j|R<5=RU-@@UtS zg<=7w6n{koLlTcCDnRi^=CgvC+YGe4s$1&_N=fY{Ew{)+O^1|FBcvjTwM+QAcHevIpE=OkRfQS zmhP^*5K>%HA6<#smWEMl0H>K-FI0Z}tBOUaJSWC8`~w{Td4szcEw2j6rgvzc=Kv*V zK&9eWFpRUaH5t=#?!8^WnQ#WAC|4S`bnp*`f_s}oU24||*}$Zgcaov1Y*lA0Itc5b zPAaCUIXtz`(zdeVjbM`>E@M+z!taNfru739tj&wtSO6L)*_+WR? zWSk8WP^tZVK6=FL9Wt#4rOUG9D5CcOD*OrbpKIb#0CR3J2;&?Q#X~gon<8G$-_So# z%Iz8$w%mQSJZs5;W)V!~Wh6<{OC}{bvz8Q+m2R*TOb`hP7>DJK2hoM{hldTIRIM_op8Zt4Y||lH}f&EQewh2gG!w zp(E|gJqPbH1q_y=fRR%s>I`Ruw7jb^fICZJ%Aw!V*bjNB4C>>qLgUL}Z?l)IwH3UM zk$5KuLeG!=jDGZJr#Z0U|M|P9H$rgXJa}G8*K}q)tgsj>>ac$WeF)^0_r?E43XINx zY@EMwGf1KI>A9q*3%?`8`l`M;jLHT+HrdyT9CdYi3Y8mJSSRV52|9yN(X*ARbu#WP z6)$bs>f&WdEi0Iumh2#a?`-L<^fz-9)b!YmF3=ij_+h_QJxJ>Np{IqT)EB^USGI+L zA8q7g2gxoN+csMTon@+ao#pS%ZVv=4ra7`AIDfywae*2hj9~P;#Tb3}t+03FNPrv7 z#WV2bY2A0Q9EV!h*N`GjTY9#a#M~K>r6*%&%Y7D?G%or?D$)nseK$3IRi}F&)1Pl| zOQ%SNwaY%E@=N!!&uE4($iOEI$MyMiS@$tb($56_KUD|Uot~evVToyaxvuYzpFax@ zfjR$Y@CvKo-e>ox%An5n+0EpBF8cT?(g{j^e^c!J>_hz9rq6MD9@{?0FZIi9z8VL?9DeZ!q@58-_`~zj~4BpRe}@zhLaXW>4(4#9!7W# ze!BYBzo{H0m*?jR8u&SW7~xCy5w!Lol=MjUQBz5+$Z1~^o-**}R z8jY_AAS5fm(TiFfOm+m63z^#rxJ=04SH0pYyj)BXZY_Rjud=vsil~YOmJSyh`7&)8 zsi>ZhD?IWx*i;oQFz5gJ^`Aa?Bzf*FI_OMF&Kmc|8UvU`3K&Sq72)$|-IN-?7wA*v zcBAmY%sNjLKP2+XM#>jZ>MP8Y!;GSn0I z!5iiKwqB)`fo7j%q9;|a;*ckd^8S(&+ShVW(Ul=Gq~8(216Z#M)StW2_fuf&(;R8{ z8UQ_iUFr?U#qQ`Q)IqMdnKuKb@0e+~8Ulq66mp^-iVbqtE9ICThXn)VtrwqaQ~tw@ zK6d@g{IQu&(ewFA74Eppr{`}hTXt+Cye}i-{VHe(jt)!ZXuXIQe2A+F5H^2@VW*Ec z@6kF?Veo6|Yns1r{}$bfH3k~}Rbq`=M0wj#um()^%?y@BwiuvyF*2KJ#p@+ca)%6MXMp+} zt$xF7y=1L{(QigOpwS;? z_`~50DmnlV@FLRcMF^(y+5sDv<)#3lA>rvdU;rq7iweFJEzbhxLgjpF4+yD}eaUd5 zVu)37J}MjnC8vYcX#wFQN=nmq;Kj-mOE(ytLLw;rN(G%=0TdAgxyzhRx@0$p-U(+` zbTJt_24FHp6J_gj!g!%DMCXA*L8kSR=GTqWXJh!s{lWO}nLokSgbd;ID)kb0(Ry>u zKdGQ|;&sY7B46BEgax;(PL8uG&;SMn1B@iNrtH#*3w4gb&-oA`6e zyEZkWUc!lM<_wUGrpRyvrm^RSgUMT9uqB*n15?0yWKsY?rE!FUs!8KFs+NLEBLyhf z3kpLO9)m-=plyzmg^8;!Y`0Rv%$Bb+rJ!_p(Gj&$atsJ;F<*F`odXbuoF;E;)3w7u z+o|t1SzY^4?aQ95up>Dw8e21N;RS~bsW|%5krh<&GlPR#`eS_)G=A_n@Lu^TA0IR- zy1YIJsP$rve1_0(Js))EYmy#B;BTuSqf7CvJq;|cfise^AHYLb(ZpbbzfmZE(=-aV z3?hCj8}|T4D$MsFMt{5mAW5{h=w0nXWWv$NssSKfdPQ%6g8^!MhKla)^6P~h9ByBx zAsTR0D8+?Wcvt0oD)yM8lR(P2sL4@>-p!M<6oDkQ#o1$2Ia>82ZsE65eoX zG?oV^-+Z#s=vCkO4O$tkCVXhK#d{n5kvwcwsL$zO3#=62cL3=64k8aPqz=^eO+;BB z$SV9$yz*ZzGyH<0%Sl1cYRLS24g4%b7?}72+~JjdXD`o}3DZX(R;&!(l>MFV+nRR> zEZ`|S1Qzh6u&S%PuIVWkQ2d0)^yBTP$~o}z{Bp&g>x0V`yrNI=?AufyUnJ51KL7LO z^08joKF2HiUN0}x#7XEw%o+Tw53xc4y21ab?Yo?#=OqUJlzzcp!%Gs8>XTjKsR$1P zex~SowejaAv0jLn@5fKSGCh{dObcX9Yc90Up)(X_C*t{bIt85cz+7d6^~{ z;i>I&kK*~}KW}I2b$PAB4+;MBetA>kU*AXbF`$Dl2vX|)E%B%bpZMSg|MpXWEYO3J zesW3ZVVw_Q`4|=87ZBuxxq(a~SgV_R$P7kiC?|Wv>>prPSM+~HbLpI^s1>V>v zb~^Z_4iG92&Z!d+T9L{HJX%E9K3`({(@Gif#dt{A@l?hr!cSd%}A{Lv*hB z&?ov#Gwz0=@#TWieca7g7it-LXn308r-tk6n67=}Po`XgY6VLQS#eKTcNWj~OV|jD z$H1<~h;1GhyS?z8P3`KO5Q`J2D{ulDBMm9{#gk+AAHEORNj6+oMh}x zK!-fk*8Q-x^9f%U1mH9eVND;1Du#%V^*{vg5sSm!Z9dfKpXyRD5F_JgUBI)c6RM6z zG{PG`F~hJI7tyFwp34uFj{bx8AO_n8W@OOQZ4$i^J)wr;htsv4)# z8L-Ad2FSmmP#~0tRb|mdjgtYz;A!fd7-f%xL3WhDDgLRQ0>Y^jVW_H$5SG@B#e_4rMRnsFLf^S9nEozN1V|tGGxSxAnpzH^zjUteyLldTj^)f8 z6(YD*Xd>dXz>I6q9}1-W(+o8U`&P}e!P8+{Qic1 zcVi#D-+e#13hvS zfvyjw(5JJYR7&{Q!u|aGB-1nR8~UVxFVRD3z5@Q$p;k>#2Jfds;Il96_hO&X`=nkj zLf=`g`_w+&;T0Qx(Wh47SV{G@Md5|@24Cu1jCtSObYJ0It$;K<3iDmVv#6on;D7!U z*m+&wmsB6+ymKJe*O{5cQ1^kR1)g^NUijxv_{u)tnYB*BBR^*mKdtmMh6lRPgHh)D z)!@+zKZ58N_WMRY8=ogP`jzl6mxr%L9V_um>$W0cTH7P!L3r1$6t9yNyjqdxuLS@C@!v(1K0p~xMB*Mg1r zqQj`8hlWmaYyXthINAD)WcLq)kFgOg>C?JDmi2!mk}y7xdZlY1VrY!JK4>(%YNI!} z$~X`tne2<}KnV>9`rZtUVVU4~#v}>E?1dfLkV}tNHZQomr2-gLhH|j+LIb{sfEf|K7`3hrC2n*NQVbEI7&ZDRg zM6&<@AOJ~3K~zF%4VuJ1&_Pi63nOGVx}a9eXsI3-Dmptm&Y*&^4Ajvlx+m$*J%y;r zVCOX+-pE(d^OcPK0Sx{&^Ftfi3^eAk!#*<8y7yHuP*<5tOFoAn<=)N!ogo6V9xlba z84P3AEDkFo67+2frz!UsUl|S&{o;>`R)?xXn_xvz#6}Wi{|fx$82ttOr_rAzL#vijAG3W1qtVH+1b9)s2+cS~^btt;LR-z$#JMJNk{RqPf@x>d%`o^1R zLjzEM+7b5H^BC-a-<2MOlYH?g_HFwbD&V1k&nv`!dfrrvl=%2wW9<=j)J<}f-`>?9;m&@T@w0&(!f&R2CE#MVV2qOL!U6<$QX(CO1WHA-` z=B~T|w?4Z+-&DrhvM;aPa%$7ZS1{gQE}Fi=cZY-Ahj=;O1|H>?oOPdOO7uU!Ea0Vc z@dH28eW00xU*kuC9;wgta-dt^>o-MTZLa%d%i*BQzTmRu`;zJ-UbvOSzT>O)Yv0#g z0gu7xIpM?L*ROr8>Dl(VhY`Lkqq_4%aUNEkR~dMPfiK+`*xS+&EY4;1*Kis~&L5`u-ImLE$7$&)`n$9!;@!Kzde8GEDw|W z^zrCR+IwmmC#T*zl(BEUxy?OLIbY#iHxm?vADLTdcHSaL-dxi_J^rXYxw+?-_cbEd zO}@b5_mBtBM1Eixe{z5ZX(L+MsouX8`e6;#pPRt3P63%O}Pi7!gKy>JW;kR}khDNGKGb z4-d6qib86d8UztuaMqkD^<4t;Wi?7w{Oz4d+S|cl<^Su?V@A_?Iv5UZuntKs4mR(2 zdixvqy^Z`}L%(-DhNi9M_H#bCI?6}BxTC|lVNy*_qkq?P9^FQ2>;QktA*D?vh`>{Ilqd?;QFq}`QG=k~Xg4S) zY+>ZpwH4Jz5?G2l^>!9Cw)Bz1-Q$ix73t^i2=+1_glFw4a-$3H_Gt4}^MY$jYv?M6 zO)Jc|v~W&?-|ibYSc}e4jCzcB?gus~9jpt0+2Y-+>VMD$OsWmsWufdX4uiIv zTsG%xVv=q4wrTqF0C7$M&0#ZCU6!;RyRa{i9NU<^2)+SYJAh`|oyHdw1M4E;wp_9ND_Bd!n@q8{bm#_r%o|KnWW z_nBOJO^QMLB=o@CyLb~yX#_o-8yTmA;-778);gvYsPV-`4Xm94p+&)0^NLJc=>0`R)?sV`;f2ar$vAI7Y3A(h!$|Y3Byif zH*&~yG4vy&JzBRx48)J#uld!iKm*nW7^x!|+#P7Z5VVY`D_r!1F=YBf>2bh7&H$B_ z)0l($6aqjg9hPu^?LML5W3|ztnUFFOBNZi}!A0j`f*MOsdzmuuNKl6dOlo_7g1)$3 zuT%pSo1xuAT`nSvv%o|dy_>zo{mETFKYt?{>Vqn4BNXx)$(RTmr~d5e_D&dWobPDt zqumA=+Th3DXA*kJS)J zZ#P7EsMdFjpB8#($6to8>}w7!{0|@g6Fvj~HU>SHcJhYq{FhUK>iX6j;T4Lz9zXQ( zvteIV_~D*!_WsQn&aOW9Mg0l}eW^@85QYEVy4g?9dk}w0`mp@Sbb0#Fm(uuQ)3>$y zd12p#+EXaOvmSp1{HM{si~U$!-#zJ(8~~nBdu!iBl=_sHdXu-y<+gclGV~yAa1Zh8 z<^fChw=Aaln=9gCs*V~^ja7(KN%l+k7adD~nP`-%sm>3>Hh^~jE+ar_VSE<9H;Mp` z^MToEuW{MW9~!_@kp*xp9PMJ9>$9txFB_j45dVgmQn=&EF}1h(Cv6Tm$Cd`x1JdG%HA@y1X~8d z!o~-vwht|T`d_kbUiuNUVS>%g7UbYhfB!#*vRv7t*ZkO%=uclWy`S}~)VoDwbf5Xk z$+Cv_^0ubgFuEmN9R3Ss?z8zvj;WucQ*9*H}=tKDX}x3_S=h(VDz`6 zuy+*HSXaPs4uI5tVAqe^DVj0N;6sgzO*6Adhd@AIaCMDL!&p@~bF)$!jxfkPE16V1 zmbFk58*XQ5Ez)Tt_J@6K03q#vu_zfm&Y9YmJU5Aq+VrPg{D|I;qdHB{EA9e2@U}-0 zvwhpy#j>EbEnKHpd~`euMltp~?$y)i|KfMTQ5^s&-m`Y$*z}`ujPe%bLu+}X%BX<8 zyLm$+A}VsA(vUFu6rgkpST4*~q4|av|A?3U=FS1XgTQTL0##^58EK`Ugto}s`!D%q&!C&{IH`pFVeaCts=)IS}@SSrx60y~G zZO;p%%L|$@N08iicWinG(mV@Fg;OB6l*$@4o8|)3T|w&;^>8o#jxm}XN)4h(8afL?od!c2V+V9foCf-#4EcSgh(S?D*J3z8 zM8M=II(MiS{L|nc!r&j>=>IZ?dB2IeA^__96qe0*EB=?k`YdkX1;aaspDpP(_YKV} zxfcZSGegq`UQoD0`l^091QNDU5}tWSgqfb_68`OBvF)2n9sW=F>`Ofo@YK`)_Lemo z=Z4_|zanbjrKV4_!Z{GqXS(ome}n(|raJSJ_zUt--M3qaIw3c$o2P&wo2Tmwx;~Eq=tWmtZVe@fZ8hBL@#h-}*O|>R-eUBmGJImoz*Y z>Q_bm(}EvKc$n!a;Wz5H&mMgkZR`=Ci@gICJoNanqrJ8ZJi5_S?Eq-+?HHjCaidqA z)WMhO3%iWo=RoTu^x0ZGi@72!_eu$G?t|gwBtn|8oInfCoKS*ZF30@8Ts5E51#wteC3ZnTRYtEFbj~l z3+{c;W92w=;O?V>nc0tu^)k|@xsRHNC!7pSf1!V?M(G3l$Z^xq2|8fh2sZg~FBkSM z5a-(`;#V0vqV;K8&73cpF1K$A75?-O|I<-U`m6oMVg!c@IpvX9*Ckw+p?%=F)ADgR z{GkUGJMRVVxCak$%vn=*#yMPuy(Xgx8&pBVNl8Oe_9(Q~x{zL{ZV6q&sj<%#5fo~F zq?!$327iMuhf0G&_oZ(-&;vUrE(g=K1`z1|88N?D^wcl}#JoE&n8Tn$^nj}(fA+Dt z?JH|Jav@+`A-%vN1o`X$M^;2%_8BHq0b{gM&9Cm3*!bh()sz3QhudYF6t5r)NJ zsP?HNfbPA$AK1_jHTDl?@S`D2zc*i6h>3yG$r>IUgT zLtlqL>OeO;1on0cl>QK25YaXcim?G`u*JF0*#aeUHWL8ffMXq*gI;ocu=$++g5d_k zffzB8f#1!@7bm_OF7%RxAztynvcdm_jsAzaGIbNVOkef4+oOKFfql*Zr9*(d1eMEw zM-Rixd(rztzSB_x!dOw4RXna*eK^-WOd9*IU8w*2pvL|l2EVxc2Q>JbA8Y9P*?9qeWd}fnp4j&yz7}6G@n!HI6Viu$pi*Phy7W!OD^;=4gE2U{R24`PzQjK&W58qO3(W@gc+A% z6skwj1G+{QgeCyAy^On5>fhTTAPnlD$LJV%pMxQ@~=*bDwR2LEaFpBIn+ z=ZXNx_Z>`|nO~!iqX5s=^yE$aHN4~uXu=;j`dnTOEImC!pV3S~Lf3q$g@=Kj51O)l za5KRL`o6hHz*8~bEq)f1u?wD*^cd(z0bWQoXx10}I{z$u#z7EC4>WzX1xLXGo)z?D zDtf;>KTi{T_Hk!p{9btE;W=8L`=j)g-vj>g0Q`Xp9+CV6_FZ4~{T|TgzOd(S@O%rW z2NQhs!#iIn;Enp#a|s^p^i@dkx<|J5_QkUf91o zZ`6sE(U|`rm5JW5OS8(ry7gTa!0BETr+2(bgaPt*jvPu z?F-(#s(wIU_9yaC~|xBqi?hp+>yyV(Ei|lwD2e!zXhVj^k4O_bOdF#d3HvNE4oLGCztb+eO^ADP^9yT&CN>Ba`uEnh z0VDOEeCcQpbcap`*5ZUAbcVc}%#u2;b64LE;; zDUpv^Aa5W?!oUuMAr1Xejr}7T{CgfL_zHDnTIhd+@U4T2a@l>|xW@s3gDf2P+dI++ zCd-Y392KdAhu(z)g^+u+5(B{m-)Y<`e?*NE5b?U-K?yM#?a@ksRe>#-cIonAv?Yjm_j@rTD*lhXlkYCIc6 zJmLlr_`+(yZVHDQstf6RIR%2E5gIuLLY)I92f?T&-7!o}*P5Nt_K&5Xg-?2)kWo&o ztK7ao#>NXCEFp~JIlBok#XF_m5NEsfz<{R$`p|*u1@nT9=syCZz$sUsh%&V7X^OKXiL(AKz^d4Z?2*++715A*%wxj zQL&FZB>3_%QHG~Tj}#oZ!H@DHNB6y68_HRDrs)#tG4r4P`EuO8^55Tn2FP1`dGN^d zp7glkQHIZ-R|lQ17oOAN6@Ga71%vqxuUp?&Gd-7h{?G5nPx*X*^WCRW`lPB)JYw`K zXy75@$8P$zq3`?i$o54pl9>JU?dLCSuMGe{|2>_ane%u4&fobvf9LP~oxk&U{?6a| zJAdcz@qhT!KmPACXtMgpbBd3~o8Y2Gooa9%vu&yi$&{RM$}F zqve&is&GB+gSNegL(9tH&}0I5Y6)Ta~%T#PJ~)XOg4Vf~#BAXLx5;LREFsHslUeW3I608_c;I3JGf z)xE`ze<9<*djdLOgijK&sHoWcsu}IkvojR|7d40A9H@E z17PG0G_rPy#vdNx6_N44jKs%11b~s&utH|ob$WNPcn**y-v!k5Qij8AzE*@-8sHSzM4V=HP_M?BpSU%lD$J^PUqhaDT!G6P7 z5d+hv3-;i^@?=am;=udzaKF>&Z|eX!^{yQxi04#QyX**20DH9}tZi8{h{4M!ju??C z0u{EP*q>k8(BGpO)Da5a=|nhxM|1+<0kumyU)o2m5x_{qjHNO(RD%2S`Vo!N)8HS3 zQ4SBygQ^y13c%?M=xh@nEwrD5N)U8TfvVi`4!!I{qWc*;ZZii#V|n6(-c+YyfBp`A z-J`)iKZ=22bOab{1S~vf@>{JJ6x*hnw7Jsx`G2Pr z(GgzLQTg|;d`6S^HB_&qbpt5inUJYDJtZTkB%gc04e))SB#X22S`#-hVz&+X#*2z?3MnLp>R%l$Ys{7i)Y z^pF4hw0KWNbN|9{!_A4uUnsVmF^|X2;X=vjn8H^}8Tz6||D&co0K=^=cEui8F$~98 z>!YkR9%cSG#!j)L$IdgbwBZ@lT0fl#U;5WD0^sy397{2aUcLcd_Nz!3wIHD(sb5hm zk5zPV>}}uNi0VICD3!`#90gTn5gz*v;ZcmINLec2%I4ZWd_F7s4b_vUtY~eA_G^LD z`Uw)S9pqQ}0h*qpR0{Awa(0UR`CB>wPDB0tJ+MQ7)d0sd8k={EqscF@3t!Q48Tw9= z!^v@vp)urIMDgZ0x)}E7;X^B~mGXPU9_koDa@m%!2*+7Sca%tGj=d2v%w8CzQs>dm zO@7gN@8HX z>?{&a3ktz9_y9TbJ!FTG13)o}BVOXF{fuKy@X$)tgK2~%xq1kt5N($j#}(Dw(&Laz z$?+DZqz`m<4!|rQEFd_VbKtaYPqwtV%1;NtL)+d5?rzY`A;6ud!Eu*keyI=P3@8|g z>?I8Yq=;Yu^0@P6e*n9cXPAIdDlo9j_EJ(ChN)xx9b+b%g0C_25qdDlWZ!X|#oHkg z08KyU!8XO|7#Q|^Klsn(066O!~I`-ecl77-r{*m~H zD*cVJ!g`0-MP(k_-oa_#JvjW*0pRhXe6_ZT)qTVd{1RXL>lWJ2Zal`SUvNFbRHyhJ za-w``WlOeF9)R2b=2R1;z}6dHq<`5#+DqrCn|u)ZvjQ^q1p_6wVO*V2;D^89#mCp! zKKJqGsAg{-S&5iQ9QNWiH~%*$)-ZmW zS`Cn3asIx7dG@D&_+Mur#jcn3IsH-j6h3O#uzHTojE1}zD%6?>It$ns;aTkT{5`%( zbs)Vw$bjaab42$~G46tn=Nx!6S{u=Mn&2lF_V}GO0KSr<$&j&z>h|r8St>5CFc$Z4EYJ&Zj6DMw=X9Q=k8T8w;s7{*r`~sbLf8}u&-J$u zvP;$aNY8vL2SKl?q8;B39>$OGrTFTK#whcDkkDK*t(s@tDkj)3%mrXJkMiUG^ zZtU0cKrz*WLec8V& z`7;JQ`_uDN34b}^hk-}5JWzngko$$s^9^fw%9?%=KUi_z!UoUE^Yh(v-ogkk+tGP= zjH5pk9t>WdpQj1vtj{o3eh|k`X7u5=aQ&H$^>f7G$7v7tg0FS}4D(~=f34r`4d0YG z9)i$}k~#h=b`~z2-PzBh6k%gy`J+n0U=yCTAh;wjK!_Cr$MzDM81trM&(;@;-Hs8C ztr|IH;F_Ml$M~_KJgC#gsF!1C&WF1D`RV$-77J8yb`>wK>PF}ug)jIS7ZF0l53Zt> zaIg6TC4A#EoXU6cX5wFAFi^XH?Zg3SxZ9(Dji}-96Mx7b{`B|%^HhUQEojV9juM7G z44E8Ko*0IH)Vy{cV7s!hG;m}Rzrdb+bWP>d26Os2cGZ;8^|M16IEX@n4%5Wg>+uNN zKllv85%)yxMPJFo^EzJs&Kdv@W`rM8ryZ==9*-(QE#Gk2(6EoVh}e)04thMW;ZXcK zM*68WJoXwqvh#rPbvl5CT|_pY?NOp#A`C&eqL!FSQfi9aag51&D*Yd2d*{wD_zFw1 z8$UQW4^QXt=>Rwl`P0yk8Xr57&DQ+n&SdbQd}}oYwjcV@4Os5Jh)q>tn&H_PeZl?p_H1=D~l1JhjkG0f8ygbA9V#FO8+H6gr8>CS$!0s?*DDD6NAOJ~3K~$%T zMgiK@NMg)#wnoFg26T*kf8ihcu2&JBEWi)m7SC}u)N~$%uMcGTuR`&{azuQPlY;wi zZL*e{i34Tk5A!*g(vG7gMM zRcvzi^M>bMj9{2L!^Xn)ip-)DzO1m0K|ccUH*}U_z}9iF++i{FFUzbUR#>1#f>^%7 z&xxi#^cgP%bJ004058KXeBb?}U$hxPO` znm;V!kL{C9BmDM0l;GE4mqYYTXAU0X2YPzwr=Mq^`xE{k@QlE(*k2g~sGk1vv+^DO zhsq#G(}Q~cvjm@srvOyvIkM-!d_OMX#qb9G{RrtkO-D4i?q5}(dvw#sfYN+Z_|Z>4 z6fEQ{{>&#Ym)87z%D^Kjphf(NIb5ED>>Z~0xx4*^$Fd)*9RTM~>pr6nl=?owoEa1( zGAT1 zp{%Sy+jgHi`bMAd2ZkT?nJc%St^2(QN5}c6VZX8hdJ~?_`Gb(%j*7#}T$n%lCEBYF zfC6EA?i*H~4`@J#aX(VYPe$^rueoD~=lDJ6 z2gliog`?z=*BXLsKT95P*O7Z}h=UwL9GBJSZ+r!)8KN%~D;sLWqvN6(>A_AiX63KC zC^~l7Y#3+HhRbdzSvRJMN$w;#Z1Nd< zt{ZmTc-&#L@E|QWcV^S>C-Uid*wv_O_n4-53C8e@Qj$PFui)sp%SL>Wa^`EVL1DpN zRqVAqpyD697%{At?a=ylLw5);MgV+i$H2}PDS61nxIEsP@@t4854us@q_8t-9DpRs z_XBqtn|m4d3|$io3voT@+qDs+N#EPAtr_$1fI2nlv#8T2{O1D^se_kiPh>22y!u49WSkT#vt&H#^@QHP*{xdm~$B`^znQSiDk*){7gFk z*^#w9jC}4S7i~HOvSKL`OxY73xAOfa3*_cO3YpBU|=y6oB^f={OeV- zMyw@SHvPk#1GO^VHM*dqF?vQP9LgTMoD4aQ{bL(H>^D?jYdW5$Dt(8sboKO$kRdao z@sHL>hcpi z3mqfWOhds31&fEkvrbeJgMH+V4GcBQ!i5-x+WQekCjoD15_Vb~Q3PmY?XltEVWGL^ zQUz2L_qU06q~sV;_M_X}9Q^>~n8^OZ{FZMMT;io?EjKt3_^i%PQ+?9TM=bQg< z)3;daGhNx|KHK@76@A<%Zy$Pj!ghL|^YDzoZ-jq-uD~z9f_=Nf|E9$6hyS63fAPWp zP{O}N!Lu>`6JCbrj`S$xpB?FGu)jEAx!>tL9}13;CA?gi&V2q{`7^}%j2wRG=usGj zAMmixccTxmtUvsGODqvL)0yiJns$g={iIyn&Z;lHJU>qp&|iOElXW%Ho9Od1Ia$Cf z90RYr*cS}Mf6>D;Vc(&%{m4f65kvpV0dW4}y-FiAx=$P)Y~4pWhCjJbVO_{!p${u1 z{zS5;&{>#~>}QC)FE zZJRhvB*AhXQWOC~E)L}yoAd1}`w2kW=dI2MQE^)>6PM1M+crDOb9n`S!u9PP&ASE> z5BQt^_}`C~Jl^%Q<4u`|A)Kvq;P5m2_v9OPp5LLI0(+y=L@P>4`}S~mQQTz{oeTXGYmi5NC6wl*k0B41IJ}eBt#@%Ip!X(JH`%h&hs?) zA5tSigY%)Gs30t79KDW$#3UF$4r1knhWilV1|t<`5d3@~W0_eoCIuum76#V%-@_0V z160~4z2~B8;@Q!;qsLcqQW)8A8H=Z1Ov&Piyr}8_-eAnuY#{fM-wp=;qOFi30wAnU zJZXc^si>*G)P?nm>64w05HP_{4f=Ldf~OmQYRIQ6{JRqW7JkyfD>sV?KRxt3UE$wP z_=kaK8J?iE++>1d;Ayg$<0qqJYuq7qHQjY<3Z?E922$ z@!8)YU~&Moe$_mzG5)B|4Zq>d&f|^3e^wj$eme37cgs054rQ^gd|@1Q?T5twt@^Yz zej~573i9=T-^H{BW);$|XBRUUAdN03R=cQz&lH~U4+D?-tx&bS=#YQ7<$r#kF?Gjj zs>quep)oYv9h`SMWSC z?F@~&8+3>!2#-hLS91#NZ4+X`-~2!S?d!!hKA^E*)x-S&t?H^LV7jl2#jLtaCAt+M z_mj+OAIgDi4MeYQt0mG& z)KpWT_VqvHg}?T$^*9Ku3Its8SBxA`^MzyW%~p{FUIa6G;v)rWfE9fy0weWD_a(R- z0O5TTQ}Aquf7^$WM))ZNo)UcK5O`_Y*OO^@Hs%lG`i6e?o&D|YhY5bsH@85K*jJb- zc>4Pm3ztD%-+E;qV(Rd7V!E$$VVH6s=tN)eRNw0o{!Jh5@|+j&nm*Y#`0pzIOMSta zo9~Yws`cvL$DItqPc=My&DYiU{nD5JUmTt)c=+(c29J>WzQ*%&rjXb3pH=&1ZDf_< zX`3&%tB{AMu)aT?=R-MRI(dK10N2N9>V7QQd&~PBqJf#z9|}$goxVYbexk&`3S<9( z#|OM3yQG9al^*vA|Kq1pzrCdN)qG5TQ~eoeY%dt-xeDzr^c2?N<*NT@;a8truJAwK z-!#X=ba{Hd!D}1>bNHzNe6<6h$*-b4t-UgC|3;4DNToiey(tP|PvJ#Z)i-)65GeGd zXTk_o(=@M;M`LWdxzGKid;O2>E1$w)?%SQ=D{JJ(SO>tosc0AIb^mIzO4eC$l9>3} z;=D@bv1VP)Ge3hUdw%4++Ijw-R^gUwI|`0AWR|q*nI}g|961a zhgSUx8+!q2^qhjXOyzIC8UO=_=GIfzGUuLSv7}W#w)?JRV;SYn{Az=bVa5I;>oIT` zKG8xCn+jl)vDy4w+3~#Q0ck#eJ=C92Ftcc3ufeqnC_1ql4ObYVyqeG1!A7RM$KJo7=w!zqTufA`+wokmy0b}kPJz<(AtomxRKu=WP@$^mo ze63CL_O9z4_WblTO_-)PO)Zlw{`^>X_;=L~&cWwC&cic<|M?29%Uv_U(}VwM0;cJw zGS~2O%{4sXE%5ntsQ&c8j=#`8%u0`5KC#+gZ)L@mtNlpreiZgQWq2e*??1>>ohP#o zWO&->Uun~7dPu{4f!S~$=ec+vU3~yc{Bj$GV6R*zbL=-LGHD1ussqJ!+Ws`U|AXTp|cgZ^hovH0fRmGs8B1FR#A(*>Zj z;@PD0^U%gV1IcKWe?Nj@--h3eOsl9h(3O^Fm_w{r5jn=t#^^mYgdxv{XB3A(QFl3V zpJU?uRj+-WUE8aFHg_R$nHmrvs99!5MD@YUL(k{XJ=H4kDF&=H{){>f6&pef4X0#? z8Q&pk;jyM1f5C|^ItQp1AO!7gYVgyspS9vd_Y9ECEvP+59A}8BqZC|Qt^GaFKAON9 zA>eWVSo;p<`!Xu~+|!FcJ<=AQKK%64vw*+mqQ&*aWEK7MKB?69iNC^YHpA<+PpZ0a z{qwqSEA{j!E|cYa<=?$8?++C}(|zt)z~8R#ILXRB(6Rv?-`9Eh4_5kLQ}6|4_?K%R z?!Wx_t~%_~@J{@R&wqKn!hip+x^0&5lO0|#6sqxy@Gl}f*^{25!t=rA`$Oe`vEgSZ z{m{TegCDc~Si?`+;1f#e0-m+!PXYfACI2_)XSr?V8lFPP_WFK-V6c39)!bhw+;?S1 z!5vB4@5`5mLSkQyQk+Ojo48rYvQNG_l^`D~SgCr#=FJ2AEd4Xl92IyVIjFJbd${dPpk0XzIS*l=u_%qVHLNSyr8? zeZ6ANq;tO13aDG)Owk!s(oSdYyE=FF`u`dChBoB{rSpdx_S1hrX!hpGL7);dM}*EwcL3oj&C^y6u1Ty=*}^qFV&)2JTp z*hj9L-Gfc(KEIN^pi4JikW`7pw(HhTYo+|lJ@`bOuT0kw3t8N%xL(`)xtvfZS zG120Wpj5{g4eR$Ts%6=DP zKfut3&0R6UNGX^P!cUC}d~9`6+a|7Hh$cJrr262pfd7M@cb41meg4<2FK_lGc=_+X zzV%$f7x=U6i!2+)pYT85-&Op1etMcFN`03(gZK1_=N3LgQn_#UcK&gF%F_gW=5qOS z%Y<4c*WAG$pSgolZIw0rq=BaqK7pSx^xShLm9-*nxtN{dS%?4g^Uqor-;K2~YT==R zXAC{qW4(T=&d+6TuCaEGLML9zKNRPKXa6SPVS$GlzZ7J!JU=0-EvoYw8F<93r>%aD!IA$&82N! zqEbaRHAScsx^<3WsgO>hR)ns?JPkSZiZw|-c+s-SoVo9u)a~Ysx$o|?r8*a!@&~F~ zFP2UNEZ1fz-h-Cf5)N?X`FE?8qOEOUg@>{hi@d;1;VI2`GV(|H;$q_`45`$soK|)2 zwfB5eI;6SL*vlkU*Fu2$c({XWHzX7)*xUf3`uri8e1+SPXFU&Ze59hUyRsI`icV}I z0wD99c_%?>Ueb#;$tyiVyEQ3yIrAb4WaL?`o3p4|ak?ACi~S63&N*~yt)A2l*oBZO?y%8m`^7xk?cWtW_y2InEWd{W&| zHS}0MbMw#Nh(GL#0!?#zgXY-1m$n?HT|H8jQHJ*X3BZZkS`mm|TNwX&2RdDH(YxM4 zrSKqlAEWKrU|W)&A^vDeioXlMD0KmL%+vST9}zv?YmC@P1Hs|mAREt138a4IYasuf zoE>aZD}(LNhv>7ViBaFfm}e7EFJU}l0oc~Go<4^Mu+K5Be2FM9Nx8`M)CZv21hjsj z7!Nu?_p)KCdc46hb~`IRbUt@Nt6U<_A5A>~YfU8NrkJM#k`ZlrEU{MSU;H!jI+DgY zK#dG)bJ^*bpQ7FZQuMdVU)R_%B`*bSdqVYC?+!0WE(t7iZ+3^!&KCm<^bUX-hr;?G zdf=IZXD~gh`Em=NGbGgWE%q7BukHq3FwBd&hKWyKuerS6jk&h!zVf%et-4&;MPFFO z2RHa1I`~DOc*TXJ>O()(nm*azuJFGp@G}pu#81IVT8lpvo*auF6MP4LaykZo(1RYt;Qu_|y7C7>_)GhR zLG=GpfZrPaDg31z+$}t1eqv1z4CjB@iLiu+Xuy4YDcxV&5dR`QiT}LA|0p{NwDhkG z`m{cf53k9L;5)R#eh}#@y41#=lu|mp{p%y+XVB#Z0*t##}&|CAPl06pGx5 zgIZHhq3PqB;$tRcf0Hcc%*AI#t|zr%vP^*1s>h{1<<36Mshl{^OMamc4s<$%K738`jy2f^Xz1qKP{uQ$aa0}&3j65pwLbao%}SHFsTtwH+=rpI0Qd?@W&?q zXh~3Hb^9uMT7>)>B!VgWbNT)h&hx2UEnY2f1%tU%BZ#uIpv<4`3+%_SDW4~4Lrtqc zP|ugm{fLbLHf3k!sTGmX$*}wnGDBZ-9gvU*ea!`(p1SO_&ZKTSBMba+3`n(zun|y| zzJAyD?2!m5nS(X5f(hQcYK$o7Jzs~~R*dwYZUTa4&Sv(JF)yr8aB`G}ebk-7HHzVs0-r4l!>_o3@^qN+Mz46^|6MlfdxM0c%dV98F-` z!>j0l%+exNmqIdzsaa3Bx~Xz8^atc{`u zlA_8whd?pipG}+rF%AH>dZ%%f)wf^hU0z=A8{S%~f||q70Ds@}AKgaNp~(4Ap>k9J z)9?yIKiRjnFo%0zSgPdn>Ds6Eebc8l{rxBYH%p)UX`0^N-c|Bb>~qgFJfP@9f1R(T zZ$0Pm+P=|?+#`99$$i{2xmhZDxajk((btxJ!Grpgr{KT;P#qLj{GYj}zbR`oe7oj` z{&vkhm1ew#m*oGK7e_6JCh$AgHptbA_;!W=O^IKGXJhU%&*p9uJqe?!SMamZ|C~6e84UBbGb0#R{x(l z1rn7A@szR`^42t_6};dOfY#}^LPuB)K815x;Sex-JqlycKshQL09{}56AWwR!5=kT zU*S|KR;7o+o0)V`2KGT;<*#E>rV+4`9#yO6L~VeQjKf|lLR_hAA7WW%ZwIZ>;im0t z4$>yeu+TG;n~J{grKxOFXQisbj@+rF_)}oKj<44BP4_`p^sQH(v#845XCqiyv2^Xr z#XdJiw6HE4KMLOZE)Wk-@w~O3&yn!9+Cml2_oR}69{OQ8r)-th@7rBlX@7a1KzL1s zv|o^$uks9+UN~5^cgBMjcO1$Hv!q;Mb&EHI~)S+RRlEJITw}-&!*FMBi%bcx(fAaczl%0_0A1i_6ibYGs7Y%b#FuMh7@3e7HSGAGN8wOwk2Nf*}m{-hZLQX z4X5!URHOlH9_=}W9A3#_fXXxiVVPVt0MdO2^9H}Y58_i9o*H`cbji8J%WqVDE183* zXh@fHzqa(```o90AMo7v8OE}{=m-$xzrW8-L%v5XH8#iPSdZ~+~Pkg z`I(2O9-dbGbkI|Prv%R#{4ZDhe^KH$!oN1ge}n(=m3UYH03ZNKL_t(@7=DJ(^LX&k zz*CF=w?6cvd|zkrvjIIo-F~MQ9$BNP?mUzWnw9Z0f4}_rZAvzVWd6Q`!q{KjM+(RB z2RxSd5lZ*_>b_%sw{U*Hf5NXr-I>t`a`)rP09@!Nlnvw$c&zl9d>ZDwmIfdji+6f{ z$i@>t@RNyJ5t+r#)}qMheBWM|`tTxSomLdKzlgguh8UsfrKub0a-VQ%jr-xz^R*k366pI$G|cX-MM^35K6|EbbvKHxF^ zc>Afkk2dx!Bzh|CWrM@U-~h-bFYBFmF3-zkc$wF|+TQcCYF-R9h42zNx0VzKdRe&o zo-7(v>$6Pk!&=K9>gKv6pC5d5btN?B5UQ3{*#~`*`W{egfl7X=<%i<(nRDwWXUzv| zEdjMWxCFHE7Fy-;sNL^b~%kA@4~0(wc1BU5FAB&vTUTRdLR11}Q_c9kp9nr2D?E zkocK=`PJx!a75naYZoympP1KjSdY)L{6M*`)I^(Lxr2)=)xM^$*MZmNDAmG2UaoVN zXYqJr#_xpHcFB|mL_+pTwJwnQ=afE>jsUq$7pX`FWXwUzyh)0GYTcmHt+-++)cbrH zfx?u!E!IDAR_4z}NJOa!RFj22{_TIxpX6bknWBpO)!?cLk+l|GbB1fzbU08t1>|Y9 zsxLsr5;A^WtxgQqIXf6eZ^WAG4E$IJUH_Jt3_V{ec+#SNiTZPPpRVU)?y)X|4{`nm z{q+ckZ$>)CBQsjjt!^tA#1KPHFq-oS&1Kl#AKp7R*vEn^w_Ynx+P#Iad7_G+LA+3- z3*cj*9HFY7M^r5kG&xUde;2C~ej5BMgW9X~*UUp{xU21_U7O)Ig+SUcE}lLG~1qGu)As3>i{EhNcpKi4?>4iEk;km(Gl3ijYw1Y#F0D zr#qPGv*Absd^%qV)2!8q;*i_+(Jai1pYTY)mqQ8P zsSC+`y5fJo^|=?|uYFJ7Rej}o@00rWu9AWec;5T43dY#;(?_n%+xwf!nX~C5TR41q zg~z0*E%90F;$rAqPa5E_eTbiPeeToirs^v{lPz5z`gv`J*K4f>sjvLC_Cu;~bV20g zS_rE?=u$4@I@j>qXYB+--*KkkbGiG@T;9L@MRgAU?w1evfBlONzYd-=_+PK^e^wp2 z8~CX;JZh zmWuvL`**Eq7tbFU&nrsjZSEy}UYkU!t%4Q)6}+H_|8lKOlE07g_g9{bdx-q6s#-yJ zgW;abF5SN~cqDS=Grz6=uq|Xbw_RQ@cYQ|Tcev()V_7S!U^J)nD;69QuM2oVez?{r zF|Dl3jl5p2x#oBMvz$_p*H_aKr_WdTvObR){8c}He^;FkX?SLx0#A6l{`dQ&iLZac z+I}e;yi0pZZXKAjzmTZ~f~ORGejX^0kXpaIy(u{eq*R*98UT!o{nxmVV!aAphXLgc zmONO=4sG@{wH7$rCmM$eXH7||5;RaKXsGg2C@OeT>)_GlYTr|osBpk+H>f&S`}Qr3 zB1@J063SdvPpyJ!RzaBB+}vrAJ1ET=>QrGtkfcZywuy3pCyItC^2@oK{?~fy=&`0KjikLZ1wCbv`U*{zK z@!$U^nv9AF#Wd3BuQ2${iVp+ko<*lL+D$`8r7{GD?Mnx8#k^^PuLv(U7?`YZ@>rc! zHMFw@pFBot)B(g$q6^!gMND?<)`6q6OWS7_F!V>Adxi3U?b zAU76}dGpLmp>`#$b6|L%)rYA6HCIT@RpD z&TB*+ff}CdX3)1X@#7nqJ73n9|ISDjHi*rVd7^)A$y{8`}t@a}?0jUTAX##*=Ck3)HmtI<- zj)k<|n|~@qTS(3e3i?j2HUbllgHluyHBJHMPen>HkA&!W^5v;Jr?mAlxROe&WW#zs zn(K5Z&W=w9fXC2#dA>{&r+Xhn;dkq^`1Vsp{Oj|&?_>F3xb=zr@l(a5MPEsUQL*hq zSvE+%U0x|aj{Dl9Y=Ql-eH*ff-eBaPipV19`UfA!sWr|#CQrYMJ z9y(Np-x{$x{G7p;a>u#354P}S8A{?W$X&kgZ+fg>UcXID(VrPZ%#~k_waI-H99OD7 z(8<2e&OY427XGCczhKaJ>ns14$iD0}!q53Bz_Ws%(}VQ6Cy!14sPGDfE}kCR@lyw% z3O*I_qf9@V@#i;{9xCp4Sm@arWlMO9x^JpB01f9M#QFZZq#rfsEfV-Y^qD_@|4rp2 z$lkx1C)Tunk~b3P@BoTB2d8QJb%7sg2ME{rvDHs9hS0Yp{rT|xPkrFGwSJh>m%e@5 z>XU^ugl|dxlUYM?uCD@R*bn{us&D`No|d1L^CDf#A%9YQyCm!jtQ~Hg>Hn+R55+Ws zPk4ObhkV|CyVi>M?dOl=x~}~U-)^-fGWOkSE?fJq9JzdhFV;fi%AWnGUBRNSWoBPb zxZBq>*w;m8!Is$Umni_sjkT zN8fa5{WpbOm|#B*0aSU0<&&(PEh zhv6rp^rkJa4c(F7D`bc@$XbSo_Xw-?LbE&J!F%)kJuLsC+7@ZqfG;Q`*lW@;Z35A2 zG0|uYMB>xtMLUQ?t93;<&rmg&nmPnfY%|2}Nz?v?LF6Q(T2qI@v$oJnHd@GUdG0XH zzj9BT&t@1u_16}-^sB-z08lW5!i^D!!C$LnYYl!?9(Sa%&pLV&w41z2tf9TYq1s;V zEscBzR(cO{LbclSbnnpm0)(x*nfQ@0?hkEfeKec>bV7U`-iHo{E}sm;W3#eK=Ncdl zZg|Oc75=m61Qx@@tBVSi#q+9~vXCFN_o%YY00nr9@uaQig>Bfkm}ifYo+LR3@?AEV zje<=eq$F36_ixe&FF!;gmu9i~&s@a792Qf)U14c$)AGP+ixZUg1oLYM!)7NEXqewk zMfo%odsKGONaY%lihT}cqySS6fItNr@>X8_(<*o0gFzpSzFyH5==PUf1Z0v9Pp332dFIRZE&;1qt za+xMlfS>2q%yNSiGPLPaD<}hb_)P7Gb?z6X+5ov)1?l~g&fPE663F(gPk)=tO)N~| z*Kgk@;G<8oW=CfGSThHo>NCv({ww^Sb-DG+zTGs!OFAW|zq%BE#YOy!CzhBm**R@$K2xl zR6GFx)vv#srU}zO|M_24>hJdaFV`Pf!pnxz?|=PuA`|yx#z~OAA9Hp*((r`>2lxB> zFH=&>FV%A3%E(MC#I{yJnMZT|he-o@=^RMvSA`;l_gYrpGX~x&H~j|xBiWXFy>zda zkKFg~>)K!$V}F^OE{E&CT;Xr}bIK_&`}FesG}GrZyJTiue(3*L!RLzzF6@PZG5uK@ z@A>)DK6;lORN(Y{wWmJp9r-2yZm+%1oHS{d8|Lt(jWrWQ080Cm3wx8rjHzu)N8Z|c zW{M?3vd8a#y>tx&Hid#u_KJ?wRC83k6w~-}$Z1l&qL*^JS*W5(k)hZBeJUHOoAV}< z1Cu$-@_nP3=L@uJHRWq2WP%;2$t_N{Dc8ZH0H4bD)92z-I7~!>RQplYw_d0{Q2ZLH z)G~_Gtm;c$a`-9w5Nim^M~--F4=B$pW32@kQ|mDq#d33gDpQqMRoo!>NA)-`(iINR zAT}Kap8C7NbnmAbU$X2 z5R%hH8klBa zjU7~cp`-eCgVC+hG@;?1Ir+lo{UPAA(L(FosNNd7WpcDSWbP<$;FO}K_C!qxy5-wm zVg2-CbjqyG5mk$i)8ynybX&nQ*S@VKx!(|H0>LqVcvu23Hg|U`Nr3Kr20E@4f^Zx8 z1a+H42au;O17dlAFrLB93wZbeE5D$mNIMS+4zY3!2+)51TWU(6c2Bv^DHzzR!+&XI z^ix&MG{X2*n5@=Z_KIBnBoDlG7NT4|srH4P7<;}e*Xhi@xz+$mNPSHkgtmmhwh*LSF+}*+E zD9A*eXzn|Waiyr zuA+^AExOq}%5D-SmLSuDF-f-omszt^`_x7BjHY?YTm0!c ze7n46@TU!{Z!fPCz+|8MRCGf=*F61U5uWKj^dIoQDV!dZ`_OZZ|1}MtG4!+ebA4X3 z^yK=!uXESRijb?%J@4?6S*-4}P6=MXU)6^`Ka2HzC81FFv9|V&p5upOzJF2nxxeOO z{`oJuS_Sp+6zGqmCpD5PS5*zqI{b{L=Y&tf^WgNO7XLkHwFUii`@i~p5S$4zemKr6 zrs3(KACCJduM=e9GvjFQqfbXc>Ap_&1ux^@()8==8oul#xSjut+CLQdi90;XI?C@B z^h5L@=R6R{B`dAv4o&zs>c%a@~QgK8b|Q&x}6#ed`@b7^VyS$mvS=0e^Y< zHep)n|AoSW3w^#+bdqy@8&~+WJ%xpR^Z|djUowRSuLkzbKKl7REtD&p^xNy&o=UIn z=Q4cazuS*2I-IunGma^&?7>;>u{CGr4uM-Ohqs^kO~|>u{5(zgq+j-kzFubbGPm^R z6E>Kr0ibwYlu~!Li2Nbhn$~DkdMT|h>fGeM*La&{!#F+1MDIqd+u1RQhBaI{DU~b7 z2WjnxZlHga`$&zvDN{u9eN}U^QiAuU$lU+08$YdlQK!Vr*2$MeQv_J-8_l;~xlyNm zIQr0Yazq!@zRJ-@zt9)Fc62*D`_j)K_J{sB)%8t3;nVPFAkoIoG%E59_Yv#^FnJ#< zt4*)D$;#ydo$DLb9?}}A=xhU&v+av{E~?wbt;utWnSiXo(4uCdiWx!CWR+1wPCt>g^Cc72lp z14xj$wqKBS@GSM`)tJd{3Yl6&!dj71<^Gl3l080IR%;S-oI3>arJV{91I);$rTal9 zGHFq3@ZbEO|IydSr8Zo+_-Go?d){JTYFgK|4C7Z8Ycu7>hlKA_0BK)4fnl=e4Ap1M zynUhi73l?4HmRYBV`KHG0frh)eh@c?Lp$5K2 zrW+XeM=}&r!&&db3V84`sz1L)Mu9urt+;=Tl34}?L8SeY5RS!WcUTF*1 zqMjzr9SL22a2gdBXgGgiv=$T7u1_hFpfq1V)`JV_0o!4z__h!YAnCW-S`z<%dtcfl zM~-93R~5=5GL@-RO4auqHnU@6W3%@$wzjsm`~UyRc30_EDpTsx+YjLp;ZElP(n-Gp z7_+HX2AmFphvR_+U>%*)BOe$7`+-dTA->+?rRTzdPiM=VvFCv{QCXZz?!$~Xj*kQ=?9H{{xD$N)dA(M z4yXVaZGPMsbn23Z^?A0Bt@-**WI_0HC-{K=c@wMj6v|c5j^#RQ>f8%s_YbjOPfsGS zx+eb)&;w=+~tVk6C)% z>nk}wjk&pQ>Y9K0C}9uqyZa$(zxC*C!~g!1tSIR5C3h$ z|6bUB8vl!i|J|zix!V2?n-B2>ZpG%aC#h9_`_la+);>M^&&P=K0Ll9sxZ|gAe>R5w z{WfyKchh`dJ~+P@{odScUHpiDzaBn`oCNOgogZ{O-);}zUw6f2xWDfYpG6LW>&D*r z)V5CoCkj{FwtdnDQ*at8SC>2cS0nfJHi-7zGyc~#p+JwE1IbN;)?+iLT1hJAm@0+ZCFu^|H%(=>6@EX6^ zp+W}h&^!O$i)CThfp^&4Br%YlSZzVsL&lJ&bG8Xi#}D;yWn+buwwsL*kmQzd)NK{b ztJGWt@%7?rDlJ!pJYz6&GcL1MtgvuDv5gm|wJHwhNUnP=?Jm7WOw!P@u=)qZ;4%zE*=z>Rh|Bt@HW7i<~bxh7YAit17kKIvrpF=RWkn}pT z;Kl;|pwKCg({65oMRf6vKLa@e-#aVEQpgz-x~AAVwFmmP4?|85LN;EsTpx6OlO3`; zb1eum#dkuKyP)3{THmqB5$bQ(=i=_`ah&a3Um@_>d0#KoU$S5HW9jYgz#Ow7blUNb zhrnP4#A}MZXXs;aIs|ZVcFESGJ7)+TqC+aIo;kkJTOA4g5Pz&vV%t;W;F&T*^7}O;j3HT!+EQ^j6TAS?i*h>i04K_#Jw<`#evIS0~3 zEnR~>T>LI8?mk7<+)d6^zR(r`CFT$!Vi)M6PzUf&s)T-_`1~q92F{$Gkk4S}4S=Db zzb4@C{gVSgC)3|82FFsUFFAQm&nb|UU~UqyKOjDTETErTQDIb&pPQsDH-E=O;J!*S zyfHxi)LHya6Tq`-x78_fTH~E#b1&5+F;tPLzf6$(0u;IVzyzR&ToohpW?u3)6vF0W zHkKsm8Kckl?AEAwklSrJxd%F6k5RJ{sd4wwIQI73m1gS~;IRWB^_L<{%PrvRCwez7 zf*>@Or9X5NrnB`hJTASP5Rp@UX9$7hrhsn@&|>%84)E;-wyccp9j<$2?VBQ9{cUm* zk)8jzi|u|C#*QCj!M}+B>aLC>dvzIo!1GX7vcvBOXvf%>C((w|kCh1n%Zq28y7ivP z(uv)PApCw^()h{fvHd3pU;p`b`;zP9PI&?#_VT<{w^iT_>BZtlfPT2{Z@)j`I=lUO z6tDZ+70|^`rtycYU}+uV1Ai0i_T@|Iy7i3nGrxUzUG4b%&#%M%kjVcz@!N|_W8iAv?Ih@Z z?-=`DH~der@j~Q#>b8lG{Es3B!O?zu6geFZ_Q}^rk#oRl&%gyL+x8E-{1W@hX%EZ! zebvgg=a+8%ctEx{H-HWLn?GNiH}?F~lL(Ny@krwoK;K@!IJ@ZD^9VZyI`)4LucC)# zE)RI*o7-t*f#XAezkc-tX!P;mV}sXlaHzoP5IEwyZ*E*a52xdX=8#uXh)JAfHR9dFQEZ^ntLQ64?LQsTIzkqagj$Wq%i$ zIH0jxjfkp0sF+afH@pU44|vjPXN7YA2r{R4*oX1=*5d($rrIXH>I1fZVmAi-?;<63 zz1=ANw>?~I0IvNCyZ^e`rFF~f%)aQC2(l@PygfpPy+fz05jV$5H~v0HY%pcCJ8eT19{)ViSvj`|FH}Y zbIKjE;FyS1RjLGH?sffu5muyRWvQ$A1KTU4r=dFR-o!&O@zh2 zU}E)QC90SvpTIDYQNDH5lDS|$0t`>h3KSY6Bt9#U9a%b)mYfXnA${#j^q4ZI0{V3R zE2a~P&X6z$DLNDJB<3_g&iEr~c{r;8%nyi81o&g}OZq1=CevgLIaAz!POV`sPd1nY zk~jb)Rt5SLbZ1B%_@OoAbAd?Ny6}qt_pJUvL4Y}EW-1U@QkvCLulRx)KV{Gy?G1h!A;1w={l7z7zLv) ztkpZAb_vou6h?l^@K$j$phTfnlqz;rH*6Q`1(RMc`OBF@h9#{QEkK zj5-50OES{2LFm-Y71$u%I=*p(pUPCEZ4rr&`)kZVSk`uoS%04g8i-4mpc0=6TTPS zYq+W3m)jfZ_YUswW2E|&-G0nLaC;T|zIWTddET}k5Y_2TW6yjz*fRmp3y1wf2AvEC z{s+H(#n!kzZ|t{^51&Pjf$Qx@a=jn`03ZNKL_t)QF{Js_wkHEu@vkm-?H}w<4`AK@ z`Rekb;s0X29Zt-!y>#Td2mtbJlRM$zkXtL9c(9$ji@}6~yFXr>of{ZO?lI30pKo^U zA9Ag=OH4W%IN$6d*uOTh^|7*qXPaln0A2j$C+|6L~#5a{7B4& zK!ME0@HW}m>@lY>3#eMC1+R+rPf(bugjh=p*y)}YOI%~^V3r&drlod=6allKjcgZ{+)@* z0Vrh6yhcxHUk=+F)8wX5K1k{2V`+FlmWJuv`RZiA2=V;2=*93%8{Yr$KY0JLKK9lB)eceGFXW4b*27k&V1 zbrP=J2Q4f|_d+zzTm}0!|M=hjw>;w&3&zKX8xaC1d(I81b00ShIOrOGtZyC|oq7db zqW{$E`;1DNDN8<>jRAczddW_RXXJBq2!Q60R!WrDn`sPxX;5!wc-?;WSKqm)W|frk zfb8TAFH3QlgEW}oFqPC_i984>(>h8j7nuU(Jm-(a9-Og3uagk>`H6&?B+Ai`CEdCsBQA|QW9--yeGFy5l=3~6o&Y+_)_mBg-B2ho1kYI9d-k*(N{@WMaTWo*T=GgycI z%owt%6B#$aFV5O^C0lRs=)%b#7_dWK%%`UakY$&@7mM#+=*L+6CnIs-cNuNg_d;{-U z-}Xa$M%Ivo1G^#*P_X!V4x_?>L<&jJl5V6fn*Rqo`4w7Zai;PTEW(jax_-n>SXNMj z!StTv3S zd6OTU^yS4^AGjVZ1t5CHAjKbn`$e&~t^po2}#r1aKHvgCtSty>FsdQVU)&-k4d&7_<7DT-yEURlZ&3T^0kS2paHkit8)L&v0a@&|<%AJ|n3Sr8GoU*f zzHzU}1N=1=vX+~x)cVHfAQg83`893v<*wCzdtD&EHt-_SDUUOg?D%pr^BtL(hVTbT zleej5z7`viqC4~84DQEX!^M$5g=k{CR&$=LnNatYVcN%*LFry*u0pi=so$JFOixED6?D~w({JgqBzD< z%^(5hB404ng^y)C*9TvceLvhM!`gr`*a|WUJnAyVDmVGefg#@=d^^T)c)d}EZf#CV zxwGWH^>Yn(Gvo0!vmYPCe6%w$dHUMR<`OhKa`T&9d3B57^C>@pX`E?(uZD;o`UJ^I zhcqB6hwT*3KBKm@bWavroDy?nA-D2?;ll|9dAVrGrPz5tQ?*-v%h|rGWs5n#!_JkM z&xq%cMJ=BYWcg>r3=Vn5Y|l`E9-zZjRUM=6`yp7@kq9mwM4Qvh7pRJ*+k+oxNK^O} zA_e~LYGo(}=h%r;cL1QShq$gGG^Z&i%UwMU%EDB9OBZe-faBzpN zNT5b~zY9~NvYqElXz(&DZ1w|S3cmF}tzh@v2EL`9lMd|SLPdJ>mde4Fm^; z)j-#XU`rqiNffFqZX}WjEHRT~u43-+UKN3Dyk`j;JsRhMyr*qbJ~`)D|^ekf1u-LW%8z`}4OW?@+7Y9{lz ze(N|8wV_++0mn{x`?GA#M^i3;8;>!;versbh6jso-lgb1rqI0-I7ZEhNfv^yTdHbU zc*m+~-*t20kC+9_5^pi?G3#8$5=A58(b_a0+~r1D#J_7_tIVkywoIsG%wO(@GX)7# zYVJgNR%yJ<@STd@_Hk(pE$%AjITz3QYEt(8w@dGh320Ph`_cD@3zmhZHgsYaUz810 z`aycymWMo75qBEnx_90x%4e(Yh!gsMl<4t~JfdI!LRQQC>D{kX6*PYfY7gJtE7N8nZQV~%o#~Icj9&u$4~gRB4&VX3hjZU# z4ad@3{xTWfu7PlR{YtMd1GFn6fhIQs#1FJg5R4~x$uc_dIz_8=V&e45bh)<0ds!83 zKW0|9f#KRZVKT4WgI#}5CX+Z1qn z(EEzz+-)jBt{$NstAy*G`z`kV3=P0p;k%upfufMH$-U6fU|MO}P`|CP&wVM-6q)lw zwdv{!M*k;QK6e5)r59j$RD@3!5lgab3cFBhxSaE|vbOT7M1EHWZ*ZauKBN#1&NY-B!ega2ura3>wI_S+ z2F#2KTVS+?^olUcdDpC*WSTDt}YId*dg)BH% zL@zbPcApT-Z58q~rD+vb9nvFCXNx9mwRFe(>U)tU6@{ik}2yqRoKZ>ETggT9&RaS^3yqx09d6fvhqq4suH4+9U3l%Ff{nA{MemQVcR8C%ph-Of$|yj{$M$ky0>eG;VW z2hE4-9-6Z^&)IDJQaL0dx*6>j!7wJbb*^#1HYS%s3?oYEXAX7No!<3@!9RZhSjmq? zFt7DQvYL(VJqd;Zc6)2dmYQsKdWf;d?6_p5(UI9lnc;S^KoGYg*PU~!gjD)0IfuYA z@;#1g9VWBgEUN*%C-phR9}HOpy=tsC2l|qnK7{5{eEj#B{Gt+NC1n&t-jkh`rT%TN zdUs|hrzRtm)F}J42t{d&dvHmu+Ls){J-wZtgT(b|!yua7`{ctaM5VMuU%S19DF1N- zsF}w%6KLR77BIG%lyB_4_A)3jS{$DvOf>7-?_`ki^6pcV?kDztBuKF@Lq7xH z;%y*gqarkTxKu^dTp*-xT+tJZGcs`W$yfnQwZxRt)7hLfzd1+aa*? z2?w_y{e^{F3roG_wiI1@+(}Qyc-+6hH1nJwrjkOn2X=wxB?3d;{AmdOG)H-j;@;O+ z$Tn5DGK`EvQ14A*j$LJ^I|3YId-9>r{OBxy6R~8LF(cSXZ);71%mN5}4{-xzAo}r@fHG057mL;U4j{@r0XOg+^;VBI4LD1i25l%@ z{~{!(XXU1iBA@UdDtu)5xCOC=Ea2QkjVCUcm$h#CP_p3Bhoi4P^{(t~^wK23D5uRV znCnVU0YMnnlcB@S9tsD|p4k>beEi%fldf$xi1nm9cV^r}m7?5#Be&r*CMG=$Qpbtt zw3G0F_i}15mDT;z@pgu@>w$0V$DO{%pYV9hY+wy*-DohL>++YOD2Jl*fl<5tt1gwQ z$ZEaP2Txb?m|HCf-tE;RncjVpg7~{rCI#J~roQxUlPKQ%p2@blS5c-_W+y{!{)OV$ zA;Gs5IPAwD25^G}l z7hxvBS*9Gm`iye3o$T@3h?8J7QymSlX8zpYE(Vus43Bxq6F+@&0x%9KV;z_^bT&@n zQYwp6!n_rLfu957%R0NK(+i=ew& zT(f)m=at^a!g9ZdfoP$~QE%Y;JgKmcqCIB%jop#A&1T4l;RSXuT7E%+A=f9ip)@td zmf!Z7)4HV2lXFdfWf8*i>BT4sHtd4!s_UonJ~@Ryz1IhbB)rvoYSXS1i0Jri*xt+j z*m6cLbhohvSM_;95fJsu4iRFyWZ>2=5Oq|*duq-MuPGsDnju;<6RBFDd|w-IcAv-x zFiKb&QhPx&>U(m~H-bMY_{NWALvww-B_TO5^nS#leF0j7X7y<1cfh;86yiI-JYI5n zpxIh)w!8?jDg|RUY2J}<1ckEnuyZX&|TwmBe))UU{iZtLchKi}Zi(3c^nXA&)`hmx6B(JWQ{!9)88@=(Kr{ zv<7x6rCePoFa*G`tiXM?vR>9JFzUuW_9)stC|3%?z+fGBTjhY3)AOCw39aq5|NQUu;bgJdwF%9-HdZSI z*EKVQFBB8_!QCBjqXZFmpuby)JR!6i{KuPb->HuY5UHW=ot{wcZoo2=UR0r$Z2Wcv zB37K&PUlq-d9ioj_q60J`%_qLkmlQfb_X9EC(36Pz9vq%t1;&s_*4ANBmaD70-}ZO zRqPZu9ZmdCqc{brh;6-}(!==^s;}_YKbuNYVl4t^^%lN)oHt1HwOZgq7)<#$9dFC> z+Cb}TE>b0B_oz1iS%M!Q3oRyqKh88>rMG8SQ;vZ%+7P=as1PR5Pq@qcc&eZ+Rlx&B9!)w<`B!^I5n&k}#9UMJ_ zQx>!Nklp#sMlvA+J3Bm7MAW0{pw%+2>ntC1XO_h`86*TEy_kw;A&-KW)6{?hGpjDV z%!+}}jb`Y`U;l23#qU#D#=80^k10t1<&di^ONjFTH+E&kJ34F5$@*yNqkI{1f}%qS z(y;((8Rc8d7*V=%SlqUwvI2?XSH4+JfVb$dX%d7o-q2H-v1{bcHA$ByAJLUg_n}kQ zL|JsQxYz-f$+&m~I#w$2IZBee(Wfpdh54GuKYM7x1{n;!v{ z0e^J#>Ii!}kDd;D0-*|;6%s{DBP2N<%8F;}2YF)KrU7Z`53q^#KK6aQbexB;o8H^8 zQq|H^Ms*{*g{Rln2EGAo$KT`eD!`dE1EMF&sv7pkG*6G3nyVexvWA zHRjHpEfkwP%Ax5~xZBFO*$tX3SoStjKe9Cpd)P^uYT4a}p>9G#dO21k0@pBQ)Ldol zRH;Rs?Ao(V8{8Y-Pk)6U4^3r%5!>GAk95l=mnoxK;?x8q-2V}>l36rREqGA;G=||rcC_L1KX&RiM zQ0kxAC{l7s(+R4p+YKH=!b^P%LKZqqw{L&D+zVl>{ZLF|W79yFi$4eK{Fq?>R8ZjM zX@>w!;?a$){0^eeRbhblhofLoK1yIgf#asiKL3!JcZ($c`CzUa!ZpG@#9Y*Yj0AjD zm2Cc-j(~4B>?a|;I|}jayI!NYIMz`e!8nslfHMB+?CBAJ`3s88vawuXyr*|>rHwV5 zo8xjfj?F3jnMxo_*zKV;Hj{4-661;)7hL-)h`HZcz$PTODg%G5!0i>S${`Ww!KK#D zx?uyFvDJTX!p7QJ+i#!$rY%nb4glhP5O0s~sfWF%tJ5*>{Yz^&PV;GuF2f!{D$2J* ztJuYvHi65^NII1xVBm^7ZZ#;=J8q578EF8ou$(xzuoT|H82BBDG|FV?Z)`#?!r=}r z3Yo<$^apxuIo5j;kV8NYAKIITho>Y+zp_$a#7QW0)!@AL#DQHHP|{ti`ZT#HEo15q zzsx)=n2m}x?QZt*M@4U4V6*MrRj{(J)VA9~hp0pBjq51;R#4J@Tq!e}Dnda-L^w&z zbM;xkc>BOvB6pil#2MAQw~4rar`%1fYz3&0vWeZ8p`$DF({IS&UBtzDOUH&alwgv2fg2D%y%iLOB1IhK=+Qf!UyzENv4cWaW9MCDQIfjul(ax;Y<5-BL3HSxA;^W{Yl_NYnCSFvm^0m0Q z_z|}s!%xGL+yHC+!?^V3_|xWu(z^_wOaOO;H1&ze_g{!~?qBd&b>#M#^!eaCICoG4m2~%3|%(>))k_L#_V>^n@<=vZ*QJ z{P0}0y#Xg`Q$!mgIKH6x}jOYq#ZOLr^P63R4M6m5|sin?4h^Li-t>c~&Tm|?E zCkNq9qIMCe_3Jj>oe-K;h?kG6jmC0XGZ>=gX@WHY zYGQv{{M&HYV@QRt$b)NQ!Xm#S@hif|VN;XN*z4pPOincu7Mg8+{of1Di(6ti6}81( zhKkf|9tlvusOK)}h0%OdR^;$ath;2J0y_B)s*nP*B8l1;Ia-d__nu+XZGaN%Ml^*j zcUy~i93_d(&f$ic&z2xdOUtasYAk;y7MCOfH#=q1RaU!SMx`o%?@4Rm@lqxx`(?-t zhbP%;{ER}F=ez4njG!7B=mxWyzi zoIbR`L&fd6dUruA*TCnsO+L?YI~V=4XM(S1CtMs>g!c+PG4hH`g6tnS?V9R}?(iM> zi17cr0|^O7#qFgbe;AEk;WoH0vAssqj10gms}xhp?g#N30CS4 z46A|>Eq!=@wTi!Xj}Rxddo=y*APOuiyxD&A6FqC9496V12Lyo+-ByUNI{jqOQJ;-^ z3$QXpD2ISXcF(RyGdynRX0R%`rCX|pmb@@)1MtTxpCbm5N^_Ri>H9lb__W>tOMG1K zjn4fp^ngs{|F{5fxi2S}uV-@+nbS+w#S0$i$JBKo%<5A2QS>k0hEyrQaQzN5Sc##5 zOiy|NLMu(wNS{MO(u-pBC-dD>njEWbZIU1%OQAPk4Gr0AuLt%fFpG3P=pX+(pr^MS z9rZr@a$)0-h&42NID8{|UW!zTCw4LD*UBk@*d`}=m}iOPy;WN+{(pQQI_Y{2&7XeY zCV8d&`0H}%ylOg?^!KF?TqE@zUYdwf!J%LR0fB=3Pvdukg9%rOBJteGyJb?_c`v`H zMkNi)YOgW!TO7rZb^-clxyje}K0wC>i zgF6|Edd>kU6~_T(y9ag&-k|R??{~$qt4C1wluzY#_KRD9cY7(#p2nN5_C+Ab2Pbhi z+_$3GU&*R^?VLW@V!`XR z51@I_zn}So3fOB2*@5oneEOmq^7qj_%zYB7HRK0>GFieF*xmIllBFrKQTZ+n$yA`+ z(PDJ;pJgjX`*}ao&-8)e$g>Jp`*(xABT!Ytv+ezPhW5~_D}x3Xf4>LGL6GnD3?%3{ znUrCfbj)RIU|Y4|wF3F7bCMBkTvhMl$ekH`d88VSb2QXA8$!drmVA6YGeNYU6nx8b zDs%Z_a|Is*ob@w+z9Bn>e!7QM=J=CG(EQR zXA&ij%o{_By=|msgp-EEA#G(27EE-()_tM93iN?ght?9OEtzv??xAY|WGyW^T_P|M z^c5LK#f9Z~#*!V_44S)IZMJdVG1lpO_M z(JmEJ-(6CGKa2I=|nX})^LWyqcji)!w-6@EJ{mP~BI|bJ7 zfY#RGB5z9_Wn@)psF&Qo@2%4`XkI+b9q+`f`rJ9$fo9NyErpaQha|A?N9xrp6$g1X z!sENU6+7D>>UyaHI7t-8l+O2v<&*w>R?G$QXCdXpa3@P4{B9w?#cXofN<@4Yw%=Q0|hD z^d~7yU!HIp#A;$AlNS*BfO8GqZUK^s7~QLoSyQq%Bs>UNrS@tYNKBw9uO@vZP9&RK?={aLF71*X#)K`ds8HneSLL z16S2<)Czi(ta%|7C}N0O#!cZKQ}sJQ|YxjjDw7oD^X!1Aut5 z4xPR6Lp%u*!sst5Q2eWRef-8`${p7ZKW?t4cKz{rAZFly6R!VxKf7t0=uF)^_gP!* zUF?}jm5D+K!)V;vB_%TSnLEr$hi z;k5neeD_qAYQFMOxEr`JpYB+SRd_@sNlet5ja{CT!qeV&RuT~T;9ur1(XC==dM5T= zyyvDiq+b9od7=2GD*We;x4e(9R71wRt$~+%XyBW5rsl7;SO4YAc=Hi2e=DT>;diuH z%w`QeFY9O-bbBHhM;O;$;$H4azpLvE|Ct+P;*FVAJ+>k!(kc(6@AKISAZb{hXxj>p z_mm(3VK5-EAfqltxTt{Ds}}gxNXFsd)?5^(mH!G3Uo`sk);<>b?! z1xs`Rp0jt^($Xs4Q)6!OR8hp*VY>2sa;)Lc=#L2j)AzdA_GaH1Mn^6lhq#zRz9oMigrq%HlIfiqs0PXcX4Q#|6|b3MgUAhPSA^lkx1W@bJqY{nNzPMpqM5i;S-?+VT%YHapE(@u zO)XPQ4HpdMEOM00{Q3dFHKvJI*IWv%v2nPp1F)uslv8%Cqr&Rm38i+H9BDb^;Sd;;(uFFGh$$K|H%<8hYFSUE*7E)PE4u{}`POvmKk| z-xo}D@@#KEJRg(35cVQ0wpI{b%vVv?*bG;h-N23fW>h4Rrz#i?`uo0F%G$W9-7;qk zcYs>7>>bN#IqDOsM9jHZhxcvx9qw)A0I*>6U}o=`X${r)jW7T9C+ob?yrt}w4}Sg+ zfbxG{ZFn44-K@t8a+zDWcM75T5+tc`DogYpYqcBhC(DsSsuDQCEyZ;@F*ZhW!G6uY zGz>tbE}_stz*{Y9=jR5hg2_AdSXF~qT-HxiWj8WTSKL{0F$`^ z)i@OU?#G1Fv4o!1-t|qx>ht>BM_Xxo0|wJ-e(ka$LX|ew|Lcu-e;kT_a34rKmxeQ* z+?R_TNIk@bH{Aj4sQdpMiU#S}U-OY*1~Yh(cm99Fo<%a(o@-1*bS3&X(XIv{R;nos zTzPrkkpc|ZYY*gG>-k&r``)|1pw#D_=|}E(t_M;k#1w#b<{@AFI)U6J&|<1Nn|~nIYG#1l9Amk;RdhB202uhsk}6 zo)GjnLli5#o$(u>j>mk(zQ%G`~%w`7pD8c)WFyYLYa?g*nEe#K}Kx zA~5;!Y5F|{Z_jP6=h(g?_WpOX!7pA0BBO{`bi<5NQKohTZ{MCe9SEow042T@V}wNM zC?65iYEEh$u$|SNZ%d#`u4>F}c@$GQ`L*e14BXQ7j=p*oVa27s8#6@3Y!kcpC3QdZC=_Rrg z1PO)G17{Z!kwB1kD8qse1x}rXKt7boo8;hnY@1q&kSg_v1;}hdiXlY{Tp;7}ADN5Y zdI^7_7c3|lRgq?882eL(f0j3>_W!H=daJF{mgmd-=D&@I?>C=usM_vX%olGiBuzAt zat|_m@rV@jHVtH}v@;^nvw8u=rq~`75)_-gRTgvl^kmfqWYVnv-}Aut=+(HuJyEtP zts?wa`~Ow8PL53FKze2E5=Gmw;F>snB774>&R7&7juiI3gzCv}@sB&Tfcd*6K|>G9 zqZIL(UsoFctF4Ea})&4vBcI#QUyRp?8ns>Z=^WRsHxEZfj*enccoWaV?m9cIH}OzhzAc z=a@qv&@-}FYb=*5erO>>x9QJ(R%b98_*@*>X>?{Eh(2Ex5NivWTc__k`#Pnto-xOlmubX7yOvYz0!aBU_$58$P%JWNGttqrbro`hV!#I z41ekU7j71X&ny3%MDkPobZok^x>WEBB>%=va_W=me8IY=MIqAW+R&r{@rvlwy*u}w zOMk}H>aInRonIoDVwE7(!uG0(QTzH&(?LHlBYUU(|FaHr*69JEQ)T!iIel%6!GD(8 zw-Wl9`Zm@2HOTDNa@Aa|a9Xg@+!;N66?^>t4`$%GRf;TORq$0al2UOHn6}o<)w+^& ztOYr}02uB9FE_ebm)>}o;l0hFP6_NH^zD`O($22+b=(=k`4ir&=i7Lis~v4>(jWif z*}0z<;Vm+#w#Yb&vv2weu)?f)jq zmUw@@{QO(cJ$A@`m0Q!}*E7iTDJ2{SMU2`U?XjT16SsauuwhYEy$&p%@pJ62?O#kc z_%W-+s9z=|Rnxv55A9JIYl1L6$1$g0*YEwBcNwWNoW+d>;QUr|rhmin!Gh=)Vf%{V zudAO!zN7iGdk6HW;nNrS8F2Fei+0G$F^=oKHNL85jj$5LkzYfwXS=8R7uC0d`5u~U zFiOn(pyCz70&0A0GO*!+N{GS;bsO>}i|}u1SfL{q!&&8++w;(*c!g#s05h0qr?ZCy z>l;cdaAWZ)3Gp+p@XV$6?x#DF@8SoaJfF1Z&xR_>&}SLf#QMzGuRpfs0rQk}i*!aJ zhy`3hm*|SJL~ZRvj)R%~Nz`>YigNp)>2E3^`VU-mFWhjj<~HyG4KhH{JSM&=>#}lj znFdbcheF5db2FanpnFeZQiZ$Rf~O>N#b&yh+Gd?MZj8>$5vuX>#jdo5SA&h%KrazFbmPT9FkKnzg ziNEyz$GJ`gaaw1FeW?~fOnedh|KWne>^&l3HTls2v+EF9jZpdklK6R#XJ`A%+hvo$ zG=`E-VGglO$yJk#r8oLAwZ99~{zR(VBeLI0=bgbT`b8QZW@YVHS*#qW4qxhc(C`af z1O%Qm_YIY9nx@uUBszQDs&GggLN0q-1|enOZfoH0jB$Qf4UuuaJ&VptMd?MlF z^JPC}$g;9{O~3nC1$-axdb>D?p@4nB4}*X}yUC}cOGUm+-8?a(?{F2dzqs@B5=Bq#XD#d^Ym-YEX8?rP)bO=l(_nCNF|Ik zE9MU z`>{{c*UokEjmSsQ_r$GZS zT+x}?wMqX7ITEB0&td!qotvy+2oLzqNzHS+HX6kW@@);=9q&Byq4b@nmm=}S8DRa+ zNb`Z39xL8}!H$zJy;9nOTp94eD zJ9OJFMsVP3N}~Vdt~yVmqyekqzB^x88I+!d=snfN_r#HIp9v4 zpZthInNWsC&%>Qx;NVlmX_1f0?bCuEQ4-%$fIK`n7q8pj2X_H<_OD*Op`D#EEBKzB zNqT8v=%ni_-YMC-|NtWGsNX z=Ga%@?O&j9YlOvP2p!~%b4+IUKKSO^%$jXj8}z~hiYNrJsIgT+cfeW=DuKCLP`jV8K1#mC? z(PeW+P?({skaBB~c6Wi}NoH7O6x$dpq7APG3D@TuE+_o9hbNTpdoW0p%k5&w(0=%3pYp|=S z=77kRcvgj3jcu;p*U$lpX}j_Y9XU!dTG|&(C>Id!wHlX&kM}#l4wQ1KeRvq$N7HuTaS-ta%$@^m)af98lJZ z$~E6X%dVf;|`Ci0*cxsL8SvK_%6fDEb@@|2-0iu=E!HFx5&0llH;&& zu~UwuGINEh30kN4x&seseOc310bo77ydq%W#{&=~uv^GCs zHTUKs7#WaX+r?Cts+jw5i&b%*x&)S+P_=6x`&2-n``x!9Ypo8fGXOJJunJ|W+0owF zEw1$LzA^sPDaEFnFF1F?w`F6qp86x)yZu}#`8TOnh|xD(y@{}(_Iw7j_4s0A&!a#_>&$V)x@Nr!% z(N~C&w0lDh$or$N%_ku}35guRyaHOx@T^=FNIKiN>7nsF+jd7P`Ax!c9ZawEFiyNc zFe>#2kF@b-9^Z$;ncf2+Wj5KjCtKg?411n=4Zo@jHD7Ui;Yq+gID{{s@e5@0F5i+wfN$!B|#?B zD}sz5(!MBB(1R@vM1mAZy}^m-mh9Ka?!D+93i~1U%|jUfV?A#O>sL1z0lMs>aTn_$ zAN*`BI6y5*>Y9+_)g>Ki@*)03uFD$^;jb9&FVK7@{R8IXJ)Vx3H{au?8H44GC2N~ z=6*yv;|e{ejs+7s7Wj?BV=_!i+J8j^#7a%A^(6fnz+kRE<6(T6wl}DIT~z0r(YbYS zHsWrCk$uIRVrf8D9Um|KpYZ;i@`~z2uZ6u78Y814&KaucPYRAH(5}?h_ZiFFgSKPw0;m!+XZt6)Ng- zLRu8sclw&QMxXCAC`ws7{0kD2D9OAod{VJ@<8SR=NHa++5Af39yrkl;WDgUtW97Fx$s+nf-k;9_n-n z7q~@6anUjpYEkP$m}a5bM_7}I6YBAuN4uPr!DpF`iUNe{y>NY-=X|;MwIoSS-6n9pM4`w0L6&9Q*%DLxy-}$Sw+N*tsz;bh#%8 z4E=5{R4@{C&A8^V{|XdJ*9am659_cATS6(edKWi)EiV2MAaho#`y{|cEn&*8$0RWJ ze@k2C<|8)f9AMDR6!k4iar=_i8(haORnxl2q?X0^LE{nznzfhVNlRLzmtgCWP1nQQ4D9hr^p43V`*+|NuK z4Kg1OgIzyg7xw>t{$qu!#O%{+@praA)pJBRK9;`EveU4n5qqJWR8k-L0N_aa&X|IJ zLYTiq`w<*ivR*j>a$g!51=6^n~BDMPTBLwy0ygWVY2^?&DH%Dc~AWX=p9 zarAMEUR1?q5tmR!Y{>wuR^ZQLC!3QDPvD_b8$0i}j-Z|aS9!}|$}XypAnzQ}5-RzS z+Y>6hCP=0jC2Yl=r*-(;l@HW! zu6-C>|L0m*=Cg?eMvMi} zoge|NjG`2OF&^N7n4+Of0_+(}EFk)xQ|Q1hw|Jq$zvbAZZ!$-^e)73vj^&y99_~+5 zF5V2c>gjZeX=`Vi8JCB>iGgCq=4>x$kl(X+(M4 zCW~H;iu`JnzSmmI>&=?0D#~n?O7zprfOLT9I^SD>Hq>E@xdv?g`c7GVY0&;-%_Yoz zn}=oN=1Ud4j^#|WZPFa?h3RzleQmntE|73qPx4V0vp^ldohgP4_38i>j!CX)qx=1X z9%Dm*)`y~at)8gq*OKY>0~@nj12dH)TPsN3IX{O=nYO_UzAC6`Y>*aY&K0`nXGJmd zg??Zp<18X-J9XflfZ{v7)F)pBz$X8cblIqSNqU^>KH=T2noJjU>uTs zAr3Vw3KM#dJ2_}wK>B6DkwWo}sTrq+q7dy+b_`V{ZOBGnsyFJ z2~k~hn=PbHGD(C+IDp+TMB8x1LVuoED$s@^wjG!243!NY1Ml}IiYyL?KU*7;J`P|3 zNT=)@Rw&Em67?2caHofPta_^5{oq(;8YX1?IL(XE^v&gxdawN0PSHdCvSIm`jwJ&F zGKq82Ijkj{r=Lu3$73e8ETQK7f5uySDO!(qC+WyfWpcTxwxu4}t;LXeb6=drkJmR@ zJdH-d=CD>O77c}tJ7#r3Y9sLvf9Br%Ezo|S@X38>2XPM&JsHtEEWhg9ZQfS%O8C2f zmB`T$*$_yQd~Hh)ZuC-*?50;Tkt@D6I9sL%>g4R^nG~TJo4n;{GqfjDF30nEXVP0( zwZO0?X}}my7GYHRdGB7nkzS1j(kYp!G+Vqv?S&Avx0&eIHx$*nlVeXlh?(^7h7(li zcM^RVS2q%MTD3mtTUenR$Qv>28sqCk{^-D#hlAB>{K!`e#mD?&M-yY`_PO;xF)j-k zp-G=b4_I2TY)pM`7=@y9eVfk2v;4H3_FI^2k@hw+~<#gm_tz@kU9JcQOy;U?DpOi;Ez zgToLXivU6&bdHO}S9sl#Si0Bx@#@KA^2d-*)=~@>qEN?LccDeSOa+^&qGp-TAGDGm zel(uZ94-;tm?SBQ3y=eUn)p{J9?gD62PuhrSun?lJ{YT&)MhKP2~DpVjsxp{+v}GO zB&gleB=gUSxXVt9Zv-9DlTmwkmct%zjOqREZ>OIw#?tSp55%Vd{E4L)DY^dy{Nx^?>CQ_yBXQ;i)YtVgrS+Lft9;dRG>YZxdtlr*s`dj_m4zunJCglNW8^bH rnKxp>)rILdE=c}f8^o`~N$~#xnQSlIlEUY@00000NkvXXu0mjfx`T6^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/dialog_lines.png b/data/themes/default/images/parts/dialog_lines.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8b19d3fd4324d4e6aa7e1f6676abca1257afe9 GIT binary patch literal 10797 zcmeHN3s+Ouw%!;eYK0iR9*aW6pv|>f=rwKSjgKg0Xk)8Jg(9MY*rE^!j~EfKK@(fA zk4tMtjtTfU6&pZaT0{|oaIR1>;IRZMB7p{iAPs^Dl-Hd*+HK}$?(@n_EW9l$G%@4`@;__!6x6;#8r*`Q}~DV z?)APLVx0VS{&q$x9GS-d*k3>pZ_OtESP_3!ybTAbF@B${r8Z2NHD|%{1xw~p;E+Si z+U+rGA`cu0jff%EM2GH*2@P?K{~~6e@#tTA-`BF=Yuj|P*-^Fo zcF=fD+pmx6>gvY5UYu8L&A#q)HqX`GR#M)=fAu3!U3KOm{rS&_w(?epWxCf#O+N$+ z!$OEFQsHlbttypPJb;}vlv_D6)0{54tLtZPooaSVzU$oRb=JwB82DT2`lrqP<4LdY z$x7Pg<=VDls`*RsojVdfAhvHaf3u; zmWQN}p68X%(CZeP->zkYPX9yKs_^b*ODF$p^?X-Fvq68P{FYSMoki^m^}lNEQfB_b zVY3XiM9LB6=#kbsq0$J zgUptvMry?d=@nc4PxGg`nP0V`z1V^HNLijY9;fSAi!P>JuNLutikyia?HI8q(lpmr zn?ImjURxy<{m&NB7FtTK!Me~a9Ix~ZiWmI>)uug8-I5VVuv(XNVAw{x{cYU5`Gqbfw zFbzqeRM(-UU8{`4V)Kab+oOA%T1-JyIbr*F95zI~B+@bAq_i_I1z8M-TjFLv97#Pn z>6`{j3Npmpp>B2FoUf2eLbzk){ko?cu!l73Ai`H=p~uV0bLe?p*mF`eHCDQBWz_wm z8uOU7R6o@xdR3N{H%c2A{tJ;)8#?~RGk;k{jWL9`!zQhHZAG|YRyY!pK6f{vu&O%4 zX=#NG632te2Uh3TRtOBUGF1Ul=J%J^+Z{frw%Dzxb=2f1)6ej(d$%BY%6Hc3)h!v) zD}t<fN?YN@kHA62>tvRn_Osov66eE(Zvh|#6Z0yO2;?!}zSA*gUG=KW$E7B?I{`_VCB_y*?`3(k;LvDnk z_bKEaicfCJ$2nA}xw-U49Brm4uYGNPlfEHkmMXKX55o2|aQA)l(1iuDsI>S}pFtY7 zywYFn9Ei@!>3J&Ehj=~9sGe&%%01XJhLtT==LN^JR4y49^cdr#^|`S}%{Egp{zOwt z)VkRlgwxR0mDF5Cvn}Otx`-95Ks1Y{C{I}@-#^o@`#lAXQPKHSU)$1k6<7alH!fXe zS+?<}ZahKR1|StPG@`j+6+D;jqAc%H-JDlUMIz#-@XTd+DzR;4AMZ;ft~hm-S<(~s znN(xF*b>OvqsBfWVr;{Bhuzvx9BYsI$GhfrsWHSy2YX2ccxP-=JYJA^TpD)_!-5np zz96W`aL#@YwJg+sch4-O65fej&iv@MgcmEgg8|nj)~PIN{k>Z?lNm)7C(ZWLUQ^74 zGUg81+&P9F{-b8!V+NUne@k_j1qcDxfgV9i%fS=cPcicMIju{WoioC%k%PdV)1g;c#EiK7QK50R>sXbi}!=}TCxo2o@A%f z?#802$eT=4LJ{Ae)>U?S-~b zE>Tt<&Rv~_@tG4Pp1LJWmEcTjiBBaGfdP+l%1Xm5pHgP7IXaZf>#NS-cR%E@2L3N! zAwodjRTkANE_b0n&|o-j>ZrjxkjKq-J*e+_Q;s=51HxOzxG_|RWvWq-F91x-0Y3Vm zhKkZVwO=L@^z>%84~T1^0qlc#b#*!~B)>MaTI^r(0-{sgAM7QhnMcwUkUYXm2+WMg zNJv8aHwSuX@IyDna3S?%kU15y*KjOL$~KD{)rtT|%Z7ISSkDB#;GLL6TVi8a08Y3< zIK}HKexxM$Te9J3-~Ud5O8i(^h}{=jL`q=_t#$@5FS8@5*?hDee~y}wPIBOukJpEvw@XEe4?_t z03*B31~5&wa6IF*;w)8T*&(Fk6rC5u5K^g;{=i*b2n0m`7leQ~ciB4-%L@t_obc{M zK1wqMyGRb=!`$6y_1nhnD0~JsR3+szo*mg4gdQJZuspiT1f1fS{>j~fM?cn}6U^svWtR7j0yuzX(0UZHO`P6=F6R#e#h1h3+5DHI7 z-6vnua&e`t2dN*xdExDlt5TiAq9v~$sv%Cxn``ng@l*rSV2iQMiuWBa)&p;9?nOXV z=swJgvB{D5@+&IeL%JiV{`_U@_rBDM_hmQPTtx-7i2%~`x`}~%w_K*!LoG#jW{c65h>{F>mt(eDavQ5j83ZG%w z3L3ge^!`}mk?K7dOFOPeC}8Mu@t5irNqrU8r_w<>{g%eE>+`Q^f3vO^FJ>=rN1aRd zg+2jsW2bGxtlR>|en?~sCYhybpp+J4oBgm#b(4&3zs?N^B5GW+e@GpcQJ0C;YcP>` z5QJa9uH^uvut*y){1Y1cu#Uf59n#gXv(fEOEMWiMuHM1f?=BmJG)79ZJr>-VyV5Ib zY68N`BOUeTAr{!ZvScB+nW~!(m`ZxfZGkNzKX?}7du<93b$hy2ZLMpv!zAcwU9BE zl!6hB+rfIEs$>pZSuoN-O{3L$=EZ@h$z(2L-cg7q$vU~(^B!86Vcsk%iNd#VL&8~4 zf&gbkO8T!m&n{jUfodZz3)JEAz6%0Z?g)D_(lKVc+tJTS8{(30wKd5mS$Hh5%h_Pv zN=MUaCnms_G!OMB;7f0lh9URtb8qsYT~S3|TFNonq@ZcXx3wj*uXmBr-F;3zAG_`s zf7+PquA@TNe5`2HRTN1*FV;(Vd0iLm>9@rp2|bW+n;=T7ZPI&75LL=g^V2CLw`*tyBlwunh&F zTEHmgRP>RnYg7eTG*P~YqR#8rHFjXtXv?D6KiS)UxquP4tq!aQiIrZPX+lMoArZz&kQc$LRQ`;U#^qqs|c{nlpxMcYL?Y2@*C%D?jYKRk-+kPF@sZ){wC-scOe6g z+Rg`+o>5*xPi&-NSmEx^+i6XMHs~96^hUcmM6h$%FItn2%xRsE1myKxXh5@A%j^FR zN!eoXhF`_EO?zw`I=z)e!SuFsbZ8|nTh+N28-+OQ6I=;S#Q>!9oYn{c+oCDRGw+!= z$S|BvFMhV#G#G(-cpL9zH&uf{C+h@%`!r%6{EVRS7;} zF_Dbtm7<<*{OuQkg$47s0dm-M7$;@N6{Rx>`Ow?+*iR!42r*tG>x(0T4-S<$+%c^-kS|$}D zycMQLfPS%e2B@EN5)5eSrk37Z9n$Wvoq-hk_(egmSLNtE$~u+Q_2uX)~vf$Wmpc>c>Uk2u2N}6=I)2s zfXq+1KU+CVV4(!kW4j1Lo)$ugYqp0n_j!iD5C2b?c|9-p%Yh zYXJ*0O^VjJ_kjOdG{K@DguJ*m$Ai@@99we7g$^6B-u$yf`SPp z!BI&J(jaaWnl1)G++t<>&8W9)=xXmK37-|F{y$fu$ z+0i_&%jI{gW^2WkDDIJDM=)D`NeVTAFVh}9w)~aiBDF0B%&Bfed%YS=rR<_~v9`zd z6^!soQ7$#{APO=9JJ!Izv1Z6`Mi`>;;PKw%&>o!lE@%EIABySN72X}r%cf$V#%y9a zwOS}!ld+*J->K>Z-sOP=vJV7JERc%>gElGj=g8m$W~9(TRjLT8@iWU)NwG&s_X`^) zuQjMer+KmQ_#n=N)1(Y=bAU|VU5{yhKSe@3DYjB1__rW>{gHl0YCXvTPT}T7RByM4 zeIecbFT3}TSH?_vV|4euK&$?ES6R;h6`d#k3Qokk zWbX!p23vXO2(hrpWHk)1Jfkj5`S8n36IZe=2C3&gckJP zht^*{kmUXTO;p9nt4UTci(Vrcdo2VoMrNABP9(dyEGKXd&S^w^%V5iYCY7TP{&5<7 zSMX2CC2PPEtqM#qT0l6EyOuL(o8p4!Z8B#rF+@pRsTbmT6ua2MZ@K e4i;&~DWPR+22a@RcYzN#3BR>m&eheyU;Q6CgbZN- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/dialog_neon.png b/data/themes/default/images/parts/dialog_neon.png new file mode 100644 index 0000000000000000000000000000000000000000..a78e0a54f4a72f66bdb154234d83b312b029782d GIT binary patch literal 2784 zcmeAS@N?(olHy`uVBq!ia0y~yU;#3jWH{J>RL0FakwA*EILO_JVcj{Imp~3%lDE4H z!+#K5uy^@npa^GyM`SSr1Gg{;GcwGYBLNg-FY)wsWxv5HB&x{x&?X@RC?s3r8d2h$ zpPQSSSHj?2l$uzQnxasiS(2d;l98(5?&%xwK1DT;fq~21)5S5Q;?~L0B zd6l`9nT69G=CsUxy|F+_??NND!J=b66Zh#%-VqeK^<{O?lpofmO5TB=>K88oxqlRl zh5)t@i0S_GYooj`^O7k+T3^3zytH48o#6qCrFZ(Cl7D=8*DUV-wVB11r?BvR=x&`i z(N5L(&h=Kj>ezbhg{G8-76U`H*R|LGWajl3U7aue`=7XW@4r0-c9jo*1{`d7E6#9l zp8P#uW@*oFpPiWOw=cgi X0^uk+qGJ^A^9v^$W^i@odd*Ff)bCsiv3=e`P{h4&_ z|HAp#ofq4xzj2PZep+u$x%-j!V>>=pY)rVIr6A(UXjcAlUrn9uOg6I^kq&c(e4vl! zthd+@Ch~!eVa`p9Klkcqvt_8=-N(qlP_WaL^*%NqkBW_kz+eu62QHspAFngvoe<=; z^2+t&UjL(H7#f71=*<0i>8JIM$j2q$KW9koXl$_yf4gZzKIhv?Yx74dm9I%HUY@aF z1p`BlX5{+c#T9m^LhJM1{ElB^^6T@VpHEt!JF_xxi)W~)uB$NT%~82|o}2T}9Z-IJ ztEtnT^}E2OCaXuffBLFoPg&Q-pt}=9*clqUJwJIz{co>}shDUD^I#78QMZkT!0-uy9aZ&P1MZryW$#Z0dCJq(&t;ucLK6V-=^z&X literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/display_border.png b/data/themes/default/images/parts/display_border.png new file mode 100644 index 0000000000000000000000000000000000000000..8784e4609de2a576c4c33bbf517e2e9b0dc1c4b4 GIT binary patch literal 12471 zcmb8WXH-*9)c*@AAX21QNGQ^gUIGX~K#E902L(bAkPrw>DFKuwMT*iPK=>6hoO|9#fIFYh`t`+R55yg6s>IkRWh=R_OoKV!HByhTAl!2r?L zG^U`qrg5cZZ&F{`=#a;KS2s#8<7es=m4h6At{T*@be?HaT>j6M_q90r%0v4`8|Fnp z!I*VbJ1J3z;UQN}8gGc+Q<`~700Xm(NIWiyf`Xd@qN(=WZ+0tNuad*e^TW;nFS1O{ zve4)I>3_f$=J=Md#pq{TZ?C`9{=T169}@9Xe)A$(^WzH)*Kcdyzq?9_MLE;&Whm8` zN#$ku%p>AZG^@~>2M4LSlKj7=_?_Dni`5j$`u~)>^#70gzg-=}|J!pV{=c2)*h;gr zjx8VdE{}ea!Wx_Xpkf0_p+2o0={_ePM`HWrr@VglclLy!xL&+8SMRoYs`77EnmAp* zHRcje`uDf_;0t+aW9TUG^6$~R3V)1OT;NhL+d+?G)zQ!3w-dQjOBK2HWZSB$;B{Zv zPRC`{QvSuo$rtOET*sY!f76B2$%CIRWCA|dZ7DXm>NLzB-+Fn%7(jgxNDiDhsAx+* zq&Q02Qrm`Y_Z&2xiERrk#xE3Ccv!1$!<1N&OViDhawL$h|BuOuL-%)=e*-txXO7k` z@Z^TdW`nnrqk*26#C!<1nF)KKi(`s=3 zc=qO;j@1;rJb6H8s9H&MAqd*qkplx;4&}tI2o0pFl7*W6RS6+3*&A;+ULI{a3aAdx zyiXodTFW~1;5cQo&-LQ!I=XxlP(S2A8cJ(lmtPN1Ci(?(bY-Ts|EYJI3pid*&TQh^ zgm;fd$kEsn3qZH(OZyXj)U-XFAJ6wh6%Q;?Svj&7fwU&1hX31t**_!52j7{XVzz#g z%IJ3DOFdR^(|Aa36MiT|>i=r*FRUCXQKF+ZgbB0bHEQ#^h1h7@ZA~hy$%_~gRb~ak zzql&*J1M*TOByRXZPwvxwyg-d-D&_1POTn+?Y+h5ecs=XVbxR9xOHPNwBm0oaw%u# z=nlS^yK~T_rsoV#;OCjat~8Fp@Iy)!b`4tAp|6JK2ceF|N|z3fMRdBkZ*y9LmC}T@ zmzxD`JJ0@thSnA0NUQ5zY$R!7W4v@LyL|wMeZYME*5{qmL8ss7t+c!UTHYOO?6m${ z{uF%W&n2?i2!8K;|D!crT>tzUS&sgdU&4dFu@c|GWS4LL%Ct1m3mX0XpeU!x8 z%f7>jqjI02tal5~taRoI5y{4eF51b*Y}-@KK344e@n>%jXzIJj8UJ}rfyW8igHSVw z_FWp4qZ1e^u(7LrXIX^-^7{di?egqk%I31~Jm_+(b;oP)*du0yM#F1x&V!?B{m5@r zwZ;EvJFV^C4@u%&!)w*KPH!o)-MP7JK@fB6{p=_QlL#iPEg2yDjl=9#bAltM&FEF`!XcHn0UI^} z0%791gY!Zmipeia{9_L{B-QxDq{BtQ|Fqn|p}exhwta9lLr`jTwlSQ&p78c)qd! zLR3br7=AMWQ1RUJ7rEkaKqDguseDFTw~=>5sL>9Lm@pJ1xrc;O?O6%s7=fE5P6;td zGq3BY0&v8lvMQZ!om(qp%$7nRLKZ-8HXhP*jbH^{+xQoShvhweX6a^V{RI?v_j)Sh zFMHdhQ1l%?z&HCM5J5@!kF=(2zN4_y4m7yFO&n>^6N3K1U|ppRW;Pbo^WNY*sz14X zGTZspVQ+lI*mWSfMY`j6V*_o6Y#c|jpH6eqC3myS6C!!4YD)3)xOFF(;5HW-xTKoH zQW8&U{CY#(CQf>BVdrSq@A0dx*XJz~vmP9|jG)^xvEIBR(#?3AMxd0|JfhZ#!`M`2 zo#W{AoaX4u#h0K(s-Pa}sZ)ax8&qdB`_riLpTq+d&f`X)4Rz4}3=)WLUb9NO^H16j zo6N`3xnx&ur}g8SNm$m@65vKr`w%@tw%$VU+D)-BNXXK=2h>4pOk;0r;34{bG2OFc z5t|cFLL7|2n}4mu8}k_;j7kpC_iRT$k3Aes9FfK;Pbd~N7n@(R8TuR4mg{-B@pbCR z@~D0>3}S!(-$Y)nfFa$PQ|1QdbNkS>YuhHN6H{Q|#w1lxshHJK_etRFH4VcJpyki0 zT|e`Wr9%y*R^al>^JsLhi`0+s;#rxKu+Hd}Qx&e;3@YgXyNY8&W}4luVng*tuI9f= z4%@aLiLQIv>^`mx+}+FBISjn?Tsl&Xk#0Svr($vXD^K+E;^_J!O&ppm$ROc<+1G3Q ziz(vceLyxiU*_a@r4LqmPmV`NZ>ZxuQzqWT7Je@QJ6xbln5+=a>DcuzexhDL{qL+Of^Or2?`~K~NQKU_!RT#4?8J61gkvd< zk~SplIocMI^n!BRp>Wuosqcov*W2Y%WJlD{NUo&PQzg2#ldITVjFn!Dk#;Zc7}n7_ zFDEH14k|7&K|vbrxn|$>x^szZ8vR&u7_wf0{^7M0z*b)oCB%<#4w-B-1rW~_6d%!>#!SN zm!_r+aG$FWe5WcplfEw<`DFd|QXfkb;qbrC52T=m&Ti=IKPpOtrVC+Wkz$Sx4tvei zYb67N=@s=!<;ReZ;>fq6NTl;}bAhNwa3=BRsX3i{jsF5c6aCB`I z6wZ?HeoGIW+#jxZy`1@6s8K}-eZT2ZkK`YI-K+UonxMuUc852@ zw71g1n|f_x(VJ3Jd}3nVjMMGwBHW{%i{-Ip7& z)4<_HD+4?&?H(U0PoWa*X$MUw&6QD!Ba0|rC$yyzV;g2 z0>GW>rX)Ll`2EKa0cWUne}yomr7B>y(@L}$C;uwT=sLlbjB7HrVJd%9REk(ofZ$83D~?eLxGgI#}CH@;VzIqA$DNba(H z!O+y%RTrG|I#$Jn?`d%oLl^`2A&9MKCilS0&hpPH`R_8ANjhl0ir|#KWOvOS1_!pO8$QD9Zy}`yyJw37LLOaKOe8>CWyiL-? z&oz4nqbIKt?1M^zs-8EORT*%;Kl>U!ofyw4b_ z8)Ot<@8n+W-W4>k@9-@?I@(*>5~##PL;+>~&P1~RH77iBuEn6`4} zZUExROz$g}r5_f2dQ;&uW`TYy3^O>{1xD}+aKwVH&f{KEqPAAfQ9#?0D&5C^Ci7?6 zsM%d9arpb0d(8YU6SZ+%qPMXW36w%p_-(yZ%bO!!${XwBx{4^136yo4L5<{4D4Hd9 z%#gu#ZJTKt?P{^ zJDL?^=W{cNH;&o($C>?q2Z%rz`XQ%k;da_dc5n=|jc3Qv!rPG(0U_oUMBZI3_la8w zo)kw6ebP^FeTWw6S`b`k zQf~>26jwCjg%Ue>)XAx!hMlpf{{lfU2>Lh40ek@oNF_{q?$K9JzW-gRY{2SP3(q52?OsgzBGfTSMdL+3 z{0UmIab7Og#xRgB3{XjdX@_`=kEkOqCZ&JUNjlPce=kuUU z%Hvd;zBwYaY95w1vy23)&?~Ssgkk{9x5->(Fg5~+uN_5cH6Xzdt;6`nf!EXoA#YG4 z^_Ddv1@o)st8GQ{q}G6IzDn4~9Htj#L%)2!AgQ&wTt$9IH`rxykhYi(4=ty-9QwkJ*V5rPSh^ba>MWkcPKNt5ChoW8Tyh1qocLvOsSKbnFI z*Hw%SV!6L>=Lg+4mP<;n-u)3n@9q>UcRKyfNHCm(zaV?EGZ8B%k}DJaTt-2L1yvzG zqX?1Z93Rwo8tl zawVhgj|EG2K*r-c??Z=(lgiOPGL6vn@#QEJc+`JvXt!wkNf9)!3<3@Povdw7F?c*JRz(tJxu-af`;1*FxnjeeIYu3NKI>|zS%KXcMN zOBtB~vq46hfi8!GC@9tjfnE7FJyS2UIdjL$|0M+2$;3jc1WXmHjJf~)uqEjwODk6$ zK~Whg3^$<-&PIXX-WnQR%w)_MxX-`mrl!e|609aa{1)(i#Z-Vurf|8th%N_kYx{Iq9{&C^=74^ad7mJRgM9oM-hmiH{@NCSzLn`ud#(Khe} zwaHsB)kh5G71}ANH@i&ck@pn^Cya_Wzjgm0zOC_~7W~@oSR*6OdwX*^FR^f6r))Y~ z{u6qotV7=mjR)~UdZrv*cncOdc*q>Odz9$@9O_VuHwk{~=;`h!b41XFWz@!6quTM*}O{QRN}3;eVH`uipOTq{_6GF0dfbTq6gQlPR#=t(UlQJ_q|E8&Ox z9mCPTWlKdt?#m*8UK=@AG41-gDu~xAq9{=&B~JUHTnCk>XSD6?jC{we?4nSh<1H6Y z21v>io;5U?_SaW-7;rJW5jis8uDn3atr0dDgfpL>AU)=54S?vRo-4o;$ zBkINmnkC(U*P2X*QkEI)_>ZTmTM7flPR(-v6n@fuJ-RV06H8Jh-q>NJjj%x7xRP0Fn} z-VVrOjf|PWD2tNNQmnda8C37R%_AsY@TG!#jL)ZP9s|K~iX~C`fRc}5MR~~!UU%=x zJ(om9PQR=*F4(o5HbRum3ql>e!ehp4TWXx)VtMjki}$>G#hODP8j3Ihkqo%xk zCppbD;tHyyZeZ7d7Ti2(6xA&F=bDcVY}7qq_~Tz3G%Wgu1z`FKo%1T{1)JwmQX7ap z6KjKn%lCw9q0LT3>tb0)sq_gm8ysq>R@R?by`SG)x{IAiOrnJ zp#(X1wvTT0k5Rm%TE(`+?zwCyZpEC*Qs)~#Z!k^2d6TqNfwvE{7tgOf+R3nLY#XC+ zlFxaQJG)=KKFiR(O}z$`>^`GBcDslF-0yaxb?0rJ-4-(ddLTEs%COjQ-2u$xGtJV_ zzA=T=0=R7WR3Rf6+j7+sQr(zS;aW~NjQT`aZKACNG^W7Q($Nlr;sBtuXrRTL+U-c~ z>r*Y|E>mBhn0tSHHN`kums*qHXmoapI$`(< z%R#UWzJFqu2VySQN~e^=;yIQdNW1Dl(Jo`;tib&s8G@SNTvpM!Ui6lWOlIA|?L9HU zNTBqJJhWGsM+VcYbWR>e;829yqC#b&3zjss$6%7bK(?R`T(^I!Hm;wm_>|WshH}(o z0nYi{4UinGE~R%3@liCa;*%XT=N<O=sKkB;mN>v@{d?^~ny)GgKq5}$jsDf? z_c2<{dH8fSk*#A2yt(09)vH@K)DEFzE_Atv;9 zHb+kB!57D8b%A?+{e$V*plz<9G=Y}MU8v=2$1doLP$<5nt+LyA+j(shjS^8DlgPK0OW}DXiQ1(ZY(zMo3Xh{BUVSh9`W+rG* zg2zi_Qo8dyY<=#{Ig1cClDVkAt5Kl85%9(fVQwtcULe$9>$w1*pT@51N~Mt47rkrUAL<^ z@|b`gZc^n^fyj?gH!2o~$3l#T%awok*N!R$I3gHL z74K*~Yn*bk{vz*E&NOZ7;-hW$?U5)AF<Sy2BGy5 zgi1dgUj$b3(d74IN_MBKqccvUCifDPb|O|1Gru?2Pwbj7Au{A9f!U3mSsbn)kHJQZ zd(W@(BV>t$5R=e{*-FIVNsWhl6i2p4ofwk?M3(A0r{eG-p5dQfQSF`1S;x${`yZy# z7l5xzDjyV^dnu0^j_M1`*M0QWCpN1_Zy1?$8rIdu)eojF%yH>t-C*}J%8eXg!)ll0 zvj^1Evvg0?j7sW6E?70o3MlW&{drUIDf!0Y_&Fk^bRlh*PLF$ht)OUE*!n7I8?ktg z_DheJbw6wDyseuZ=oqcO?EE?09Chm22FwQw?-P{z4Xs+MAY$n%7^+WNO@1Fi@L?>( z!7Rr>E^qRld7(jls4r6$K)9S8C}aQ416iYB6cr9G+A|vckPpJWdRY85Gyjn_4s3=y zbrH^6epchu`D;5wxQ^C6S!R|>i01MfQ_{(oi#~7q5 zC7~oKnlrIPLBS;YKP z-%5rMp0aN!gd^iRGmaS;F^E0f(3Gn011st2#JFun^jpp>B~g>LK$;`H&nIuFwWcs* zl{~um6?!#i!9K#rujcccAJA8K%K&U(Rr8zZg6+++fx6KDxFt0cwaM4_JV6#@Pu^f>b{nH>><72rxHL5je}3TECvGK=oL6axmlCJ(o<` zTC5A-qtLvChOLV6(4oO6r-457v*x$QzCo;Co7PJ?n6VeV5}+fk@LzXdFq`L-^Qz}w zyp{p)cNTp4B}QaV-Ms+0ij}69ot?Zpi*lGrkHbFh-{$8N^VRl$r$2e1?ao!aI9I)_ zSte+K7yxB`)7OV3byN?&5cEX?)ix3wXmZfqP4}Xm+to*S`DsXJi~ zwI6Q@s@!*jtP11w=f}mQ`~K6?5lTuGKqM@?rFJXQf>ze#JN;X2B%kD-@JAbJQxj~|0K(l zXp)R<6!BEcrU!clJt(KN?CC{_3WUcSp#lR#7kfsaXW_D3{JZio-;=>wQF;87;)8;P z7cb6!3Jg-A&Tecc7C)Cr8qif@Dav%PwH zWhL^Yjy4yAl_xKxx!q6a003yJqrO|ZiF7Om=Y3qBzH>C*`kHk+7NlOwjiiM&xV@{) zzNPHgB@N5}&rQT13;V#)^=fOBXh!gK0cJQ~B789Wlij(5p~^P1T+ShyBhBJE_==YX z3a^P~D!T(`w%+zb%1>|)=x<_Gf2)oqcZdgE^; z9HZqd)!QI8(p^Q&|E(bToU`84^_CzmuBVcy7ikL#&(G65jB(L;705y;y#D)6)!6Xp zxDWJs3L}QntvB4{e!8%jP*8k6cSN4ln^KsodW{(1Gi0WZ2%wQbCn9ZPbdvtr(<(~6 zy*4-i@|GLW=VQ*XuGsts`jXV>iA<1k3kI5I{DY-pGc|U+-8SdP+7j&@Zdm6~lB4iP z#$o7puQkg}nc9==9$8HQbIeC887PoZzQt5OZ24vq#}hNwtb91X|AAq`KlDtqHEjIx z;E-$!;JCup6pyg)t$w5!o3UQ%m}lz0I?pzm2U$F#wwWW!YA zw9ifWAm0zbgm5iraldZbXJ(^s(ATuF7XDlj)kZr#F-(L*_c34nhg3h;Hk&;F2=5ta zZo+tPIbVDsb^l7TbW`IL4X9;D4 zy(d&ZSh`%j%5%Iqx>|Qm?PEMt<4A!6#t&QI{0Nf@ z!E2h&`XzP6(=~bJ?HXhS=9-bt&+c$mQ-Q7flzY}p8LPKx$v)a4@ow7RjwWG_E>Aj3 zE8Cc}^j?3b{sruj;0$1WOPFm|{xWXl#E2&5WI!QrVsFiR56V6fvxKeb#D$=|_$xU1 zLNi$_hlZGh#|l1&^9^N+7xGQwfrq$2+F(n?GD zL{hAQ0|QI{o)U9!rRF#I`xZgg5`SvsFJDMe&iKqUdY>gt0Cj!t1cvDfHD zf8$^Eb&>o4pDJM|2!}EmiXTd8i311s(|a$QvIQ^0>H=nO(M2ixSDH{fa-8ESjqXB< z3`f&V@z`WN>pqqD=)$Hhy|^is2dWDYrDLb55oOIST`f+EA2Ff#({?f_0RDG`zhQ9c z&RHm|Ab0*mLpoVKU}0yn6nU7g=|k2ExV$*8x*}E%vi5^Gx&jB^KGw(!>Q`)=J39ZK zwclV9e16atD}50dv)f=F)0X4a`k5gWstmCkyLMas7o_1~oeBloDuXH`@NWnhAnKXvR`b?iXqb0(vqZUjTakXOyQcQCS~@F4 zU_9Jgu%LOO&BU@5@MGJRU)>|^v#~KO>rf=quVSEHyQA97miyx# zzNVA<@{$9Bx&x56dJLxvi^`%4WN6ss*OkSRo zL(_+qg^DxF+c0HNPoC}MN{xANv}Jm=D#wvXY^30|terTLpIclgCQ=WpPty^xU-Vlc(aO!EA{k4U zYV2|W!-xSE290LapffoRAjphjv>EKa$&n(0W3$P^FiGKI>FV5gq6rd9dXK&C;7|tF zrJcZ0hGz5VxL^*2rUdc<3l{tbdvIGft>?Ti1fNZp&ds`vt)NJ$0?g0$2F+&)o)OAN zac2QqxP~W%qK??4*Jc^oj$@N5sCGebekuiPA-8pWvy9pOc>yfWt6%e4Ql);{xWIv< zsE)754CI7g?kAhUxPt$oZnEpuUip&%U9?bUW62*3YJ!0zbus;Z2g8Wahi7{DnvMF{*LW?)EWVS^Gy_9xY07q^+#|E9wMJVaKxT zBb8*EiN4cMD=_LzGgefIN%?_|Da)Klk!gCqT;pRSDkm7HwNWd*Tv}(5VF!&+)GKTd z6Gy!-qW!@+Gwa;dLX(*hSRda^F9A4N`3HF7eKRlLp13Mi^JhjOb{k6E-n?kmZ;+L( zF)7kZIy=)}@Sj%MLZlT@e52o*$!U-&$u3Os_O@ppbTt$~;|MOAtKqKZg`cuZSFp`r zCwO{#wpBrPEvM&%_dGmSK3v8!n1uD`A}SiUSb68=zVl;6w@Mv{8{O{}e#a0CbZVhp@ztq+^uQiz+fk7>A~fv%9) zFK%-|R}k2jozrq@;#Me0QsLtNn0@Wg$`zLYg{yEm^)6ub?yy`&rYnEmyohm6*wm@X zb)47V2F&U7P~&!zk{a9}ZUCtGr~)`YI#cRp{0&;W-(QcpU9;mxdHZeP3L|WExT1;5 zm)NwiNw+FNZ%7;TpY(dm&gn%^%=(UFMNsRmd;+6pw#ZD;fWmLUs(Vc1Z`v9?{CHkxoBs>w lUx{Mx{~wIL!On?I3V&dPk8{=7)n5e^kf-{ZmFl*k{})WIn6&@^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/display_border2.png b/data/themes/default/images/parts/display_border2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9cb80359d52479e0637bf9d6493d711c545d80d GIT binary patch literal 392 zcmV;30eAk1P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01li001m_fb@qgT00007bV*G`2iyS} z4H7eUrNzep009U|L_t(&-tF2kPQ)-2gyDI1gq0>pDN?hyLE;pFQ*Z*#-~u?o_8f2Q#}iGp2*H z=I(O$gS$VMQXbcJ{gNcx_VjJrj*?ztj0%At0P0Xm(YmgZbiXXi>#wHo`+hgivzn%n znTe)HB~33gQ`dF7lkH7PDQ+!K)1#)Qk1;Bx6i*JaTeH*fsL6l1rqXe72t5crK68R z31zV;v6XO!DH*mzS6G-Fxmizw^K6y~`m% z{>ztswG;rb9NOa(3czRZEr|LY4PX0Wucg92C~~O(ZoukZ^A7%lJ`w2e19S_Y@}?># zY*~`9=X){$%f4LrqQLc1YuJdPK>K_#0~k9Ci_PXXH9XjarT8A9e0w%7E-Ib^zD6XzxYTvY*MyU1!#9@@C}O{aql6pav)@7L4*M zjJe*OftN4o$F{O*euk%DCgz7^oF>epS(i00Xz3VpSigS#{m|Gv-8oTImwG^@By{Ec zcK+W&<*Nv_jTn1m7?1BSs=E_E$)u1~oWMB}^?Wi{6F%3d6isn9u7rL6v3ZO1$*QiS z$uyx`F=tDlV0dW+Rjt;9Q&oa*HeOQebnRN1NM&W!`{-gu>N=6L^B)`>Q+7Ap%e`ey zS%jBoOL$#hecXBONQyLOtd8rD|5sfp%gKC;ZtZMGl`aeKr)B&4_=w}2$Jw;9{e?ph z#8-Ti>Lc62@%(N!`)OQzW!!~$!9#K4$!=NK^Rm11_39&8m5Uw?yQN!Rd#)YR3Pif& zKilUPm?>iqwQ71@IbIp{*I9Le5#PKRlFj#(ae8{SGJ!H(8SuaPK-H5$%}h&Ld=9Z? zsK}|T>9FmJ6)O}i=T%gaqtX!HD5Z5}sokN%IsSzahHA^Z zz>Fz^ruR)z$JpGR`LGUmm(%$6wwxI4()Ey1Th}0cGP_LfC7(WZ4iAIBbJI&ycqF~+ zBGY zx2s$wrlzXRh9C40Czz4jzWVj5flJ*^vvO(wz`%YR zqdzLzTVq9Uo%QSg;zzlb{HK7ynn+AaDr}zA z`!7lDAO%31Moyr;JsrI(jpf1eOEO~Tr9xV005`?s5RwBgtIeLoC-H!Mq$uJ5QimI; zkY@So93nK-n9BT};$tX9p@+5kt?-+u59818;J8h+c|;PV7*NpTrE3g^!!fxbd(LJ& zym#-K_yoF@HrZ5!Q@pDxL)KiNP_{{ceEJDqg|o@^+q}U*E4RMDl^UmE_n{637$ys* zVEt8p5z?}_e3FJJqw{F6#*W2iJ3`?t={Il#Lg7A!TK*;Gc6~dRiVmV2MGh?n6UEL5$xdQYmp$Wu(X27>~786AcBSy;Q7z27&z$leJ6P z-1A=x%yuI26M)&-+0bY-*zSMPa1uQEXEnAjoN8P@v|D=NAfkNOOph-*{2bhyos&R8 zs0q<*0&Id36BB=NHHy2~(!$~v7UbJ`NtxpJ@AsPIkW6xu02iZ_>Pe!;RPswyNDO%P z9qItW>KtjZCmLM!+h78vh6{EY;|-U!XNl=RbWuk|XV9&x$(Ax)>eOprhFGgnA@CMX zZxVQB18Q6o($X3dfRO|XlhsyjRvw-z8_hKdI9)M40$aPm?W#q$3yg%tMSCp-|`ug~CF1U~+L4e{Ll4x9Yc-U7;tr5oDxxeOLhV03-^>Gj2^a-@UYjKPAeHg6MK zzNLDhC#gTQy(2UdC0w3fyV}%D5v{NEKF_*^lkmvBT6E zYQ8Lo$*~tFWPaeyy zzFgum0jw>mYQWeYqwx(qV44JAh(?rY0|WvAWJ;aU)7@?54*n7NiPqD#YQ>2KF_>uN z<>%$W)7E;Vlp``!n$yGT;*tL6HaeBk*pE7fHt2v%(~kah7GCs%&qq3-t!#qNUhNLX z7pnf@&kBE2ib#!jOb(laA6FV$N|Jh(AAwH-#i&;O+%v`v2vu-4?(XiUzMzZbL#g44>~O9xw*>`L3N%_NqP85m=BOg!WsnA4g@Qi2aXw>Ap!7Gmk~fvP>|`2 z%KEB;nYdUEhZD?*B$Em4uUwd1@h>|K5%ZiR%1qt+ztFq#?Hr-G`FSSJ(vBEu@VhD* zyJ));crTGSm)eH3tTH?YN)Ge!5zVDZi^U$)Y*Qa%EvA2up&MSMs(;G#%GBTQQ7Q1_ XHEVADaK8e6fdc^Y4f0{_K6df{+~Po3 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/footer_shadow.png b/data/themes/default/images/parts/footer_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..4cffaffca85b7196892a4b5398f2a07920bd3e50 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0y~yU;#22G&tCRWWw5x(?E)`ILO_JVcj{Imp~3%lDE4H z!+#K5uy^@npa^GyM`SSr1Gg{;GcwGYBLNg-FY)wsWxvTT&!Z*kA-vWSC?s3r8d2h$ zpPQSSSHj?2l$uzQnxasiS(2d;l98(5?&%xwK1DSTsPM9C`YR%Qm;d}iBZkpCDGKm-FQln66x9y8tk%;>%CVc|WH NdQVqBmvv4FO#lwLK+ymI literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/glow.png b/data/themes/default/images/parts/glow.png new file mode 100644 index 0000000000000000000000000000000000000000..466872dcf4e919ca70c28ecb58a49b49ad86a6aa GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^Z-7{hgAGU?Ur>GwNHG=%xjQkeJ16rJ$YD$Jc6VXm z0Kt>LHBEpboCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#CM!Ru65}=|(+HrDY>8_`iF1B# zZfaf$gL6@8Vo7R>LV0FMhC)b2s)D@1PLn>~)y&LOy$U(yG;dW*b zk$j%jFT^68r=OPE#TwRluS28tT6bOV)Aa$&=N3Ho^vN~~wR*NhHeYSh%yZ9}1eWRe zs(4-$O_KHOQq@(>jXvgDrnA06p4qe3Q`*zkQ-0oa({1NXrhK_%ly}3Td=l60{;&M+ z4&S_=koL&}LD6g#X_vs~i@8cm3HUv+z1&saxlJ-oB8UzuvA~C-YyQj_-yC-c2 QFg-AMy85}Sb4q9e0KG>AbN~PV literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/imageviewer_footer.png b/data/themes/default/images/parts/imageviewer_footer.png new file mode 100644 index 0000000000000000000000000000000000000000..d795e642265b3fccca488a95a895c8faaa3190a6 GIT binary patch literal 4511 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/keyboard_agenda_background.png b/data/themes/default/images/parts/keyboard_agenda_background.png new file mode 100644 index 0000000000000000000000000000000000000000..f04f5da01fd8b5165d108900a43594f65a056f5c GIT binary patch literal 74129 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�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∾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 rYrGVan*V}zwAYXdgkG0AlI6(gomIB>6 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/keyboard_cursor.png b/data/themes/default/images/parts/keyboard_cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..b8353e39307fd68e8ac12fe39ba9fc283212ba9b GIT binary patch literal 640 zcmV-`0)PF9P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXJ_ z2ni&JaOesE0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z0005k zNkldE~pj9$?4TivW3li9R4W?BxAp;o5 zfDWKcBrLp(W?^L_bO0d3Zty>GbvLGGYw%KC-Hqw>8~5NI+=Fien}bt*wgE5I&B3X@ zB{~Nl0TNXfmfb*DNL29%067>ruu4TOnV=BA1r_2gnXpPlkptX5$}}!(sjYLKq}qa> zq^hlRaal|IC{w;Fpss7Z4}Q(mnD3&gG55i*UDx`n0?HVVv<#^iGG$QrphCwgbR5(@ z2$`}BsmFNq`e)Ao6hp|QxONqiYC5}LPG|Sa3Q097t{sLD0Q%3%13?uS;i)%*g6Qc0 a0R8~?`tXVEK6p6*0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO7= z5eg-y+G=?K0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000%7 zNklbORw%uBLpL=f=Me4(H+32?0-64!lpoV)QAi*11gA5X681PTzPssWi zL1vj`!0E%wAV8iyGV<^Y1kZs64-Vni&uO>JmL>74>fU?KUKvysRVtC9BvT~i<`phf z#gDq@th4qyYo9L?^GhP`-Q&isTihOvxV`W9Qze%0Mg z0T1x7>s60CU0)r=AND$pMnA-8dt00L?+bVD3ZwuaJqyrXZmoZ1YhUmB;N2Ux)9-jw z4INc&W#3q;Cq$Rtc8t*B3B0dWuOv0uW2Y}=FuYOl?GLf_$$HtqMr_`@2S@-Z0wM%# zY{ItIVfEIR$(nakw58&;oLrT6QF-HJ7~gsp%`Xe7EmCcLDeQ}svbEkv`(y6b|0=I< zAvW*d6F$4EGzDnWw$|6J-s)1Uj;gLiJ-F_5DOQVBN`3aekYdMKQ-GE9wgID_L_K{? z)k;aqsEdNxo!!J}X?4VU>q~5{*LefCVpCAUJ#hQe5!b%n_5Ph-q^3kYb{oXF8&nnQ z4mmNIA@{V@$U^Fek~+ZB+XGZ&5<{TM(}+;%si+i|qgLcRMoLv}!xHG5ceM8P_uBr= zNVo_3#((;q{nNp}@VNG&S7vo-`T^QJq;pV$jTftgKA9(m+w_42UqR85fC1|O4?$YoCmSv@2%DadmBjG zBe31xwx$|-S!rCT5|EQ6y86PPhk)#;I;Gr0Ri>A)W*C@EV0Clhfr_pr2Lmv72DphO zd8w*ER|h>Ai&=7?@+~D_k^6Y;kN3tl9(~NT`;T7{zpRO>wus6TvzIVabQCcKs8Snk z+nUf>6@5D?QCA+=pTNW40ya5HTiEu!)y=@vcU43w-aw@0KFr|<0VG%rh8lP&7VIfYY(P%jc#{<$;`d0Ct^4edxH2?mv=oEJMpRMiqbON# zed&^~vpRvD`QjSEUjg+FDf!OQ*eeuJpI)vNTcb80066649Rl}T8=iCAgTfz zl~nP00&by zjRY`BeF<4HnLYSAC|Isu!9k9<3`woUwDuTyok$OlDMOH{3Soq=|W!`@LK zEhc{{$x;%4x55Ygq(paCzr{K~_cJH-2~(F*uKX;4dRnjc#X#cnI+<;k5L|+E3DPA< zmmpn&bP3X5;&t34n*IW@&?S>D!|m)r(qCZMy|B)gOnMC_=`T>kPptDLlP-n(^g+_= zc!-~?H(LDOC6g{4_nULvmp+mkI7=T5?g% zy6~u1#wKeoRj*nLBp8;SS_-M6ezvBSb01PB{nAaI-6kU64 z?xyJ4`7R!bL}kWY%({NUTsZ+?do%*>-J5O!d#hAvx~Fe@^f|`E#9TSMe!^TjtIVkR z8qoTAZJL6#4J@t^6v-$=2{NUgb>lW{_w4cYf$jd|8b7;xclPUV2~Z2WLU-5JxV!hz zhQnla^ZuUPSh6k4D(ue$TFcc-3ut-}|Df zT4k-=HwYg@LgmFQSPDF~-sN#OwDI-QwGVIpzUS@#{PzjJM5?P{6Ojk0Z-z=`fRYl> z1J0~St#Y)bj;_&am#*w(V5RJ?JuK^6x8r|)_g`86hkvV2{@0&{_uohNLZTF_v-O##&?^9`%a=B7DS=0I^12u{g0MP257LzO= zn{|_}AGi1gGVlDYyxsmXHPx^#!=}m5Fyuq;a}`c=cwsOXpf8$qm71=OW!?kHU~+~syAh) z%7Ij>rn0WBBcVb`$-J28#i2ekjT6$?$B){!A9u~@uX38MkRNHMFGUA!h;^x1a_?pg z2Q8b-6H(AGG0TkIfmMjyuaZ~xR`T{}i~rI;itql_1d~StNIjI#R;ri;asdB#6Mp#Z z_uL*mvGm8zV)aI9GOMoNuX>~^fE4Yxa!(1x%)F3NSSbZwWuY%+ydUAia(#7GtJ_eT zu8{woe3Er#kg{KAm&Y(;O+$|o$=%3^Ty>y1dIKu!z3K)zmt_lmSkd~^5 zA}QsXhml z)+ZHrrz@+MsYDTbE2%d!m%emEpdY(s8xP9vCu_03wI$qz5(sR5c3&IVi2JyYtJklh zdpyywgj(xGu0)d5N2W|fM14b$`BQq5qaOUvRLDoCeB_em7jb#H49YQUvxcbSlw?S6!97^LDSGuM0*iWq0jitZ&_(o-T3s?)(^zXUrEiZr$S6 zqjg*R?XKDOFVkc#C$_0k)eRwU!qAwk5{iLd49ErQlS(eE!&OQqz%vF(MkWD;$y}{x zx;t0}P(j5hi!k*Tn1HF3#*Hw#LFvj0nO8v7Vr8K$lNACzgj}GKDvu1n${91s4GBQ*!yIxDNkA10 zHzrbjKvgH#0dq_+=_a`^oe$c+{dJSqw{C0mK7_k-RGwxKX}OO8K}cHP+{8b9^ig3u zWc3IUY6G4WqEJXP7)gQvL;)ZODrdoy=9%4DrXebspb>%tOrRVs$XroA>{E&YtH+V2_?sBCvV?zE;K!eCvC)O{njrl8X$0nFA)mi~yWa zg3CcTfdnZ*Sib$u-f{vC$dQl;Isi9wgTu@mMzBOd-xf{UqGsh8 zBH&p@efqaH{C~gJ;Qb%)q?0TPg2nkG~c^{dCTt6K6|~xW2@n+uy3W(h0plC=kwEvVk-+5te`~ zz*r7dPP2b!JL579cL4+(84fpRWR_q+B3Tht5h1YZ_2>OsBYX*9<%Q)t@mMXR@#$-4 zK%hGTm=sPN?x5#P?R3P9!x@=w5ircO$Rs&LkT%y^nmbVX>2LJiOXW@{f)w2Z)e2Ce zMpQCMt;+DLq=wFb~;qArjGdIAGuZjh>S!p_@Q0BKfX zDrUZOIt?|yea4ZmP%Rfg zvcva6U>bTlr-{r3V|-XHKHrnSda+K{q{Ff7LvR*>^4T2=UpsD=^z1;IzV?M@muJf@ zo;WZ28cgCsMVA3`Je@Ar0wiY(l8$1{R8|+t_&foA5=dWsq5Y5U9G<49DWkZgN7d~A zg&vJ_9XreJe^%Q=v$G7+3@G{n;|KtKsf90IT)v;eq(wI21%jvW}>|16I?%I{@*H_nV97rIq0v`jhyl(PnD@%7xp`I43r;?tp`Q_>_X^%j1}Bxw%T zMPkzY$uWCtON@V|0r;2c-Sl*}_7I>sgVIcwY$+r!0+Y00Nzy{O4>ieNvTU!yBwLF4 zWnCi9e}&w<4D;SL&os%G%6_^`IzkZb2qvW?TJbzCE}7XmSpAX>ICYQ+L3)}W;RvA8 z5oyVJg0%SjMK3o^%;yQjX@FGZd=`0e;eocqB)cF?TGS&hSO9w}u}>pop^m2#Zg|FT zJnOjAl6Vv6y9o6t(YBe{eC3dPH4C64L#GfYXrEA*Ig`98!=t8)8G`0Ma~4%2HXMj*XqN1>i9(TBLVc_$*!!CUHRy z{Fw2tQ};>B04%z0Tl%c?1j!c6vCX2%)(Q0if|t_+dR8@dKO?|wq(%;95q787sdV=Gbxt* z+cHQ;Ee$$VCM^TuOYAytkmk>i1y8itu!rf`o0w8srnDWAqS!eDv<%WQp?12$%_H>4 zmi&?(<3r9f+!lvzkD4jrtLW#;&buuqf_6mjW+eT*K_WR{itt?dPN>_dIBp%&8h%8$ zU4$*CaSV%Wp)PMkxbXt&zSbc78?*pFDa1}oxQXS}ZWqT)9#_8Cx?UHg;{duS;ihAN zdZQp671LPq9d-dhS}dd9$SA-u562NKx~L#6mvONUucR%nJLrZJ#PPh%BwtY8Hxh0- z;$gFOnKDpZSOIqdgqsUxnw9an^7B-4H$L}Xf~2W$JH7?an@NXlD`{R*F4c&q8g5LI zBoHo6FHBqOaM>dM;<`XG+pRz1d1^c`v9)If!41lYy*iR zOb|uR>X0OBhN`b+{WOs7-qqS~Z|hGF03QT$Ko%i{6(Is(nIaYeG6ZS1I$AiVo726( z)5SMrKnf6Lx?wQ_v|J%kYw{VJ$oU7KmM5sTe0%Ah*v7`>PHmmf}m1rk9 z>hb%UN6l+9X|#Pud#m5XxJ{+gxHznf(1DD*4D6D;0-&DF-xMmQyS7Q{jK!OP5Fx6ckipphgSxJ!nNGy8*(2RY@{gffp!Dbnj%&RRyv$sG62Cd(jv?z z*F_);>S=ZWaTkh50JmlMfyK7X+Q;3X+9~7x3I2%u)%UjxK7(GArtpNPb7K>>xB89$ zh=)yRZCGbtlj*t)H%zz@Md%0l~zC;UgV{_BC z*4GW+BdukxP}hSxgt<%-eT=S~ z?55J=7s%^dTd}#Z5ifJ}BVP(g33H(8t@k}vCza})nyk7MRLV+LyJr-{?CAw0WnBCF0i5mQc&t<4!gvy9;sK*IdUppDH<+a7IjIR3_dC{KJ4 zt6oK82by>@NLHL2PK+h-T+F0rX*>vdk=jX)6%I;oZA@&hyyw@-c=+-3e56+Z=oP0{ zW@jti12=AgTaUi7$&DdK`#)HFH;_NWaa{;Noc2jup01t2Us>koE+5bk{ rSKf=kqcPTR+>Y7#NO~230O0=vfrVMkaCs)j00000NkvXXu0mjf6ItU! literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/keyboard_key_selected.png b/data/themes/default/images/parts/keyboard_key_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..f2d2df25414fb93ded502a17647749a9f42f747e GIT binary patch literal 1372 zcmZ{kdpOez7{`B;CLGmFA(xhhv%^W{PIa2O{mNW+NG_3PEz72`@Wy&dB1Q~zsT;Ov7;lFM^1CqQTH=-eXF8-Vf~&L$@En7>ZId< z{Z;9oxf2Cb{F&JQpk(+T4(q>kd@{9CA61h%b1!VDVZI)5OMhjUT(E{!taQytc{aCV zoIzy_92snmq$>GxZLIyH8|y|^HOQHVQR}U^1DqzNv86a4rA@pA!+?ivg@f_);gwRC zxF41oHD8FygSdq5)Bb0fePf?Rq8dZrW~gq&a$t(7Rclt5BmW}FHd%L5bz`wXvv^=_ zyV*kPhGs`VOgQsz&kbG%nsH0;c;!!ae3ml0|H{ z`)+%mQ0xwhwQpBGu=UbkPSfN#AKm(~mW}(FUT4IHwnvVwuSONke0`va;$7x1nwo0{ z-MrmCd3T~IVbO6j2``igK z2y^(S8XcO$6?+t_)bgcu+d#p$bimRvPFQ}u49cH<$Sv4^)elF-IsH~x;Qwp&$g*(+ z2YAQMJIDUISU-x2 zjw+E*YiS<*oo13c);$=TCI=2SD36naH2TT(4lzjRp{UMe<>`bW5if#xuIKZb@$ESo zR@P}B&=^P&ff;&e5)(#gId$fr#Rax|^@Y$khm`xk+2w;(2aS+Z)dAV8s%c@z-uEoZ zTJZbcbf}9;DK~v(t}{&CHR>Bb>M{258L`uI)Ue%bKc>uqB_HpfysytYJrUQsvR zcQh4^VbJ7}c6;~gTcEW{hS;6a2dPUQoqBV$T2Fj2VzwgVQ@Mloqt!=sGjQxqY3y|A ZCh&L*6hV606fXI50BGZAU1N1N@n2yDfx7?z literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/keyboard_lines.png b/data/themes/default/images/parts/keyboard_lines.png new file mode 100644 index 0000000000000000000000000000000000000000..83629ef604059281edcae9e662632cebbcdeaf71 GIT binary patch literal 12892 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/keyboard_multiline_background.png b/data/themes/default/images/parts/keyboard_multiline_background.png new file mode 100644 index 0000000000000000000000000000000000000000..efa2554da24db3e95d86d0090d4852b85c9abc9b GIT binary patch literal 78227 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/keyboard_select_separator.png b/data/themes/default/images/parts/keyboard_select_separator.png new file mode 100644 index 0000000000000000000000000000000000000000..31b07d8838cb3c20b710ac8f4f606e7a3e7fa3dc GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ef!3HGf8uwlTQjEnx?oJHr&dIz4a@dl*-CY>0 z7`8H8Klvfy3Q&Zzz$3Dlfq`2Xgc%uT&5-~KvX^-Jy0YJ75#!V0zr`-}5hx^E;u=xn zoS&PUnpeW$T$GwvlA5AWo>`Ki5R#Fq;O^-g@IFN~52#SW)5S4_<9hN8yV_s>pP!%q hKRv0T>ES5`hDXe7tJUWJdk0j*;OXk;vd$@?2>^jJH`M?D literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/list_message_border.png b/data/themes/default/images/parts/list_message_border.png new file mode 100644 index 0000000000000000000000000000000000000000..5e34760df9854442a8f85981cee785d47e98cf66 GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0y~yU|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD*{^eO@iM9&dm4QlC?s3r8d2h$pPQSSSHj?2l$uzQ znxasiS(2d;l98(5?&%xwK1DSTXs3Xui(^Q|t+#g%`WokvlD zJp;dG*wu}0#U>PPdt RTLS};!PC{xWt~$(696D2q>KOn literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/loading_bar.png b/data/themes/default/images/parts/loading_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..9598521c81ce8989c00170babf259fc155e9fff7 GIT binary patch literal 411 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 MTsJ_KYS};fUn6ix+yDRo literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/loading_top.png b/data/themes/default/images/parts/loading_top.png new file mode 100644 index 0000000000000000000000000000000000000000..3e346a7227bb72ed3ea7b2bfe48aa57d5686de27 GIT binary patch literal 11648 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/medium_list_decoration_left.png b/data/themes/default/images/parts/medium_list_decoration_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c770b7e7023895b046a28909f1886003b27c1683 GIT binary patch literal 1716 zcmd6n|3A|S9LGPO*~nBH>vH*)$+YyKLQ%}pGK8rqMZVd#1 z9uj`QOli7tjXj)vddT01?CA%N(f5Cwo}QdR2li(spQI;~H!)7p(>6t=C2t~xgh$Sj zT{4UlY(nt+qL^daae2nyQOF(@P3v{IE;xAG=p4|sV$wtgzeCjq9-7fNbJvJ=cRR?# zV(i|thSGMj57%t^mwv^+40AR}yx;`fL7ctBm4;$OT<*hJXkvvGf`QQeI+7#(8|+y` zWBYYoL?eeII zVp3J;vkNh9tr+EQ>0!4EmrOe*P*du2Ea_El4nvE-@maSg;l1+X&aC`jlHNntekJc{ z`kHNxkP>p?n+zTPfPc)veGta>+UT6kkX~^ z{*p<_7HTcWz1X(6T;27Qal%Sr*PHz+-Bo56se{JH_*GoIJV1LwG3oFw3W6tl@MK*k zgtgO|Kjwy|Ki|iix>gpfCC6mj1*{`Za=~)HSX*<2hkQa ztwPTQw%(xUE=m~fGd9!rNy7CGK1q1xMX8t(jnzO6c4uLF52gN(mp9x7^M-b?Es;#E z_4JrhV*N^PP}%J}t5~w#FwRRt4@s zh;It2aG?8%@!Uh+1rT0kP-m(tTmWc>Q|ZD;5cYs-pj(*>toxVq^)KGK3xK`R`hN^Y zC5jYc^C%pcZF&R;HgHpNCjvAq%xeh;QlA$^aOK56fl?nL$GR-^&t@~kQ-ij!Hre^Y?$V7jE;jtGNtvM-E zXQK5^ah3yb-GzXyTb`HZ(=UjKdwz+KbYZ_!Tuo&lIC>rT*9L`!Yfq8eGCifpY@MR~ zh~%=619`{8iORpvIq2FGy4~5}5!?L8glC?Hwea8p8|vqLuNPvFlg*r%39#XqYN^XC zJ`Aj3ucm97cZnfghV|GL9eK9E>_HMl8(w=-Y<8>~_dGOM-bcb0RJ;|28&2SgWt*!4 z+@5Z=?D`#dEjDn>BJJ}x&$N!m;ve}|`V|xwxA00%OI&JW9k(ijXvW{sE+kI6gz+eY z{nfKa8)wEw;MIk`GPyXMtfAQ-1oY>33=E!;W_WZukL7+noarySXSjhJA1A#b|d#)J@V zVslk~b!P0`&`@6QAjyhJf*<;HgRNY2)}WgCPv zsCNmW+vRYzh$i;zxjaKdRv!mv-m{07W?J4LJmaW8v+y0{|7m6;N}1T literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/medium_list_decoration_right.png b/data/themes/default/images/parts/medium_list_decoration_right.png new file mode 100644 index 0000000000000000000000000000000000000000..3608d8745ac643e827b29b29f7cd8be647432147 GIT binary patch literal 1493 zcmd6l{WsGK9LK+#F`L5;%i|P6l!rK76>Glbi-~C-a_6BgX_{ONE0c%5Dw#yb?Pj$$ zR*tEYJe($%c`BN4(?sNXbTozB^? zhYp0X#+RoKBuw4<%qcZrx#_N z{d@j&tiCbN>tVClY**_LAUn;WYHM3Z#akB9x4W`QCq|r5PT(k%rur@pRS%oc04&k$imuWG~hrj*c4r44R*Wu8$!xOI~L^J0I| zs`7q|`)SE6t&!tb=X}mt&{>LXF&Y#HRW!nnR;_q*Yu>7i%v5+!2|e-2k_BblLK;cv zhsy&6ortbxTEdLDqa`6RV0{GF5-nLd8w+P}1Dld(oCFUl6+!iA;zsw`rpkY5gs7&6 zEabU`k18QXlrfT=S|{Eu;nY{<;LyJ2&<0!3_eLYH|+Eg)V}i)T<&RATz?oR@XUKurnrM)(7=40>=KNmXzi~09M_Oj!p1Exp1ob zO^TL9Zlzoz!t8P2b-A{kI*0%B!h;`;faq5eM**-*7d|~R*30R?(3_=2DL#4XVi<@p zvm%>Y?+^fdwq7wCYY(~}5%#@_P2GybGN#;esiC5-qYEc-! z+fHhQhmf!FFCw9bFtP^ytIr#H_P|$v5b=KS3M*$*Lj6TFtBqNg&tz}h3q)e2nD_J3 z2W(*TvQNG0mn|$k#fE(=jQoQt8MO;WXf8O8ZQH0QFs8t|t`B^^a2{uA)|-V?X!sVA`$0*7*R>+A@dA7G9su}pAx{5#s{Tu{rie%6oIW+0+&>RMzjU`_%JIYJG2}bGj&GeU-jWzd1f>EPD+vJZibLogq4f&1(o{uKR zlPXzCCplqBmkz1S7yDQxgTyI}?5@63m#MxY1IoV2?#c9=Nwdy@zKMh*2FJj>tGK~X zh~U@V#9l8?-(rl|k1_4MoH<5xno~OnN$UlNr-|^4GSGn^O)-smW9i}YPDOU$TU-Co YplbCkMOa-M`WbP5pCG9AV9fdd0E?MfZ2$lO literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/medium_scroll_list_decoration.png b/data/themes/default/images/parts/medium_scroll_list_decoration.png new file mode 100644 index 0000000000000000000000000000000000000000..63ed0787644893ec25080a5e0ebfce65613d0944 GIT binary patch literal 1017 zcmeAS@N?(olHy`uVBq!ia0vp^dO%#o!3HD`EK9rwq}Y|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfbq*#0WtsO9y~;o#*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(B0y%(0#>jv*Dd-rm`pC+sM|{^9?dcXRa%*GNbS@QR2; zglMo%l4tyBS;052S^WW{j*3;+30YAmw$3IkA=ZMhoag86&0TmxR_0iz{8(Ud6Fc?VkRz>Dk)LXn`+Ohj=PfmwZ z#4G_G#)hpr*W7XfqZ@*)*wdd*xO@@d! ze@=bk*XOtCFnjd-a3QyYw8QpGHCtv?ZeRBPU#0B1-thNtzuf%0M0p+eb{pB_?vo!^ zn;l*KU7g|2GQ}>Ir+*(-#CbljYv}!86r3q~SH4e~L6@QIZcAO3#siDKp8Mj>$K9Uj zG88w@buZzWwU9RKU&jtk8wk_ zn3RRAou7>E-b_W0@DmOv7#w$b=SLMjdNKd#e|w#VyGeR$BoLX+p_T9J|k1MtgC;IIQu=}=}35U|8D*o;{_9h zV;`v8v`ClTvGc~u&~>Xs>~o5FXQ&0Vtme zQZz^3NZ(`j=^fcQ3v8!N&JY$4|l%+ambqUJ7g=L@4R^S zGYABWTrl`G>DkuKrQBv+~(7!JC<--#52#C z-SGT6!};xP;-ZHFuB?rUQLGBQc1nx4^kM4VIb}Buq`vquoGFZIdA&)AVTO2d;?WQB zy7No7K6n>u6|-hZRP)B5$$4f{U-pI1U%&dB;mQN@BB^IziEhkh+q16YZc6g8?sL)8 sdH1xe2sbN8U744&&<&XU<@Pgne)H4Vdg%cxFh??Yy85}Sb4q9e0K(J8>;M1& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_back.png b/data/themes/default/images/parts/menu_back.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5cc242f01f7fb8a61092743ef29b81f14ba1c5 GIT binary patch literal 2607 zcmb_e3rv$&6h5V)NVVbvB3PcLC_X@kT7)940;^T)&>0`d#EM06tq4>eQnA?_K3BHF zjDkQX6J1m+$^eJuVK)dM6^BAmKn(~)o&o|Dg1fh%$QaRNOVi%u_P^(R=R4nb?tjv2 z1DisgO$Go8XN|`u06jVY;ld;m+9|1iX^j@r?saSrc#A)B<>gqkV|Z}Q_7H%{Gx3)I z@fS?drh$mV^)#p=PdA)wQ;_Ksinc67p4&w3fkGkwfC$`!`8*MSk9AmpXrJ}weSB*+ zhwIg`$Myh<7t8TjwK@E8TP-utcB@6v^A4X#zl>_~k0j5FKcAN|XZ&?1dew=or{ zZE84wUui(*s@2OpHrsqd>-7p3J9}47o?n^Uly(2huY4o3Ry<-i4XW?`pvn+1xm{Oj z$+i(@ASvzT%JOWr6)rJHxw7Xc;-AvAuT}RE#Ohe_ZFRlXalgxree8#=oSpL`VjHd= zvh28K0tY#%e1@%-BTJsA^{iNO)HIbpAe1Fr_=?lj^}dVDpq$enPHG5a*9>ao2F}OR zBJB5rB+0z3>rMZwTP=foz52@-3z|J;R<^fKX{qo`+sZi*I~bB!)KT}QHi4G6zN_n@ zSo>(l#%{;rtF)?%BnbCcJ)qr?eqNk2yV0E9ChyD;B-3uEM?=2;@6O&Y@@6;oXqXCr z$hR#j%gGfl5~N+51qTb#qSk26{Yn6b>Q48&B#<-E&otCYw6HV)lc?_&;1R)E0C0@* zZjmSm_|cK&-HAIU^opC5vqWg-K3USF*xnSBwG3E+kE4T(^&!p%MHmf)kD_@0h%lNO zKZ+3i`-$*)#rd;Bg}E+xx*rkZf~F=MvJ5LFKu@aBltBlU*?%o&w0y~B!-Rn9v_%F` zo{-5?^KPl@uU{g-;R^bh6g!Yl8HaR)s}E}XL|XGJj+JEyzI_2W_&sMqWkiiVMVHmw zlK}itNbhJF%jbzO^i*PZ8V1#IN)Oh~7}uh)1Y@9MLrmBbSFUD#DSg{ikUI%gnsfq` ztTmd~(gTM-u@ zl@Ch(fn@Or7)##=YDt=ldP4os5eEW5QkOxgw~~A^Y@^bpNu3>5 zm!pTD^sYg^Em7c+#w#SjmHacPm8VB_($B&wH!-zD@tm3RK<`XmVv+K?B}mpe*+1#* z)QUXr)p<~WpTL4ZE)X&o`k&| zl-Qtl1W3$@oJ3`B1XhQ7DLrOr2FT~(;>hhYR4QQE#I$KJ`op`i^Hsz*@8_D^9!<6h zx_zE+L53@+9YB(nmnza3MCehY`mm-Q90ePSjvqmmk4Khwp6&m|&E#OFAS6qjl8C@D z*s2=a+aa}7)Q#(Sw4#LAC)pasXNapFHEvNfz6o|}!VTv_IRnEq3q>3_wj;@U4YR8Z zLGHgYi=I`f2hBBY?ixHq5BJrj*rlUp8xCJ}ofmlZ&WOPd*CGti@M2{nT; zZvmcds%eNyY3z+_@GUaBfyQY%O0pQenb3-_rtotuq>H0!2Ft40t>VBe5@hF}GYdZY zQWV=zK{N7OdelnF?C-f^fkyffrMjLOof@^177<}w{?lvp@=zme-}_zO_NG@kG_6yb Y@|M-(ZPyl{_c-8qZtzH3z3ZF50f%^Gi2wiq literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_buttons_shadow_left.png b/data/themes/default/images/parts/menu_buttons_shadow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..f7993fe9e1638c19f28291a33cb843c433533177 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^Aa)!F8<3RJZH)m^oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#ItL@4mC*FH8Y_T8vL&t&CC>S|xv6<249-QVi6yBi3gww4844j8sS56%z5(x3 zRP%re%{*NkLp+YZJ*CLUpdi3}u*v4j-~X#MR5{XE z)7O>#ItL@4l_=-Qz1%<{*%H@?66gHf+|;}h2Ir#G#FEq$h4Rdj426)4R0VfW-+=ci zs(C<#7M?DSAs)xyo?6JupdjLW@DN|U>o@ZS8#!3`iuE&t3fHc3n^c-}ukL)Z0!I@R d{ou6Q&N%fB7qe%6X$8;>22WQ%mvv4FO#sDjH4Oj& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_footer_shadow.png b/data/themes/default/images/parts/menu_footer_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..225f45cb36595f14fcb40259b1362a23cd898829 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0y~yU;#22xH;H>u9I yAh$@oRWSro3m;QClBHB&hA7u&p*e6y`0RSA5`F zC=vhwfH@@ht}rD8{a&5exx3<1@K>>LEAMEaUCb7U05`LS=2a}Ko5xJ(w z{r}YVseeiR92XURq3zYaI2n$?4A|?)51%;lVZ`qm006W~>WAJloOx%FN|Nmg z343l=slQUunOLjX6xxki*5mTNc}{yQZwd(h&UFB@*6n|Ox7-FSupsbAv4AfC0002m z77O?S0C?pBfbTyK+y+n}m|Re3H5UK?z|xBZW0P$D0|02`28ZL1(>ub>O#lD@07*qo IM6N<$f@co6xc~qF literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_header_shadow.png b/data/themes/default/images/parts/menu_header_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0aa8bee8978f4e4bf79ba8900a0a75a5a092a3 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0y~yU;#22xH#B=q}EBDZ$OH(z$3Dlfq`2Xgc%uT&5-~K zvX^-Jy0TwqV-?lZO<+}A02Gofag8W(&d<$F%`0JWE=o--Nlj5G&n(GM2+2rQaQE~L zc%P!02UHm4>EaktaqI03M_vX60p^2~5*GfuJMjUN{PCWa+ILyiOh7d~+a||I0_g)l k%)r0{A`XBEe9Rw5nT?D%YgU`u%>t?PboFyt=akR{005pfKL7v# literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_icon_camera_back.png b/data/themes/default/images/parts/menu_media_icon_camera_back.png new file mode 100644 index 0000000000000000000000000000000000000000..1a1263b8db7c8f545a90884d8455b66eafad8eb5 GIT binary patch literal 14330 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
  • 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 YlS_%i{iB9N;GP~xURp(}O2Q=ge_}b|ivR!s literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_icon_camera_red.png b/data/themes/default/images/parts/menu_media_icon_camera_red.png new file mode 100644 index 0000000000000000000000000000000000000000..50ea43d4bb77a838d7b0b24fe563b735b833506f GIT binary patch literal 1779 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_icon_eskiss_back.png b/data/themes/default/images/parts/menu_media_icon_eskiss_back.png new file mode 100644 index 0000000000000000000000000000000000000000..245e7f4d7fc0f9da4fc7300677cc3f6a3519c991 GIT binary patch literal 11837 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_icon_web_back.png b/data/themes/default/images/parts/menu_media_icon_web_back.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2abacc6e94636eccaf1feb49af7a53d138d96a GIT binary patch literal 20664 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_item.png b/data/themes/default/images/parts/menu_media_item.png new file mode 100644 index 0000000000000000000000000000000000000000..9cfcd5f56e05e6418c47379944032a4603c47d79 GIT binary patch literal 1032 zcmeAS@N?(olHy`uVBq!ia0vp^$AGwtgAGW2WHj{xQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf4OTWDb>q#p=OTeZvL&t&CC>S| zxv6<249-QVi6yBi3gww4844j8sS56%z5(x3RPz`ZnBzTN978H@y}iECdvUqU@sIEI zCn!&MS8+U<Ya9#mQKv$YHD7(Jwjknd-GF9 zMGcY33YyQ_7MEW*u(tjCo_)8u1)n6>y|8w5sZ33M`upkAr}v*ff4=x;PFu0-?)LWf z`giZ%-IJ4%`BPL;@gqGdHui5~e*XLII;U4PA5_rO(|h#on_1i8gs6@M)a%{d-GYJ_-u)Yi7I-#+~wK= zXKcRMo+y&mdvJ~63{$qv#}ckdoRMmdOg6~oK@oII>U|i9E{LhpKnS-HFxAQ%k6plS z2}}jp=AI)`&KS->Qt>C$%+1QmN-8cc?%2C`d0(pbt_WK#zyCyx$@@2Nj=XvEX8C>z zx5RaQ|Fly@o}D*oo4Dgef6|jgiO%kKK<^Xh<%ReI1?(D$PSZA=!G>@zUZei~l3Es;$3Xu?y~q|N8SGa`B__|>P@A3^R4Fk<>cqL7rXBL`}gmR zIdghu&z`;i@}*0c{G+3z_lIds4L^VW{KV&#C027K_}ZscJ)9m?6}bPn{>RVDrX(dL zDJ@&JY*C1o>;C)lYu2yd?}$Ly%J&xD_HmG6yPUtM4Sf8EtA g**SCP%I;^cp0G4n(YzuGm?s%LUHx3vIVCg!0C|AfSpWb4 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_item_glow.png b/data/themes/default/images/parts/menu_media_item_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..1653dab05af57c961f731a932a703d36ab4a109b GIT binary patch literal 2214 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_item_separator.png b/data/themes/default/images/parts/menu_media_item_separator.png new file mode 100644 index 0000000000000000000000000000000000000000..caf1fa7498d521e29b7d36975277d34ee60382b7 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^$AGwtgAGW2WHj{xQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf4OTWDO}UK3{fmG?vL&t&CC>S| zxv6<249-QVi6yBi3gww4844j8sS56%z5(x3RP%t=m3X>1hE&{od-Gt{9RmTj2lZPx zZMU#6)&4(zdhckNa`=9*2E%xgSURDd;~x^g~O1!yWCOX>xWas*m11^g)9) zU*y>2k^{MkHGY$NCSHj+?)`STPp?;K)*7?WsZySyS9h$rk){1Os8n))Qu3SPV^Y!I zSM+SGEA0wZHC=U0s{Je9+kG3Qmepe z&n+pJe_Z|Mds*4}oA$?_zd5sZ_vM#suYa{m&zt-1+_uv6Z>8^~?ptjxo_l%q-Rm>6 t^>3Hmxc%mEnfC4em+wgn3WkRNx3xXiwdPN9TKpNL)zj6_Wt~$(699U0#H#=R literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/menu_media_item_shadow.png b/data/themes/default/images/parts/menu_media_item_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..de88a8209043facf8324bfdef1078fe94752ece5 GIT binary patch literal 1825 zcmV++2j2LJP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOG$ z4_CX>@2HRA^-&M@dak?_?!z000Jf zNklnX!r+aisgbHS8>NYleeI+Pq~|qA(W3b`3`k;} z;d}zRj~*|4`8Xhs!B@k9-}>9(LEi;mI@WLkd;7;HI0bkxh;VS+aPj_x#Ri9$!hjpM zyWY{<6eZ#E^+xN$L!HE}Fr!1Cc=>uuj|Cjs9t_L9mVv`>gN6GE4mgYzhPX0f;)3y^ zvM=1ck4#QrmmHSDs+ni$$J1%-R2p8#9XC4zZ^%91Ma4XH>c3&~y8^ z$ziNk5GSMl&gkm_BMQca4t?xSU$#XjF0?RNMu9BZ#^PYC^RzXBlj>lF0ipqX?K~^g zIOvPJ4GNvdG6&$5$4X>41^NtZ4(#CI7&Okpnvz)4husRmlCyH4x5CYVRRcCM*X6E{ zLWkp4+kj2Lk6@ocPA%ua4nn{sjzT)UGNrI==OLwc<jY5ZjOecU02f$ssoKWgt-tJEJ}~ny--Qlx*h0i~^@10a`L|G%ZmKCip>N zKpNnCVC4bK+}FDwt`p%X3XYQi;r^J_5j+&Z4)~=K-m|DSTc(NdoQO%DE6 zI211jfSTeH*N|sXee}vs>rf6M2^@na`rlM9@NxtaW4bLb=SX!<)Rh2UoYvtg05$xu z5PB)>c`$DTer7rXX^J2z7HVn&lIXwVY{1HVo*U&QIlHtNXO-+6fXiUI4CYB4ff;^q zhQ24eN3izZTktK;Au*jnJ9e*P;bj%;X+SEb_(*$SVsarM+Hc00GxV&)&Y1F`c6sx z6<5S*tMkYNe-_|`__+nZ z)%m_8CAeAYOC|iyyq+rDX`pX`r$Fz$N+a7__{+p@+6YepKXe2y!GYIACr&|c^!hQt zPo)}?ykB$bujc?fEBv>g&hx6|bAgw_UIU#wjv#k{&((A*+4BH&&i;g||JHVp09Y;Y zHQ>*Tl5^fXH_;Y|8bF>X1c~&gzAL5vwFDfQZ;|*bBE9Edh%J|cdPRP%;=7~;KS^cZ zTItvBbL}z3L6qXm$4-CHF;*0g6&pYjV?5Z&uX9IoCt^EFVvnS@#MWogJy~J*1Yc?d zl7ozl$by6{>PetPBdgkI{o8<>JKvo<)2Sn;BFF#E93P2d-{{!{nyp-WRqFCF8|Owi-Xy)!c3lHbRbdt;S=L^{B^Y*!=qF|O5* zYxQr+?`Ju@G{^6~$F=$u_@3~`zw>x7$G`J|n?!aRMe|MfAci?&G9e5-L6!+ZgZ{rosr4c^vxhIeQob=#p z?zv}ypDTIeF1!9!`?$+)++~-2JmS9k_vGbqU;TUQ1z&YveXU`|lXPT`!W-;(lFqoV zc#@97NaERfwn!b%&XX;VXXhP$cHT;d5l_qA4|+T;cTEk#I!}8%mOm|bm*ap9%RHj* z$_Ra1UcVyWU#%c^sSGQ~xM<&RF`ivc>%eeRUSr`B6~ELKL1(@q5r zj{9bqVKLmdIf)Zd6)*ekN97`XQ2+4Z`{L6Yeo+7T;rrq$1B5U8-f#k&4E)kDU>Myq z;fRR-JSXv}@jlT&1G;G8d;*f#7tx*za2R{+;{Y^Tv}nT5Jlg@bC3MeF7;u=xnoS&PUnpeW$T$GwvlA5AWo>`Ki5R#Fq;O^-g z@IFN~kAZ=4g{O;SNX4zUcP{!K4iIp;csD(|!Qs!&mM;^vR*G;acKV8Y%$yT^s3vah zw&N1=tU#k(W`D1(H)jU2TG$)ji2-Q_1zU!YtFt9REPIAMvlxMlPs|54Lj`PRf&>mR zAJ~=)5wcVbrS?wrC6VpMc6JYWJbz#;tL z9dm;`i1&ekalxv6U~3*SF4*mlFcD~eI>^NhAY}|JEDiBc_e&(loB;_vWK5W)26l>^ z0z(Ych=j;#kWh&ZzY6ii?HUUiGqBce>sB2F`y{{3g=PQ% literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/middle_skyline_neon.png b/data/themes/default/images/parts/middle_skyline_neon.png new file mode 100644 index 0000000000000000000000000000000000000000..5baedebf0b54f3f72a37b0a8f5490cb187e653bb GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0y~yU;#22*f`jLWGwfaULeI;;1OBOz`!jG!i)^F=12eq z*-JcqUD>a*vGGdD$5?up0fl5sTq8=H^K)}k^GX<;i&7IyQd1PlGfOfQLNZbn+&z5* z-lwSMF)%PPdAc};RNQ)d$1v}Zfe2edoQu2IxdUg;cvgAzUEUeYf8bDuNO`8}=`LMi zu2qxXPhR7Yqke+BZvUbqFaMb4G-$58C~o|mk>P?_`Fzo7e7CkezFnFw8R2;Fp0$2z zy~4`JF|Y6ayz%14+$Ls*1m4z~o%&tJeyphJPwEe|{_bI*5Rg#Gc;I(p{T3b_1BMQ- z#Q(o7^HVp*ZTq-9f6bTWr%aDOnh|d=_3*ImLPmxI^_ri87k}tW^0{X&a{NWk&pj*u z8Od~XR=X$v*I)n{^z-wlM9GK*27~f>>cBwwXD9Q5lh=lk;XEHh+wFH*k`LZB-LVEr l#7WE8Y_ewtvKmT%usPokyb>!-mkR&@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/module_footer_shadow.png b/data/themes/default/images/parts/module_footer_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..d85a0a90e2c5dcc8571fee398acabb26def53c16 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yU_Jq4b8)Z%$&6X$3P6gpz$3Dlfq`2Xgc%uT&5-~K zvX^-Jy0TwqV;5!O_+D{<6(}TI;u=xnoS&PUnpeW$T$GwvlA5AWo>`Ki5R#Fq;O^-g z@IFN~52!H2)5S5Q;?~>ijJymAJj@$x4<2f&Umo7T6eT`)n>kRyhnEaktaqI1MM_vX60p^2~5*GfuJMjS%^YaEt&fmAMeq#YDvfDm6MiNLH zoL~b{JVro5A_Xh}BoZbtGB6xaU}j)wa0EHEnFmO0W?vS_S+jOgUkH%H;OXk;vd$@? F2>@K0Itl;) literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_cd_shadow.png b/data/themes/default/images/parts/player_cd_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..73fcd0689aa5e7043c27752903edb9815a26506a GIT binary patch literal 868 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 Y9jsU~;_`kCoWVhmMwW&Z`qy#)1H=l%U;qFB literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_cover_front.png b/data/themes/default/images/parts/player_cover_front.png new file mode 100644 index 0000000000000000000000000000000000000000..f6d45e98dba0dd4e40c5a51ff56803106240239a GIT binary patch literal 4650 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_line_decoration_cd.png b/data/themes/default/images/parts/player_line_decoration_cd.png new file mode 100644 index 0000000000000000000000000000000000000000..d1519da9dade73e99993c723fc1a7939a9a866fa GIT binary patch literal 569 zcmV-90>=G`P)WFU8GbZ8({Xk{QrNlj4iWF>9@00EszL_t(&-tC%EZ-X!l zgwKSo(Cz>K)oF#zdvUZV3c*m?sm+~aQAO~8@fZ7|0u)726!i)crof#e0iX-_Xv4K4 z3%O914nfu5EgJO!ptR0C4EM;sfCCc$E23KsLyS%eI@ z8d$neY&8(|pT4&&jK@+~TLUl8ivsut@MEDYC@NP3tOsziYqw!kD(&dCfCI)gAjJWc z6gqV+P}pER^`ZvX3}CWr1g=^2_5j{2)KZ;Jgtu&uF;@-&WZ6LWYV5y=Br#J6fNtO$3dK#T9H^909xo7%WF}z?iKYA>8BP zyuRy5uu4in)6A@0A!v<577suoXruiO zJT%$`THK&!0ACh!t6hzt{i(CDaWKe6^J*PI+wIdjgX`1cYF&*Tjs6U0i_?MrtVKmn zmgX}gU5%hMIyMIDU_(+IJt4cPtHq8sSZ;%@@gE};MIEnSG?R`Th%iH&00000NkvXX Hu0mjfJcZ-C literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_line_decoration_left.png b/data/themes/default/images/parts/player_line_decoration_left.png new file mode 100644 index 0000000000000000000000000000000000000000..3a5ece7a6e90a3af7b4a88d204907b7bc9881a60 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^0ziC=gAGWoZ#c9WNU;<Lh>tLqersuDU|>At>EalY(fD@u!J@+oJT9qsivRyl&Ys*|IL)=83IB8kGT%Eyq^ZEsMpK;D$v{}A^sVpvNgXLG3`z_Hmg-(D$WjC;~u+*Fln?WL@BbLCzU<`$E}51S4=_78V- z@L-gB|3Oa6K{Za(wmtcP7EeeBL;k;NVUEWE-i2)kCZxO#aQe-7e1X)V9PiI!K~q~# z%sX*<$FFUhR_^M~WRZB=xpJjXmFaU^mJi?4-UPBhgH-Wyg$+_p>%X(?{md#T9`NGnI<9T})yK7# zFf?{D#In9PvG;LjVYs83vVLjKV=af9seUry)+K^%i7V2oM3+l!Lh>tLqersuDU|?M9>EalY(fIcE!MsBT0xTCwAKdx>|Ax@_L)#9gTr2C?5t6K_ zlzZd(M%f2K?(hF<>uq`KRp@d=_T20p_s%n{QqOxvFyWplMW zx%*WtV`#s$g1%-2$L-Ha%i~U8O;ET$$JSPXbJ>IgvU+we=BU5_p3i1c)+euCZqXvP z{^RByIiXE0MMlvgpAB|R{IKuDA?MpK_8eSowd??ImHUPq8Qsln`J4ylEpO$L&<*EY#qwvD4SUZA)0rPW@t!O;ZMx`sfTNAYd2&7W0S$t)z4*}Q$iB}`^?o& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_line_decoration_top.png b/data/themes/default/images/parts/player_line_decoration_top.png new file mode 100644 index 0000000000000000000000000000000000000000..83e926d135f8c492eaf952bbbeffa7462a2f9b28 GIT binary patch literal 493 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00B`+L_t(&-tC!Pi^Cug zMQ1e6`~Ux}&c3X0JB%MGq-ggZkW?cnv>vWwLJZVxUOaW@D6%e4}J2m@SUIJo8#O3~4QcSjh=Cl8vH~(?lCdR-vhg zl$FDfYm#OHk|ifwc5}UKtkKBHHJX>KT??%DCRzEr*TyUKZI)=g?P3P;G!Sl9w-K^) zqV>`YWhx+CTl+RjwYytK+%{%Ns_YI=61R`!;B8}tq-$bb@_M?6VkxHA9nmz9O@f0E z>7*MIjhvilQ9_l@`q!0ExdvaFTx}KAV`;F(jA}DVM|MpzOfZA>TV3ttuXqk&GJYpV j2ze4UvmgEpggnbHy^U{#^9mJ&00000NkvXXu0mjfwI;|O literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_shadow.png b/data/themes/default/images/parts/player_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f4a232fd4ab7de55f645264c812bfe6717deb3 GIT binary patch literal 2293 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

    Jm=@9*CAVez`$b19199>DcifU) z_}+Pv9F&K|dS%Ew`d{(Y`0QEyF#2{s&GKI#mO_5#!w+`;NHwj2%kSU6HxKV%&oBb( zRl`qc59XMb+Z^Td`2%5R9_@y?{Ibk0ZMx;XT5S2>=cKmlNNi+u^vcGp5C1uzoQ;r* zJ(SY5c;BjiG_IP;d$jX3ift$t-=YB!)QRZY+)O;?cJa;;9A2ptL1DlpGwv$1%_@L@ zW6V$D@r{j*@A`$xFDRvHjvr4aD9*2^jWv*NmzD}c0P@}YVPUt$+uO*gR&sMJzoMiq zlT$-oG3J^6DvfPzJyQc^V~s3FtB@0@Y-@SQ- z^ZkbzgutGWkxGVHgKn#meG-U@0{W5pi+!CiXli=bH{ZO0+a~-tI#Aj!IXNO|PpNYMDZU zmB_d_Ai5*Tz`sEcWVj#*IDtUJ$;(LeeMxzQrI&A-QXTsyL1dd=)hI5 zeMyNrfWP>^q=qIsQpyI60}ue#fMJR>281B!_q+Ckd4O)ZgkJojo+&i2xcV6BOc4kK zlfQp^eVbe9gF(QIWOlhtx_nf$nBq`f&(iOTe93WsfiqvKQ2wyNvk*_T+bqB{j6^&O zCqPjDbhIe554R-2poC006^lm`(`wRZnj-cD`irAH#a`Iwt`qx-3}xqiFeQl-YO<%c zE$kIQLxoz^&Wo4tf*Bn1a)aL7Y8<5%pBl7u4&JmqxH0dL{63(FI=FE-C~qwxM^ijk zr_b8@6jaM@hoiSvX9Hfkh)Fx=X=FU(`q#+!_fFMiZf2e|77Hk{d>yM|rgLyMXphu~ zMnbFGhV=vc0m&{kyj7s{l*l6%y&=7v-ZYp0JAcxK=T6i>wMb^)cl&}l7-ElcLbI*? G(*6fmf@>TA literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_small_cover_front.png b/data/themes/default/images/parts/player_small_cover_front.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a027946c52da8313054b5447bf11ec02324c1f GIT binary patch literal 2718 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/player_small_shadow.png b/data/themes/default/images/parts/player_small_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..9a821f50a5fb727edef5f5ec05d0323962038991 GIT binary patch literal 1403 zcmchX|3A|S9LGP?j+v=#W}%$zgKqf}$;cy*$$XYAQOQaPTccKtU8YI-KACdDQl08i z8_pg1a$OuF$A$-zTrTsq&6g`B-%{E+Zl^!te!0i<@p`=<@8=)z%03j}YmBr&0svsl zphJP{H+?+`2>tb@Anm?9`ltMSAwc(q2T#f*>&B2zKOP4FMkZeZ1B&jNtxE#|!=GlL zLc)yT+qZE264#ZbfEFz9iRJMkV+4TD`AD`PGJ+sHE8r4>xRC^3hX0}Y2-_F{fU6mh zcTmFcY|%`v1p~D&bgX^vV8ofvYxi9Yg)5Iz-WTp<_DLYYbwO^BEDctoT^M58bj7`h zrEIF^thT?gIY{D{<1As6EYu{9_`w7=5noPE#XZHbP%6&s{L%))qV8F1BFo$*hiyE5 zA;)EkkQV-(`0;q1x46A5&8a#3$&SX9rQwqdJ^SR174de!Et={}E`4zonni3!Ev`JgDu?Y^y1RY}yA{yjCo`LT|Nr=FShwj#|WTlGKZ| zX;5D7S^w{N^7Zw6}$e`EYV)j9iuS-*d+qe)DCcI{X0{0RIOFdjE|cUwr=JCdULzPW?Z#G!UqS#e^vTAj!y==LQy@ zf;V18lN_v>RpVsvW8umHEO-#z@~TEy(f{%tRTL>^#lO90mPEUn1?FVBf41t&?qnXT z_$qdc++&^jvin@zx2hyGht!p4gl&V@xKplmGN9a;5s&GXp#sD;2E3x5QT_acvbT$W z3)MhKOX(-Ictb}|a4$6zF?b1Lo5CAfPP}y9MJuY$Cwe6)DV5Us`{w{i3Ml42{?JU2^QZGx2K3UWG2(WDlQIZfEl}Au8XX^UpYoyM;c6`1v zb$5M3OM&JYgU=jsn_Jvx^gPE|okNgbxQX0@`K!w1HsY3|i7!E9{PJ!h(SPQ&-Y#Bc zHP0SwnJE>2+S7plxj!BSj@nRvdL9hA&iV98ZMCkN9}_*|sH1N!M;8(V8Iz%)cAzhc zT|KvjQtvvLb#t$U!!A=9D%tON5vIKH3T~=K6x^`E#t8;G_=pB48WqGNi=I+JE^ALl z{k>>=tTSQ9Jikk~+}B{yaipVhmNR;VP8aporjuZL4o;@$ys*o2i+47Z1`X-{?!4{@ z7*fj69IZ^fb*Bn>980ATfb^#2y=TkOf%QozYFx)HC@Sd@rc4L0aEG<3jm1^#n+Pyy K0Z^g>xD8|j$qI5; zkp6-f;03sL?b4+xS1wcte`yrR&-m{q@dwkKqoW6eMkb~7Ea{#b#u)S0NNQ3_|A4z2 zxr?@K|1{3IL(aJaRyRObIp@wfcW40mzR#tU39$J^bW=*1^nITJnz!m~HroLsApHWG zfKfI000V>&wvxuc{s+;$q;Uvg`@YzGUKL|pOPT`Z2hbvE8e?34ZhV0&zBIIR@SoavrQ5YbE@B|zkK9QF?do(9ufVOStz~FHm$+FIz%vsnu zSFE*D;L8OW$l6*vbX-<7kZNsRHT=k_YN;wzv74)yD5?W$Z21B4J3k{%>Igb)`0v&SnF WeT_-lcg)2A0000igP)7;rC>>u&}b)($d;a6s$Jb*a;RPGq6Hx z|AF`Z0KwLP3o~J>Ya=4cT3zsBXKiT}CXJQF7Q2j16w!E-9lvruc;;|8lBOx4Da*1m znM{u3P+&M5E;;8$z+MoN=lMz;#}~jBKx@QWy9!(bYj1CzHh?i^9k~Apv_gzAJ0kKI zNIrK9A*0bK6Ol_`c~(CcvDO}W@6Y(p{=O~BvW%T`r$9FEqnSui6wA)JKfumBU?x%& zMbb3Q6|lYt@C7l(tTjz@4XiE-z=y>eW41)(Ut8cEvDWU1$Stta766d(czh@#$F#iO zFO&Q<9j)~Vun$x}nnWpe?!8Ze=U@atYklXv-vpk5kty^TMbQTE5R3rydOa6K(Kc`s zj7*`IBuRFGJQxA!cDuDw>Hzo^jJ!oD^;<*^fI1if==b}%_kI_62}S_4);He!ZNLR1 zQ|JNM03L%80HxGZUDunyT`&TWW!ZC8RVi>Di~tMoc5!lIL8@MUQTpt6Hc|`>jD?;q zjv*eMORuiaXEGFF|L{KAUtyWS9G68Km1o{!ZJNPYy3p6)hUy>YH~KeBPU>ZHCUNGq zvA8lFTsYCfZ=pbk^}RFG7#f>*+g)B_Z})zyZ!p*44~qjdN^H+tDMEJ|_(7&ML- z?zs>(JqO4Vx)_rkyU~$B!QVwV*@xMqe8cod2hQAGGj&c&^2Rd$1xu$$rMhlA^JmqR zS*dGN&Ym${dgaxAW!+68PFHI0^Y>d{mU$Dw@v(+)$x4-vjQ5)NcxzUB3QwBQ(P6bV zOnb-Fr&61epDmkGRKvZat>sKixR>sGMmFZW@BsoT1)m^qki38- zZMG2ZEK>y2SctGsG%qnsnw2Cdad)FR<;;Bd!2I0Nd_JcSX7&iMTrOYxvu8rbZUDYnL6io zWmygZlye@$7~g?jzf2E4ilTT>jPWJs{P<5&03^MB0{otK1#nL=^8f$<07*qoM6N<$ Eg2fiT9{>OV literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/popup_bg.png b/data/themes/default/images/parts/popup_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ce492f7fc781c8aa471af81e2ef05f10f54048 GIT binary patch literal 2109 zcmcgtiC5Cu7l$BsCbPv!G7XpJhi0ynWr~Id5{wapnrN63rG%DFR+dDxLO+*;%%w54(b5u)NX_|ne*eSoopawk@7{YppU=DRoOhGFh=*ZX23jBx z2!_LANPr&(EKfrX*uy=A`vC`yaKn)`fOSP9I1xB&hGTsrfcl}I26p=`>mm@`7U}L2 zc`WQyWK`gJIw&eC%IXX&G$JT4oNg6%o{=@@WB>xGKgVHQ$rrOfjWluK1jF_(QsL0o zm)VG%g%29s+gNT|B(CL{F`h$llS1fPT7_}f5wJh+VsEo!*Ck<{2wJ@S!kY;ln+weK z?wONbIY|96?dPJta14`kzN9IcLCasoxRn^(eW7$ymzDGP-tOMHyOv$#!P%vh1NJR> zJ(+1B(@qMf%Cc&Zc;?$Zy-Hsgx|0~%5b%3n@Q0KNrt2$Sz5}vC6K>t*`42I=4Q-1H@rG@wXteR!M zX-;l#%<9)q!|bU`xx(2lh|zUZ+``Dn2;9%lZ;V%{zbD{Ibxn=Z)BPsgQ?hE^=UqM3 zleL$Pz=e(0tAc8VSN)sD!k#G=p6TWpPS*%t{#a&h)8r#c+1kQnSKf)HnAKZ;HLO)~ zp9`6cGTAa{DP;9@W$a;};O#hgd6A+2BwmtqV$5(Fnc;YiKr)0?Q}N5Ijk(TOzh^`% z=dM0(Xjna{Y?N{|E&LEAfsY8LXV~nuoaJTgOPNBpIvm9|VahP?3=ZS_%y5P{KOV2O zwe{NU^blHX@oi8tg}+DrAWRN7#DC`$u9a?&(?c;4c^PDq-^)a)BvnV@q*QSwiUAK- zy26O$ud%H}V>l@}->`%lxD&v2W)ikI-j<9z6fMH@GKdyoH&!(33X+?1)KW!($5g^^ z>90$Y1K)d*SSgQ>eNRi^4sOu8>F4Evl=AFS+KRLw_TlUN2BD=d;KFJrdyM!;0m?>+W<2qM#D&koAY~6a`fZ z7d^ij&js}|-Z^HO9{K}9vDKQXm3b2pnNq z$K`@5@O0H@+*weWjo5N8!z8>})4U5v5SH1% zg~Dn<-SSv%G@yWHVynARX$(gATz1fFp4s}m&4XG3%hrxS(Ru)EhsxJ?9}q(z#YTYW zZG4!I9gD6$kRnmTSkIS7eoTdiR1cWk2MN=nZ-X{=*L}MSWZdYG5OF!%7*Rf;hM*0( z=>GQwC*@uxxGbnw4bzqlOQdB=#A?Cg*|J0(YW+(i#jHN|SI>1zK#9Xdivb$yq_Z*c zG#}6O;X^5HA*Q-5B<~Qrzo0Yi*|1`+P5dwdWMjjCSjp;_%WVM<(l$jy0nz`%{>Og} zL^%xHY}^ShI`wudxOnKibfBmbyc85>>Sc!nf@D-aV8-j_T-RaRE}@JOI~3Y&inR(x zdTrg-@Ez2X5KQI3$WxF|EI5g-9q4l@fXuvHVxm*0CKDXtUUqYdIzpfqwIDKT{O{dA z1Sihf!uRb3UKU)&MPq&<|74*`)do^hJJ3|Tzf_I3o(we9#~2)fDx*E<-%r_}wT;ja zP%$^JSwDYjvIR?jRkVKYhzx1iy1^6K^IVO|J99~3P+J-z6F0o=XRahT060|$rtF9_ z*;(6JKdG>gBsX7p*NXau_@LCR{C7ObudlgbNH?(c)IwlrX-C_g14J`3vB3J!Cinjc znG{k$W|adO`iYmEzfF1hw-@m}n<>@Rg<-`Vhw&}f@9%cA=W@fb0=&VqG+VI`UvsYZ z$8Ox!A&w|;lS-s=d-4EbL|D)78KH+3BD^U)SOV9XN#T|I*Ino|-1}DD9LaOiaWQ_u zfsF2oVI=02JtadQ?K~4XDdAT~kA>J;Fp$GE>t9zMjj-6cbomA&mzb5=n5HrE#wT}X z^XjHtbY-T_%)vp`(XzprsJam&pU}a1Yyjzrq?VBB{V3(cD38KnhC?JiNtb@^CKYHg7 zr`yE>i&@o7b3*6w<@t$;iLtR~5z`qw;udIcuy0X7#dL=1>i8S)ihz+u_Sz3lpZ#j^ zzU?TF`$zxoZBT9SZw~{%wh|8DcrxH`wcri6;`?Mt3*BsaQ9G9Nn7~jjngT1sM z)831%Ly}6Nph_jeZMv3KC)aBhZRBcD5OKJ;c#os_|Ns81 zj@d$5S-CccTW3dQvp<=0FzWQxKrhC<PwZ~Xk~)y{f? UlYF-@0u5yFboFyt=akR{0O{2=#sB~S literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/rgb_preview.png b/data/themes/default/images/parts/rgb_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..40445a0c0329945c1e6b3005f70d68781f0c67f0 GIT binary patch literal 650 zcmV;50(Jd~P)WFU8GbZ8({Xk{QrNlj4iWF>9@00HhvL_t(|+U=X$Zi6ro z1?@G@{my<;^Qlb%_XSs{E1Se=i2}?>DCQE7EJkM+k`Mp@0FFTHJpK|w$V?kRc;E8m z7v>ireDr?7I*%vK03N`Y0)TGv)}oPU08dCXL<0z6Ml=9QM*u|IBr*Xg9T5!x(E!dW z+Qb|K^m~A4052%o$Q%Rodw^&FFDTj3^5-l?KaA5o|L9Sbh78lWw z3eHBX1Ws&7_>gF^VKTD8nYlI`$-Sb*#`@DrB z|Kx^OX1-IhETvNkUK7oWV=^v1n#n#dTqNn>K*^OWpR;(7m&HW5s%&eeqlsWD z+Tgb7amWTolq`!xCY9YR`^&!h-qO)aQkEo;*$@r(CR$6fG9KlgpL!pL#7de4 zk<6BpmT_{&dfDjFV9!08m#lnFi)e#LHZA+2OSPZ!akwMRRG{l3Sd#7OMyio$u%|?8 zrJ2e!R@$e$mTJAF<0xfglB7!R;fYZ`!j8+vS(2`lhl6Y%Z)e>q7zaI+5iXYAUeOS4ux!x+u#cF+-RV3uaHtZ$IG{Lgmzq9MT%Cib{y`8x< k1b}A~bIxx}1HiU?12zekS{j{{*Z=?k07*qoM6N<$fu|6E$=C61Gk_FZlDE4H!+#K5uy^@npa^Gy zM`SSrgYbGF{>OO0?a?)$AbW|YuPgfaiD#RJY5_^DsH{KaWStcK!D{!EX(8n^|{KgzOf2BNj+6E z>$QD;^hktM`T*nuSarEiFOryHlF)6(uf$tKA_T_()nm1ijEV}wN_qrf+!~R1Zj0r~=4syi~O zH;R9M_sjLz3xS=ls-6q(_U(5Lm3^}J_TA%(N^L;lfOSCkP2QSq>UN}dk6$Q|QZ=3% zb9=wl_sx&qNq%+&hRbuQ!rTuV-X~{Y|9Qw>TIrESnVdw;gBJp}IVI=LeDA&SC_Dc9 ztBpVA%wG9Yy&>5p=IBD_FB=}(_Rrk;%C?@_FVdQ&MBb@06}@; ANB{r; literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/scenario_separator.png b/data/themes/default/images/parts/scenario_separator.png new file mode 100644 index 0000000000000000000000000000000000000000..69f91395d98135128a7586a6d465fc7572ff7f68 GIT binary patch literal 1556 zcmZvcc~Fx_7>8rMIOQ;CiCCn9O~^s3IA97YABXuq2!?=#gd-9`IV2DW#I_)|CL`bw zjOK8{VS`Bog$Qzm=z#SY1gZoC5mXpcR1!)kSX4l;!H!dO+?m~X_qXpnyMI0Tq~JZ4 zW(YGF3}y)u{K&@Y41+DZZnDa_>nQI~8Ow?c01PuRj%<^-Jmc9kjX=pT_V+K&WdO4H zh%vNh`A4uqQxCG(vFY(JHk*x0WF%)Ch)s*frKTS$Hh3Xmu$6q!&nN6i$$06bbS(kC zqSNBlABK0iW4wvM)lM1C)&r+!Uyuz-ry{GbqQ|QUh$*n zEGL^gy{Dm!#{y#`s0#r5$iyEKBm1 zQBd`r?SHo);yeQIa`FB>Guuw|0r{Tx_)F8JP;GsB ztNl0NIq_VVez)FPhkZN8M)UK}$WlQ^#L2-r8LgV@tc&hRYaVu&g9#9bNKUB}Xan9V zlA&CLiXbt!MC`&R28~A1USxTswqUW`Rnb<Cr1#@ zO>%TpZHz6guDJKzHEMpKT>;7t%Z$`szS5RrQ{bYEfFeCKS{KG8O_S2aQ1yiiqYD@1 zF82of10N3^kHRo1p@V36Xa`lxvsj)g5vwo`8^v^pBIB9GUsmr3FjVVao5- zDg?4Zl+dDuv zjc(vXHJ6Uhl{Y$4F!SfsQL+RS>kO|q7+L0dbaap}F(v9OB(KkJ0q$G${PtrPV+(w) zYxvpm2CfzpS0Z{NZ6pP~m>yc2WOjSOq3iXbUby7m%~jR1&3$Ws>h>y)9nWvz(DA87 zWf8u}vbMIZS>hg`Hs%(&6-t!G;|ZX&cuF``ej1pBC}cc&hxF{dy)%$hK*G@4b%c11 zw&x^e2FhVF=re-?o`8nL4L74`sF8ILVz(nd6si2PHL`_#2L*R~skN>Rz&TYZDo1Sb z*T#cJtPA?wmBdH>YosGn!W$t{Pw&5LB#QK~gwPr2X`b-`N}OyS=uDD?wU8g8;r)`0 zgLlP$*-(GDzu5nkG`i1SSPj%>-yZn=@L@Yw39p_wDm(rRJxwIH_5;QIZ5ISX|9aZ(l|^;%KN-B%wEYihx`Ij=AaxMO=k9`sfL@XEHEwDbY0< z@b3sWd(ENGT)g76M+EqHhMNUS6*@wO^iAogs-?v>q~eJ2t8m7JDZ5r)R4G_7)3}ZK zV0)=g;e9?s4EG@JL2&8YvD6lF-p`Z_`^ute-)&1Rl2_+iCRAvmfu&;bgX`(N6L=|Z zH26*-|04~2UPMo#xtTtjmvTSnj2nO-8^9&_vBP7p23MFbZ8uu$6T!R}qDMe^vJ|&d xtz4`B;(z;em!2|5#5!qZll{A`^l_21j@<*3^00#`Ax4A4K>uJrC9wb3e*ugjxbgr1 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/selector_off.png b/data/themes/default/images/parts/selector_off.png new file mode 100644 index 0000000000000000000000000000000000000000..91f161e5a94565faf0adb5958fbae275c1c42ece GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg4nJ z@a+U)#vN?p`+9gP2NC6e~db&7< zaLn}WGvs126mb22rsGD2vUi_?*gS>OqSuD z7hqz$SG{iQs{$@Xh37UiZ{9q!O=*+G^L2*D_?aEv|2=euUGOI3jHqmNh6k1NzMt81 zkSo-diDCH^F{NMY+?A@B4xG3b^7U$UefNpOmgWEDrKSXF9LqRdzkaK6(UVPUrT`tr N;OXk;vd$@?2>=}>$j+1|*LJg4nJ z@a+U)#vN?p`+9gP2NC6cc_H=O! z;h4#K(AJANP=fVB_5SZ^R}^>zWn4;_xei`qJ;N2#ytkHRc4R}Xm$h_w!g6m3kt1H5 zGa5W+%{cRW=e)zqG7a|b(_gJLKS|sxECzSz{iIhDm9ZX_+dO7)y%adcR- zy1k5uI_Jx22P9(|msDuvKdzI#r}O+R_Cbw$=lt9;Xep2*t>i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvfp82;bM}@S#r(s6FbR#gApoA`ZhZ%k-;1e^E5jlqho#W@vi=@mg9imm4(dU^dHJ3owL zv=&X+Ainolf`J4NTk}DhQTEr*t!G(&EaAia2bbKdvfjAnSF|nPC<1betaoBXki~Jk eWd7`!ZDN&7QcBiNzxsh*W$<+Mb6Mw<&;$T%i+a2O literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/shadow_photo.png b/data/themes/default/images/parts/shadow_photo.png new file mode 100644 index 0000000000000000000000000000000000000000..5dc92ccfe4091eabd53c88a0f4ae818e0fcf99c5 GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0vp^`+>NNgAGXjj-4$5q!^2X+?^QKos)S95(ej@)Wnk16ovB4k_-iRPv3y>Mm}){2IfRh7srr_TW@a!=3h>eXnT0PH#6Yn z7EV8bj^@Ar|Fhb9UY{CtQKh&1liROptYYat+m4iaPMdqgi@$3Bx92Jh4EC+>>h0v0 z8U0x?WB0Q==L8Hszi3xJo__Sc>dqB^7gfIXJ0NrT{?&gwD{H^_U6?OXH~)$2=C5ZR z4$L`pU+t#J?QN0`lON|Fj#u01RTTSsDPzL2hxV$KKA!@9n=l*n?EDmeW$Hhzldo0s zv+84+H)Kq6Fi8FL`-A+XJ8F?v(|4==nf&yZSM-_8H@hm2a~;KSx}w zU!`{4RA6=$+lyO_FZK)9l|MQ4U+?65&wFY=RZlKm%5NO`Y0cyszoOvx_9{EQi|(6P zW!=1Nn*Hy!RKs@9d+I;e-V?Vk?)bkl$)C0Uvd!$WWciAI+b{c8Y5!aA`-l6Zar2M; z*FM&+4bl7jT|RY};m2}z<_#-8>udj-{wQ7Tqy6=dn||56eE#F#5&I4D4c%!1->N?v zm;T9&%31&A?!neSYku&{xAf;4Ox;}dMcUS0_oH&1fPIJj5&lQ)ADe$T{!t)?+fS@Q zR8xt!09hYV4*THzMftq^zKsV%&gE^A|Hxi;_S>B|lb3w9PdM~r{_NcH6ppryANk!u zajz1oUb*VL_@nekKgzE@-u3H_49}s+@P7+C|7B0o_k1_`&ei9qtMUXuk+AMp&6?}C zo2?JN__6(~E5B#n~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/shutter_arrows_deco.png b/data/themes/default/images/parts/shutter_arrows_deco.png new file mode 100644 index 0000000000000000000000000000000000000000..3039977805e627278ec7897bc9beabc01f53bab7 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^+(2x>!3HF?otRXC6k~CayA#8@b22Z19JVBHcNd2L zAh=-f^2tCE&H|6fVxTr*5N2eUHAey{$X?><>&kwehnInsr(p|sD^N(b#5JPCIX^cy zHLrxhxhOTUBsE2$JhLQ2AtWPJ!QIn0;C+f}9?&{nPZ!4!kK=Ez9`rtJAj0Y6aF{Fa z!m?SX+DkKcPOrcc#tUyzl+ijyvza|E@B4v$vi{QOAixL+L{4+>24`J6^m} zdNU{5__I+E4DFTd@{vo<{##qS#D1&_pvbiQ5HY7$wpCdZBoy5!@l~nn{V<6d^{?Ve9v`BO4{ro zDK0mL1*=w7g^I8;AIP(tZ~Q1#IN9e?RQ;9GziiKK`;RA!CEqEFO?P4GF+3Sny=v8~ zuhkEJ`nDfVTsY;H!RBjG_18-GI=e{9KHjT8r#M^i=U1!vYd2=x>F{_7iW>$`S3j3^ HP6WFU8GbZ8({Xk{QrNlj4iWF>9@00K}+L_t(Y$L*I*YZFlv zhMzMNJ4tK`x)GtPxJjCosL-TRAM@4d(U(4`_8>*;6%NW?uY4>s^u6ut`Gst0o8N_ zYNjjO>kF~w0g&mHs?|0$-T`od8qfeye^#ubN)RCe7=ROSrLqqb*nhEYxZ@xuP!G7W z*-h)GItz{h;k}xCq(ipPJPN2f?!X`b))!(;b=*xrJ2mM8A)rt%WD?Cm2eXh#G!^RI zju<^Yir7Q@O8ROUUM5Sw`V>qqZ-x8-^8{l5ZakK7?L~UIGyM;$ns`w$mt-!05eJexa%Kc=v{OI-U z#7k9o9+4~dY2$NpdF$*@t?AiXLt3b~sxUUTGrWwn#r&$GONIG~2g#MnHC1`0=v&(w ziLTyEd^>VRQn|_{M80p##x@T#!PRUf?Fc#Gy={%$D9&8?`9I@Q`Dzr^GaGa9qGxNS za@FgukUuQM05YQY6yAA-=xGCvq91klPB63^D9*&|Uc>GQq_mi@0bef4UTa*nhSsF^ z)#?UmA%s%-Qh3k|seCDn5CU2UK~#43T1z83nJo_tW-?n2qeisT#_k-*h-sSJj@ym^ zmLU>LCL&3M^86*gVI_H;dn&$RjFTM1WH)iux@Vp=q!19Tq|NLw!TC-Y>FKf3i eIwya0|I#0X6z8a|$%)ti00000 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_blue.png b/data/themes/default/images/parts/slider_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..063b2782d94931cf27aec34f910bb4fd7a5e1a98 GIT binary patch literal 819 zcmV-31I+x1P)WFU8GbZ8({Xk{QrNlj4iWF>9@00NguL_t(Y$L*KPYZFlv z#=kQ&Wb$Zg8Y(_oDx{k{KoJ$1RAO8daUm|5{AanrM#;of_GbH8u6-vth;v1t24bf_Tf zU$~oB;D!pZDIIOlsS{Q4I4w<&_?2BC(V>E@r8xi^?htG+xA~UxD(?j(^++a-kF6l1(JLkm_P_ut$?BZ zPV7s}253#YnS2&Z^v81poS|3f;FPV0FHb!V{b<>aNQQod=IKuOR&MOWli(x=jVmbA zIW;THhwm?XTPjV%)(W%%CW9GhcUM~H5ls-k@d+MJJ`dgv-^*X%483I!r`1z7-^9aE zY2O}+4CK$Ci^?-E{KdU2a6X=o=^4DnA!O8E+ojZS@7ll2i`*#qu*@AZlYx|JY5L=Z zi$)f2_6lLWM^^YYx8svph=v%jpIY@8*X>8wrPOesX4dScK(b>Y6@VoNWur7TmRlB5 zcl6o9~cBLRd#tq z>=KvsvgSqwvXCZ!WFU8GbZ8({Xk{QrNlj4iWF>9@00TBjL_t(Y$L&{3Zd6wk ztUBkue%;UQAO1uTDWKpTpkx|vAOj}ZPUP*dfh;0o2js&5S_(Fa?Eb%ZPG!*TAP5*s z7>R+;@TzoANw==5iU0sS@%#6`tG2c-24%AyWHi0v?wLyhK(9yQ6K1)T0KlxLE+WjQ z%kH9@ou6;coe5>AN~%aRNDIi$GWl}4h!@Mh$J3_i2LQZ!)xD*c zgM;#3G9SWCrx)Ja9X9>Cz)ZV@wn-Y4Rcpn|>itM60Ye+mjL}V&oKBxTn@xdV)*3l^ zYr$v)06)J&=H!3k9*r(B$9D8RFo@rua%S{Y9jZ{bZ@gR=ni%!rHTN6Z+5C{1)~q)s*S!E*G5=(59FT68q%C( zTSXhCje6m(u>oTN+XD7MS7+TWV6(uRsOUYcz4L1Ke=pAAo#lY^J3{WS)8IIPaYVf+ zowYMpIZJY6sb&?P^_9VP;5Qhac^RHnQzDbE(>Q{3)>%6%=e{{R#N^cIb(q1VDW!Ft zup6rrq@{qC(j4G8%~o|nd3x@fvoEJ$eJPdmUx~a4mvPqSod5s;07*qoM6N<$f_Z+f AfdBvi literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_border.png b/data/themes/default/images/parts/slider_border.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e3d4b336bbd8245a1754480b900f431aeb9c7f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM}QL70(Y)*K0-AbW|YuPgg?c1b}MrPNK@=0G9Y64!_l=ltB<)VvY~=c3falGGH1 z^30M9g^-L?1$R&1fcGh?c|e77o-U3d9M_Y#+$#EO&urJ=-*|P}>;E$)I2hcV!WbCp XPjQR7KlttjRLS7!>gTe~DWM4f_$)C^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_border_blue.png b/data/themes/default/images/parts/slider_border_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..ad450801db2f7f01006335161669fc91f04d8078 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM}|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfb#`fCc9sRRkNN?HWJ_ElN}Tg^b5rw57@Uhz6H8K4 z6v{J8G895GQWe}ieFNU7sOEtbdb&7QL70(Y)*K0-AbW|YuPgg?c4=X0>C;c9J_8ELmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>ya)ba4#fxSqUa*SlZy8RZWwKk#bT>v}adriO_VL>azV WaYnNB3tj{&WbkzLb6Mw<&;$UIRWqOf literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_border_red.png b/data/themes/default/images/parts/slider_border_red.png new file mode 100644 index 0000000000000000000000000000000000000000..354768d81ba64ef1aeb5364117a3f24009c336d9 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM}|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfb#@tHb{Rc|)P+DH*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(B!Vo-U3d9M_ZgSE1a4AS3gQu&X%Q~loCIE7sG&KMK literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_border_vertical.png b/data/themes/default/images/parts/slider_border_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..34d34963c454acb04a9b4d3f35a020a4a8574d97 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^EI`b`!3HGn8ON~#DYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVor8l{+VGh4-d8{&*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#@}4e^Asp9}x7;fFYtL-tAhrR-5N4KI(8i#=Yb(R= WY230hGS-nmr3{{~elF{r5}E)(A2Qhh literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_green.png b/data/themes/default/images/parts/slider_green.png new file mode 100644 index 0000000000000000000000000000000000000000..8fed38dfc8d139d6fcd445eb7bb72e28d899231c GIT binary patch literal 839 zcmV-N1GxN&P)WFU8GbZ8({Xk{QrNlj4iWF>9@00OH?L_t(Y$L*KTOB+EH z$KUL3vPsOw(i9~$r+6`!Qm~fnCPt;y9;EaiDAH?%LKQsJgNN2o+CW*iCT&Py$^dOl{^QLzv zjP5;wuobo$2GR7IgoYHh(p6Z9PiS=@$!wZ8E-gd}qp@hYETC5vFoh~0K}T*(kRWs9 z0lpv*MrY9CP3|DMbqvEDFEl*cVZvxE(oU5-y0&|o)=4F^Y2NU!MTooTGd$a20N4Ql zU`|%>ML!~gmJ)3m1OUK7d_uF7=q@6Iz!&|;^CuvLRXNl;R5>xJH9Iin#H5B=he}wL zs{;W5An2zp%aSv;7(0jE`a0`L&d++C0J8;BVVB<-0r_+PeA<7mAXp90fV*@<4{Uz4 z3u6l;FHU`evUtxan1&?gUqr>F@s|Jqarx(YWRvu&;g=yF$EEt`{_wA9mH1;MN zo0_xAy?22x_UggK@5%YMms|QYwFj{}AY&mS@VwSKkC?y}QSF||_r88C=AQMVAb&s_ zTr+S zgH|B-9`xXbsa?PGB{qI|K6S+X;~~=Ex?PBxHlPt59ER_6oWZU3jjMKp-4@8^;3NeA z>P*(v6bFTGSw%c!>jVT1K?hgKE9FzZW;00nln-1bFB*bg?-3d*6M_WV)+4dpbkksB zxoID?tw#t!0yI>vixG}?6%2P#Ag+C$xs>UaR!1se1gePOO!Ev#z@>P=mGKgS1dVpe z(XPTDzY~efbJp~fLd5-30QQgvXBzlZ`Az`Lb`9wjg{^k%E%rSzFMf1?({KMC8XAf* RytM!T002ovPDHLkV1j%+XjcFL literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_green_on.png b/data/themes/default/images/parts/slider_green_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e234290dc0ca9dfd76bd5789c2bd1f0864523d GIT binary patch literal 1033 zcmV+k1or!hP)WFU8GbZ8({Xk{QrNlj4iWF>9@00V7FL_t(Y$L*I(ZxmM) zgsbkkJ>B!L$HPk@mOu)ikZe(+?BEY%!6ttP@pt$Gth0{TgCIm%fE6Bgusx4<-*YO9 zA;b{dv4n%XpjIt)N%g7kX`Q+R0NjIJ{_bYAy5s%aMLz~rFI#7^7X)hbDB>fuCkkkh zdP&7APqS{XRB67wV)NgB`MJYSaN-{9##cA$)Qnb@a1P+v1dJe6a%1{Ph`$x0XfBXl z0K0%*Gw>=FyW0<*K4^LQx0}s{Db|vub%b40*mbf@K;;u5*e3yiSfsqgR5V%Ifn8Ni;Zg|yf=BjP$=+z^#ObCF`6OZnZ z<#=9b(+u~2hHg&)&|{BB59hyqZnT`bp%>rEs0iR&u}p+Ks@k^BT~1ahDkfxkn#%kS zqdgCwKYO#gH5)Vo2Y{F5rS^xN&*u+>Im|cPnb~AC8CV`66cdJBrbSk$>TjA+>c?P!^o~?0EzRaTJK_oHl8|x*xeK3VcIYyI=l{5J@>{Bi9Qq}m6W z05V0vC`c4QiRMn5EgHkEeV_;Jm18Wucb;2FvqfW7qM6Z_7$S{AP`L$A2}%iodkw0e zt2CU9G`NbZ7~Fna1AaV44Y++o4Oq-4Km|M2jmi!^Z z)`&Pm#5bZ{f>-THm1npTQq+VG0TQxJC4cD9>(VXed3(j?7p8axE59m1D)rY4KLe^q z^WKT=xVQB~VOx@I(%MHLp3?DZd&TCb=Yn-wuAF}Xz#|V4f@@>g00000NkvXXu0mjf D^JB!@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_on.png b/data/themes/default/images/parts/slider_on.png new file mode 100644 index 0000000000000000000000000000000000000000..30ea8f4b86845ddb4920cac772e0d6580dae1b65 GIT binary patch literal 1294 zcmV+p1@ZccP)WFU8GbZ8({Xk{QrNlj4iWF>9@00eSLL_t(Y$IX{bXx>#8 z#((GB`_KP<-(+GNQw6^|c7il@BUZtpU|jeC+8HcE$HgpMxKVJJ)zDq&ZkW}8Ah>l? z4B|qo#kz2%6{IfIejv4_6qT8`t!a|?EC2t!kBbo7l%^&m6wms(oadhN+;g8}0L;vU z?b{wLMmzJ(SXa$lwuYiY$kn0&47nK_h{Y@ccrm2fQu0A}v5rM=Zuk$q^X)Gy_U})| z%uLwb*ipJSMkOCd-0qnXT!nHnw~diljx5PMh-_7M7BDWE<%>D@=Z^Q!4s83U=Nfl( zI$NA@w`CrN{5Rl!L<2)?W(dRR1Lwfsk@Hn1{qXG#^f? ze|DLJy#j2{&Pbs_87pEavI@)_LT#CUA8PwC_tOto1`FMm8VR7?t5@h{TQlB}%xbu< z&4;b!NGlYP9QD1SwqfJsTvWsmO8_%N88e$zR<90q=gLC2d*)293r8{l2M?}D@DsrF z^hz?Ti z>g96Kj&^MSy}ecYv`lUqT6!@>3kg|5fEmiksN9@#Sxw8AS-UnDJN$DjVwm9>@7o&ilD{;}cKJbw7}Q`z`%-6S?&BYIWv z%|=NqwPpYmOXGIQ1_fB7ADZpvzc-q_c>L+f?)uV(<@PM48bGu{!h?{OX1^4YQs`Pg zz?3t+`iFMn#7qs;Oi%l27_RyBy4DYcJOn~8GmtP3qR5H^ppfL|Kpw-b8S7$rYdO-I zm{|I#0NQWu{cRiY_KP>M0sXMG9BFw9!-{Hx#xN%MT_?`B zzpTa^JLd2PavvbOa7z{}=aP{w=G>n<-#%H{?`7ru1s3Xc6Q=xJIsgCw07*qoM6N<$ Eg7qY8nE(I) literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_red.png b/data/themes/default/images/parts/slider_red.png new file mode 100644 index 0000000000000000000000000000000000000000..f24b3d713a86f5abe8af43617a8158ecfa92fd2c GIT binary patch literal 840 zcmV-O1GoH%P)WFU8GbZ8({Xk{QrNlj4iWF>9@00OK@L_t(Y$L-foOw&*p z0PwH1la_UVP+*13ZZiBgg9mJolbacaL?ufU!$rA+?m(iDc;G-HBs-bR;R&J)>nSsGpXg4d*6ALmuNISUj-P$zY`@O#J>+1tJh(80{elghE zOPZ4*i%E#;DI^fZ7*N0{DNG$(U97B~?;PzD3m}87y`+6{@;nJyB8!omVak|FAJzx} z7*d9SK%2{ynuMjY5+vdxlt}N*jxSr7{H)nz$U;Jvh!G4wW2_Hs*D4uqmjh3Og_5aKFBMvZt?0R#XbQ=-f6RhR4>3zw7Z`OSyq@b!L5379O%>EQGzH#_lm z_{u$cUmG8F0ovg$Q9B1>{+pW7}eAnk*+n4q|{v*;6q0QgqB4iiq$8z=-K^TcHpL;`Y&B=n?pY-GaAgB0VqZe1G zz3RH1W91=f(B>E^q4qj^ivDHvI(ukFN~qJI%@shx8e<9vz#3wHtGA`QXc%uxH{B5P zTX6s^tTCnvY9v}wGtcrd{ZX_+HOHswryHI8GNls`!WH^?{srY?x|E4e(KrCMhUv4> zikkVq9w$6E9uSqQNfXN_^jaxJVwkdT10jGkQ6@%cW;Lm=47*WFU8GbZ8({Xk{QrNlj4iWF>9@00T%#L_t(Y$L*I*ZW~7w zgsa}`=8zOciuw!W0G46v21fR}Ko;8MI)<;~3-}O*w^=zqT-XGxA4C-YMl;=&g($&N zXhndTzze-~0q>ic>gg&1z#G7S+TV{C-EON2q1Dd0;UV~C&IAB98pJn@E-wWD4Kt;> zPE)hXSl6@l(P;K=FsOb365jy+{N>A{Y1TDq8^9LKIs#&nNV9K(xPi%8PKrQ-)~NKcQ@SZM*z=~vOKdycL{8zZ> zc3a`8yRSu1e3~(Znq3EgqA|s60irLPbpD4 zPQaM~vkatFfSBYNXt}gWatCBzT-!}KkX z0pK-o+qlCaUIDjY{-FWzYB(eS90G=e1GIa+iM!7LR2cxxsG>li#01bui3EYC_Lu09|^aJ>=3`Xbu6JPp57%y1P37iiDHO zfC9=Aicw~U3`7F07{Xeo-*4mK07r`$@bd#=z|lQ1V7`a}Znh?=B_JAbnR6DZ3ZafM zHGoP|23cfsOLhGuxMQQ&o1{fBicgVWB*No9+b{&ki2o#d$1ga{=6pE@URTN_Y zV*ou!+is>>>YMxRsMu&+->UtL3Pw74s*%rAe z@&}VPGO)Vv447ScvJgN5XOxCY>9nfrSy&&9W|Q6B69)>DAZe;aov;WFU8GbZ8({Xk{QrNlj4iWF>9@00LJ@L_t(Y$L*IvPZLoP z$A9y7rF5ZDF&<2~*hJG(J(zm1JrF!;Yzz7+_%59I2Hv?CDOHge5T$U?cxp>RiN#5bT%+BxqC$p1z@UNRRZ-%E=L$2`$LHYr^)d$6F{B`p_ zJyS{kCiV_0o0es5yts48-90q>VHyWH16T^*5&0Zgfh)K0QL2EA=sC}K<0B8=SiA0f zDm%p^f5VZ-K%XGto_b@pQ>f`2CQ0@E4C3Dg zu5=1D9m1}Q=-6^D@vN8`TEr*QDb%!4AmLpY%Ggq7XfBm6Pp0za$>q`bb4$qzT&XIwk^R9w?Rk&Ns#h<1M{#^!8J=DZb>(Uv_{nP!9kFwgBTAjiw%!jtor~N{$hU0;1?vpwn2sY`8`vfFqVk zq-H8r5osJYX{QUT(E!cY5K8#x+ociOseK42TpW$nZC@&&UjR>_57o1Q6_^8C_y`W* lqVmZyc4gt-HIM(segKqw{4YF;i~axr002ovPDHLkV1ltbM#BIA literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/slider_vertical_on.png b/data/themes/default/images/parts/slider_vertical_on.png new file mode 100644 index 0000000000000000000000000000000000000000..7d06f3d402fbae82571af208612cfb84330b2e23 GIT binary patch literal 1262 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00dG=L_t(Y$JJL&Z&g(k zU2C6n`@Y%&rDY(A71Edjni#5s&KRjliwH5u(1D4Gzrb1Z1}26PBc~=#jE!MJ5P=xb z2$-nMC?tGE2qe<-)%LynUhh3;IiNrbeYCGNB<|5Yxp%L1_u2dGvo-+$QcBn?Wbm#4KpBYwR%T6riPQv;AP<=e&D>|{bfqi(d-9JA`}YT8eB2Ecw-(Hb z-IDcsVPiCOA}TSGih*duXiiZQjG0Bu=EPkxPQ}=m{;P4V$^KKO#h6V!E>E6$v2r0O$qq7OB@1_@&I6-L;vf_jy)=`HevQ7*ZMF6r{tV zT~$;{FaV+T9txM9E*vB|7)ypY2yq{v^&s{^yy-)B&&NW!BWbD=hAjZ|2>uWm&%2zr zbC=gVT>xx_85Dwo^LbLqo$ebACVWC*t3`BXg>r}Yat@Xy5Q+e9z`}J$e>*n9t%tMq zdRfKLPSMoaa2pDpWtVtJ`6a+6A$G%*czNezHb+w=%n8yxL`!qB_OLlyzj7t51IHrT zvRyVX0IVynuQ^!?=pKkJ#lV<}9srD-uL?#Y22X@XksXVuR@);S1IpSPJVStD04*-$ zunr^flB~nXmenws=0dfqwo$89O{RHEza$Je}L+p_5nFy(nL8Mc7yJT#9V2%wqs51WO&wx#LTbF6FzjEgc)<^JE-S zj3Z!tAHW;WkuLCAbq*Jhy-jM*x!pT{K0C7gS44~~NxBxo;qjZL$7B%poEh1Ea`?!^ zq2VJFht7Sl?H4DE5_q$tId^>M$e-mk6Bhb%0emRn!?U}$oftkkaggL^BtIKII&tu~ z-P=wR95vuZBQ532;rZnb@#$){0bumWeIWmhQ}_`8a`=A$;LPaYDFCOQT*=?=ZJ)4J zxA=YZ^@{*5zUV(E(_F7^NdCv2W-Zosr)lSAXus1ebBJ3tix+m9{~}-QeVmjKf7DOifq1(w9H3z3hSX YUpl2-oZT#;AOHXW07*qoM6N<$f|1=o;{X5v literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/small_list_decoration.png b/data/themes/default/images/parts/small_list_decoration.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7f0bd7adadf76558adb71f50f7c8f2462b0afb GIT binary patch literal 1301 zcmcJN{ZrBh0LF2dT1nP)sA#@a#&r#y6E#s|NSf%NmX#u<(Q1;|#IoT2X9^dbaPOBb68B$D}tqd#KL-Sd3zp1bF_=lU`H5%5;%RuBjT z#zr1KZswxd9X3|xyq9OeGGhxRl8_AoZL|Mk3s7~flex5}VsYWt3LA@WzVm+*9Q4Lq z?V^UqQ88H=8Kg`q2y>B?L?xwoLvoc_vsb1?@{w1J%XuE z>;mUml7AENr&P(?+e?G)2ad+AVm;D68|_!x9GAKa+VaY|K968K5NbwPSNv};=uMmH z4}a7c()M_#<*NjZ{r7usy1Zu)Obh8_#@UimmDLkRqn0HWoZFgBeVG>4xWjCafk%a(WxfL8ppWI$|szN^87f?6F{IyQ@)tArxFS;a- zl~@AwM{FMd@iqCok0Mo;BKV%dR&>1w@f?DnI^+iJ5c2r#g0hIwlG5!}s)mcjaq0*F z*k~(^v&{yY7E_>)M{|G>wqQPkWhvP4Uu%=BX Wg4>|;cNfH8euoXmA8ro&x#U0ZkYE`A literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/small_list_decoration_left.png b/data/themes/default/images/parts/small_list_decoration_left.png new file mode 100644 index 0000000000000000000000000000000000000000..572bd282302b4ac56b3c7cd2a72182044259928e GIT binary patch literal 1535 zcmcJN{WsGK9LLAXy6T(sAWdsSj_Vc)(Uq3cNN%NCB^xCy+4eOyd1|#qU*Fu2Zl#3g zbas1A>dr<(wGPuA){`}xr;!Q6JPy_F`Xlc9ocH^E&g-1dPoMY2(7i!`CE5~!KmftJ zb{;VGgvtLburTGF6tgR)`h~IUC=-ELxa_CR5JkndCWvAM?;)TRD67ThzKR9v5EH_% z2w|*%1UfwyWFZ2QVxw5GF}RddtT-GoE*2LQyeD)d#tB3q<|ha5+)hkw)3v_??Fh>) zx;$Uxh4T)qbrW@)r5aHhi;D|Izdj(&;|r{O1}Pq;5qFQH_8IV}1Qk7NukbsKHwDj0 z9^-h9HOAot)*8FpWe$cLndXur2aTIUM@-*C7}osG)yMRSvt|w@PtPs2?pz;y+u;N_ zHF@~Kcl`w(d;6%lnF9OVm;(!~^?1*e5XjL1e;qbdFVir&dAXs;!h_zH;}JW*UAb9a z_&0uNz~-28@wz%u97U9VgBiWFHXrVE)Z{zKKMel?d#+hrET|&~NG5Mpc{#Op80juw z?#eE~aKy5%%KIUc-=9^SwTTx+@X&6cE|& zJsN%)qlC1;gdR5`?)50*-2P1WVx+xJKYF9vmkX-Wz~PoiiQ|Q6%pwc*O6bRxZS%03a(T2lkt;q95}e#a6(EXC;{BnOt+S<{N7FJha7{sv`|_F0?T`{bAXBbfnZb zoEO!#L^#b}(-7h^G7k-&`s`HX09C}UqKqME^za}4UeNW&;$r!@9 z6TMKPWOZVCRAUgOWrh0Dl%{}c-?`B1(z1Sm>ZqX7U&1LH&h44`h(Zdnj3bq1rrG`< z;uvd^`cAuUjbNxwH|f%x-ngjULEa$lq_dQ8uX_r))pdKjKWn- zRv=gg*?GnGu_+xJgxYu+n7K%u&fDTRP1N0`e6#^=X}zGL`9t94+zv($5Fs2Vwqx5? z)zkVjH+hN01#=8auLZbSPC~sj{Q>L`aQ=)pxAdV6sE02oqyW;Q8voW+I%?i3=bxgw z0!UPw2-rXaYF5N_L$6xpBvN@3*KT#y;9si@i+seFp-AeGJ0#f*MEJhKucVYg+5)4u z{6l?PHQs2;_%6TB%qJ~mv6C{VvQP~;td}R*Pa5mkrEH8ZHQ|n@_n$X?iWYd1YYQ^$ z!Im$DHOCWj)yW*~mkMPTzAmN~Rl0hZ=5f7buI;$CO?9~8yZBOT$|oy!PWC$5f{o-S zB^hS;M`ucEDm%ghPCAPYt{D3$V^oAr7a8O zp*AObFoNJ&jw}RNDrwDlPeMsK@2af$R`Pf@YzW(}%&3i8AA59LT@I`$U2N+m<%|F1 px8AurX7A7u^rm4mTY|QI)7k6P748;>eEM_m!Gyg#pX@k({y%fw&)on3 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/small_scroll_list_decoration.png b/data/themes/default/images/parts/small_scroll_list_decoration.png new file mode 100644 index 0000000000000000000000000000000000000000..8b242376d785676104f8ea1855be9984f64bd42d GIT binary patch literal 456 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/standard_list_decoration_top.png b/data/themes/default/images/parts/standard_list_decoration_top.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2b683773f1110d53c7cf3c2a7712d391b6f35d GIT binary patch literal 1177 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/top_skyline_neon.png b/data/themes/default/images/parts/top_skyline_neon.png new file mode 100644 index 0000000000000000000000000000000000000000..eddb3c0fe3e7551d24e1c39f0f84c8467039ce50 GIT binary patch literal 520 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 C4l4iv literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/volume_knob_ledsoff.png b/data/themes/default/images/parts/volume_knob_ledsoff.png new file mode 100644 index 0000000000000000000000000000000000000000..a721abddfa3e3ca4384731e94e36bfa670c59d32 GIT binary patch literal 4066 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 F{{co$#DM?+ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/volume_knob_move.png b/data/themes/default/images/parts/volume_knob_move.png new file mode 100644 index 0000000000000000000000000000000000000000..c13e93ef367775837bc6c90f1479d64e97642d78 GIT binary patch literal 28115 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 E01Dr2YybcN literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/window_border.png b/data/themes/default/images/parts/window_border.png new file mode 100644 index 0000000000000000000000000000000000000000..73ea421203026691d2fb27c23dd2acec399ed0e1 GIT binary patch literal 1022 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iFV> z4;CLw(i12E0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000A3 zNklTe7k+6b!73q`*u?)YS;USb+5e~aJoC)V1f(lKdMLTu%nt2XF!Y_E zWMjJXws_dwzyMT$86fh2NZG-NfiBPiu5I5%9)t?;6j%VB7>rQfWv1B7{|)>C+P$do zAPL@Cb%!5Gc_VZXXS%RaX) z8iF(kk)@*fot>Re@-kc1>-7(2e&l7D8#zC;Es|vqqR8`j!1T0GQmg3U(o~Q}CP?WU z4CMWzqa)cjrqYUY zMMCK!p{MQb?RUU)0~(hsmB+y4-rnAqTp<9@3_^#bKoyq+z#K`@)8!rsc0pIbcc4j9 zs47DSStO}Ahed$k3_=t5X3;S1Wsh0=yHJ!!fc_h!E8EJTZdR#Rt)ppZ9eLsCD9;NY zm*xFt0m1)gfwGjqgDme?>8K#>T}comK@bE<5T>Y~POpP!J}mX0r*v z$;rvTV=F5wN=JGoNP-{;l3GVu==Ah-?CR+L{=OnXkuW9dbUK2Nx6aPa1R-yopP#?~ z-}jA1WA^ayaOwE?_zl43=H^F$)zwu&$VyvVTc2+^We#`^Tmr1GuLJ$^g&xf6CrE-I z2$EVyIjUN%0M~&R zML^r`KVJy*#T}j>er}Nm3*Tf+Pr!|CuoAM61$x5F9tFf&*oTp{a(Y`&Abh z_B<^em8m2>X{CA_rt}1Rvv^6_tLu4uBRnFKl|xX z8+j*Qlhi^k?ATAVrcM?x($>^z+rIN#M~-A()0X|PjaHY+TK?)%E&J^Ju+chelX)no suCt~U2Pb1bDNWP(HgjeAWS{`>7ZU^6F2Eahxc~qF07*qoM6N<$g0FAL_y7O^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/window_border2.png b/data/themes/default/images/parts/window_border2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5f45e9cb991390853959e2e25179ace0283b22 GIT binary patch literal 1026 zcmV+d1pWJoP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipn; z4+jGV;(>7h0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000A7 zNklZ{v;_0J{|m-oCH?{FtLf>SBi4%B$E9;`o8nyoO1%w6(Bv7+)ZXz>|8MNnV@82 zy7OMqsJVdwr~)%U=mC+kgAoCJpa)#qu?sy2Rp2S`40vKND)KHfMP_~%_ycs3sPG}o z0Q100U;&sjFiC21^6}ORy!3Mk`~}YKxNql3i-ZNBW7|bzyC2;2*7iL&?6q8ib?`tj(E`1YVU0Pbw|6CObQxXZiUQf>D4WZd=%DKED zoSmIb8T(yd#zTxkgXGd;GCn|?E-LcaPY}ae+Ir#jtBj!m<2%+ z1VNDUub7vYm#@l=Mnmr90ijy04nnA+AW}LK1W6DCK@tQ(kaBOL{zsahPyh&;pP+Q4 zbmYSff!UIzqFDy3ctu5k5ZFa6+HslYG0&30L#!+yM0PQ+i0Ac|ZAO2m2oQcTSYfy< zYg<{907*qoM6N<$g5E^Ne*gdg literal 0 HcmV?d00001 diff --git a/data/themes/default/images/parts/window_shutter.png b/data/themes/default/images/parts/window_shutter.png new file mode 100644 index 0000000000000000000000000000000000000000..a608229fb12ba8ca0add42e137391f24480be074 GIT binary patch literal 301 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 LN>Wu4#v%U)xkJMm literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bathroom/bathroom_medium.png b/data/themes/default/images/rooms/bathroom/bathroom_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd899bc458767ea2d12c705bae5d4984894b1cb GIT binary patch literal 39224 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 ZoYL-lKdo34cv4@cAY;Yp#Y4Z<2* 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 L)de*w+r0Zf@vSwS literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bathroom/bathroom_small.png b/data/themes/default/images/rooms/bathroom/bathroom_small.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ed9211feecebf84eeda4363a0739ad1223fdd3 GIT binary patch literal 13159 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 N002ovPDHLkV1jMD)UE&k literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bathroom_small.png b/data/themes/default/images/rooms/bathroom_small.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ed9211feecebf84eeda4363a0739ad1223fdd3 GIT binary patch literal 13159 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 N002ovPDHLkV1jMD)UE&k literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bedroom/bedroom_big.png b/data/themes/default/images/rooms/bedroom/bedroom_big.png new file mode 100644 index 0000000000000000000000000000000000000000..13583f4bff9154ea48baee2b01d8773d033d2bc7 GIT binary patch literal 65916 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

    1p4)4}vL3LkTslx>{zJ&FNk>E+M*HF?weoY4kV; zkePp_N|`Z7PAUE$pFVwBUUa|T--(EX5X4$5Uw!q}4-t zB3d?4BNIq-8q@BiC&SktGhaQG?8s2vwF;%B3<&#k_uI7r=-D?!L!xJmTG(S2zxP2r)u6o;8~g;{2NYimpsE+$dv0N4@enDE(!;(DccHvsSVg17JYcss_o{A3MW zby4IU#(0eKoT%aT9*2MT8lhuM#{q91CcN4Q96X^X#fuPIS6w$?bGgF$`U0!#HAo4= zR|C4vwWhm^H5a@h_|Rxzm+nQSql;$Ub1kbg)#!*1b;%VC?lQo_={$J=?L zhljf}1`7`Hmkk8y}irk5|@`(I?H3EETT+E&lRJYd0&Rr^$t_FHr0lyXUiB1 z0eIVEjaG{YKqbIWW0S^~>9dOOP}#S-$NYCpqa<-^rs=}?url=Y`_z+lXF)eZLI9_p z?juo3*(DT|Gbekd^1(?qpC30M^_3DzZe_{w{Ix^{Bba_%~re1H#?CzED%fX87!#7TX< zD+9@*Ue&f~xyGS&ppTH@qY5!;>dZy8N8?@8936YGCHts8)XnFxCYa zdGqE??w7{Z+wJ{5gVV1ONur!LZA^si_LgS=Q;qj=5h)#AgDz4pC7_UI^aT&Td50HNHbhwsVDO{f~5^0&s&TLUcdah8JCcG(ssu3 z!hnlfMWa%iVr2k~zKvR_n(W*hayEeI)tI$^2HeaG;#}c9SAkY-ZlALatz?>XVpmo~ z{g~a{P2x2ry{}8c^Svs@$6ykdKKb+#fBK*Q0zplbyJ_4MP4MVsL_geN{csC6 z1%QF=7WlCx+yGeJDc(H*YX*YEYV;_;XB*(Zd=dAUHvn$70nP$%?+6da^aTuX4`3~f z6$`8(+g=uwU_1|V9-&!|*UJm!LpDu&C;%PybWZ@>NaE`*>V zgpf3h`hz3JckkX|wOWa)hOfT*>bCBe&ODtqosocs*--K<(^eN*mh(|Q1eS~Rnofk` zH8|FRlpuKDjw(Q{;iX1K620c?$%Adxn`oZK%xoj4Dv$7gXC1#&+9y>pMgx^Sn-QJz-CFN%>sm_|V22-S8}#EBBWDWugJ%B+1e$@+~JQ?~PtrEG9;Qjsq2MKt-Av_mFN5IGgnSgFoTp8dPfcH~8eLq$mj#LKFI~&K-(rHh~NpC(;Q`pI!XF5;$%>~QS zCk+7KeDlqFRSnbnchFzrPtGM@y!vx$A za20@WCg9Bwzt^?PHh936fQJX*-5$8uF#g5G7I1y+R)S#70N6kR;erA*1iZTU_~Y#n zE7zqVVATxw#x#a7Oetclij{^bb%e!DPRiVKsysPo1Bu?*+3g?nNc!CNujimABcec; z9OJNFuQ%!O;hS&1dB}azA9B|Ds8pJnbr=Q-A*iZ`aU37|zQ5USx3(;*GUGUMZ&FBd zNt|Px?eL+r`LU+)$1KZe5jmb3-fGH(BJxQ}Ka0_*>O9YdP76CN@Xp4Yn!@;Df55%D zMF>$RdE6f``3ciFMF8{yAAB0`m}VGbLeEMR!Czko;f0u^SY6zJZIAu!YYhJWkjSU>upI<9X2Q!I@OA`zr+9OGz(My| z5#uuwTwOBE(=~YAV{IK=x5dp*dwg*SxIJFNT7EoiQNnQ;A!!0-DIyX>(qL)Bu?r}q z2*mKh2?wz!KDyi2b73C27MoH_WjvfQa#j!w7Z(>#jWHO<@jyi0S{sZp@*ywAkLi3d zM5NYQVP;WP8HQo!oV#((S=V&~h<`FFCx)gxn}03o$<8Qb149C60pwP80C2{ zM6l=z2S!BbRy{5*ub`?}y?YPCCeBe2Erp9XSSi}jvpIE>VUGRIHaW-iU5C|rg>Jn; zx9T9`Q{OFtEkF_hN*be$nu|!ooQk(1&jR~wI-9^UI)n=}xHK;&B)fV*)B|c;d$gsP zJWrkzfWka$xULFjH*b?F_PXd)r__GQOtDyE42+4gqV;NpVe}Ytr&5modG1lphQ&&f zD&sQGJxiNR>+P6ltt?y3mXhS$%U?~Hten6N888Sz13;N;6s%W$^kZ}mKmX|$xVpTA zF^pjtaXb#VSeeS1e&&}4WgO7Q!h>OWHpSQ^K(VqNp0Z%~k6+>SZy)gbs2HJmc@Mna zr*i;QL$QDh2DTP>_M;U(`Pl~Y?GX>VfKOg*ar0@9&vp}rgGYB5aJjYE-dw?T9gOXP z^%i!$#oKoW?8K(^L1+0cRmCv)7N|<*P!&l+3KUWyt?oD?D4a7z16*b=Jz{c=Sur^y?noY7LvL#f&vD*3HxZ zvJDsr?_T~PT5Y6-q6v)n1Qe<2maK|Htc5fuitT??Se-Pii%q#dhj7Mpu&&3EO|sLX zla!KFK$0f+QQOIrndQxTg+KlBKf#Ybd5+!gfZgGU{o#ni;fUifVi-qElSfE)Dr^mm zGceAf>w9$F5N+Kg0v`ia+CIDbXfj=mg7Q$=`PZCb?xCj>iB2{UDdSaX(Vt(1<_d|r zOlGY69{YYMxpbCOS!=P`Zm?djFpeWsN9=ZcJh@x};JK9((JS$&ioK5=Q$}Xl5}N?b zKr_D>y$|*ZtDBzyw<8X}J>vaw#NdJbK~O6Bu>b%d07*naRN+%Ilu9(9wE#wqMmoI% zwwD%mWpLRE#)k>Pu5tb1b8Lb_{e%sBbk2cXpEjNj>Nenh4eZ{7O-RReF<&|z!ypn( zRGOh;d4r7`wXr6uD>MytAVxhFMMTQXcLFsdF&=aGpRey6G3FN8JQOx|M{Cm3sD!9XYtcn6%dfUz*9 zON&iT0q<(cJ)U|ejCYYG7s80%T8dFDXt7N~hPFE`HOc~;9@YocZf-84?glNYZd5n_Z-6^~RR-+f~ zsK7TP;6~u$!Q*Oj=r>zz=mPfUr?A&wz(@eehz=fXQZ`Bx*T4RC-7o!+-|X`0GDM_~Da<%cI1Xd#2L*x;aL%CX zdf0x8)x`}iw%6#o9)8?oJiLd9ucEM}MOibKwdtpAo6r}%mrGDgg%6+G0nd$4pt)Eu ze->>cvWm+qx-}xKS3TC3PjGqjET#)pTcg$hwhYA=ebgs1Vu}_2dboRC!!4$tqNPnw zbhbW=+^XWRKS0D|_izuVKnT7JI#RowjjizGeg;}L%^}xxoGHmRkR&d|xverXkF`pS zn81iq3=2iqbqz0^zmE?AKl$aa@n8J6{~f;i`fL2vU;Pzcy!ZtF`d|O|*gxFk<;$12 zeg7VJ_jmZ?H-E(4?Ry-@5#t!M0iTLrgSLaX=mVNqtxoX_il}ssZM7Y$2oQ9($Mc)( zd80@Xl1eN%ibxbaOKg`5-sAdeTjpq&AV2}~3_1#edISIg1Z5MA8k3o@GX$ds$F+gm z0xv#scz*5R{ea_c!W5#bPM&J?$^+9L=w1$Z`tvn@^rO#lX)n=TeSu)N5LH+ip?Ux? z06Kzn0(>$%o(`CH_fWZ5XfN9fF9d;~e3NPA4KN$D;#1D4WejMMNGR9`1_6&gE4I zK`@R}0m8_H2OtQ@7+gKM!HZ8m$FpajV7u7>A{eI;>U!|lL9;OeofrHzT`rmOVOrP> zElT-~O>ADYvC7A37Dl}jaoMf7!rw(C(Pq^t-A(g`(=e=}(SWu?$*aocc{##4(2SMo zX*ed4x1U?kR3Jg&B{cmwLURgJ&pQzTLWmW0vKCOF?^hru9IF&?9y>XMfu4w~=3^#A zu_W5)Olg+eaIN{&)-0k{9b_Jt2&=xsi|0>qIPPE=`0?kT;=lfH{v4JFyNA1UF$R47 zhp%whKVa~JyN3h5efJLU-n_=kKfc7vZ@$K=i>-LsC`1>g$5geZ)zz?D8xyBScCh?e5Fsfim)o+g|?^5(| z&z|E+*W>1SkLO#$i#PA_^~->VqeOX*&h3B)iRY=aYv}p~tXsqC2t5W&q6q3i96&UI zxp1@dITb4kZG3T3=W97A^|>fE zU8&-#P5WKb-duTI<`fw4(-Hf-*El@9LzqTrn829eTnB&LW18Ze?W^quFK(Wq>pJ*x z!u{tQ-r~yOefSleCqldfSNsD`ZiuX_jkVU}K03c`@Pg>M>WBm!ufBw{Ou+iFaWZ;nD@D zj65>)!qY^IDFR<(0emQgU8saKn;@0KY8_g^;l@OH7l3B+Z#DE|3VSa)Z%FoOK-Q zrpqIzgL^2FBm`t7O5u|X^7%-|_tD()>`y~GYZ^nXHOIQ4sVWefi<<7Wamj~3#KdnQ4B)dYiQ6teCY|(N`h`3lAP81!Z~QvrqqlFP=YV zeYfHH=b!Ue|Hr=}QIhId)6@;RX=rL4mp2Vn6Mh_y6^E*#YHB`sdc}Ww`RB0`5hKb= zR|P)cJ!>HqPPkEmodas$puHiH3D#N~X~|S_awDG(ug9bysWPV16^T?>eGKj*l_0Y; zIF&^LumlM5@ja zblOHglri0XQbQhWmp9c#3fGIpq60|W-rjDVb8e6)?fh(f|XsI1sV3*^)ojU%q|aQlQd=v*}fk^CT+H zY@)13Fq-{5bOH4agSOgK2pJ?X%36}TCQ<2lx#j(X1R#IvG8sOtX;Jf{qo{NTpdYIQ zhYuJpd=CnilAF6bZvSS@?_Rv(=H?FJJiqwmr&#MKk4Nf8Q`ZgUu|k{hAa0Ba%eCl6 zQ6gcrTn%t{WBX{=?g>tS2z_Ki5V^Z3cHl6ci^#qilu4=T_)LK(j6{abX!VQAL1|Wr4nYls4?&H8?YGL2XwTbR*S_V4PVCd`t|G0H_4O!)~$3a*=d@l(OOqh z%E@9rSDkdE4SI5xrmE4p3D&DDML5$xO?|+a`{=V3BEh43u)s+|*w8xkwc>B@aHhex zUduKgWH?v%9%FQHuta~Q^(Ufada_E-USvQU4~vWd3y`Q7H!26(y+1}PJ;cFFsmP}b zWRl+7a1S@z?OWoUi)3ashG__aOp*`}fPf@JD2vK6(zLI7+#v7Q5A%RU{~h{{F4Tvn z%dQuQuH>jK^WJyXy*`mS2B_gWCBUvca(#2ldb3As&F$TqyUmXMzT{9gU8NEH<|ed` z)(*Cvid0URC1+e@kNJ4TcHv1d$~uU4>drVJV>Q-h$M~QrG~S|w>|qgI zfE!;k{*i;nE;wg69@fF)D591$O_}nZ>`=>ePy@rv|18MLnH1qkqh=;g&`}XbL zdvDsa?4R07cd*)~X@-93!(=j)s$sPqU1ByR$#jlL;zPq5Y@?~`9f#cp z(==px22vrD3>n+O_A%;OL;e7{HHa~fn{P3KCiFz*XbZI}R5K#DH^drD zu|caIn?I@W9-5}+_T~*TNoX2F(=-@ksp<-68q!Sm?v57X5n~l(49=3yVQqW(43?6u zzRwAy>O-kGQN8q;KYlbf7Hyox&;`_@2A$*SqjRoSOB&ror;G%n>hEZ8Xc;A zZD{K7bG0^LEobv7S(bKoSUHFQKGpD!Z<0Q9reFMZiH`MTGFbvNO>+c{Qp#0T^#>O( z-}qo`X%tE++vZD8CX*{6gjg<@_1(?&q*bsB6@ucMrbagno@sos1LBLfND<}`Ql?lD zKIpH_j20&{95I-CiFV*`kX8gy@@Z~J1i)HtLNz7Z_)|fLZ}eTW98l{jY~sSqF8D=5 zm{k&7EomC&eMuTF(D-DNQvGpuFp(iB9~@eWZXM!X@5{Ev;)Ueyc1?5KBB(eXk7%uN z#!%H7LylAhQl`Sh1MSI2?|=eEk*L7)p0w?XSUDur*gE0kJq) z8njhU8|vixEhfV)XZwD{iz7N~G7+G`m5u3*g9>OoU>pyEMkh*$ImY@ix9)J;RJLkD*@EhvgK-aqo*Tygl{vR&2= z83|qtL5!gqPtv9+iqw1W>$*M&A-plh4`z(~lbkO@zqAdjB@<%^TiZ>85EIvK8odv5 zpQ@&A>Hu?<3Bu{<HAhUL=SpAl5kB z0C6KL!j?>`n1QPlDoMI57pao|hYUY@Vz=ysucj`sO&t#Rhh}{vg|t5fg`D`h2j6>= zLL$3$ZqO%MgtuKQWvu70I|Ro{RZ>i*REI51X<4r3q{Wh~2=ba4V6|qquen>_aoDU` z-`=oZuMzR)bH1+_L$s$KIClJ4lF?pWQPVbL|9HoUCO(w2^vI~#20Mp}`OC81YFfI= zu`Em0cehOR0^tRwu#|@*heJu-G&I&yV~8@or-M0J7+y{SJTGz}`q;a5>oj)do}CN-);BL&Lfj3!H$qgi=(EydB5 z6#a_QITz-}$|HnBMu}PbS;III?ZeM?L2#j%kOMGCT#O3Iba8=7bLy((uzrVk zwhyH0B9UD;!R-WJi9mYM5qkQ$b5ygmuo>q@E%Wdi5hoEOL5e0viIZ+1l@J2X&Q_hk zR%?9-9GH;xk|fDLxs~n?#>3&jY&NriJsyv{_GCXhTj^oMfj|TdS6$K6b@b$>QOMng zw<~-^y@!g-Svw?`{+=E5{fuIS$C@M7i&5027@1eXENeC`I9sjysxJ#wpHL}M1}0o5 zQIKNHp*wM=v@p?@{_?dlP(R@NJ>c9KNLF#C!D@{&4W>TOR2x+CE><>*EK5m>0;zIT znxWD>yyvz?IE}7$q|#9xYi_TDhtZu4$?RWm!_|hPn>3VBIt!rqx=U=n?V0 zTZH*hI$qb(c|Y1__fj6;#klr*%kiRSxYc&i=bR=G%m9IJ0HP6ZmEI;k%tRrbo4EM?SM8(5_>ot_(Rp=H>4_rlU&0~cgM6TE)sPD8FcS6Q8*b#6_5)FEx5k$D@?wU8 z?`f8E@#Gm-PrrjRCbYfxw!6M_HT~n;l7__|cDlzo- zg-yUGDa+Lb)9DN$M934D;VM=t=p|J@+{Bd4c01K)vbXUd!?~*x zs#}7#qo!W&^Yz@-ha@}0tRCUzD6nkUnY6$D;^NA+zvgf_Y>9c&aryGc(J?ZJQH^PV z>-K~{zqoV(Fxd~`o%0-zM{3=mjm2l_V2InI{=?J6LXa*DpQPO9M08FJKa56rXpS?c zgm;7HC_F|a;i;D3%^&MqD?n=kn8(-kU7FjaF;lGCeF$I_PW*!KN)tF4>_K?q$WIgJYs9RI-l-k*$7 z+R=e`fzhaxIstw}=tl%fwB@IbqmvG(9G8J=2*41YX6xC#JWyOTtQG~v-omX#{BFWT zYMy@o3DvCN`iu9x`uRI*=gDS@XWx6oWL{vsK^u!S!DuZEOwS6Y%RJ24C#Cd%$PW0ebd19o)y-zJZvW7Wi*wh8+#CF*XKm>pY zaNDH4Sp131cA!@pY0U;oYVUi)|LKh^dc`;%qRd0zBj$`+ym*9$WV00)mmiQ76Y@MqsrV$cmZmBxH(To0ui0<591jPY z^1yz(M>nCpHb$du7+AN7f?9_`c3D^K_XpOyEqB`;+wG3^e#dTipgbOF8jUsv<1E%# z9Ps3W@9@b-A2XZHP-($rGGTi5B+P*aK~bj<4d+FK633fYoM;0($rNmNd)~jlWjUXR z&Et^d6LYp(fv}A8RO@_uG{za4@8?kw>T9g!=H@NS`J87@pOGp@Djm99Q<@|7T;Tok z-lXuMWn|Z~og~Z*uesW3jMGRjnae4ONKU?*xEF^Z;xen92l|Ll6Zd9kZXl5g?P(jG zAY*GD4ig`52Z#3(;W7@_72CTl=_3m=bR;;5)CuVX=BpL+Wsd%bTi(2|+}b^}rwNxA z=NxbL+|I8#zSZQfrqoA`OdQXCddb!I&X7uyNEw_dN(HVcg02ucf&KOn<8}$-;$%#Y zC{g_b(T?8ha6r0FwGaZhdI_C%zI#o^ij#+tAGG(QsIQc`)1&W4op91JtPT2s5n=O<#YE2 zj$;x})&IlNUHl$VC_-RNkV2ep2s?|#DmMEao830FzuPVA-H!c!A1c4Pp^45T?>sibX=My#QdvPJCC#zq>inGl{(tx% znNB7+V`6k=%<8DO-L|+VS`OMmZ~H^h_i+PaBm(!;b;ECe`vt%L&F3ta3zqXaXNv{P z<%0QQ#$-AnOSA6xB{GPK{lH$>WeB+-18Tc~L?vjgIW!H^BBiN!Xx*S>LXu`&olUyT zk?~yk>(5Ak?|<}_WaC2=>`~XOibXh_gc?93#7I-urWFpi@KQ>wF(b_=!gmiX>m1q! zU$~I6i;ZoiaKRNLC?+!|i!4HUisXTsN+uv{{YNE!FG+6%jjoZi@X%?rMOudy0%HV;3bsU*ND?0)%coiK_hy6i2jQ?HZ0Gh$ zg}G^4q$GjRC$XuUHa7KZ$u0lLgOSZ<<7cy( z)mqz^FJHDXs(y8TE?TecPzY_T;dm%RtA`j#LfRWg_!x&E;=y>5&i3#D$Jeg%J@?!1 zVLM}up{|eJ)W^Ayt>KKuy5O;{$^*vKSbe0a>L3Dlp-vHLPMQ{E`GPDD5R4>kb$|}r zXmnju?Y6wT4nPB49nn?A@o?aHC^6cEMbtn@O>DJ{HB?p2t}NN?cHC_?+-=uvwp%v) z9ov1V{%WnU&JI{~{W?w#YVK4eWW@xTrfsHSxH+{UNi)9x{U0%#Ebw)S*A-S*ly$|8 z*@Z*(fp^sUeuLOLF4_ya8*y}VA4jb=Dvgi_L#1M%$7*~dcfE}pg!%Wi(fsOph!|}+mtSOI2sz%4E$WaspcbDhn zSx!;pf`~`UJnm|f!oiv z*S`+zz@i68x9_j)=D}?&gy`a!ht8L7S0F{bTCMW-Y>0c+sA~YPno0DTDlbPXGWQ07*naRMcqW)aGFvjz^lN#yLo1N?jQ4wp%3ERVG3z zaQgSk{~lb%@cRYTL#c?-4R`Oq;^y^~=D4G(Dy(U++Jp~5DTK^Ovngr5V6u7~4!|@E z(1q4{(NrAw2de#Bws&{z)}i%1?hjN|jn$!*4tA$Lggk&OEXHc8I*84;+a0%?HFxVZ z>&=$!e$TEf!&ct}=fGfe-(4J1$mqaOBypo25b_#rgU(DS)y>O10%LX8u4t`!{rVNp zo_>tf4YoOAb!R5jbLLwP;E53!;$NoyRaCE zc{8n*(EGq4yg0w&*+<`HQcNhzJ%`;E>m1w78mleYY(bi4*yczo0~~iE6~uTAYl67h z-%pS`u{u87W)ri^XL1S>?!4tI^PVT_ilPro?>EyCh1q(>wbqnTn^@HiRb5flIwVBK z?={R9U4Y)!8l@C>cN>x%x4{G-YR`?(!ccR0G zDWyivtMPb(L4cd@^I4qxTH9psT*qp?U2b>g3EyR$kA$;ra#?3L6!mhs%){bZ@Z!ab zZycNYtq(>agm0S0dGD?FUN=p1$g*rXpU;&{)PQ^*pUJ{gm1U5K7)_o94WNs@=9XvZ zy~Q~KV#|sLU-5$hS!2;mtU&Lt_=jKPSRHxsmyj<$lZlZo}bF($p1o8I~Ty7NBjLoC}P)TGt$pM|OvOXnWTi?lv1XyDhu@ zfwDT%G)cdV=f zwoW&J?wzMOpM3n?xa=FqbWY}n!$E)l@bV8hEZQn5VUf%bQu5y2k@_V3S{Ws0oko%# z9_$>iUcTk$fA=Ykain=lo+adYMw+H1iHr{_f!3PccF(>%lBNkl!fZOld%^Ko@#U9a z^7Fs@d)~fzhc=pv)ftcMj^o}!aYW;(8%<*@&Ipuuh%6{RTwP-|7;S??%Q+6)GI;%s zK#>MvKb|zUuMa*#ME~CP3s>Kd1)?m;`>`#z>x|;P@z65w-e)4{C2(GhAhmv=fgMHB z_J=|Mh#PR*(@)f@Zq2SIeDJrok3S6 z+q+xJ!;Wp_`BjHK<)Mt$EE5it!2&3_vD(>R6WXHk$ZmfK?e98NfScW(@>o(gRror# z4+D~djsh;laLl0aBuG*g`HJtH{R!W_{65dlKIEdfq(}mV#aoMa8eH+=Q-cT{x~8*RbIpM1oRfAWJU$vL@T>dYYWF7_|KO>Hy3w5lj+k-WX14^APk3*gwHO)cPHj5lP-yMP z?l$l5Z;`)lb`zG1Vb++4gj6K)K^6qjUJU)aeKc;}RBSdos#EK+G)3_cU6Bw;q2b8%@|ukSb^2Jxz>~+PR*ir8iQWEBb zD%F)WRb$XTEDQJB1LZy_MlgZ|MdfXXKvhAM-I)&B14^92Ddc#j$e5Ua`hNDIh_ZL; zc*faI!*s^Md{x|Y6p5}Px1Ay)Jd|Q8X0=!><^lB5>;My4jP9GzyT8?pu~m$>?w6{n zHjBmLI{>TmbMxZG^Q7H0y7(Zin}+gO(lixbtfKg}Z#i1bq40q{7;0$ua8olv~NKHj#wPi&W&~SrCsaAxTwEmSjk&&{k9H3TFkGnz5QZ;o0(IKDqiK zA1t0xBsusnn{>LyS&g$A>l&O3`o#8c>m7;n{NU^d+?BWd^5*AQU*m=3FaPq-`TqC5 zht?*D?3LiJ|KtD1&wugvowlxS42Q#!<#HJ@B^MbSGoHR{1?Dm*D3ys4IxZ9N+nws0@7JYpntqXRyp1V&KQa4=h_T1`{*(PI4 z#^GRSOoOT{-Vid-ok5GBd@wdeiUg8VNt}qW4K_M?7|3)y53rsX67BCxrA|atLY&_0 zqq(GW9%F3qg~#s2b{vE7Cg#PY$+9c~d{tF@=bV>Px+F>5fW_$k7zd+^LP@66sqx;s zvMjf)QvLk=q7hOiB5Imix~{dBvJ5jT>wHkTBSz{QDS`vWxArRQa3cKt=&0%vz{Uic z;m-}ds-w5n`>w*+?>1~V>xe*Sz1qC6xt_=FeE> z=cFnFXVBUrMZiQ^tMOK2Z5<9pZ{xPs_1k_2Q<3ts%YQ**Dt@*36}4|DiYeLblIQ>M z_w29V^6~dRp_okKEGb;@RnxHFAHw@Fc&guTf5yuS&#+qbacIv8$YUTf7`5QN2*2Ak z4yx1^i{Hz#ivRq-_^-IVz2o)k*W6sc=kD%~?RLjue+YAKYs2i>goRpFTYRN~GUEP2 zC8ShHdQ8(a{9F#A=n3w@P$0nxj58dK;QDq$z1wlSKX9-b_1@ubEp98ZSkkq?SwZ6s zd$FUc4w%=5#bL&iN9UZU^I*Uj5wGNfoWu^iF?wHnn`KXKawjEx+g->mgBssU#XNpQ zeZu#;#o_X=J$F{;7q%^is;b(?it!tz1Agm@@%8K1zIDF{A$040386C=T1j;ueBm6& z{hp?(un|@%j2ycvoWTo=Lm`C1p*y^n5FX)W7`qAa;Kg`a3iy*2I$#>Z#@CvFt7@9S zx;q?74*Qb*e$RHhW4qh2kDFf|t3U9u^%b4aHe@}^&d!FH2p`(tNiySN`j`)vAM(N3 zM?9K6VVccIWyn`8FSdC|3|&IP-fKRsk=^S<2R z#%iG&k~Y0^h(-&GDA9?4+p6_sm_7~=>~6%UV(=cjS~Q>oIopv%U1OjLrAbPfrx*v7ZYXt$ItsM2kPFmAvAkTeI$yC|&Y8|;BrS-y zec(BZwXtm$9wAf*(P-sWqMb;)KDRsKBjb3+kGZKG=hTO5?zDRwoVUWaZM+>oO8VuW zkb?8oxou@aWm$Hvm&4(}H*vjutAi2nNs_c&Mz`PZ*R7KMe06SGKAkvO*B=f?s;WY3 zP1d?ie6KHy5T&60mr1xNosYQ?L?5Lb_9`bQqrV54XrKB5(8luWX693bSc~zujn!wFc(|`@>;S7&J&FDA$toutDOn z0(`2d>LWrxHc=GkD;7_utmZ40XA90&XUt|(lnOc=?{rMQ?pxgu^KE+1@?Zui<=~;? zdEojOCvEn+SU2*q-&ctRE~d2(hYfQ@$BAsLHx^u6UbR#(%Cg+F6{AwheeuN?{4ozk z53t|w{bVxn&N;VUuh*T(`{LXuD(St;qG#FFb;+>`Lhng7#Sa3; z>7MN3-VJa%tUawEyPUHaKk)0{{D%Mgul}Y7vc}MFsU(ZlB_DtEU9KKIVltVbvVi>8 zT2q%LUw-~MFJAnvdqTEPDQ6)QDUW6!@Zs`f9!(!J&lhAeL*mf-fQ=a{GVpvx!{gxw zUxs53D{3BP7c|T7@zvoSo8v91xC&LOw*l~Lbwo`0QB^Fuxmb|H*mxK@*YITel)rrP zFFC3$Z=Zj`-+%EX28l@|-}}*z__II%8Hq}H`s4#v=jTj{gu1Q+M5A@Fbd8bd7JH3m8Nb(N9B2Q=JnZy}4fYi!*=#8Hhv1Qq9Mk}0c4(uin>q@u z!?)JF-=mU*k3ac@AOG~nT%4~+^N<;3WA=DR`?N^m$MZh#W2}V;k*P8yHp+qakoafy z1#~Z2>o?M4p_KOzyU>R2D?98m+hV}?v8;mrHLT9hMO!g$x7)RI&Pgd-*UKNjViZDn zt+fNp&CShSyI?p!zi=u^dXmWil-V>5by;Gx#tRu-j@}QfdO@;dT}WMPTNyC~W{#Oo z1IwSdFJKhCBHsIuv^QTYD2hC~YhrsQBu*;MRu}x>CqLop>M=s8&?XB(s!|dmNt28h zFP{$%g7D2*XDOZKrhLy?wq%vfX{3V0l9Gl>(Dl|S=Y2m96XR@XH^}4F)I3fvpzs{( z9aS<#CRsQP+loa4m!;k-rdRg=K`ZGQ{)NHpqCdHgT z{rHFc_{SGi`y;suakkAdkXkerBP~UdQ{)-K2gF!kp$@#j?cdIiqGE@e+F_mGMm=sj zzY7<)49nhb5#2{ijN4y7h{W)W51zh#i|!f0J!IPOF!T>kW@0TLs=A$maT@I4MUyboyJ z{ou0;npq+$Y)lUtR{q|%9bfSAhXYHDDoF2#OEA&NdIXVgFjNt^{(RMs~ZMn@*>$X&U$H)vMMP=$Ff7C-m&~co6_#Er-L7sy<@5 zh=W|w=@0Q9;o}S`CWW~{J1z&gA*Z3={vN$cj5l6hAeCY^pOd6H+L*z08))NAQ_(a> zRH`VZb0$T>Brlj`1;TmGmaA|v+JFZ2(I+gC7;kvJ|BAcvhV}85A7A~HtJ!0`R3Yz1 zgvwWTBH&mndN=q`dqjKtWNxhCESVzw5n~%P65$Qr>;5!S;1xLK!;b{WBr*%ZO35^( zm?TVBQ>M!$v(qC4@0uw>g~&@Op_ZTV2@;!fII!Jr*=#o4-rR6^ za~rD5^_uN=OI1}Y=8JHRMlg%;gGYw%#{}N{dxR)IkifOqt?PW#C%?A6zuU)`25w{}|#O1`oDj^oR)X>9f_jYTu`uo0~i5oHNFJV-4fCt{9_i$2#Zi z^XJbuEga|U>`V%Ik})zku=a;Ta8o#tNs2Rdh;Vd$x$T|9dKqx?1);hjM-#x*qv^AfvKO;*rie$o>T!ovPRs`Ee0Jvd5-B1QIDm%i*UdRL|EH1aGOd^sD zkxOK*5EBIxiJT4wit#eb4{{$hEfOTrVfn`yaL8P=*3B7n7>sfs9c=427n>j2xT*W;X|Yr_5bkUeEJ zw+Fc~HsIueZ`t z8=D$kFZ|IDMx~T%n#RS516$X1sgznQmrL2&ms)S6ALxpXhh11=7)z?sfhfC$HCVj0 zSeJ&)bi274WM=rmT(P5QAWzKuoXCm8hmvO*lS#p5w?`>~LUt)@)nUiyzxj2LBF*L~ zsgMXvqq)1i;j6D+MnXzJ+1u9gHMofY4z}WpyDvB^&Y5IW3Q_dZ4-rS$EhYa{6Nu{t z!ZK8XA`>LD36qOC#nqC0RglawvS~p&NlCJlA}^Sv1=DQ8L={YA%1q`Iq@+fov`3U0 zcc`iNTdK{DoAn*LyLTMc*Bp1ZH02gt&Fac9dwfeezs2e`PtI@n?spVFlOOTduRPBd zw>()oe(=F1Ux*)ay>r~%z2nWxcVx4S`Qr()kXRcymqPXM0BcQmOZ9Rb!6;5<1SgJ; zC@;H&$zdhc`LSbVI1Cbyk@G1=6=eTexnX74wq^q_@F`fg6>8fy`&{&pi*|)5+A+YW zBIS z7oRp#cG|h4i~PHO9!b4eEb`cn+gGn%ZNIJS<=g5QJNHW)id9wBc0Qjkrqih}ilSqv zol^U&s-h}Ow9#Zqh7hWI(s$`$(#4SOfY|SH9Y#Om8yAxVg>*OR z4rWg-^Vnwf!Qd@qp`8WV#Nkvh`^!8fou;TFLC#Y0<&@dginB)-EY8kCikkH#PT(p- z(g-HDV44<8s*KcoR8!-R2X=>=YI|UJcZ1&TsrNhT{f7Fur9N(`n>E_((XPQJo}d23 z8UOmf6sYXC{Q4I=zG^gI)eW}(knnA%@WpLmAOPZyV&Y;XPvjAQ_SB{Sd`RKa2GqZ-Q6T= zZ13%n?`c5qJEZz*m=Q2V#DqmZoKp)w92nm7Pq!_$k26PWT_={eJ}eqLak!ApVzJ1D z5NNFr-h2IRLa_c(Gsf2a(vrNZs@it$m(@8hU%ZGLOxMqBgh1Dt!+uB8G|Z-x0E`g9 zX6Ia}4!jGddWnqE2tTqPh3|PV$LQbHu&{Aqb|Ft_JD#BFnoTERUNsb{#VwZf9&bIy zn2w~92uYqzx(n8NiyJm^f-t`4di%INB|G_Lj3rut~nuS6sh=%6~>_9nar?$@}Ab-fXYQs{&a!T+Zj%q~@S@)JC() zCCO@rwjLe94j~jNIu|E5(b+Fs;tktUsh#Lt zDb9~8qV7O#4=e|^1?AfCpbjJ@)d`GS*s?qUDTGQX#sc_0#nH7DZLB0k*DAILpcrf~ z$9?oYfxRD+jQq%#JVK26aU`I#u6K%b-eX1{pAP)dj;z{OIEwD|_qyr_AufJ!kmGtC zWJjp!$0UBxDYh9fEyc+?-+gv1jJeO%4qr>Dq@GMBS#-VZoO9k<>(Vr}-y{UBm`=&p&hnLFGMyrn9N>w1wY`u*kldo~oi#M^u8;`QBx5=&kcr}0 zRg`6kww6RCJbChjpZw$}ES6`aSso}nr6<{?q~yp+ScIra68}9TnP#Mug1iVzo<%X| ze7a&)ESbxKDH*v@h}vS;HFvk~`0d~RE&u-K|AFhfTgs-wI2&X@LSnt;Xc~^TK|4d@ zAxDr&#d`6GWj@E@u~MMYlr+7h@--Dl9C!TsS2xHnx7}WpuMTM+$ZeJH;xNBk5DkoK z{vpZHy@S$YoF$P8m1Oa77Jc(M`=@U?d@cmqNpbGCE zAYs4YBCy(zTx<;T-ktNK*ptQCQUmGG^E-rYy^CFWFfc zDPX$Y)KwM9yh&dkdx0g=u!TVoT4_5-A9LOX81B8+I?6j@1?OUz_%PkW zMwU<{PR}#4tAe7KF}72``Rs zd9i=X&9>xN8}ekr2WOA?aQT=gvvV?;u|8-vb;YJO>>EjG3LKg=)nqElSE60exFr4) z8slh;r8YJmmKL1oGQf@XQ4%*a2lS?sa3~Et)IMB8&iR2i+Kt+2P8KbG)Dp)E#p*6L zf+R&{1x{BTwR|Wc>h+}IU`(Puu_bi3_k|cla`e@fXty;3YW?`ozUM9Os^0OQWSo#W z*8YKyZRn}sdhmKqF=8iGqIh8T=uad)B`7$`)AR`WC$% zZ?vB;anW_Yx-jkce>@(y-h0=&UcPCy_^l7dmdj|Zb>4g1x?cd!&Q@9~l}aHxi&-zo zmXwD*byZ=kBU4eY*ln6Tj-at>4=UGI2_nQV;)%;0`2Zr_kF;^E*mJ0LO0rpt5m%@PxsH()Lq&CC5 z42pKHvH$=e07*naRD6bV@PS(Lz5E%EXID&;9CxT#fAyX(Kl_|dzxXv@zJ9^$^&7re zzu;|o%}$pzPWLmHAqjb46p%t95lr(bAD%zsYPJfCpd=$r64E%#2AHWS7s(?glO>JO zTvK6nuncOa(avHWtdEv2?+T2y9POTi5m-_t`HXosVU|p&jp2*+J4#b=)S+taZanYF z5>UAS=Rg?03_tk1k zJ+tT3^X^A-p8J4^2NpS_1PR~Km^wJj;Qb9WcGrOiojBMN=%?bdn@i zDdk?je*Mq0m5$y+H=Rz&vdpd5>vj8$uFlVmibi&i9f_flP}LQOGUS(}lN{d;r3VUm zZw*FDq!)4X=e((Ey|A#+ib$*G}6}Ru-;7q`NY2C!v5Gg7q++_8! zq};Db@`B=+@GP}le*6Jb;duG_bAI=m&w26UIlq4K1;4v_#k$(CZMM8RzM*mriI5aB z!Fq>wrbjKET-YtfOyKx@{hAlscX1#c9yUrTrb)rG*(Hx>XFQ%g9>5vEc#pA`+BQ`B z$i6yoTW+~7H{6yRj=myE6}d`LBIxtBy5g=mq9f%e*!e;=o2Z1WNSIC&vNTY&hwYW` z2ZtyT!sERVh(s_;CDy6<*-MO<7z?%WG}fbyrHL)LjV-wIK4#Iht{L0q#DqUL97sOi z{LZ@&C80GSLg|*X03S*I1*2SW77u%L}q%!ft!ZZhePRk|fJX(l&!!j@(T# zTeM%s^aPFWz-uEAgk%I@@gprD1FH4Fg>qu#8R|R3d@$0i{P-YkMc(6z^be8R1Kdv(}ot`&h-?xZvJGyW8=fawqkuJ#%=n*F?F_DbroUjdTH~dzv<%T zA5$?Rgz&}~3z+xs->=)4&c$NxRiegkK&QjOn(&&cCbP`Q+vY)qjkMjm^gJ0T4 zZDSB}$Adr-FE%&Gm6lz$wDdhGcpwZ33m6rsB*xl6zloHRJTI6{XH2Jart=wTo@1Tk z{OSs4HRX28ez)WK%iri3xAku1w7CPi30sW7Myv=jrP!Fi8v zYDBr`?Ta1t<|}45nv2UT{{7$moZmiw!QF97=?|E!CJ``8Gd`I-C6S7W%1DG@Q|8AY0;oaIw=6Ar$4K4qE|q%t8@NxbnK)>$fJ zI9N^TEJjF@Y{D$f2Jnk;lhryP`IVHY$P%2+CM?gEtj^E5e0;?ux4in|Z+P?Kb5xR! zpuYa(Mr@aEDn=j-$wh4tmj{eX(azHtPh%XlcGSjF)eT8>FZr+%=|a^U7Hc$GYjj;v zACJ`Kfu=f8mnBVo#I^2_?m!JXOi9N4?1D5e5JIuLxu)FRkrfltydWzkWRrp<&4bp_ z8nUbiuff9*s^(4-1i=$`JMndM64`NLr5uT?8K*DO9~6D5*lS0f^Js0q78pB9H@uga zGk(o}boz}6JN{lLF1jvapvLb++t{AL=)CVi)&r+oE4Q-V_lIPwI&k6lEYDWL#7=L$ zUT>SGadlm@-|zqVw$gxa-7n5L_v+QFyOsbloz9$$@`NExsD;*g7v_vw*YVtv1N>O% zZ=BP35|ZegXvLgP2vnRQIiK_($M9v4UJl@((e=}+ zqw5CU7>qI0O-S#$4rCXL-H71+L@a5iUXF9gQ_K zHl_*2*WRZ22}g`o4OM%ZrsR{H>1@W?`HJ()b1ol0;_C4gSC6hZTb(hV&Dq|)WxxKC zH_v}VqKd&ybpmx5%0=26R0fhcUPR4XjOrZ9V;ooq+BqtnA(Jd52G&Q6b2L>&Q`J<* z1Jz+qRUT-L2b!wF=%#bE_%@ji4{D$pbdG#7WwE-Vsq0XECmGd#i>|7mtCfMFsFD<^ zLj0}#fDTUKy3P9oBq(tz03QqA`{jrq04w@sPK(qVCwKQ7>C=PQI`g#$BBR%IBE=b^ zzZifhPs~OBG>hnD#>vp%-$J1})S&DR_Mun0mHzab=-3^c*ih&5c{Gza-oJmp0gN%m ziY^o3pQmCRxnI8c;)``%*UlIti=vP%p}3vB_!B+je!rutjxpa^jml^|cxyvMrHV8S zW4aPqBr`3S;S}j|2$pjPoc=L!6&3W^?BAIo1SPv$O$S zFS?sKEO)lmp8xmdr<~m^&{p6@#?Agc(_Mq~A26L4q^V$EI*z*|+j`IXxaaz~K>%mz zbPyC2B}Z{q*B+GZc;6CoT5K$`Yhx&BFxFwb?O+o_P)F-|ZqwU@2$H94Qc%n$%oYn) z7b`9vU2*mJ5tolHxwyJyxm-|83eqGcQIde76CC$K+0oD~wO67>2VZ@vf=@ba(=akN#5ZW_EbUB%t%D3y?)WG5M6cnga# zL%e?dJLN zL${D2WA2?%9W}4#-^~oaU9t3!xD3D^HnG`XA z&4pzP_cP7gL$IynyX8y#9tDEwWU88`!CK2#Uww5`*R|7HyWMW*zRf}Rtq;c5{ZiMp z&9Y4IcDqtaIZx9Rl_Z`2c?f;*aluiQd#d9RV{Axx^Fx|)TQwR?+)TGwC{oI>x>Txv zg0#7JQLEF!JYB3Bg>>CqrFB0{rcbr+^&u!w@MTxSzTS7S<;cFm3>7+UOh zTX=6#_!A{2)$TKR0lj#KW#R3P%M>sq=#^H@493CHId3b=ybi(=A za>$Ej=9c&Lpo?E0DnOnvR(k^8X!9EdeaTo3xMT>KIwv=xsq7JUM%}WM0qyz%kNO=D z0?}sJ>7?nLkD%1Gu@3vU(=oD40>N~6`17}LS>A(l9qev}BG2{!3rVKp9h?R814NPw zA<4+XUh^PE>hKVTzke`^gwz0F&t4by0hJN@yC>-x9wZ@>!>t?HBf~X1(r8o`|E2IS zk&Z<1vyx%IOolPC?%LmxKA!&qwZnT4rPL=D;P^3n=M(h8$3Ig@j=95w*5Qkt-fCt~oKC zg=KV==a^AIB7}V-e%y!o^d6I=4$=)k%h4xb`W{WQMQ|3=DuZx2WaugPrP-kCS|};8 zm>uBp#p8H-@honacQBFDVN8(%xh^otrUU+ruZzyvBtfG1OwaNpkzOp>EJJl%qVWc% zH$c}w$_yvBZouRdbjstw<_tLJhzA82INEbjfE%=wD0L1kGQbNMYtb2l&c`vB9RZ$_ z-(m`*OeE@%+&zIgdU;u(n$(y~r3LRF8Va;ZTEXV`~^K9rtlxLI_yz6DjkGe)F z)U{~Xkp^az+84q#f%hlsEBA|Hd|!`$PXci4?NW!!e;7q#K)`2Nmi2v)5JJ1%ZVhV~ zKb0NuGaX-IZh}(E0kB&Z2w7|W!E%ZF_dY^YlcsN#4}hZh&StZMu|0}nGI)(cA`TE% zE8dv>pi2{qVqO&|O9+X;if^42kSYTNVEQ(V8rB+gE#*p2CpD&ZiJLc$ak*OK zjjl!C?J%t>eDUZRd};BUILMBng=Xo+kRL3CLZJ$}It%(}y`!Ur$6(PK=cL4Melaa^ z@bnE-2Q|7?1K$MbT;R#aAH$t5-o%rSJqEM^58wY7k3M>Y)B6vxyV#)VT6EsRz@Za8 zY;IBKC6rLu+77F}gSm$15=stZDThS`0cfpIOe##LGt3U=SRNhX_~r?YZr;Gb(IIt% zvl)uApiVH3X(P!?avO}TX<@MOj`@m8RH*SJW}!ode6R$10Kx%q@WQ~Og$*5CXyHW* zj}Ac?cu=}wnP-?+Ii_`nOiQ+)0@isLOFw$!U>qP+h9D&j7lARpZY-IT@zNW2YLP-M zSsN+i71T4>g7VPEVX4L&f zG56kX@)~b({PXL-c0Fe(M1eX>x4aM3Gzi%P$hxkBwYCW%IOm-2`~Fk8UOr1<^!M-I z$LBx)`4B>g$y@8PEa99Bi-SX|@bMGg!)ehMX|uk9?G3_2@+duQxI*l*f=W2~;2gY+ zp4w4;!XRxR+mNFdqmU>jN64!h)^zCm2kFH{*&23~$q|rc8D_HyiXsOjkPC?$`Upq) z2?R(|B;?@N1O$}OSd<4iUYr2AKwVZS>j@_FMata}qp)#8@C{GSye^SfIo!z zKotVUSS)TV@UMRJU!p2&T%NA+?oWS?pS|%G-uvl0xcmNHJoxw_HcbN|16CB^Vg~Q`R%$9T1lPR)1qhiCImydqo zu#ZLyBYMVwy!S&vL=#=JMn$Dr^9jqNPL>w1Q8sF*T zP%LvHG(Rn8z2{^{e)Oo(J~vUKB=&^o?Pi60@BS2%I+WQBU@j*r;GS_(YzwVxi4kYIX=g_#APNq}iy%)~8(6;S1gy3S< z%cpU@e5Q^OK-leeemb3c0A{z_T`ZSN0B{G(C6rb}rtFB+9YTN%0?l@VzH8Z(F9E5b zR0h{>`3vFTT#p#$<%5Or)TIR>h&~e-<>ko_7)C+fG5|v55HbToKf>nI$K;)Z&T?p- z!)*m}{LUBgFaGs!;p%dWd+*=H+i$*!*IxZG z-gx~d`1#N8;_T5mF1KssSq-HNzT!&cWr2D+!Qx0cGSU)J3}7^h=bT$xbqkt0{W&yw`tH^G`RTi9G8zS07;o4k-Zmr zi<#1>@*H(mV49a$)>9l#=U7gsnAR0^?&0(rw)y~=y^m_%qAD|#Wq~Y{gU~&``CUM7 zfZjN4nhu+7hxN9@YSZCj)!}N>Vck%%+;tY64e3ZS(4k|4DTbqwq>njB9`WSRiKShn zkA+jB-CW`Bn|}vg)X2*k)pUkpGDB5QQBLP5stNLf>8+sn;bt0pS-8 zHGtS#l~9qTCPbU&?NgUWdl_0Y%;s}s(xcxs=uMB%Y>_F=*)xGD zIC8Lhjh@DFY?$N|+*+RCTs^?%>H^#KC3f2_y0(P_kk=DT=Ohc7OlK&H5=yDGtK9Ps zj7Fog^Gp2jM{f|B$9p{X_~&qNw7|j9Z{uJ5?w9ayzwvu`=dHK#`j6klkAL(Ae)^Ml zadp<9C?;4Q9pdQZ2!|&(aCCA5hc}KeTP`t~PLY=-Q%#VHU|dTinhR&~?5%~Oi9Zr; z#uhqHd)|nBqF5S>v-cn3gCD(%=3;~9vO%}$;Cglu1@d^$@(Ks_6bJPb%X*4gHNmv3 zFs&-oWrayuqAW_zS}u@j4VnEeF2tL-5PyZDYEYGV+Dk>7KEfc82|?h{Iv7hyi*4Iu z+w|COTdcPoHrpOo>ke1j4x7ecv$JS>i>`OvonViC6E%f`cg=%yZ}=X1={ai}&`QEP zgMPb4x4pvp{62(K&{>YWtWZ=_6!jFuItVK80VbZ?RKAPzxY|@IzdVqMc(G@?Cj(C zNzUhUr<9gLN(g>41y2WrxKZia9k!b_h1d&)wp$~wEP*AYq!)Pa2vD0usxhIVsw?O$ z1A=5*90_7=+|PyqH6?fyOQo8R7keGWcwd}k6T{Ox;Gpwacg;q+lR+ETr4oDYh-y2rTNGsWcn&;S)*#cjMwk|5I6J{sxpW3 z)HS)3K1Z*LSWJSapJ^#6jBNsxxx!*ra@#i3o8HF&DXOVcG`G)fp9aokL{>va&{5Pf*k|l#?0C=>kdI%=a}kW5SJdZe$KX`v2+I(kL4eWj~CLZ1f=XdpX+I>FVR1 zvk!i+Fh(du5K+1$_H2ZE#Gw!mM$DDwt?$9tlAdq zs|%byypMW1!)!jsY_`B;Hb-4iXE0_41m1-{e0YYx{o5bI7>D1r7I!{(2i0^=)-zpT zGM(b_JC9*Ht?|?|7Of+fMYK{n=ir@7B`w`Uq%Z<9AQhMW7aC#tu- zh28boo~^Js+mcT_(}Tt`$!SP(v+7#xtif5c#l5Qw+_^f(Qzy4@=lBFi%L7cZ39>Aw z?_+$31c3*ar?`K9j>YFZhf4Vr>xt-94oa~IWI6Jprg6KPpqkE6PUa{lQ`%LQCA7}2rDGyB4}1AbqwBIY{JIF^@2gL~ zV{0h4TxpI8mWsb`0Ruce<_%##xtHIEQBN$wXk;Jx`h60;VaR+Ri6F;*@4zk?TJi9n z(Ye(54)h>_*?b;iK|Mb|e;B1YBXM{5Wfn%Sl=4yJ{n1AsT{`D_Aw*u+b)}R}#bh9W zg!DA^Ay8p7J@T9cuzlMg&$1L|L)SB(p14EaJd_Dz2Th& zIU{!44R-4_y5ZuY^8B9O^0^X zpt;y$^XLlOvo)H_4Vv=}>atE(>2x8*IARyD-r;h$#Z|k--HS(fw4+P3#ah?jJwGPfY7`AFU z>qbn-LFWpVE|sN5$?mMNyvce2?*)3(QM9g!S8z|zi{2)LnsETM1~Se9jJex>eDvVg zr-%{4NS0RDx7c+pb}Ncjk}8AF3mU;=S2>-dn#_?`HS(f@&U1eMNH*>aqigK?t+R=M z9gCv1mVDyd4VujgwxbNBEH99k1@b(H&N6cK@W-3@4fTh z8)M8m%d(>^%MPlFc4^iOSb2o~%hz_ZLEm+lOy`h7!CH$fBjS#b5?Ye{B^JtYVjAn3 zN4e&lSmp;QMerWZ8hB@6`VL*wV10Fo_0^ZCekeT^ytAXtfFSEJvq@#w+N@xj|~B6K?xT0!WH_IM0Bb>5?QhcVEQDQQgVLF{*I-g@Qozgy1D@XxcU9Irr*M6FIgHL=eU^<^e>I_*~VlIGH<8iTR zlH4R*v(@_Rwyz+D^t=#Kf%IYIC>V`t@qeAQ*qpAg{dk4ue2eYr2D^(5y7dnIwuLp8 zoiY-6mhWln_A~6q*GT$icGlwK^$Mrk4c__q0p?YWgUJ*}vl`Q>Mkmi<^7nCaXM?Bi zETQ1h?ktan+(j5-JJNEVxQ~u=QH=GlW_VLM=h#ZdiifC~;~j%wiy9)yNl28D$n7-* z`*q_nqc;}DSoEnl1~^f{gdE1x8{IhCTP9eqA8`HSxC8qCa+rcV?cKYkN4s4?oC`{{ z)ETm(L{?NNstL;JoJR1Ptgd-cLT6-8Ob;W+pTG66rbXLq(QH;|*H`Fv4NTt=^jVV7 zUh0ehELuZlIkKXF(mAp`gU)hDrI=PV(k}|^g=UFshaM>;9kycZs^8Z>rU`+s)t>2E zVMJE)qlg3Wfow9FNFhX=WKXX}8u(xOjxlzOAp{#juzlZOWLb73rNr@#6WqUdZ$tnI z$!i;1zHYb0uGwOFbPSypXf|8qMV@qEN-GFM4hf|cyc=v!7`r4w9H$(DYvHVgwLNU# z5gEmFaK^y&J;g`%J6yI6y7h{}xSXY|W^Tzn1eDg;ga)hb6i3zV#1@GegV6G74Nlm(ELmf;A=&fb#T|nRNaItG}bxuXHo=z~G&M{leF_}z} z7X>cPS9tyPpQYW^6L%iRWIl(=b7WP8vT7kkOJeCg#?XG+T>z;o0^EpV9Y*`6;YCLg z%?_sT&~De*t=HIIp5gSJyV!iVg4+PTl@N{q6+%d4N&!mjp`?au>X@S?_H@Wm%O?Z{ z$Toh5rg?}5Z3}U^gOgjRvcbubK%dXC>$a%N3}vB_X9}4n%^(TQ18e}i6EKcG2g`dk z?_>BA%R^+?Qwc;TPCAB-UKbDnQWB^{Gb1n)i0p27m(ecQIate`xGdp9Mk6=%0iyr_ zAOJ~3K~%P-2O||l;!he&#nteyJ08WIrx87_EW88)_MIScS83Y@4R@YWWl&iTotG%< z3ChWgM(}!uyrx3A+pe))U1D=}hTUd`Zo46PhO;EH76L-6)CzdhqwhQP5gIKdgrc|) zm1WSH3uLCDl%@x|&ITe|3=JFYqdYv|Iidk{I2$uo_kkibp*R-?^@QKQq6d$H z0N?lhN(f;-LBse<9i_v=hY!Pz8#hqbwFO{zyWQDzI(-I!J3czv%V!x7Q>+~f5`Euc zyIH{)1Emz!XOCcZYZOJvM-uwIN@Ng9M>Qe+x-$rUPcL}W!}JE;^l;9=^@ckE+A9sX ze2(E%67Uwb+fhc02m_rb(C?`Wjg9JY-aW(}-$Bcq-$+ABVGPm=A)w!N=zEKzJi@Wf zuv15g+U(GA7EOTlEyZG+Xt1&T*BZr9TpX0rvF zW(((RntSg&aR>9o0wOPvWjf{9h&Z-ke;?>a#m`5j03R&^i)O90MBZr|>{csmR~Oh` zougS@pldcTZ3Ejh2+9Fd0h9u88bD6j4M8J#N&B_vya+>P_K?lzS(xwOS>O#}5M+xW zdIVvJN`w{;1`r;~N_=>#aQ}3NB3Gyjjk;8r)fpDk42x-ry3#0e0yzk&;XKPzVo{8T z3ORr%qC+QTIWv4@4}u%lFg_p%myUT-#DY$*A*D!ku2kTR@)APj2%ZxCjHLn?Jm46e zM&V9CZyk&Y=$Y&39Cw(O_o6-?fT)9XF}5|x)KwBWr~|fZY%d={Na`x7)2oqJH8!gY zoIm&wyJih*43mQdq#oQ%H3jX!1fC=e%s3Zu$$=!^=d(i%!@9`VJ1 z7uyr9%RNzdx=aTS@?uy-?9QnUjCPk&V0mx|De1~zJ+NqDk#rEu0f!n!-hL3Mk$ z#>O2Si>N!(VP|$!gx3NA1#0ye=hj63HfuT+1$_mM3KZI-RgYlQDWuA&bFiKX)*gLB zD6Gr#Q{+X7s-EKE$Mx7o%N+EzpOOE{XZU}OU;Y=wh z&l60b?^<-b2D{A_wpW+fTwP$dzC^cOQz7ho1aC;T0YGU1nMIwdBWqabNum5s4ve%m* zP;uWU6ri+3?gFeI@=tuqUjYnvn$``HDbiz7LA9PbOv}ffp4~o{3x$h2(4dl@(|eD; zYZ2N8VReZB&;xF_feHaiNdzVLbg0)|WdmiLz6vskJzJ$`C5U$xA@nd2dnQ3PRHdLb z6-b?Sl~gR1QvA9NBbxqr(h$Sf$~kymK|}^;%-UiNW6~-1eSg8?ZVLbpA3pq4Me#Ft zi~zv1y9*(>%gf6L>}&MP#S&WS&0eMbFLyombH1 z3|cC*>joDO?xSzpM0*MFiB3WVS@HExB)ShptIGY*toViYj$XXNLrcl2g;7GFFfDUD zTyOAT^C1@H2`@H>k<&VZUDu#9EnINPlBk%F?SrEt%nt{MxGMn^6oN9?%8#-2cOg`Z zs?ce4@H|HKju!i!H88skx@L>Zi&H#&a1Zaj^EQ6;>W}a*fAcH&?ce=ZSRUQR)kTZb zvn#Au7nm)NFqth8q+}o~?>Suu(;2kw7Q4*~+lzB-uFlb{FVQy}n7)BCJ%Y6?9ww=a z;HxV3f|ewNB7wTt8=Z%_UGmr8*&a4*;C5Hw*XqauHnP!0T06%1)Pkq)040E+nBpGA z_L)XeC{$IB$s|Wr7by5(P*xd=OhIb_#R- zQjrX@7l#A}28ae8;K(V$olPd=>qsU6cL;!UDrxqjd(ryfAxwU=hNr%b>w;$plnXC%$aGvs*zm1&NGQ0yR!!g98II*PnVs}X*cC?#=tcnBecmr`Q4+nov_ zdZm1qlo5UrLe#N3g{)Wc!B zT4A@{BF{<`lUb79=%U8#_!bsNHxT*;>+^@$ZP#>NiLwvo3`TrY)Vm>Jmjr^45Kzp) zqKLA1h0&3PvkT^|wCEn0L!(1ggvQfE1h-+4~|UnvA$q*?1=dJ^l$gBz_r zXrh=emR_+_X1!iN1chKZKD^*p(J?0cn6=glA^LaUefPr%n}>6F5uwAL_eARicT zG!6;x0i5CL@)DET0$DkQkQr1_55mQG3;gb=v6xVR^! z?7a7Ov)TO0I>rFN=Xvfd1u+|A%+`Cql2R@wlZl^Br*gfzg0~jN7n$-e5u zK8-KdSY%_|WeD(&uaL}6oa7qoyu;niJE-*%rJSPgcl?s3MSZSwUef2R}!!J%a6+M&coZV@QG+Lf=Ceajrm%bTRrGU89{Kb`N1d*$<=^ zzn>!KJ$#5+FMb$-#V{W4kInS4WlEyR6{TvV7%OH^f!ve3xr zJw!KR&I_0)sO!QC-pI=c?BsnlX)am(A)_Fg)WnrJkvP@B%E_l zQo>~&F5Jg}b2!n*DC;Riu&`zaZ#qcV(@`Rj+)Ae6NCysyAq_2r09OWBzFI;6d8Sa6 z8o5@~L1Ya~3v?#(AR`$jzIZ(?#<>v2uj!b17_NmH;abOly?h-&5?UCEwHyupo=895 zyHr4jf-4i4K`VhGqigfD&TudnnM9^YUzcYJTG2IBYsFspKsrKW z5d=eGdEXT^hY_6H8#^3e0u{d?6ujiGO>n6=AjBLWDvVyz#3EViHwaw0gY?7WO=6F& zH=<1gLhh&e5ome%g1eX%E%x7jV+mGF)uYt~9UYZo-Kp?!Qu3OB#{LW%x$|lNB{HxvbuZsu6^;(|7`j8TR$zgn>9>NG@ED%T3=n_ z>hcmeID|7jE*{>+=KN#y%@!dzzUWGB&G+|C$ssb96@<}vllEAH)=9eINgMo_M~w6W zPy0(qRE5TD8t~xk9Nq2`C;0&cB$}>Emp}nvR!=dj=TJhT>w7d!gVkmOEj3P#jxn9h zkf{p0zQcoyH8#5r)3QKaWDuHC@Zc?Xiwte$?omMVxZ={st9*dc9<>OVPjVa|R5)Bz zSk5XGMFuNtY7~?rn(1rkG?I+kEMT$FcjT`RzQ>FP2uU;`#2l3XB^bscflN`ZP29_C zNew|9p{?^MjDYi+;$&TbwN#j5F}2nc5ZMJ7UPpPacn=zpU?Pq9$$mO=dw4O}{34y* zIm#aLJ__HN+Af%*z~1s(kKOTK{pPpMpMCaALT6csWAtXT`8xm`Yi(zYF&}>TVfZWs z?jKVa{cg82Qp&dLy3HT|@gM(hfAmLxG(9*t__~y`$nzXeKmD|R^2sMRckkXkfBD51 z4u1C2H>&Ms1=IEL!J})pc=*wKxH`QL*KE*kFA!`G;T;`ShHC&qywtJh8Y2!{vOV#O zMueDLDMr{N0Z5hlcQJxr`WT$WPkpHf$B~h0dsyxG_F0oilP)(-LSqbX})?0(iO^3^MkE?Bui?zjS z+oNe|&t%;ILzQ9xoQg0)NMXD;WV>M0A|~{hAC2W9<)8?7XbGrHLSz{-2^5(`&0}(1 zYE-4hq{=Xz&;g~c_@Z3o(3-v~z z-pcgvlIzD)@r?ht2-ipjkN37=2)J^i&M+QbBJ?+kxKD21abNr9x6i-u?6XoS4Jl>d zPO(2bJA3g@|MXA)SLfWyIk)TkzE817pYk7p&;E}Bpq_c=nKIAwdNP^Jvn)G&^2sNk z`07```ad2W9sL_AWf7I@)>_=Vcdz@wi+{d+_or`8cH0%4b0~@$N=d*wct?i;1-i~< zI(7+i5Nk`MkR>IM&`gN~8K2xzri(Qo5``o97^e`@8$Ck!NM`!i9jg>(QGY9s>1bj(R#Lt6x3G!SV=2S*9$Iu5GYcU*huoV>Igv z+&DVI(R>Mbix3Qdo)m|mm4J@cEENw=^f}YV=8y}IN#;>yz+zJ1U@^gLHbGgIsHz-A zPU6}i0AmBzTZ45&h4OsWVzn{2Sa;a$EOs3gOV8vR!QMET1lc2zulFNj3c*R^crDob zD@A~o0l5YWh;o<&a!T@>A!$*tm2Jp&7GfBqhYM*KyMht*KSngf)Wcx&{iCvc;b?nT?4jM_JZ6A+aAvLESX~3jt`u_ zJ>;k)=Tq#SxoFwAmf-(}c9@R4NzY&VIC^_}*!VCMQ9sCyT;vsucA(U0#txD6$l!u_ z^RYYjYv26N+2@~mMr)k~IYdgBM~@!;v>TWGo{qx=FOWozwwQ4{D+%2Z~hx8WjQvj-@kvqeffp| zd-?9qelqRaj_v}T{CLdHbsRO|$4(}ak76_sKvMT~Kccg@jf=^Yp_ zu%F8ur$L%8=^{n~aX?D)n>rt`?K)g-*4XVDVgw3FKGkXhtus{hlzv`MQB_lDou$M< zdiC?p&^z?)7P;2QwWiCoH`FakPenk|n^9>&@{^3vT|~zouxr7Qn9WWI?Hv_W4kl_qNmImfdT)P@b~FT z>YxOWDIm)v3N29P0!1c~X9Bqf{m2yU2Q&UWA}$LXj^(W#ree4p{DWrwy zu-qSEM&dN!JlP*D!yYWP$mAdyCFRlnF-|GNC>kHI0R%TmI!18Vl^9a^Vkar17Ecn* zJ!Sx<)rA!4z!k6g1Ej<6MGxAfFctie0>p}QlIIomHiOKW&1+sDG_q9u|?bCwzPmj0U%B$J?q1FBXTPHx{Z zU;oy3&p!W!XS8Mq4L_*NqeqYa>V+3x_>=eFfBz%r+*Jr+z1?nCZQJggbKU#zzi+uH zhF@i2Oov1O`snB=Q%Y4wM@N+qVp3JrG|RHt$;ru$=bn4+Kb)ML{GL*(8W+e15AL_G z{NTmKdq4ZxY`0yZ-)-5i$!2qxAdVn<;$1URH!C6Be>oQ;&47E-<$ ztV0so4xu{amPy&RGNUJ#B0s2565D2n)AL7IZ#F3l<>2rJ9)J8PRMiyL8W_{l$E7s1 z(kQA5Wi>%nS18L0MP5Q8z_vTsZbzPO*R!l8kghUV$k0P7lBp;uptOY2lwT}IU9>Sh zt}Zs{+8#;>l(|BklOtr3OH`%Cv{J}(g|f_0W(s+s>5##Dte#=6O>3~;Qc+wrJ+_U( zx?x6PM~4l^U4;k%nGDFZK&C*Qp8|?pp~!$Tm-Kh#3W{Lud@v!!fRfQ2qWF96)6$*u z6Ox{9IQWRfYJ^a%?hu3gg;yg{3^+!pS?lQIXDc3jNb;|^XC8LVNK|T-UUQO)wIq6c zibIHA;6#gw=QG8{Rt{iSA@)clE~OHT#M2{)>mbn?`Q4-2n&i3%G zhj(@)nF@R6f}vX+I0w#=zB6(?W0phgw2iYV7sq)D^mLvqj-4Ztku}sE_AEd*&XMef z>D;syQ9Kc8oZNoGeC@gKJbL<>XEUv}xLy$d{LlaV|9JoX_dn|Ue(k+qcU`w_+qS*B zy4szepZ5Shb5Z=KD2(IIQ31&2^Lc)Bbd+nYCtB;OuIovj=hNfks#MDIXU@# zrBppq+=mAb9<;B#^uqk@H(y&cn-!cf$xcT&yZA;@G+t_jTxm!xc(hV1&ymRmBje>z zN!s7>erP~Djb4!81Bg^9)|D=O8H7~mt;Kq~!LDlo098H1YspcJ6BJc#Vz^35IYyGj)WxAl ziV=t)k%A-($K#*H+C|C7I`88SnLW@chuH7sBs=F*D3)Xqxl#kJE*4L4jDb{Y01YRQ z#0ZqZ6N?Z!3EKhoZKtrS{i5f?5C(-ki1B_(@!dhr>CcX{lW_`eE)+FKDcL$S$AExZklG-_kH7>>p%SP!){a% zKXXz1rz(u&;us60p3mp`!NEaZ6h)1yi+?tM z>x~~T+GdkHs*-0V$(KN_Br>IuXPRM}^hB4uq?L%Bq+p!?@W1gJ9~=+STnweo0jY;4 zCIs59!)Ck2uH6AbVlrJ~u{_3Pwx9!t&R8(K!^PPnoS#30vkr@cLp*lpDIDFng-mCF z57ar9CCajf&Qvn*D;|phFeh9y1J)%bKJHpZgacIY}oLgo?T z-=%#a=m;VNgm91{Aj<@D&4p4+lp4^A9}|*~`v`D>c6Q*7Cx92`F3NI(;LVszM$G;VsnHitc(+!)V4$T$Q8BKCyW0;A50k9S-^ zNi!JWt>?Y-P^{x?D2~5-IXENIgiNj=z*8s;q*RE(8dAtai-{%Fd%l>5{T$}_ci1qn z2IC0tM_pj}gmF2f?>p^V5r40@aMmDrLt$8aL~?$_*c=kxlV;Jy4n8@0d`c3u4D;=r zhqI9qPhxt*9eT%dAd_~Fk%)NW};x5sTjxFIIThRU~{~33Wk~_%klM3X)!NHB^ zpMU;4w{G3~>L(S*S6+Hy_SPFeT6Vi8ebYsVl8^XQSG0d*p{G)`4^mQbjxrTPr8p)t zfUlX7#tfFN2&IwbC0vmB=)rxgn>Ccqp*49pr?WXGlR2`S*mqf84naL^|JrTWXqpX7 z-(l0N;ho39;V~Y2{7D=vkD(P2t;?!JrW7P(D)d5tc4&%rs@_{T)4+BOY`2BC9YP?G zgA|^-nP}XnK>6LSL)(&FN`x@zJ%i^Lx98M5q~l2RnNTQIARny)GD(-!T$8t#x^@pG zLLxh7al99UWJF+)n<%Oc&?@Tm{C+B3K(hFayDxGp#e)Oy>;&!i1PgqJ&M#UPMS@Z! zkG>%BQ!*_^k#r;q`9P5lVF-_xBQ|4_0EIzgD7XWUWFAVMq(YHtnF@SzSV;xXRCRGp z$exNQ1RsG0d!cuJk2{Dk5U&G^xX8av@}q$^~@nP3CX^fJrUy$rtP?9>HjENmeQH-io z8bJgo9%o_~5(0NDQV|wPC`e8gytq0=*KX-4uQVpp156f2sOlLZ(6nZKo`BRE-aBko zm)NY%0R(8BBS63yht+xo?;W0e>S^40{BuxJ!8^jFHwK+MU#v5iE_@D}~< z3jJ;cZ+F~LngnpZ031U>%u z)bx;}%JAqfBf3nI2pQ~#iK6Wxqi7s2AyVh)`1m2yo^b?wj(+JBRyDwX!-!*;@=*ej z(w(&_Lcuyimbz#;^#c+vJ#^w;*2f1#NJJYC;!C=~MVH|f9gDHF`!_udEpfP&~pSLg6gUBvLuRUqrS zo@7}zTPzlb-~RTu|M1qWTmQY*dO9wU4F2L!{MIwZUK zBn{`v)m;{hoi8x);?4@!Y7Vwl`9o%0nw?$DMfto?WoVVb^hmQj2U%!c?&&1I`>JVs z!h;Fp$ZHu^KJfd!Ys^~~R9GCeM_J_k;x>XSI%1Fd!&V+BD8wii4MV+dq@xc+)-4wAA zwCbRNbw?YDTOGcRjZV!rX0|ec$`pRBM?@?a`G|pEbO75Ju|zu8z;Uwd?ID`!75?zC zsm{`81RoC{=O>5Whn!hfzX!(on;;KAzgPEv#(M`;an|mhdN!KuIv+Ig292aXJh^W`=!+x(bumQA|zN8eNIwL11_w03RH?1P?`Cxv#$0kXX6IZs5O_LF=1QvN+ z%o_ePawK0!GP1li;P_Z=%%ozNek7!EqlHlU1&3H$Spla&8KZ6Gj4oNy4%4M1*5?PZ!aNG&E1!CqIbJ%Z3wDu~5ZZ8tMe2FQgIm=#h zZVWUD*-X2mb#c}SGfxH|ZwedXF}p_jZm8EpTm{!I$9*4^Zon3|Oo$?bHGz1Y-~ZXt zfk-Z~pUc+L1<|%K&Zf?$|I8_lH7G_^Nwo8lFZ@GXY9`Pc?$|aV7A>M(JxH=dS;uS} z@HqPJAQ|0!piL%+HRhCIIthA!S2|Unq&)15Gd9Zc`X(2}n2QgET_6^& z^gdRf3;WzE^s=`bVzRQZ82TQTq`mIsxUWB0vWEALf4|Q_-fg3!u-M`XKADYzetGZJR^?ZxA$Nz{rC`pqeY3H`IEQ4Juj>!pscJar40Ea{Hu zBb~(6Fr^TP22_zCHlIuWR1ZB~lCN06fetcpS}JAOPE$V%B(!lLvqvYBl2aF(p&J+$ zW;4~dUBKG^_JofjY`v$GXvlA?Z3LR>C_kw87X9ERCJ!IoCPs40abz3rYxv0=TM|^A zbkU*gVEy&S~~03gK?YrCUKIo;&()|d3lP(Aaub*=@Uhi4#`GY1Efb` zUFlFwO}5q>PQ zsvkvRs#;_MFaHs7yD1LL4EH@0J08XdIlS^6%n0^JVO7bqDq>w#nI|#CQdiTrU)V;( zK7-*3!F__gFFS)C9?0dhF@nSQ-c?1Ea>>SU7Q!?5Nnl>q@1+^DIGlK3%d1~7c4E>Mb%0~9t57wDppA@5N>TBBKdr`H6x3il$xWL9$Oi+JGu+?8=T zG?fdF^JbGPyuxh%B>u}!%^Z_MLTfIa`1ki1+MbXk+MWQw&^%SuHl0!v%w2xhmr86@ zO*a#!yCK*>+Im7=zY0i}uIea^xk|=g3^a4?IyS~<24XdR;T=dP+@gr0Ko4K|PKl=< zxflJpi7!&21k)-?EpSI*j!kTYqC7mah6+a-%QK0E+X|E2r5&QaSi%JdNR~v`DK(pZ!>p!eAs+#U*t2qp+N3VJtES zF)fjIM+)|sJfa2RFnZ#!W}XO1X2s!@9C2OT%6Q*+$R~uu4C+IjKRH^cu|0XQWzhQ( z5*hjmMJnDweKQ|t1XF+C$M5h6hxxgFrQ#d*qSzQDwsLxrRZI)36un>Q74_XyFan}m z=`h^I<>h6V=zTv%&)b5YLpN^^$D1~C;ak%*?3+JRbY2ITp@hcOfYj%%6IlKbL7RII zQ+;EC+3S^^mv{bpnUdD9`1b1Hz;ENRg@i<2ik)MWj6HbrLyjj&TYZPRU8A8eXaQMQ z3w#XiDW)%qNHCw>_&E!0Aq}Hmq%&^s(sb#Tp`$8{u$J^WNA0KpjEq$7yz>CNy9K|; zd-mr5&}$vxWj7$o|HcUUDu`m~#b^3QNP<771iE{*j{yDQNH1ttfWT2aUlm^jt7Q!l ziM?y{z)48nV29}w?@TKaPj(W|55)8)tZ=Gw5VT?!w= z?&fgOd(29Y28El6#FV!D=IXO3k65kJa!QeKy3wZW-dXZ2l=ZtY@B zbIbWtk01bTESbZ5(L*mt^~stSG&MD63+ZSyHHn1)oH`|ZG5CH1*aXB5`&B*g`S|U* z!S8gww|%z?hh7B%e;J8BxUhm@F6l#s*H>!}nK626dFvxLm#P zGNMw8RkN}Aald&lm|7&K;&(}H zv>bH6*PMUz;14!NJ15g?fNq%mdccvLfHk&ilD|eppzv3p%a>vc)&gI^lHY3j@{9iJX7~pcso05u0XX9%s|;>OB+I^NPDx(TBiwO7J+nngSp|6O1cfVhHZamq7mQJS8 zfT}fD%;m`wzjD7C)HfEHCj4$Zfm zA5U#Lv1}1(z!QeC5f)I!2w(qI8%kz8b3xlNh<)_1^$ZaE>xXGQmnjd;0Q85u$Z3;! zb_JkD?0;6%$i&#ll(pk2QVF~iz-auhuJYcVd7BmxwxQbrQtxG7+mFo9`^JI9eG=(h ze|%%UBVf|WtX(=cC4IsoeG>OuB!R9W*$a@b@R)k*YvzK+n{vF&tHl7h?$Iu0#)lDy7h1#A;+roo}Eua_`oOHAfiKDk0bL5Z>h_A^ls&n-S z_h8;-;lK_4JXNIdSA`76XuRl8*7L=j)m~RwvYZBs^dvS?iR{PX=Hf8*$CWTxXHEHr zF52QlD78z~AmpyC5IKg_pb{lYA6;mnkau>gWu^+U8QURkgwgC2hakB#EG*Ri#+kJX zkwx#`w4yEq}N;7Z*T@f8B16DOW93PW=_*J3z z;|VUsa0J^p6WwVDWiTQ(_lEQO;nSz{mt6JFGji^3iVvl$;%0J8oi4G~D}! zYe6$YCV-My7~jO>!E3vlk0k5+4Vo>H79uyg;(HLo^0i=ED!zFoewW{@8rLtHXN)vD zSF0+rd6#LqjY6`6Gj)hb-d%_zI<{1x2Kf&!LfPfRpPBukf{4*>Fs>l9#y;`k>fh1` zb)#yssNeKmA4d+7V9PqRwNP28DoKBx}Cfkba`B;+ng3V z+jr1K^1r8m6M8m-y4VLr`@aXfb*^dEF4}N{TOid10I~97u{)mP9nFq%1mXuC@2!JR zZ60SQ4Varl@=OOq5ee$GE2i4#nyoes+4vd za+{ozTZy1Qo}M+ps+1%ivpf2Z1Mebp!edD#a6VQNBn@ggPMMs2BNEVLaz$2+zy%@A z;dG3BmB#hCJ3;B~ZuI&|Dau3c=kk1i;otjZ^ZSTD9H!mRmb)al!MyiuukIkLOQESV z_)(@Gj{xDhb;YPv-`$ni*FVL&UjiW$!Yu7P`(SiCrVPYUJl95DNi~R0(HIU@G^AQm6g=2 zF8n*_rG`PgD`Q++c8N-!hQUA@A>7ZL)3C6KY-O}zU^e3e*}v)0@5N=|j4_4o|A0P2 zP@9tv7~*-Tw&7)Z9T`xH`OD?ClsU3>Zj%4X(AlGgpalVK?*y4D$ zHIskUBiC6NsJ(a%w`oXq`7wta67F2({F$9PBF(s-ypwitdnE2H7itCmZ@$TuRYxdCP40?2}QmcB!{SKC&o15GFXy<9O2n8=q1~W3rEm`fr z6b;>$J>WA6$U!U&arpD7BD!uT+NlCbaz`0bnBjMa0N&s0Qn$sw%9Ex>X}`r z1gl@&fn`THFIb{!5SCo&PEzT;2~IAtTypFssoa+HE5Q*hsLNNYdrGKTizU6iLo{vYq0g6Wuj4GV)DT;quK`!vR6%Zq1RD9Rdn7>T zIKK%Uz9bmxhO=`{n7DF@ha7B$c7?~%*<*9=KuZE?cao&1whlNr``zw*aWGxz_de>H&&6#-T!syl0Tb=ux3wsX^7EK72_^f4YvHiuiLQGq6!I~bcUo& zzei)bjd|zay_dus`Qh35LsK@4r9$$F3LWUFco`$+eE}%e+I$Qx$U@f8poepdaB6ek zjfa}M%!~azysjKvgiI@&cnq=X`Ziy^;AKoU`H*f6U4clLaps};%tk4AN6ql9n0R~l zD6jSiXTOb&dU;Cen2UWc#XY+@PVsEi+Mv{5NOw}hw<>#fZ0k6M?}X39DaNueZf*dX{)o|nT#7dm<~f}4Gkbtp{PQ{J za#^!d>-5K!kE#IzKPM+ApZ8wX%fVLIkM8DS0R%TTvbcr;Q82@311iK5J;#vrQDWd1 zF~Qf5wFtUjsbW>IlIM)0#eB^w;p72P;Cy}23ho%tpPYd$s@RD|0&3i11D6)b@6@n~ z2W^o`rLF|$D&%Xs#eFnw;NHm{1v7W0zNaGS9_B6B!{r++4+;}YSy``&B?jJK=V}trqLst_Z=Sz*J^r*0W zqvZ87DRA+wQYXnslfhT$o%yCAGu{o1UUc#Z3-EN+p@BDSbj;YeNNGXhWcOF{*aag) zceQOTHs?P$f23}Ro}VFI01XDBt~;X%qCU6FmK(p113Xxvwl~n?)yDlQ=Z|{-en$}m z_6u~^&RaA05Ry&h2-~n`KN&9@doeUpubeIk2Xo}1UUtFd*yDM1i?qPGbpWoJ?1x@{ zN-4JjI2E|fQ!pi{C1+&uaxTb<98>&$Zla1+ z3YBOb9LC+*`$6lOA13fUNLU*P%7FlwQ4ZisH4xm)B+6s!}Km>&VV72GJSxNgP~8U7>|9+_ou zcB_4*BtTgDt{o*@xl&^Dp0jqw-L<0_cUUFKggh`2nua1`jNfrYfG$FVUI78-ygwCP z-Cka%bqIW6Om|>0-5JloVpP9(R3ps#lSQ}1C*8p0+LzT~z033RAIbQ_yW!)UQtjG0EHV20E50zh&g_0N`5{iFtY_|5SQ)Fxi zMy6FyX0ln5T`J9psWdH$*{~W;>Q{?%cXCbwnyq0!LRG8~7HF-&rr>w2+*c0wCx^UO zGZ#ao@SK0xe=qcyt@?3WeKnW*7vp`d&K7Y3tz?hzBW4nz0{sV4{g;CjOTR0%c8`n1 zf=6JGxoo`5yS5U*k0p6PE)zUf+T+Tn|ONF3o`<8 zfD7Q{b3f8>JQ|EJUs%Bfb!Tv76UB^?al$LwlkxI5bs8MFh2^gvi>0=zMh@hVBg^5T zRURHJLTg?sW`*%h85XSbtNY{iLt0cIE-AdkUrQ`Lf;g z*-itOsVeN>)k?ARVKciDIaP)Te$=p8>(64-&$xtx=nhkgWlaW;o6?II%+$)EpDH>E zkA!Pw!l-SiePa~AgKdH(aN85_rd<}=5hX^7A#8*hY z%+^{3^EUQzSs-(@iD|GN=axNBXPw*s_yL>6TBBao)ZJod7P!IKn3xoGb@jK)FJbWb zZ=s-nIjQK&C}mvNoPBHB8eII)gY&+{M^e!qp}{3wXyHx>;jiI<=?`?w;~z3qjx zo$A3<3M9dDaQSkj61?rnW&^V%VRPbW-#j9B@`3 z3hV+UBq=|5kt`cqD|ifz8i@sOjwH4Dt6c4#i@6lCn!L^|Ci{-W@NO`LxHI>Tvgm3b zROoDf1c(-g-JWl}Jq`{IGUHk}AFo&Iwf>F+ZHY2t)I$yDu>o|k7v%W$Uo*?jO0$iT zRqN{AhOn4nmxtrt@A6p%(-4-1f^_Q7(FMj3xQvB(b9hKKkBhfN{64V?Jlr_MBthtJ zQyJ>#YAe3$(eR`y%6O$XskNQ&L+-Q>`GJzV>>ghhO0npna<5}!LHT?2G<*1T=Cm}- zrn34DyR&GA+f+&>qcz$wE`iS-&wI)>iO8%o2Fwdh0S%>uiaQDd*c!%FW<&RvZR5Ul zRU?)5u|8pv-ttsm6wURUMH?fnqRKrnj}pn?<#R*mCkh_%p@lUoEsX!5vCH}AufH&{ z>GR5i-oehtn$$@!q&0kgVag6J{Hu~ojV*-~eC^E+hdpaXOtSWOFvU*LZD=zg;Uh6- zb@O}e8hy{ZzCaiR8d}CH~IFE=n*4i68HM?@f@yyYjB!{eWe1^jNdSzG{q zdS(t?NWQ`BoSfKtUVINdyt15RMrXghV5XMqs|M3c6d+yxl8ffJI&@&&S!C;352fDK1>(J4aul$OCS@NXn#B~f$2)lM_QgmY-wCqSY`DOb?hqW|mxg^6};n~|VHE6WTXZkkL?=5f=wa%~|h8PwR00xn^~fYMA7pF zV}Be<`@PXqfZXz=qe+WI;Sf1t%*#aaMKV@0$LsV>R;~TYWz)&c6F&?ED4_Xv4-d#+ z7XFFCXziEit|QAdpOH^bVzE2U(p3*f2<-j9gBUf9{#K@XOfmoNW&`i+fg zX=vmV*SG?fK-+JqWMN@pG3=#7pbT@})_LojWHkwZw_0lYH1JisW9@8QKu#SywA90h*pgh?@1pxrOXLK?;XyFg*d~dd6Ueh8gi## z|FcrT^PU)D*=L^E7cLpwN7PW%B89R*vY>VPXa>15QRsh^l%b?4_1OmIO|izC+7=;S zH1w(P-X{qkF37TyGc@iuk>IuYFRNRkmaKc2_P~cpl?z*Pk&$}3@gBB){aizKOT9t68AMrSf$}2yJ!k=RC z0J@Dg=5MTt+f-6=sbUE0UNc7#RI}yjmf2)Uv{}0>f!@k{3^(FC`I>HCA(AtQ->U1O z6QxxL1ytr2_f?#iG&G^)>$Af|Qkjy;Lo&Y+?gddPB?)apX~bgn=QXyNL`rI@??>fh zYC*0{2g`}H{pB*rH3LPE24b`#G`14iK(e{}AP%L%?7YJWw)%C-2sMFpX8F2>vQ?Au z?i~Wd=mAF3)w-KU(_Z$+pUaV8ph35O;p10Kn(F3Rz^ij6B_&De zrVicTd#shr{PRt3_yK0bJ8PhJpgRzakk|eh3Y=)#{bYaZ!etznh@Pf3C`$GaKx8*L6{q0Kr?E*$K@b?^8oKPn7W|}fNf7+a zjFm~DU*(T=A`F((Vh)c!4J)`*ON`34jeT1C`!POLa%qd;oceHpD^?-=Lc;hd+&fFA zMI;wJB^*T6fGDVJ8Re!T??TtqCG$DT)KICrNat^#U_taMxAXSyks~~|4`-V)i!by`75zi+)qA4#C z*Pg$5=frR(bQ!X_*q5OBwJ6GJsswnZi+8G2(=O1oEjOCpC(tq_8G2*EN zZs<8?urvC^66r{cKO!reG!5wcb1MX6!zmUgGO4b?cvf&Gdr?^jU3 zciynJm1Z~{G{e6y@^HU>p$=sG9Gu+En8Gsw5wr<{Nsi-V$w5q<@m4UprR-y2V#%O{ zGMQT>=bJAKsR)KeW7g7CG1$#F3F-TT&tCEe7X?n0#o>)QS4&?b14{}$yMnb|t>BzvF+`Mq0`@tMS1%(8*RYHwT#OI`o+l%S8TygIE`$1y3D zq(85Ow41+#@$vI}K0H5M`SSrT6k)Pm4qnpc^ki^Q@Z-oE(S`<2A#sgFg_OvNJp~u6;`Rr{bskPt1N#1$T)&WDD{cVT02lSx;8U`xAISAj!&Hy!;$Xx)Jsr zxm(bo>Y0djjz1ZDhPvsjGML2(&HN(Frni#BLlETwt+pIa661$bJ^7r)*lb6stlHSXc-#TtW7YoM*~jYmkR3mwGur2&o3PL49MFFL$B1+M&shikVF7O|k_e;9OW_Xa}(?2syDTxOgIpOf) zMiiiHnnNjN>6;AQwILpK$u0e6 zF&$(45L-MBozN5+ZySvGP1Aw1_Uyz(j7<$T=r@kiBn5>w>`lzoIll~<>`$*r^@Ct% z6>K={U@ZB4wKQi?hB#&N0-F$rzt{Hr)!{S$FH%47VYtE9rlzK(xqOaW82eLsZxj5y zo85U^LG(6ux~b-l`;)}0|D8nZIb(1!G>Bh7z`B9y#|N?$wNtIic~0O&0G4Vi!!p;? z)y2hS+W>^L;rDcUUoZOB?t8o!Q$p7pxUz;Wp^=gt{{b#zjBJVvY3PEbJR&fqImCt> z+Kqo(L{Y3cp39H?o*_BKKBs}EzMR%g=2GTrr2Ld!SeT`(BUCywaYGE@yK9g`8Aq2{vpXS;5A3k{ndW+d#E0$ zZ%%!v*07z!@8s|1bLX*kswZg(28m=iQhwVi6)ypYT^~N2wAHAy+jKl-Ff@*&op}l- zI1xj@+^Ec=cbsI@(IS!YV*yPb`54-J;*%(gR;3yKAVp1(K2GGFIMj`84grG1ZD+cc zSNR-Kma*&pPLDM>H4}nIy`gJW5eoTfL-j-{?=BfrAT1YLOeU?YC3H@#qwE=$`=nVH z=c$7F#n-Lb7y;U_nk$;6&B1!$z4DrFhpneV8O@jm>6hETn*+7J00=WmHs|LCx_gLC zpV`4?Y9&yEK-wrAkS*%pQ=<&fzaKl-&In8&e*mGR0bnq+@mLMJ&_E3WV86Syn}{NR z5wjYCAF+ZFot z8w{blUl|OUzua*~G?5p^#JME#NY0U_qQk?54s`^S^P%g#wXrG6B0&h-95xfj(DYiA zm~=asEZK@vme&Ceajrlj%<$>*2dh83F9RAI&y+txJQipoky^p2+BJ3G6Ih+#4yo2s zMw~WkFdN$f7@MB1&(npc;^A7|%YTPs2-Rt0pLKm-hVXuL-Equ2CF&y_>r(GPl3w3^ zIGw=%g&cuDG{y$~%Wbs&*=4{CEH_L338!{4(mq}@)}$JqTYQEB*(5`q4?d(qU!iUt z^RsKsE?MMbR1;*3d^i)>usqGIb=IfjnNU8J@g`D;t2YeBfenZRw~Cv6C+1fsf)m!s z#8klh>{}zC86>k{NUzlT5iKf>B~QQiVJt!_DsAVcI15wUb9*=@$)WpZ;k@_dcD0gy zcnnBF4*QMSUKA=YJ_po$zS0Do+;}~Vj>v;;bLh4Dpn%fb` z^J?$s;awbwW}4_rZHb6SMwK&r{2RW5bB312i}ja8E@T@isT9QlMi*>oMKmfYrQURl z(YgGvEeEE`wB!RAO$@ZT$Oda0o>zG7#svnMV{$b5oGhWa6O6JaYvE8qSCu5m&-RrJ z?7Io2q5%x9`dh6=Uw9S&FhH54E|*%?CpI;uKL3#XCfTA@M6GIrrjWKKTL0-sOL=G% zuBCkW^$Q9)sy#pqpZw_$e)9y<^JCz9_WmlnjFSIh|L;4_+!?K*#Wz{I3*>y%lV6@{ zsN&_|;CKV(D?O~18_We$)Vc}4k$SE6N_hf~`aWKV1Lo_3AG&Ih%fHPb$q@wGXQC$g zIF$eb7LJx!iD)XuT-3KEtn&LnujdZQ_Oeu=G z$$Q}ZI^=|6RcXSuxBe9O1&4Kk?ms=Dp2V2lcZ~pJD=K~iwSgzaF69~CJ1UX_kDs-F z{=z>>Ae&iGK+eg*k!Y^FFb!!H%=x&8KYM=TRRn}B?~6bL5)UnUZViOdh>MGiyExL| zI99*9InS~-J9Jh{_GR>#;&}nn={9(Y94^S_HD0@r!j>7mSb&yE>|a9N9f+5Em6oTf z@CJ}VQ3D4t8Yo@jTV%#@2N*W&pzyOC3N1rdb*ir>XvSb9HOM5K5H45D5u^bRVH z7WhU;zJ(N{o}`B-RM2NawOH6ug`sbdQ{Nm7Ca=ogikSGq8G~%A5?FIl3Mkh3-uFX; z{Z7F1g`fpfIp0t9fwf1f1%1d+>Fd?7bP?{WDHx&xEq=49CLU&UbR{Ns;@OY4s}38& zU;gw3Mnpuc&W#BT-9WWEY_tHm95vTw-9O*+MnHD+>z4`-@a~!+)u{^|cF~6xx(icR zJ|2L4%v3F;`N-3B0yOs_f>U}#SbYtuj+KN<=ECo0nF zb#o-_nagSxfJzuWrSOlw>>53V zD-WfoX)-hmuc zvS}sj5FQTbW)M+RmRA(3Cqg~;1=$E=qkDf5a-9b?V_BQ`?R*ewv41&5%W7Tn^Z$%a z2C*6W*KaO*3h1^e1IXBx4PQ~urc45HR>>C(6aDjQ3PCn$-*e&6Wd#6-CCz8Mp6j!a zyStO+tK<1f?cSwBm(=1m_Vb~Cyz1-3;pO#{Oj@#30>35sV|*$E2?QYrTgQl1wUguO zQGf|FoB!6sAe4zsm=D4dh($Xn;)4+C+_G^# z1vS{f=y66pEwc5h@@7iTuQ!3z`;yEjR2K& zjHqMG3LOF z!pAARcDWwtuAc#k=x$cS*Z73JLvZ6IJzK#{-To=vUKK_%dBn;qq!hbiYs?o@*{ zHn;6=$^~;R$d|z44K>_lG*Gka<1IT7LREWnQFjEqFS>$FtYIjN(=X5G-tlC#_q#k? zCFF5H%CXm8pdIWt{_--bEV}l#m*qh6isH-A#lZ`3f2LQ@uzp|t-;p&k**M-*s#zZ# zmgTM2Ic^VYKfb(!j z$^Y((-*?bM@R7EuVr?qJ>wT$GmLUlNffps&6ISDyF9qbW{mtc+U$tzlvkC}izz<=$ zSdF@I2mOr(Q>r&~Ygne?f5e%)v^JHRR!_f{`E?)PcEn^Atl6W$OIBdqKW+_0y*;dZ zpXY3e;OzgNo14>6C;bH+?{AxboT@fGkgA~Ctu!4b04e^fy_wk#d;Tx|OtKftJU@LR z-@DUk!Bz*?`p&^=T%z)MOuJA>l5F-_f^^ZO>N}t_4T)24BEdKk|Lj^knWB0%_pvqy zqkKdF*guWPLvg?#<|U!<-S$|5LYpZE&L>}GIXu_81PvAKW?+F>&_T4v5zvpUL=Sg# za=N@kAoZzx8%?0Je4PY>HY%a9ZEhYC_;ucp0DAPb!}VCpVWa28osyFB7zAbqLu>|i zr$mT}JkP5W^fopQ__dLSOi{VS3gK912{?)hQVLFgsW_7+@nya&1u+L=OJ*^sUPxyQ z{w5E=fFhE!76MyeU6BVlkFu?P7Y9}{hOW_*Yd|~v$%HF0Hglm8>b`ndjjJ)>MZkn2 z`>3Sk>vwyyy!bJj?;_CI90uMU=M#GU@GL3TTUu7L zLohR;X1qyz?w=d`6YkatdK_OM8`QXj!S)Hh!x7Q5KJjD28g|tC#3$n0 zC{9MuN8w6sfdc?u3np1aC4fmg!Q_-KOz<9T)6pklZ^t!}*Gp#W?{;^}9rr44rVFn& zE{p1(o}PZcbA34L&*!{1QBta0;z?lqybHY(x4<$7~p{y3k`LtxN#m3FK2QVxY)OaTrBkM&kC_vzsUox_xgD$3ly=iTZ zsQ)X%e&mD!{s7Z*xOLI>GL!Xy?GQA$1tLH&qD{_<+@-_ZBLib$(R=2H)vc~ zcvU+3Z$B{&xO7_kPYx|48UNB?6in> zdOrt-X+h&C4ngw9+aKLYT@(;wb}UAW0? z|5Xz9ta5uX$N;qzJeAL9==A0opgwO_ljy%|H^)O41LtlcJ=fE9?lm1^CPSYZ-dWT4 z<10Cl7?!dB?MHx>9&r*HhKp0DKOlTZX+Gd2d_5sDGR7azhT} zSOlDMaP@M>JN`ZlV>eCY*?3MDVUqt+HZ1v^E|FGmMnLI9gow&tW)QgeGdt=Gw?MFr zfAfO<)6L`~uR_$^v>kNO^(G2x##zOG;f6`VVW~*lgF9Mgp)5 zXgJz9bdjdxa!*_E0swTY!x~c@>4Wp_=0oFEb@LzLBP@x($xQ?4RC^xf?E)Zk@KRd$ z?ZwUQ81a-MKq5>N0q9T3pxtTrFChTgAO8j36m$N=>@0gwJz$@R zW*xMubm~{}IY}3{5hwZC{q|#p9k1*7{r7gB8<_e9Wnz5DciD%*J=Pth)+K#rAF4L$ z%70(Z#U4(>p+LKG$RLO1+ygOmT@ZlMq-CY0e(|Zk#|zBvcw{{N=s#!wMN|o>ON8>R zY$U7b3;<#G>}yp+nt7+L;BH16fhzdj>-50mN%@^jR3YZN;9sbh37mnd{FME=i-_vo zg|e2Z2||(!S8&rptnWWWOT_o(&mUv9Hq&amnTD(~;NmqOvUra@jncJMye**>TdGwaLJf7a#)c$=b(c=xi% zbD$gb7zi+iXE$CLa}v%Hh(t&6-#^i#T*Up0?(bSo`S(jR|KG2jApy*1t9Q3yn%aM|DKKbP_YiDeh>)cEGH?Z0Z`BX z{UK3>0L6lK*ktBv*UB|}%VB)V5}@v;l3H@Lj@Q`O7~H^w07%)iM7&z(`tKEGIfz|7 z!{mA3g^yiaT!26&%?kib5UZS5W0$5ZQLG)p49d#PYzXe}o0^Z4?hxN*?`0W0P!a{vGU literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bedroom/bedroom_medium.png b/data/themes/default/images/rooms/bedroom/bedroom_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..71707fb77ccafe19207c629b9933ddf7da9fad3e GIT binary patch literal 38380 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 Y7fRr3(1X-k1poj507*qoM6N<$g4HI{cmMzZ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bedroom/bedroom_medium_bloom.png b/data/themes/default/images/rooms/bedroom/bedroom_medium_bloom.png new file mode 100644 index 0000000000000000000000000000000000000000..994518b33b5daa9f6e06d580cdf1e1d090861d56 GIT binary patch literal 33195 zcmV*UKwH0wP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXW8 z3JeyM8I;5T0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z001BW zNkl#|8va5{IHF_TE*QxgugNBG$^avZ_hyfWZug)u^t+uFA^8it`s=0N>rd zyM1^2?)Kg7yW4lS?{44SzPo*Q`|kGL?YrCmKW_BhDfsixg_(VK_WszDO@H>%`|hOw zKP;3oMd+%HQ-Y1`Y z(mwa&9|ORThrfUN>8DrQdH3CS0RX@L^{>D7H-7lTAL2K^`OP=(#}{9GK>+YqfAv>i z`*#3%XL$0?H*WJ~x9@)+0KWf?=jS)S`OTkwjb4BKb?eUe@Or=f3cvc*_2+Nz`}Yn1 z@gMk)uldYdZ@p!q{I34?_S|3rsd&&Cyiwova!F0;Q{!#)= zW`>{s^ruvMQ!e4}O3zzxU0pQIyhxcE+c+s|fKA-80H{JjMJU%|s>#x7wKKJYU#2zce@F)hnN0PxBy zuMDs2?aBDxx41pFhsT$E;&eJ47SKa`c<4X#@PHDZy}P@!7cX9*K97rtulm>BZQHi1 z_wLu#zU*J$-y86I{QmdAlP6ECTT8?1^ZDGKKYjXi-0o+e;qjGMzD6K^gWvpS|K68h zereC1J+oMoSKoX7{JGr_`kTt_n{K^QdH3CSt$HBuzyH34Fx#Ijz-C52{pnBX-FM%m zFTVJK|NY zo@biZmDYKtX_{zSS6ZjZ7qzc!tm{hqI)2h#13=z30)Q=N0)Vt_gu6TBQV4fjdfQ6RUqtv)%gJx&k?816HVJOG!+1f1R@!7C_=N0N{VG z-vhF$t@ZlkY|FC5bFpOsrfD+Z0+A^e@CBv#cP9~(_`AQie{PzJozM0Az&y`}$45NY z=b?oj9!7<>ZIjLOX4^K~x~{e?i=9pWr=NbB0OYst?$YO~833CZ zPuoUY2+|fp0s!{_w!D!)+ZXozz5lg-)&&Rv?wUaO0!vg%p`0_Nl&JpRJcG?92Efch zz=ZlZ$9fe>G{veGVe*CVLczi$EHpkcP1E={OaKX!vQWkZA)*XGnTbRQIfGRR84w|= z&sCKYGE{_+0aB*nIVoi%C@YbKuN2=K1Pp*`2zLTViBy${h>!qQqW*gcdH*7=o?g8Y zNdE%NY(VMX1&Ti?N8BX)ciGqgff<{znyT4ES(VM$*aQWvY?jPWeEa?Lwp{^?*_hQ( zfchC_wPeW(Hn1kMP&k^@k|x_wpvsn1t-hy+&j9;#P06sX(5g_@s#aWmZ5xn841jJ# z3P6cg1)w6?N-37Jn8>JvaJit==Qv|3lbt)I1e}3TCg+0(G)?}!ZJTYHCZqV>bzKEO z`SQyzpGQE5&&iq zssaK`5E0siNnOZ9s23|2|-|Gf*CV28Nfu8h&d@qBB7L0VqzBvQeV_A7)B`; zE0GeAprpj6q`H4z$%u{OrbNV~M#QA#a$*E9h%Das&jAVkc_KBV#0jbz&lze)W=f_; z42F`wW&ox{Mn+`jzX+hIR@1BNplXx=^xLjCtKX07$4y2V9N!(yI^d`B_#>|7{d~dd z3++Cj3J{U0YQH|}w$#iFW(I;1v6-1Mk(rqhlQFT03Ygf4$%xpX0wcD%Po`$fWFiV< zGBz`^#t5U`SOmrY2ZL{wB& zghZ3FXebKSWXfV;WNh2Qn{ne{8#bhr44Zp3)zeALwuYaxE0+}85d&r=BAq7PRAmEn zxm@^?b6y`F9=4A@`ba{Ezm)*f2OoSuKl#Z|__NPGo2F?x{oxOPc!jwz#;9s+wFVd~uuk!bz!G2N$3Oz>LYQ$u03%ktQ=_B1#6%W|oO8 zQFn{rzb)prz$uPTjm(UUh$tRSgk2cSC4z{|j6gvUI$}JS0mF0&9bQHz>%+ z6bctt3t=`>MeH~k05$)F`YD7F!9vfNFFHj%?R62}`g;|8KYrha!Td8ueiqxKS$)Fb z`lx=Ut2|!lE1ZW1B;Ts}fE=FL0K>!23 z;Oh!DGJ^|~fy_YuJtI(j*IW|(Ga-ncyxWBZAQ*_5TsSEt(3eLDn_FMk8E#coHGU)B zGxFa*C{SzXU#ZGc72>LNLR%3rBlaK6E}7JXmfDtilw^P9U+~}4(cZ$~>H;B>P^h|r z_5IQIC-aMKRd{#7g%QXQLgbbgO=tl&X23tQzfTBj3^Ix{;D_zM({>NLP#Z!(5z4?9 zPOJ!j?T>Kr|fa5!E)F}ksU5KVW+DS2Y0}WyX0mucIOo-S8 z7`wvQe=8K88i-)pdp8F!r@p7n`#^XDNkJ$iwxl$D1>(;+(L6~}o@L=nS;{M~Y#)F8 zak+KX@-6Vg+i$;3Kls59cv;G1#`nPGndmF_QYG5E@ z3W0T7yx)QPw<{s;9y_rf<=Do3s9~*|!PKp=s}7a?%%XoN<2b z?YAj#7xs-7_{Tr~F)o)2|KSgR$V7B9vsX5i@2$)Bzg^Ck@1M`-=aJDQc3T5>mHO!wTC6lOG7!`NB{w@pAgx=XPMPe!(m^Bg z{u$oA9vfG@E4P%g<$2Q6X)E{g{as!Af-ES(E3gV_ZwH36f}%+cU5jXU5%V&>LHM4+Nnw+&{1 z8O-b2^;9{h%tgSiFn|G6+= zw7Z1i7mwPbJyDSP9VQ^@j>8Uuj6Gy-*S;zkUlmQkYU~q-rL5jeQ;5A!(p@(~Z;4-0 z5H;NVdsQ%W^)=d)oYjhYMzRJ89uin}@iBM@+Wpc1Q0$aYzsPn49X=QlI8Sz(XDv_4 z2D6zMN=$zMuPa@&q@^r* zUDxSyxy+A`k9RL#e0Bfu@NmCfE_0ER2u94+0`6|zw}pYxZoi3!6ERwCFVnb-D;fe4 zevKz*5;~LY`(elA&Yrm)6itgZ!)@gjkRuV07)ab%JvuA~>lHy*U;>nZB>w1*id`wW zP7k1_8Tb1&(vJH(6R7UjZi#nyx(YHK723~okU#*X03wQYU3py= zzAP6$KR%}O<3nDTOIDG@1j@`vX}5wj#9*Vu>_QU@$_{aB6TDqBn;9iCXtmE|sKEv^ zAu}N{Atgd$?p(NT5$z?X8v=~oh0fVsMz3QbF(akq$JgTFTZ`;qf$R1(T_cz?yNzFJ2(h5IsrpxEnf0oSd?}V+Jg4QoKlM4-WRd&L+lG5 zmCCglZWa{1ugOupx=*!5YxBp zz`5}OqTPTW!yg*Ha_vP~cMV4Gh`L-wS8TRE8Avd-mJ%l@U4*=5cswL|Lx!Yt^M}5zlDex5vh14P61NK5(d%+UcN}|LObPz zoD*_N%~J6oz@tTd`33F;x3enMg>5b}$M5^%-4#c*z`mFV%f!1o_p+;QgSFU|Llqnh z8ROm^vm4P{2%(A#ZrQM{E7oPfvMks(M%j8HW>2Ph+PzuwUSUzSz#+WtxO)K}!iX;U zb*p}L?2e%e!j-~}CIg$|m}na;f4kl^R0{?-Kae0G57&waHj%JYc1Rx6m_r~s z=Df!I%J4qn7^`!X;96b%Pz~s>@g6SN%m043s~MCSUWFp4k>^8f2S)&A3=;G5RRPgP zppt1SmXo}A@xpF&P=2!op6A&vmy3}XNtBtD6Dc!m2#zt4r9_mI3+|LMa^3~W1?ISb z#`k*H`RZ>J!kH3M&PXXEkB$K=erQmOl4FIC^QJVQvF!i9D#+>lIN zjkJ$r$HnG}Oc&q+3E^EX7n~FC$7-!K2(o}I9u~r2G2-~p9f$2+_O%JRX^n4LtN1P2 z7jd)nu&ewo$PkHjyv*OVF5aY0fSCFcpMOR~v6X_$wqe~0wo)K!J6^j}4s={cy@2oe z$}Uk#-Ftp65;HP05~Y2e^xoKwQ0A79;w6G!v-L^}@$@#76+#T=h=biosgYx_iD)CU z4X}-giqfKQzDZij+xF?FpW<89fg9Fa#F$xYr-Xx+$(WKQPNvLYvPkm8Jzpn$Zdu@) z0(^*n-GYXd$r;l$W13Hx<{5dKT%dWkjC8~DR^e}PVj!0KczSoq$Ngfe$5NGtACCbr zjXJ65;O_QbIaMKs!qlzrdbuDa_E@jF)Ln85s*V)xw|T>lv>kl1TWt0_v4NF#g~il` zGo8ywU4?Wg+t5%BqOc(T7{|qq9uDXmD!QfjO!nA*{|O$vB@2(nlRKLTmTkl1Wx;t} zuxtfeXNBuJ;Z6YzVc8Wr?OMp|F(qb9DPhVPCm5JAQmmbN{6|Y#!3s@bI+8Zx-d@O2 z3(Jm1qSo0JhQ;G#CNgHnfHRR2abdYv|mn_FU|xmyh4U3lly z9Zq-mINjZ0KHa$xhb2BHZ)yx)T}&6^)LeQq?Dfop^>8)jSW}HsAH%z;HdXfiG&MWM4)0V|6B7FImLN(a2AS6v%Zh(f``im=XJ$a z1QKSRYErTJNn?4i3Nbfi8lo0Gt~nY^)z=`kqkD#9VuJ@%l& zt_ffTKdt#j;9L(ie}9_VDmvf0PUT*=L`%7?`|qLz!4p zVr5E3VetkRjce?6olNOtAYeob9TP1(yl&UlIfVFhy2IW56P)huG0i7;r@QR%h*aXP z1msq@xzCXm95booqU~MxoP8Tavyr<5Qv17^sPznM~k@$O8R0uovIs_bh%qQ=4)LWD6J-=it75{q@eI2kh= zGb?ivq9h;^W)={XpF&^L*X&_rAozL#{?U(qWb3-xix)3!UDw7AK+Fo}F#BxZoMGgl z9yn&6aaE_>EieYSV6}uPC**0ubUI?|^FHH5O^8htqQJ5hTrLaN zb!|dikGqBzt+W;%$WS+?W&z?mRpC{@N*8f8$&PDe-X=sgLX~P>VA~3ob;D&@v8+`H zfy4>ZlyRD8s2WZNq)g#%E5rn1f}#b*HWVvRQ+Ho$5=mVFLu+{^b~Df|ocx}+PfSq* zI5IOVPhbK{N)Va4DnM*6V)7z8q*S}?a$kvVtAGwMdWTHI;DL6CwVJPqerXR?Jx7>` zw3OMH|A;zpV+s1rZ>kki%H%FIktX7r#EKR!8iT%;S2 zz=L~Blm^d%I}7ZdjkfwE#W?^`^o9>0(n~h+S-Zi04{NNa5B~ zO+wjj`Cn2SZTmKydKwn)4hW%^5HjjDZ&$wPy^hj|C@#y2 zhsQI{=LNaKxkr6rjCqdm!6VjqbcF1xf@mFP&p-}w-CRJgD$%D^z&!NTp`OrDq$tXsjl6n@<<`RIWcHA76? zT<+ucsjK@|ArY;$Q^C4zSl1OIy1UV}hMO`{7Qd$)o=Z(Q`a;Ypp@a*bs~bHj)KbHx z*JB(MqtP|IF^r-rd>>;!tr1o1g1akwLn1;VAQNzks6o}sVh+#s5K&=}=$NX>q`Frb zhKYeGIkgjWFq4=odPW5uxzL@mKhM0E2u0ljFRO~ zs%ck(*%cAGjvm8a*B%~g0*QzuA?s_aF(SS|9A_u6@LyRtYEo~WjQ_92yO#~8xCGW^( z4QmUFjI}3~l4(<#3?P$X4lACi2W~{1N-khiW=xZZ4LR+eM#aOI0F^9jX|A-F40jJJ zMczO)g9(@tK_q#C?Iy70YMmMp8-u+DOuRAiYT%8C%1Weqx7Zu`jhFUt^Vi0}cXy#3 zNSRqUB}tszh2}8eh<3-b;UHFTWfi{o!h_=8sP>sb!d;Yu~TrY679EFRQ=5 z6=_OuXh3P5b1%bh6NpGDkr1O0uz_r2wvC9&BqGalXTSXAFJC$p;-xP1!^4Bqc&Zwa zC?mLmh?Em66WbLB2M%?^5t1~z!_;@ki~tW@b(h|16xN&)001BWNklA)}n9BR1)u8^D94%?o|9-8D2zcbcUyBcJ}W{>#gS~oXhZvqc7MxVH-{}(E!lwQh&{2)w=1mkoWmaYPJ2of4QB9WFStM zEW<1Vn2<<-q`+n%a)njG#idAIIaQ1QMkc~UhB;hm4#qQd6^WD_ft51{KxeN|)Qoy- z|5I(AO^Ld{Mk0%tV9D#d6|+5N>-T?lBMc5YA*%^2CKfOkqO>7USSzz8BE2;U;#*~* z0~nyCxZbDA&_|@iq|T37sjNVIcv;z~2t6;vSR%rq;61w7edc*Y(PDrs_HlI&fVkOj z+P5R>es?g(4LmP-#09uJ*DeS3sV_PJ>giB6CGSANwcs8x+{7MlvIYPieMeK&SOYj> zTFW1M2_vTjsb#X-;LkOQ)g`Yu4N9)Mm$&Qr7~J~7Gq4@Zv1iUZF{d5Wlh_k)>Ckl2 z8d0(@N8$6)-)YOjeTHEo!o+TMnRhl7YH(lA$meMX=Wt4( z*gtDAyg?#{*Ccw&u^0Dz|68+*CYI41gb#Gf;Hf*?c?qDp6*g~+rY8S||Kn27MR zpZ%;gG}KNnW)dP2Vs@TfYWxgV-7@Wg+y_kISo6i`b`9wB5gJEV-q}m(jrMpNM_#Pk z3@iiGxJ#-Gi8$~THA?dqB7I861Bl}a_W=JpDIbJ5$~hF}Fj8nRvex+28hzT{>SwC8 z``nW#Q^qWlqr_A_9W1-C9ee?Tj&lU~xxWfE~|1TKX>YZlSCXh`d_LnsRO~ zd5&y&?rQU{SR!ALCLo_+T+u$o8rxp&Rz z7(X9{x63?^jvdBsl`gJEkFl<_Qe6qCBO4g%wtMgG&NhNpH;me#QO}}wP$~-2Knc-p z3*6kvI_QAmi8C;awDqE*BN~`e!aPs7FDEb&wyCt{fhI($D;;qLr49ny`j7owOhc(@ zCkPm=^^T*)ktBe+R>xZBot@ppn--|OH+2@!En{#O!I0DgSIG>{3Cdo`BmuA*ESb0D zu|W6wkRNYY*ZGu@=LtL|P*q+50!nED^9)WiD0ycasB$w>-_-w-cEX*0h;9h(;QbwW z$c_b+V7z4V8n77&jD`9dzCSk1C}M?HBggKweo+nHX$BF6+IwMK_S)ue(r>bMyt zVlguzLNPPhm~~rMd*zi^?CZv&zSIK0_10VV#TQ>h5{uN}MwYfxA`sHYNJE6SFV$xL&*RBgm2jT4n4g)Db4_4R{71R;Yb$}A4fhd4(Dv`=ES-X&M z#S3*5;?_fC+@Z&~K^m#61B29sOl!;DnCT^QxL%$zPI_uqO-iM%ZOMz~Hqt?Wt4fjR zsPdRv!3>f#q9R4)_{qQp$@K+W;rKJbH<&WKt#yX1Ql0ADS3_g?sURwc2_p1 z?D1-<18DgLf;G4$K~WfIA*Dw$|ujHE3~E1U@;XZ)Bjcp+5xI zJ!~Bzpxl*?_!_0<@n?^z-n(gXGGKN{;;Abo?XIj__a?xc+#<($H8W`KW-5Lx1jCdW zr#ZVjT?M!vkEh3Xm$5;i1GK;alt989S?Qb;PDKa)vf7PwI!&0T$vct~d#e#K%)H5- zP(V3>ECZSVNifY&n_#p8sUXc>o6U(ZpBU5qgz0|96hb`D)yi{Q3owRSf?9^gwoP4m zj;r(lJ_>Ja=vZrX#&lqd=@YMpEBsNk5i*go56LVbY(^*~R3v9f+opdssa?McfA_oJ zA*Ey~r3i6Nj7-9DR#P(-k9d=K>b+$ltB^E7>=(FQu~hEROCH!b+Izb=96Xrb#pRLI zyvwd~>e~u)Ad<2#@`E7Jk$$FSuH9Nm@x>}cpb%i(BD}8Hyx>6c_^xzt#?Hd^*y>|~ zZ-Ar*i9)nCw&|8Ql;uKz(cJXTg^q@35kc7swrzuy;`_%G)JVByXFcDgtt8`b(0+WK z_r%1o1Z4O*pC+GhxU>E4iLD%hoU$ud=T%Rhz*B*y4226UTL#+%!VKa&q-jN-y`e*^ z_b@X~Pco+a8ToETK26ATWr(5H8|-{_9DdLT;9{b!aie(w@C%ragY|`>*N9 z-}W*OE@pIRx!PRwd%0yZ%sX&srt0lHJM;(%|Zw#aS~jSYOo zhXq=@Z_rs_jEx*!@?bB`9H~o(OfvJKN#7G3y=zG~fgc7V1;b#L99$4CB3JkIh!bn9 zl%DJ&(=q<;Qq^_3(*S1c2N?EfO6sxZ7&xLEPgX~dD?I^lsTmSGVEAg=CZR%F0cL5fs`H$2cbXxhATs34D5dg+dpMI5d(L3a zO^{PZyvQToXSkjm2`n%hF$seNjACqJnq-40z4n@7S^j7j8t=dVzWvib{S*G~@BYr7 zJb9wUhxCdW3z-+3VdUJk4m-3SVrVyA2HVGa9XXhKw9c(|#Fwy0_6`3%9PUbh2X3r1 z(6UkoX}so$xqeQa+a5^ttMbA=;a~@fR0fX5HnI`3F)xl zJ29<+z|g3-2D$~t8I}~91bGrnA;7y(!HNAd1u(QbNSk^ifBd`2{w!c=gWd68tScq9XuXJ;C@X! zF_lwlS#9l`4mu0m+;rQaltZ8NF*D7(5YzC;V-GaOuz^s!k19EwyS&B*V?kntkU%&D zI7(qvaXaz6Z&UTq#yoV0)iA^x0Vf0QVhwxSVZwUa`MV|7I65ml<*>w4cy%3lqH{(Z z^Bd+PRuegujyDMjn1#(ml8P*9--N>YMi=_E*IqMKwQbv!+;#TZsRXG!(asIm(~f8( zwmw=+JK$01X4a?gyWKU|aex$a5Y|QEe#+CH6zZEIu3Gp~qu+6%BuL+h)Cr^YMC-Z> z@XhH8(e&Wl&jnHnO7K8S*_;o0Td^$*mgS7|<0Bp)A8|e}SN*1Tn31I8#DGA(#iYZA ze2eqcTH#il&kJ5ev;Vqn-igGF9N>;7H0Gpkr^pD4?$};CAfb2K-2-@~V`}WX$q0Q( zk%lm(jx{l|MnJM7T5WXY2_U3cb~~qYj17)+6f=%vB)G+Fs)5`EJ5haKeL%DVS`J(= z)w+0Yyki<3Q(Y4kP?M7@zbSLGz|;WZaCmELwy8C9206E!Lz5{9k%=)2t)>9<{{G(X z@9*vT^XK;Ahadj&0{rmsU^!>61DlBg1&oq76(Z6gA%w;t2oa^e4Xv-UUZc5hATb7p z!yW0;kD#q+A8L*2POFoq`M`uZHc<2!Y%_(3FCK{=*b0-gPB6_5f*O`pgNahQN2w*5 z$m*7Db%8CLzb-4bErfX6u&xW%#XnQFt&!{X0)mfz1G^CzWh>UY#dd;y8dxd^uBxW|$@_(Yo&Sp&xzXRcbuClgN%z~mBJiwP z@0zi0+3paIio)x>j7WcYGe0{;l@NIyn2iMqQkKOJ=A(~*_ul*CEO6kV?N`706_{C< zWzn3oP&6EaAl^L@ZnXKyR8><|iec8*mX>UYbB@(<>ut5|qDwZq-dFB3=SC7obR%Al zp4gp*yern*&Q9r_K08%xd){1OiP0#voaFC0JERNhwuW%7E7r9Nu?uqVhE+>mGuY!I z!+~G9_VijCkX4E^UhK%L3QkdMTWRj|2rH7>}Y_bh3vUXPN4(pn0kg&4bwz+H9k*BLU-R!cg zcsySs2KHFnGpdXvijviv3IZySa>Tt|Q0<;5HL%9$M%z{H!iIv)5onrqT&)y;t|QY$339_}J!g>@L{i1ZTrz-IwB{Q`QB`7D8MW7hn}=4B~d8 z`U&$qVV-BqlOuvA%SaimR5QlBagHOyT;1el4a?r4u|#$&d|8|;Yumihfk?*$Rh{k_ zR;60|apn_nJ&W-gkkd1B9JyqMYuJ$_h<5LFlOfxDs=hPIJVdZfU2sc*6^TLW)+QqK ziN1O~jYT6d@|<>t$=J_4fQj~|mmNW7u!_24?uZoVYD8=eIh1r9%!i&K#JQjovv>G0 z6@Us+E+Q&`=!+LG{=6jCFMs(NE6(rw%9>C>n7^yyQ3IhDoN2yjq%*!g_6ySqEfIeRw}qa@-&%+lEOK(=RLwKYE5 z4L~@CTy(F?$CDN63Zqd|7b5TpFRB9>N3Pr=8o1IAZP~nj=yaE+{26Ty&|SkU6Pc4@fx1 zzqkUO-0-3LEP55JXnrZ;{8RPZxe)J789k=hvl38dA4 z@yP8-01)`|W>xn@NmEFo4MWRF zNB|hgVT0zdL{b6^kVKJWLMjC;6W9a{g+hG$q$pHcUa}7BN)-+oR=71C=yg95=pa1;lf4U3( z(MKQQZ~o?Q?Ee1VJCc}%$b=~scHiB{tvIf7Ph_>MpeJDXW*Y-t_t07=#C_7^IEakS z0m_KxbM~5Mb)UC&#j?Z<-iybg+v>vWg6mjVHU?XYJ4a%lqT_iK8VgVWBY`M`DI;@+ zFF)+DH%g4FOrYfTPc}xvg2Do0ZJj*Ux!zI|q$Fr!Xx(5dt>`uBUMQ;hdkM#YTxnQ4U?ZG=%mau+%kFCmdgN`g{!T~~Yd?3um!=9_(cx z=6P0C6>{M%#2y3JrerGyQ8f`oQ6=eT=U%zXqmSj**P1yd8nctyS)479OFr=qjZ3P6 z?tLP_hGn^Ue0aHFxh$TU zB~j1vRjL#wk9$hluv`|LA0K^g&}Bi{1g^jnCOYAc1)2$z9Q%t{Sc!6s#h~WaTbF=f z_PTRUIl6ZG+Mk0T6&aIFm@#3t8F#qDh6NjK5Nt71!1I480aIek1e~CltRSg*(|L3f znPPYAd-_+kPN0J$y4HrRXBlB=OeD~XG-j&9;UNG-(jNYFm4wP8ePpg26ti7X`VCy6 zwf^bXX~Hy}kmnO}o&(ZZg}5fS_R?K@-ja%2Ykw^9*eVRALrc|j(2beNli#N)BhRUg zi>)rNr&=@=-1SrtbQTxGG|KDedZhX7nNLARU?c1`;GN7a36be?cW1A@`sz!k5`HTS z9C&D}Oq8lDwS>fp3sVwi(wd3(g(iooZV`{sHCBfX)7|Vy(b{EROC+!!9?y93;<3#F z0?5G#lQTO2@XuZ@2LUdC5)vldC4lpUsg(#4GA2xzkST_ScY~hy{C{Zk)pAzf*At}Xt6GtCLJfVVkm%G z$J13443W61Wh6Eqf7eLq2u%T~O5?=dOLuz?V}N8xA?^gZl=@hP3WKy5UiUV}G!CK9*J9#Ooh66AYQ7YB#shP~HUK$%15v!)`Apq49Ta*GCQ~t8z z@qEU^!z0#pYfOhz(7+H8q!g?j5@}ghND)8@6EiXtnrx4cxFV7!Olb6o5=0p*5=0XqJt zA+cq!ZvJ#v+qQ-gj+{9=8waSsNZ435QZ3tN_xJZ!t3fZrL4TtK{`t>;j(_-vf3VZ( zWJILF%u$F)IHkhu7TDcrr5>1xVDm*}yvE^Rti8U_m9nq;bBsdZWCRL8^4nDVqY zn6xGn8vr@hPo$`j)>0ok>s)p>d#jc@EV`-mK+u+)>yu8}&05+8w=3=r&tFb=Y=`rt zowvd3=qx{nZ_{}%pv}ezrwE^F;aRH++NFs~oBUXsa zY8|i05Kl=RP}R-a*oRVC$1$`|GB>)O7+@6-+)61vaEjSM0Xe5Y&uFXT*48|4YYS@8 zDS>D9`-#DG0!I_La~8Who}T0L#Q_`5G}sw>J<5yOqYn@^XdRH1z7=1 zKqep*FcmOuU|T@8g0#TcphOTP6wTO5!de*X2CSQR8p$TGVm>p-$R`po1IfwYl{64S zUHm>Ig?r#~Z3D87X0~5=>U_xqZrr-AEbAy%sZE#|W=KWXP)~q9jG3vGgn|9CPZsIW z8CGL{&j}pSb&=@YytK9~OT(s1*{@Y_9E}B_id{xe;oI?@4OX~Mu-i=%i0d*{MSuB3 z!Z`T?peRttHmReGfZyWV+`h36{NMlm-+1e-x9pWyUeT12K%^u}j)i6t@_t6EE>
  • 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 LGQw4Ydj9_pY2hR$ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bedroom/bedroom_small.png b/data/themes/default/images/rooms/bedroom/bedroom_small.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b0828e688b296730ca8d6d6e60b023b55c6139 GIT binary patch literal 13563 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/bedroom_small.png b/data/themes/default/images/rooms/bedroom_small.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b0828e688b296730ca8d6d6e60b023b55c6139 GIT binary patch literal 13563 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/big_room_glow.png b/data/themes/default/images/rooms/big_room_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..20e29c7f6e73ebdc336fb23ba3701f7fbe616d52 GIT binary patch literal 22249 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ÄDbx07YfOjS#;*|>yjVhR2_O#FDPA@6;P1T8 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 buQMi72>)NERe%0T3%YpD;w;s~Ir{$q7>sWs literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/big_room_shadow.png b/data/themes/default/images/rooms/big_room_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..0ab5465e2a42a7a0d28b11795ae01eebdb0b4c7d GIT binary patch literal 16489 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/big_room_wire.png b/data/themes/default/images/rooms/big_room_wire.png new file mode 100644 index 0000000000000000000000000000000000000000..64e589fb2025c92be24faf70ea4d4d7cb0691f0f GIT binary patch literal 4719 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/cellar/cellar_big.png b/data/themes/default/images/rooms/cellar/cellar_big.png new file mode 100644 index 0000000000000000000000000000000000000000..1566013b6492aea82132862868b94b598268c554 GIT binary patch literal 79478 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 z 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 Z^)H$S4IzZMkgfm#002ovPDHLkV1g&sZ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/cellar_small.png b/data/themes/default/images/rooms/cellar_small.png new file mode 100644 index 0000000000000000000000000000000000000000..f0fdfe06080b81a88ee0988607cccdeb92a2a791 GIT binary patch literal 14315 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 Z^)H$S4IzZMkgfm#002ovPDHLkV1g&sZ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/corridor/corridor_big.png b/data/themes/default/images/rooms/corridor/corridor_big.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b5ea6b9592945cccc604d50c08547f3d0ca0f1 GIT binary patch literal 59365 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%0APLsl=RaZGbCCN>&ZV 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 g1e%^!Bpp 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

    cjA&8+$ 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

    cjA&8+$ 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

    i-<}GAN14zj3t! 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 MRMk~MD7}sRA4zQl{Qv*} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/diningroom_small.png b/data/themes/default/images/rooms/diningroom_small.png new file mode 100644 index 0000000000000000000000000000000000000000..cfffa6f475d2d4f026728e55ed0930f5ad6efe63 GIT binary patch literal 13591 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 I!szS&0fF{;rT_o{ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/kitchen/kitchen_medium.png b/data/themes/default/images/rooms/kitchen/kitchen_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..47188e7fcd59345b8069e933a4aee4e26276a83f GIT binary patch literal 39069 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

      0Q3P!#wE2AH`BB>5zF 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 KMNUMnLSTab4ipCf literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/small_room_shadow.png b/data/themes/default/images/rooms/small_room_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..c8592dc936d6af01db4bf5ee6500ce1fcc942196 GIT binary patch literal 1699 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/various/various_medium.png b/data/themes/default/images/rooms/various/various_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..de7acc53bf254c1b377e0edfe0949d140d145e6a GIT binary patch literal 41715 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/various/various_medium_bloom.png b/data/themes/default/images/rooms/various/various_medium_bloom.png new file mode 100644 index 0000000000000000000000000000000000000000..bd74d7c8ec7befd939b08643c47d050d57f771a5 GIT binary patch literal 33396 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/various/various_small.png b/data/themes/default/images/rooms/various/various_small.png new file mode 100644 index 0000000000000000000000000000000000000000..8d9a070fb25e91c55ed06253a55cbf82ad3d3a36 GIT binary patch literal 14420 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 a1OErJDDQ`L!37Ke0000 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/scenario/wizzard_1.png b/data/themes/default/images/scenario/wizzard_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b3cf6e9347e184874bb2aef75b989ff36c655133 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^wm@vf!3HFm(*py66k~CayA#8@b22Z19JVBHcNd2L zAh=-f^2tCE&H|6fVg?3oVGw3ym^DWND9B#o>FdgVlSztKovC4x^D&^1WQl7;iF1B# zZfaf$gL6@8Vo7R>LV0FMhJw4NZ$Nk>pE%GeFHaZ8kc@k8Z|HloI7+ZTNVm;Vy1}wh zn#XLhl)yZN*4&Mmwz?{mAgvh8N& z^VnOSt=2U@23_9uP6dT8c>8%9HanbuyhkzT^$SaxM@th6v|q5wJl@Hgv-kzq z>m5g;yKlH%IBjvrfH^~`{gz6UQshVy-!Q1&(K@x=Wn!8 zJx3+xz?zH6a}v!yt~)7K+kJJG-PAW1oO5c6gMXR7V9%+S4JnoHTD!=7$DwEXr{gBR zVC36yBj{%~kL{0N)|)0dp3Psg)n{+^qOCn`$`=~>N)|B7f-J&d&NZ0N*}0x!Zi<{L QFz6XPUHx3vIVCg!0H(FN@&Et; literal 0 HcmV?d00001 diff --git a/data/themes/default/images/scenario/wizzard_2.png b/data/themes/default/images/scenario/wizzard_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5f051f1a331f45dff560e5c6efb527cb6501580f GIT binary patch literal 957 zcmV;u148_XP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXD| z4JRQY^)j>o000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0009RNklc4pi~j@Nmn8W;zmS4sJIYI5d|ymTvV|;H-aEo zH-fsc7OD6^U3HU%C~Z;jfe6}%EmmzyY+U4ADKTkYGs)ce!;niLnfY?=opWZ+NdQ@u z17To2Py>X3CBPz}5~u)X0@Hy25Cz78AHWDO0Q3Q$fDb?q@CtYX#4w}~a2j|D{Bprb z+c)4oZ~|CbOxW$fLtsJ)G?o1Z+JP;FgspY3F$4A(SgQ#;4LAdg83Fce6ley@q=9Dx z9mZf2t=+{bq6*-dabVA00COd7=}w;jd)DFN&RG|H2JBf&uE2Fgn2w}u0@#!b^mCsA zd)DPveHm-7&w)KVkPY+$g#g|H=iFmc1E)frob!QQcue9IMC#ZjHwg= zjso9>pY2d4(9OcY^;zbUFfb?>LqnkxSYwVe$1cGbuBUT0$BmAJv)9>X&jj5PiX)P2 z#Wh(wT!N9%r92D&8$xj`Ob5MD$k8ZpC(rMQ2*t7>9dxabqbI=6JilW|D3(Av=&&Gk zzLIJS4J5viICr)>XN!SqXWn%%3r8;ng56mt=xbAaIGEzcNW88Vf<7Vy-HT7OTX3E} z=?CE8q&~NVZSVv1P2nOZU>&$cxXL>FzX6ZA1Zz@dz*U7>y45Oh1@S#9Y2ZF!o<-o0 zo6j}cM8_-w*8}}Z!1t`d23$ssDgpOeyRGNDQPApqeg#%r0^SU~R|Foiw(@EeY(XWn zLDxn$p-SL3y3PF0#Lu^w&>G^0WHf=hft6N(_W{Goz@3(|^m+7mIxnMe)FKy^18vH% z!@zz^^RM={ZWpl13h;8`I~kg1#x5ea0U?s1KPm#h1GZUOaI6EqC<3>+dESg_UA?Nc zoIGf)N~%#D;Vv@VKrf`0DHaV^EG4VSz37MnY!o2Q0eA%1V->hbDPe833LGZB z!7d5hkMXS*zn>cPEMpxi5#U&|?qsSad=EwblZbE^_ODW%i#}CCz+^Jgvs@ujRjQoH fM*47x0so^vI6|9F8d(<100000NkvXXu0mjfMBJ2D literal 0 HcmV?d00001 diff --git a/data/themes/default/images/scenario/wizzard_3.png b/data/themes/default/images/scenario/wizzard_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3de451880e433addf1dee7da219f0a362e0c2b39 GIT binary patch literal 1067 zcmV+`1l0S9P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXD| z4JSINko#Bw000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000AqNkls9i;IK7nK%X=SIBYB309P3Z90KmUfxcxZ zbO@Lq4J>(_@2lOuCJ`C}8i3Wnbcq!?z;fBX_9?G6HBSC?SFzV$#_D-s4)9db=QSrw z)QFPvkHD-r{mzt(O2covUFaQ(J-*qd@7+p%zuSd=pyap$EXiif9@!eiv zq0Gau$eMiTWqW*MRY>giX{>=&U5TaD^={a3q4-XHH(c^illat zoiPu13Q*o2>mr@-*C|h#aBA{^0=de{`U14@3t=(B~ zywJH(fC^>z6iusuvo0H(@6|N9DZ3cAYvUD##%@}M{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXD| z4JZ~J(2H~c000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0004#NklBg@ls4ClPHMIW;Dts!DuxaS8PVBNh~WSlg*-_SPT|} zw;+P3=vq#YWy|{CX8dR1)S2&r!v|*<EE+uvyyt`-0qz5VMWU;~c|fo@bO9U$28%;)MF5LJuS5ciLC*kh zIiZJvyNKZA=w9F~GB`PUKLI!?dNUC?8G0G`&IvsYye0%kM-KtFj)Ci%&^^GZW7tOd zqk=ccj0$v;g*4pe9iyj1SJTx_0 z(A~g^r>0he-u2kjD$whmn_4`25w}0s+BLOk^d#^cpsB^82Y_qGAln_>OOCDp#{rvK zBzh-sQ;S2_JT&$AAMPeY&y{T(x~avWM}db(O)Ual1uh~swFvZ~rb~XgT=b zrvT_8!!fj>4Q*&c8`{u@HngD)ZRoI{T7sq-!(*>^F7pGqI&CfdS| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfO(rQ$6`g{FtztkS$r9Iy66gHf z+|;}h2Ir#G#FEq$h4Rdj3q*qTj`SEwPQ^w28mIFJ0F3vbmu-krJT0_q7RaUbYTliR7>dcs*wAUFjbI5XV z)Ea@QzbR}2RssUM-d|kUe1Si$;m-wkV~4sI&5{cCU*<|Wyl`-M(G6nHhp^?18@ho8 z{WAd?^bcg(KaepWBxMUOGK#~Ah0gv9f2Ycn2<%#Z-Qh*Ug+?`}|FalBIe$MctWct$ z_~j-KkWwhoFJM^6?8H8cqt+B?h=A3H_j{yetu`>WO;HSyoFyIz^e=;_tDnm{r-UW| Dxxj>A literal 0 HcmV?d00001 diff --git a/data/themes/default/images/scenario/wizzard_header.png b/data/themes/default/images/scenario/wizzard_header.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a3bafbc1da3f05bed5df392712a342265637ce GIT binary patch literal 700 zcmeAS@N?(olHy`uVBq!ia0y~yVEzwe`*E-V$+DVd(m;x_ILO_JVcj{Imp~3%lDE4H z!+#K5uy^@npa^GyM`SSr1Gg{;GcwGYBLNg-FY)wsWxvTJ$)V0P<&EB9ppayVYeb22 zer|4RUI~M9QEFmIYKlU6W=V#EyQgnJcq5-U0|S$|r;B4q#jUq@ZVEOzh`2hM9kkWn zY{L85nD<#oImh?+SCVJg-@k9i2sAJ9wux`IB#^N{_Wx=qJsV1k8w151tpEM}zz<|R z`dB{$q~q4ddShlF-BAxD5+3}3h#s*A@)Z676*O!<_Wv{wkawZ)|8}TJdZ6GC=>NYQ z%CGyu4ixzKc2mi9ZXJVtD(b z{3p=(hKfJC{{S88VDm2>>JgZSVnOb707)`D0y)4!_5EL=gAGVNbltWTNHG=%xjQkeJ16rJ$YD$Jc6VX; z4}uH!E}sk(;VkfoEM{Qf76xHPhFNnYfP(BLp1!W^H<_e3)j87rm{@>9k|nMYCC>S| zxv6<249-QVi6yBi3gww484B*6z5(HleBwYwS3O-ELp+YZowl2o$&jb*?H$>ECN8!G zNo+?{%%7O9ImlEJ!sFn0__5r=!U-GKXgGSjQ2BpJ-MUj|`43^%^0ShT;%a9So#q*} zohiLs|HSxua`OB@@wc@ruFGxzoqY6+a-o+Gt8%dfqszaut_FXPt+GVQH0G5UNFZBHl`}(_ZTU}w4r4-YUDEvQCAIexWgeTCO2$OtJ5hIDcqoo zF?9bjbV!ldPDrrGLl4#XAA~VM2=919XLCToBzfu$he5S#Jd7qjueg8Ct>ZB_<80nyS@X|E#CptRNm3*-Vy4_H@xUn}%00000NkvXX Hu0mjf&bXV5 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/widgets/flake_medium.png b/data/themes/default/images/widgets/flake_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..9b27d29514e1b6f8442a03ad09b9aa213b2aa504 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^AT~D#8<2F%laT;YEX7WqAsj$Z!;#VfbPhI20=68p`+vLl+UcC3tdR9O{ z@{gl}&Kmz)B%T`ZnCrQgiuGqCwQ+G(xbf%u#jn1~D&ku5u}#)0L&f^ol$_V6O(Ijj zd}N>duTykw^4gTe~DWM4f D(_nl5 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/widgets/flake_small.png b/data/themes/default/images/widgets/flake_small.png new file mode 100644 index 0000000000000000000000000000000000000000..ab2a555dd3acf1867a9808cebd94d9eda0306b02 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^96-#;!3HGxgLCzO6icy_X9x!n)NrJ90QsvtT^vIs z!hO#havgFIXnp9yoRqj&{6bN+VABl_u`F?$9`}t~t~hM_Dra{4W{0bTi0HwspXw8t z`D)HQ+ju5t*2VbL$Z1l^yUy+0)F*ssM!%U&+K$H__cmSoHRJGft**DM`r^Gsw@V=OEqnS0qlDt`>34yyX7F_Nb6Mw<&;$Tbc3_wQ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/widgets/widget_back_edit.png b/data/themes/default/images/widgets/widget_back_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..8036fd55c6cf0e932a36a11daab0fe9ed35ae051 GIT binary patch literal 992 zcmeAS@N?(olHy`uVBq!ia0vp^Z9v@2!3HEfwj?V7DYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolBTkSXyIY?J1y;Y>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)DF!Z*LmrUv`jb`*=J|Q?RwOY$c2H)uWPK zM-EKbxS9P*r~aYk4|coo%(SjbNH{S;r=xL^p04l~E>|y!9Uj+AIeRyRPOPr;7Ja(w z&fZV|KUpci;628EKs$l|1w%;c$93QSMo(L@{`c*u>-XRPQcbsF)N9}mjjUliakwe@ z0ZWA$f9s@6oayyKn;gXEiKsiUooP@sU^=&Y(~Mo|vsar-JU?J}fweD7@UFYNk8K(8l7Uw<{EN76A>MCj7EZ^2&9lh21Xoh2#9HV~&`{&;s|Ehx@ zh=16t)&2U#Zov;sFRt+aw&6M&oFHD2p<(7Fcdo>Ij$yaagzIvum!mY~n62MEJa(Hi zy;hs~^gNa}rG*7L)oXM%y{%JCuAZBa@-EzHQ)!dp<)Y|(gSvOumMqrl*0(b(d47M( zq=Ogk=A6BM^7#8NQ|>mMz(3)YTwYJ6#pTll$8=5|5Hn!3auEL^ z)%sX!N16WQi@f#fmIZ=#GGEyqJAYTZIe%sQfxsUX6MGRm*sWO4TJqTmJm mb6Tz2FBx&B-{+5fV9ptpUbBs%pc9z!7(8A5T-G@yGywo?wXXdD literal 0 HcmV?d00001 diff --git a/data/themes/default/images/widgets/widget_container_back.png b/data/themes/default/images/widgets/widget_container_back.png new file mode 100644 index 0000000000000000000000000000000000000000..37eaea5562867c391a3ba5fd062899e356fd5eb9 GIT binary patch literal 4725 zcmeAS@N?(olHy`uVBq!ia0y~yV1CBHz?8+o1{7JA8f5^a*pj^6T^Rm@;DWu&Cj&(| z3p^r=85p>QL70(Y)*K0-AbW|YuPgf z?wgxOQnuUg>FT(z^vKmEhULThckkET|0%}6uobn@Qmzq8McmI224U}$}zxlSj zncznwr8xH^vlst=kqG41&Cjw`di3z+@)Dq@A4Dqs{lWgp|Mrhx=cl;4*mM;E1uNo$ ztL^>jYc}@2|L^mYJ)R#ZHs?rib9_$!zen!(xxw7+Z2!fc{p-I6GQ^}$y5{%diw4_P zC+36~+h4g?cea{=VGsY?x6|Kk|EJCbRP!mP?DyeZmm`1gezlHg2bpjzxc~Q286ZoD z6Bs=V0>G$bP&mT~Boq07#GyN}metkeK!IH!=WW?uejKFKs|ZX9?MMbGVdWUrI2t%Z zI_223ZH(nh-aY5H$ZTL#Zg@T^v&D5hU^S4j#Xc}cMq&X<0KIpKLf3`>v>!A zj{WBC^_Bb#4c`~;{d;L|JSgugOtc0&-~hxpBul}C0yM)L_PouJxP9{u|EBHnpXC@B z-aA+SURu2$6f6!(pdy1op%H9O0K~zN0tFOa&_GOdeMq__s&TJssDW8(R|CucV!@c%z z-@L!qfvt3bSjhx-{{mH3m=%wtGWXzP(47!31-TCck1Tt-N3fYh2HN=_U?rg zS(At<0Z}ym-DLf2_RIKUq~dfD#IOm3%F$fwp4_q>w~@=?4?veU5LFl*H`um0F(wvAHH$!dEJD)e`kFMHaz8T-PXSgZ58eWxA8b3#VQk`G(nE{ zckAXrg6(dF|1EGxGBBtTqfzeg4LxAhd*-h~^>5Snj0_*_wrr2z^}QREvs8#_WDZ=# zO;L?6b*#)3Yucr0jZbz{VN@e1K~lQ`HX5p0_us_F*}zs&!(^AA z+u7{@Mc<77l?6<}4^-mh+AC-O`j3` literal 0 HcmV?d00001 diff --git a/data/themes/default/images/widgets/widget_container_back_buttons.png b/data/themes/default/images/widgets/widget_container_back_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..1f425bd8053797c65e2dcc7c748b37c3da4928c9 GIT binary patch literal 1077 zcmeAS@N?(olHy`uVBq!ia0y~yU@`-;EjieLq-uTQNg&0R|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD+3#>k@@sHR3l@J06p}4*jVN)>&&^HED`9XhN=+CDZJ z=FHhOH~%cTUwOX#+|TVs$1lFVcv+?L>(6udH5b%veyzUiZ=$xR^~tPf= z>9OPb;;`q&|_L z=h|&z5xKRtZXSo}fmu%HB9C2u_)?B#yV1slSDv^%ynNFfsP?$0-O7Fbhl~QQ`%bE# z^ap6my0m-NXMaqZ(k`m;NWmp`y79tgQ=e2$Qs3u)z_!oTf0E7ms#AC7F>|xeUVMG= z^2zS2yjI+Q^Q-fvbnEWF594~;8=u}Ro}lg`>+qkf! zHm9LftJFY z54Glk!0o&LKI~SJ{9<)~dd&mIYxU7r{|7|;_YM7@ocQ;8=wJWVukoQ@?ZvOvM_&CO z6j2{?b-&h{|BF`rzj|FZW7Dp`1&wvl+vi`mjk{tich&aZRoi)XC;lWP9j@K8nWf?0 zA!lHKc%3h?+tPnFZj%36z6~k$z%bpP_uAf|zmvC=`CNVCjx3w&VXP60Ue648%p!BJ zZEBU--{T9eTY4AG`}pF=u}=)#J62YmsJt5d?3>Jv)7w-RT+le_H|ej6xbeehS|_Kf zGKD47uVOzq*C$8Abmx`C`|xCy<(_)% zd(Ty$X4cU>lapHWGqYanicgimos+(iS28X1C-2!HbYRwA*)LZ4I?PSHt2xZqs=QU% sEqT9~c>~wt9({Y+`Uh=EGhWBb-tt<^_V=g=FgG)Jy85}Sb4q9e0Qm0Z?*IS* literal 0 HcmV?d00001 diff --git a/data/themes/default/images/widgets/xmas_banner_left.png b/data/themes/default/images/widgets/xmas_banner_left.png new file mode 100644 index 0000000000000000000000000000000000000000..870f1201a76c2b8862703d90a7c53e9d1e154bd7 GIT binary patch literal 7943 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èque : 123 albums avec 123 pistes par 123 artistes."; + style: "StandardText"; + } + } + } + + part + { + name: "button.browser.root"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "browser_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position/browser_icon"; + string: "label" "Ma Musique"; + string: "icon" "calaos/icons/position_button/album"; + } + rel1 { relative: 0.0 1.0; offset: 16 -44; to: "browser_clip"; } + rel2 { relative: 0.0 1.0; offset: 151 -3; to: "browser_clip"; } + } + } + + part + { + name: "button.browser.back"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "browser_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position/browser"; + string: "label" "Retour"; + } + rel1 { relative: 0.0 1.0; offset: 154 -44; to: "browser_clip"; } + rel2 { relative: 0.0 1.0; offset: 223 -3; to: "browser_clip"; } + } + } + + part + { + name: "volume_slider_whole"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: -28-13 60; } + rel2 { relative: 0.0 0.0; offset: -13 60+140; } + rel1.to: "player.small"; + rel2.to: "player.small"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "left" 0.0; + inherit: "default" 0.0; + } + description + { + state: "right" 0.0; + inherit: "default" 0.0; + } + description + { + state: "edit" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + } + + part + { + name: "player_button_volume_more"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 0 -35; } + rel2 { relative: 1.0 0.0; offset: -1 -3; } + rel1.to: "volume_slider_whole"; + rel2.to: "volume_slider_whole"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "left" 0.0; + inherit: "default" 0.0; + } + description + { + state: "right" 0.0; + inherit: "default" 0.0; + } + description + { + state: "edit" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + } + + part + { + name: "player_button_volume_less"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 4; } + rel2 { relative: 1.0 1.0; offset: -1 35; } + rel1.to: "volume_slider_whole"; + rel2.to: "volume_slider_whole"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "left" 0.0; + inherit: "default" 0.0; + } + description + { + state: "right" 0.0; + inherit: "default" 0.0; + } + description + { + state: "edit" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + } + + part + { + name: "player.volume"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 0 -18;} + rel2 { relative: 1.0 0.0; offset: -1 -1;} + rel1.to: "player_button_volume_more"; + rel2.to: "player_button_volume_more"; + color: 231 231 231 0; + visible: 0; + text { text: "000%"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.5 0.5; } + } + description + { + state: "left" 0.0; + inherit: "default" 0.0; + } + description + { + state: "right" 0.0; + inherit: "default" 0.0; + } + description + { + state: "edit" 0.0; + inherit: "default" 0.0; + color: 231 231 231 100; + visible: 1; + } + } + + ELEMENT_ACTION_BUTTON_NORMAL("volume_more", "player_button_volume_more", "player_button_volume_more", "player_button_volume_more", "button_action_more_vertical.png", "button_action_vertical_glow.png", "player", "player,volume,plus", 0.5, 0.5, -14, -17, 0.5, 0.5, 13, 16) + ELEMENT_ACTION_BUTTON_NORMAL("volume_less", "player_button_volume_less", "player_button_volume_less", "player_button_volume_less", "button_action_less_vertical.png", "button_action_vertical_glow.png", "player", "player,volume,moins", 0.5, 0.5, -14, -17, 0.5, 0.5, 13, 16) + VERTI_SLIDER("player.volume.slider", "volume_slider_whole", 50, 180, 215, "slider_vertical.png", "slider_vertical_on.png", "slider_border.png", "player", "player,volume,change", "local", "slider,volume,inactive", "local", "slider,volume,active") + + part + { + name: "player_buttons"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 0; } + rel2 { relative: 1.0 1.0; offset: -1 44; } + rel1.to: "player.small"; + rel2.to: "player.small"; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "left" 0.0; + inherit: "default" 0.0; + } + description + { + state: "right" 0.0; + inherit: "default" 0.0; + } + description + { + state: "edit" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + } + + part + { + name: "time_slider_whole"; + type: RECT; + clip_to: "player_buttons"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 148 0; } + rel2 { relative: 0.0 1.0; offset: 148+200 -1; } + rel1.to: "player_buttons"; + rel2.to: "player_buttons"; + } + } + + part + { + name: "button_play_clip"; + type: RECT; + clip_to: "player_buttons"; + description + { + state: "default" 0.0; + rel1.to: "player_buttons"; + rel2.to: "player_buttons"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "playing" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + + part + { + name: "button_pause_clip"; + type: RECT; + clip_to: "player_buttons"; + description + { + state: "default" 0.0; + rel1.to: "player_buttons"; + rel2.to: "player_buttons"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "playing" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + ELEMENT_ACTION_BUTTON_NORMAL("previous_track", "player_buttons", "player_buttons", "player_buttons", "button_action_previous.png", "button_action_glow.png", "player", "player,previous", 0.0, 0.5, 0, -14, 0.0, 0.5, 33, 13) + ELEMENT_ACTION_BUTTON_NORMAL("play_button", "button_play_clip", "button_play_clip", "button_play_clip", "button_action_play.png", "button_action_glow.png", "player", "player,play", 0.0, 0.5, 37, -14, 0.0, 0.5, 70, 13) + ELEMENT_ACTION_BUTTON_NORMAL("pause_button", "button_pause_clip", "button_pause_clip", "button_pause_clip", "button_action_pause.png", "button_action_glow.png", "player", "player,pause", 0.0, 0.5, 37, -14, 0.0, 0.5, 70, 13) + ELEMENT_ACTION_BUTTON_NORMAL("stop_button", "player_buttons", "player_buttons", "player_buttons", "button_action_stop.png", "button_action_glow.png", "player", "player,stop", 0.0, 0.5, 74, -14, 0.0, 0.5, 107, 13) + ELEMENT_ACTION_BUTTON_NORMAL("next_button", "player_buttons", "player_buttons", "player_buttons", "button_action_next.png", "button_action_glow.png", "player", "player,next", 0.0, 0.5, 111, -14, 0.0, 0.5, 144, 13) + + HORIZ_SLIDER("player.time.slider", "time_slider_whole", "message.text", "Avancement :", "player.time", "00:00", 50, 180, 215, "slider.png", "slider_on.png", "slider_border.png", "player", "player,time,change", "local", "slider,timer,inactive", "local", "slider,timer,active") + + #include "activity_loading.edc" + } + + programs + { + program + { + name: "on_show"; + signal: "show"; + source: ""; + action: STATE_SET "right" 0.0; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + after: "show_delayed"; + after: "sig_volume"; + } + + program + { + name: "show_delayed"; + in: 0.15 0.0; + after: "show_players"; + } + + program + { + name: "sig_volume"; + action: SIGNAL_EMIT "slider,volume,active" "local"; + } + + program + { + name: "hide_left"; + signal: "hide,left"; + source: "calaos"; + action: STATE_SET "left" 0.0; + transition: ACCELERATE 0.4; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + target: "playlist_clip"; + after: "reset_right"; + } + program + { + name: "reset_right"; + action: STATE_SET "right" 0.0; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + after: "send_sig_done"; + } + + program + { + name: "send_sig_done"; + action: SIGNAL_EMIT "animation,done" "audio"; + } + + program + { + name: "hide_right"; + signal: "hide,right"; + source: "calaos"; + action: STATE_SET "right" 0.0; + transition: ACCELERATE 0.4; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + target: "playlist_clip"; + after: "reset_left"; + } + program + { + name: "reset_left"; + action: STATE_SET "left" 0.0; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + after: "send_sig_done"; + } + + program + { + name: "show_players"; + signal: "show"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.4; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + } + + program + { + name: "select_mode1"; + signal: "select,player,1"; + source: "calaos"; + after: "mode_detail_player_1"; + after: "mode_hide_player_2"; + after: "mode_hide_player_3"; + after: "mode_detail_playlist"; + after: "select_mode1_script"; + } + program + { + name: "select_mode1_script"; + script + { + set_int(player_selected, 1); + } + } + + program + { + name: "select_mode2"; + signal: "select,player,2"; + source: "calaos"; + after: "mode_detail_player_2"; + after: "mode_hide_player_1"; + after: "mode_hide_player_3"; + after: "mode_detail_playlist"; + after: "select_mode2_script"; + } + program + { + name: "select_mode2_script"; + script + { + set_int(player_selected, 2); + } + } + + program + { + name: "select_mode3"; + signal: "select,player,3"; + source: "calaos"; + after: "mode_detail_player_3"; + after: "mode_hide_player_2"; + after: "mode_hide_player_1"; + after: "mode_detail_playlist"; + after: "select_mode3_script"; + } + program + { + name: "select_mode3_script"; + script + { + set_int(player_selected, 3); + } + } + + program + { + name: "mode_hide_player_1"; + action: STATE_SET "hide" 0.0; + transition: ACCELERATE 0.4; + target: "player_1_clip"; + } + + program + { + name: "mode_hide_player_2"; + action: STATE_SET "hide" 0.0; + transition: ACCELERATE 0.4; + target: "player_2_clip"; + } + + program + { + name: "mode_hide_player_3"; + action: STATE_SET "hide" 0.0; + transition: ACCELERATE 0.4; + target: "player_3_clip"; + } + + program + { + name: "mode_hide_left_player_1"; + action: STATE_SET "left" 0.0; + transition: ACCELERATE 0.4; + target: "player_1_clip"; + } + + program + { + name: "mode_hide_left_player_2"; + action: STATE_SET "left" 0.0; + transition: ACCELERATE 0.4; + target: "player_2_clip"; + } + + program + { + name: "mode_hide_left_player_3"; + action: STATE_SET "left" 0.0; + transition: ACCELERATE 0.4; + target: "player_3_clip"; + } + + program + { + name: "mode_detail_player_1"; + action: STATE_SET "detail" 0.0; + transition: DECELERATE 0.4; + target: "player_1_clip"; + } + + program + { + name: "mode_detail_player_2"; + action: STATE_SET "detail" 0.0; + transition: DECELERATE 0.4; + target: "player_2_clip"; + } + + program + { + name: "mode_detail_player_3"; + action: STATE_SET "detail" 0.0; + transition: DECELERATE 0.4; + target: "player_3_clip"; + } + + program + { + name: "mode_detail_playlist"; + action: STATE_SET "detail" 0.0; + transition: DECELERATE 0.4; + target: "playlist_clip"; + target: "skyline_middle_gradient"; + target: "skyline_middle_neon"; + } + + program + { + name: "unselect_mode"; + signal: "unselect,players"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.25 CURRENT; + target: "player_1_clip"; + target: "player_2_clip"; + target: "player_3_clip"; + target: "playlist_clip"; + target: "browser_clip"; + target: "volume_slider_whole"; + target: "player_button_volume_less"; + target: "player_button_volume_more"; + target: "player.volume"; + target: "player_buttons"; + target: "skyline_middle_gradient"; + target: "skyline_middle_neon"; + } + + program + { + name: "mode_edit_playlist"; + signal: "open,edit,playlist"; + source: "calaos"; + action: STATE_SET "edit" 1.0; + transition: ACCELERATE 0.4 CURRENT; + target: "playlist_clip"; + target: "round_buttons_whole"; + after: "mode_edit_playlist2"; + } + + program + { + name: "mode_edit_playlist2"; + action: STATE_SET "edit" 0.0; + transition: DECELERATE 0.4 CURRENT; + target: "playlist_clip"; + target: "browser_clip"; + target: "volume_slider_whole"; + target: "player_button_volume_less"; + target: "player_button_volume_more"; + target: "player.volume"; + target: "player_buttons"; + target: "player_small_clip"; + } + + program + { + name: "mode_edit_playlist_script"; + signal: "open,edit,playlist"; + source: "calaos"; + script + { + if (get_int(player_selected) == 1) + run_program(PROGRAM:"mode_hide_left_player_1"); + if (get_int(player_selected) == 2) + run_program(PROGRAM:"mode_hide_left_player_2"); + if (get_int(player_selected) == 3) + run_program(PROGRAM:"mode_hide_left_player_3"); + } + } + + program + { + name: "mode_unedit_playlist"; + signal: "close,edit,playlist"; + source: "calaos"; + action: STATE_SET "edit" 1.0; + transition: ACCELERATE 0.4 CURRENT; + target: "playlist_clip"; + after: "mode_unedit_playlist2"; + after: "mode_unedit_playlist_script"; + } + program + { + name: "mode_unedit_playlist3"; + signal: "close,edit,playlist"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.4 CURRENT; + target: "browser_clip"; + target: "volume_slider_whole"; + target: "player_button_volume_less"; + target: "player_button_volume_more"; + target: "player.volume"; + target: "player_buttons"; + target: "player_small_clip"; + } + program + { + name: "mode_unedit_playlist2"; + action: STATE_SET "detail" 0.0; + transition: ACCELERATE 0.4 CURRENT; + target: "playlist_clip"; + target: "round_buttons_whole"; + } + + program + { + name: "mode_unedit_playlist_script"; + script + { + if (get_int(player_selected) == 1) + run_program(PROGRAM:"mode_detail_player_1"); + if (get_int(player_selected) == 2) + run_program(PROGRAM:"mode_detail_player_2"); + if (get_int(player_selected) == 3) + run_program(PROGRAM:"mode_detail_player_3"); + } + } + + program + { + name: "player_play"; + signal: "player,playing"; + source: "calaos"; + action: STATE_SET "playing" 0.0; + transition: DECELERATE 0.01; + target: "button_pause_clip"; + target: "button_play_clip"; + } + + program + { + name: "player_stop"; + signal: "player,stop"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.01; + target: "button_pause_clip"; + target: "button_play_clip"; + } + + program + { + name: "sig_player_small_cover"; + signal: "track,cover"; + source: "calaos"; + action: SIGNAL_EMIT "player.small:track,cover" "calaos"; + } + + program + { + name: "sig_player_small_nocover"; + signal: "track,nocover"; + source: "calaos"; + action: SIGNAL_EMIT "player.small:track,nocover" "calaos"; + } + + program + { + name: "sig_browser_loading"; + signal: "browser,loading,start"; + source: "calaos"; + action: STATE_SET "loading" 0.0; + transition: ACCELERATE 0.15; + target: "browser_header_loading"; + target: "browser_loading"; + } + + program + { + name: "sig_browser_loading_done"; + signal: "browser,loading,stop"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.35; + target: "browser_header_loading"; + target: "browser_loading"; + } + } + +} + +group +{ + name: "calaos/audio/browser/button"; + + min: 243 61; + + parts + { + part + { + name: "bg"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "button_browser.png"; border: 12 12 15 15; } + } + } + + part + { + name: "glow"; + mouse_events: 0; + description + { + state: "default" 0.0; + visible: 0; + image { normal: "button_browser_glow.png"; border: 12 12 15 15; } + color: 255 255 255 0; + } + description + { + state: "touched" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "total"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -68 0; } + rel2 { relative: 1.0 1.0; offset: -20 -1; } + color: 255 218 90 255; + text { text: "0000"; font: "CalaosContent"; size: 10; min: 0 0; align: 1.0 0.5; } + } + } + + part + { + name: "title"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.55; offset: 35 -18; } + rel2 { relative: 1.0 0.55; offset: -21 -1; } + color: 58 180 215 255; + text { text: "Titre de l'objet"; font: "CalaosContent"; size: 15; min: 0 0; align: 0.0 0.5; } + } + } + + part + { + name: "subtitle"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.55; offset: 35 0; } + rel2 { relative: 1.0 0.55; offset: -21 14; } + color: 231 231 231 140; + text { text: "Sous-titre de l'élément"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.0 0.5; } + } + } + + part + { + name: "event"; + type: RECT; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + + programs + { + program + { + name: "on_click"; + signal: "mouse,down,1"; + source: "event"; + action: STATE_SET "touched" 0.0; + target: "glow"; + } + program + { + name: "on_release"; + signal: "mouse,up,1"; + source: "event"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.3; + target: "glow"; + } + program + { + name: "sig"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "pressed" "button"; + } + } +} + +group +{ + name: "calaos/audio/browser/root"; + + parts + { + part + { + name: "table"; + type: TABLE; + description + { + state: "default" 0.0; + rel1.offset: 0 5; + rel2.offset: -1 -6; + table + { + homogeneous: ITEM; + padding: 10 7; + align: 0.5 0.0; + min: 1 1; + } + } + } + } +} + + diff --git a/data/themes/default/structure/page_camera.edc b/data/themes/default/structure/page_camera.edc new file mode 100644 index 00000000..9d011979 --- /dev/null +++ b/data/themes/default/structure/page_camera.edc @@ -0,0 +1,1386 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/camera/small"; + + min: 218 300; + max: 218 300; + + parts + { + part + { + name: "camera_border"; + description + { + image.normal: "camera_border.png"; + rel1 { relative: 0.0 0.0; offset: 0 25; } + rel2 { relative: 0.0 0.0; offset: 217 25+171; } + } + } + + part + { + name: "title"; + type: TEXT; + description + { + state: "default" 0.0; + text { text: "Camera Title"; font: "CalaosContent"; size: 13; min: 0 0; align: 0.0 0.5; } + color: 231 231 231 255; + rel1 { relative: 0.0 0.0; offset: 30 11; } + rel2 { relative: 1.0 0.0; offset: -11 19; } + } + } + + part + { + name: "camera_icon"; + description + { + image.normal: "icon_camera_title.png"; + rel1 { relative: 0.0 0.0; offset: 8 7; } + rel2 { relative: 0.0 0.0; offset: 8+14 7+15; } + } + } + + part + { + name: "camera_reflect"; + description + { + image.normal: "camera_reflect.png"; + rel1 { relative: 0.0 1.0; offset: 0 -1-68; } + rel2 { relative: 0.0 1.0; offset: 217 -1; } + } + } + + part + { + name: "clip_camera_swallow"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0; offset: 14 40; } + rel2 { relative: 0.0 0.0; offset: 202 182; } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "clip_camera_nocam"; + type: RECT; + description + { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "visible" 0.0; + visible: 0; + color: 0 0 0 0; + } + } + + part + { + name: "camera_nocam"; + clip_to: "clip_camera_nocam"; + description + { + image.normal: "camera_nocam.png"; + rel1 { relative: 0.0 0.0; offset: 17 43; } + rel2 { relative: 0.0 0.0; offset: 17+181 43+135; } + } + } + + part + { + name: "camera.swallow"; + clip_to: "clip_camera_swallow"; + type: SWALLOW; + description + { + rel1.to: "clip_camera_swallow"; + rel2.to: "clip_camera_swallow"; + } + } + + part + { + name: "camera_spinner"; + clip_to: "clip_camera_nocam"; + type: GROUP; + source: "calaos/spinner/mini"; + description + { + rel1 { relative: 0.0 0.0; offset: 176 156; } + rel2 { relative: 0.0 0.0; offset: 176+21 156+21; } + } + } + + part + { + name: "subtitle"; + clip_to: "clip_camera_nocam"; + type: TEXT; + description + { + state: "default" 0.0; + text { text: "Aucune caméra connectée"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.0 0.5; } + color: 231 231 231 255; + rel1 { relative: 0.0 0.0; offset: 30 156; } + rel2 { relative: 0.0 0.0; offset: 174 156+22; } + } + } + } + + programs + { + program + { + name: "show_image"; + signal: "show,picture"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.4; + target: "clip_camera_swallow"; + target: "clip_camera_nocam"; + } + + program + { + name: "hide_image"; + signal: "hide,picture"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.4; + target: "clip_camera_swallow"; + target: "clip_camera_nocam"; + } + } +} + +group +{ + name: "calaos/page/media/camera_list"; + + parts + { + part + { + name: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + } + } + part + { + name: "content_size"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + } + } + + part + { + name: "skyline_middle_gradient"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "middle_skyline.png"; } + rel1 { relative: 0.0 1.0; offset: 0 -3; } + rel2 { relative: 1.0 1.0; offset: -1 43; } + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + color: 255 255 255 60; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "skyline_middle_neon"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "middle_skyline_neon.png"; } + rel1 { relative: 0.0 0.49; offset: 0 -6; } + rel2 { relative: 1.0 0.49; offset: -1 -1; } + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "round_buttons_whole"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 20 -33; } + rel2 { relative: 1.0 0.5; offset: -20 32; } + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + ROUND_BUTTON("button_previous_room", + "round_buttons_whole", + "round_buttons_whole", "round_buttons_whole", + "button_previous.png", "button_previous_glow.png", "button_previous_off.png", + "page,left", "camera", + "left", + 0.0, 0.0, 0, 0, + 0.0, 1.0, 65, -1) + + ROUND_BUTTON("button_next_room", + "round_buttons_whole", + "round_buttons_whole", "round_buttons_whole", + "button_next.png", "button_next_glow.png", "button_next_off.png", + "page,right", "camera", + "right", + 1.0, 0.0, -66, 0, + 1.0, 1.0, -1, -1) + + part + { + name: "camera_1_clip"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0.5 0.5; offset: -428 -250+27; } + rel2 { relative: 0.5 0.5; offset: -210 53+27; } + } + description + { + state: "left" 0.0; + rel1 { relative: 0.0 0.5; offset: -428-500 -250+27; } + rel2 { relative: 0.0 0.5; offset: -210-500 53+27; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "right" 0.0; + rel1 { relative: 1.0 0.5; offset: -428+500 -250+27; } + rel2 { relative: 1.0 0.5; offset: -210+500 53+27; } + visible: 0; + color: 255 255 255 0; + } + } + + alias: "camera.swallow.1" "camera_1:camera.swallow"; + alias: "camera.title.1" "camera_1:title"; + alias: "camera.subtitle.1" "camera_1:subtitle"; + part + { + name: "camera_1"; + type: GROUP; + source: "calaos/camera/small"; + clip_to: "camera_1_clip"; + description + { + state: "default" 0.0; + rel1.to: "camera_1_clip"; + rel2.to: "camera_1_clip"; + } + } + + part + { + name: "camera_2_clip"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0.5 0.5; offset: -215 -250+27; } + rel2 { relative: 0.5 0.5; offset: 2 53+27; } + } + description + { + state: "left" 0.0; + rel1 { relative: 0.0 0.5; offset: -215-500 -250+27; } + rel2 { relative: 0.0 0.5; offset: 2-500 53+27; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "right" 0.0; + rel1 { relative: 1.0 0.5; offset: -215+500 -250+27; } + rel2 { relative: 1.0 0.5; offset: 2+500 53+27; } + visible: 0; + color: 255 255 255 0; + } + } + + alias: "camera.swallow.2" "camera_2:camera.swallow"; + alias: "camera.title.2" "camera_2:title"; + alias: "camera.subtitle.2" "camera_2:subtitle"; + part + { + name: "camera_2"; + type: GROUP; + source: "calaos/camera/small"; + clip_to: "camera_2_clip"; + description + { + state: "default" 0.0; + rel1.to: "camera_2_clip"; + rel2.to: "camera_2_clip"; + } + } + + part + { + name: "camera_3_clip"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0.5 0.5; offset: -2 -250+27; } + rel2 { relative: 0.5 0.5; offset: 215 53+27; } + } + description + { + state: "left" 0.0; + rel1 { relative: 0.0 0.5; offset: -2-500 -250+27; } + rel2 { relative: 0.0 0.5; offset: 215-500 53+27; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "right" 0.0; + rel1 { relative: 1.0 0.5; offset: -2+500 -250+27; } + rel2 { relative: 1.0 0.5; offset: 215+500 53+27; } + visible: 0; + color: 255 255 255 0; + } + } + + alias: "camera.swallow.3" "camera_3:camera.swallow"; + alias: "camera.title.3" "camera_3:title"; + alias: "camera.subtitle.3" "camera_3:subtitle"; + part + { + name: "camera_3"; + type: GROUP; + source: "calaos/camera/small"; + clip_to: "camera_3_clip"; + description + { + state: "default" 0.0; + rel1.to: "camera_3_clip"; + rel2.to: "camera_3_clip"; + } + } + + part + { + name: "camera_4_clip"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0.5 0.5; offset: 212 -250+27; } + rel2 { relative: 0.5 0.5; offset: 428 53+27; } + } + description + { + state: "left" 0.0; + rel1 { relative: 0.0 0.5; offset: 212-500 -250+27; } + rel2 { relative: 0.0 0.5; offset: 428-500 53+27; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "right" 0.0; + rel1 { relative: 1.0 0.5; offset: 212+500 -250+27; } + rel2 { relative: 1.0 0.5; offset: 428+500 53+27; } + visible: 0; + color: 255 255 255 0; + } + } + + alias: "camera.swallow.4" "camera_4:camera.swallow"; + alias: "camera.title.4" "camera_4:title"; + alias: "camera.subtitle.4" "camera_4:subtitle"; + part + { + name: "camera_4"; + type: GROUP; + source: "calaos/camera/small"; + clip_to: "camera_4_clip"; + description + { + state: "default" 0.0; + rel1.to: "camera_4_clip"; + rel2.to: "camera_4_clip"; + } + } + + part + { + name: "module_scenario_bloc"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.5 0.75; offset: -368-10 -53-20+22;} + rel2 { relative: 0.5 0.75; offset: 367+10 52+32+22;} + color: 255 255 255 255; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "home.pager"; + type: SWALLOW; + clip_to: "module_scenario_bloc"; + description + { + state: "default" 0.0; + rel1.to: "module_scenario_bloc"; + rel2.to: "module_scenario_bloc"; + } + } + + part + { + name: "pager_deco_left"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "player_line_decoration_right.png"; } + rel1 { relative: 0.0 0.0; offset: -1 -10; } + rel2 { relative: 0.0 1.0; offset: 15 -1; } + rel1.to: "home.pager"; + rel2.to: "home.pager"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "pager_deco_right"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "player_line_decoration_left.png"; } + rel1 { relative: 1.0 0.0; offset: -16 -10; } + rel2 { relative: 1.0 1.0; offset: 0 -1; } + rel1.to: "home.pager"; + rel2.to: "home.pager"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + #define CAMERA_CLICK_EVENT(id) \ + part \ + { \ + name: "camera_click_"id; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "camera_"id"_clip"; \ + rel2.to: "camera_"id"_clip"; \ + color: 0 0 0 0; \ + } \ + } + + CAMERA_CLICK_EVENT("1") + CAMERA_CLICK_EVENT("2") + CAMERA_CLICK_EVENT("3") + CAMERA_CLICK_EVENT("4") + + #include "activity_loading.edc" + } + + programs + { + #define CAMERA_SIGNAL_REPEAT(camera) \ + program \ + { \ + name: "show_cam_"camera; \ + signal: "show,picture,"camera; \ + source: "calaos"; \ + action: SIGNAL_EMIT "camera_"camera":show,picture" "calaos"; \ + } \ + program \ + { \ + name: "hide_cam_"camera; \ + signal: "hide,picture,"camera; \ + source: "calaos"; \ + action: SIGNAL_EMIT "camera_"camera":hide,picture" "calaos"; \ + } + + CAMERA_SIGNAL_REPEAT("1") + CAMERA_SIGNAL_REPEAT("2") + CAMERA_SIGNAL_REPEAT("3") + CAMERA_SIGNAL_REPEAT("4") + + program + { + name: "show_pager_deco"; + signal: "show,edge"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: ACCELERATE 0.15; + target: "pager_deco_left"; + target: "pager_deco_right"; + } + program + { + name: "hide_pager_deco"; + signal: "hide,edge"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.35; + target: "pager_deco_left"; + target: "pager_deco_right"; + } + + program + { + name: "on_show"; + signal: "show"; + source: ""; + action: STATE_SET "right" 0.0; + target: "camera_1_clip"; + target: "camera_2_clip"; + target: "camera_3_clip"; + target: "camera_4_clip"; + after: "show_delayed"; + } + + program + { + name: "show_delayed"; + in: 0.15 0.0; + after: "show_cameras"; + } + + program + { + name: "hide_left"; + signal: "hide,left"; + source: "calaos"; + action: STATE_SET "left" 0.0; + transition: ACCELERATE 0.4; + target: "camera_1_clip"; + target: "camera_2_clip"; + target: "camera_3_clip"; + target: "camera_4_clip"; + after: "reset_right"; + } + program + { + name: "reset_right"; + action: STATE_SET "right" 0.0; + target: "camera_1_clip"; + target: "camera_2_clip"; + target: "camera_3_clip"; + target: "camera_4_clip"; + after: "send_sig_done"; + } + + program + { + name: "send_sig_done"; + action: SIGNAL_EMIT "animation,done" "cameras"; + } + + program + { + name: "hide_right"; + signal: "hide,right"; + source: "calaos"; + action: STATE_SET "right" 0.0; + transition: ACCELERATE 0.4; + target: "camera_1_clip"; + target: "camera_2_clip"; + target: "camera_3_clip"; + target: "camera_4_clip"; + after: "reset_left"; + } + program + { + name: "reset_left"; + action: STATE_SET "left" 0.0; + target: "camera_1_clip"; + target: "camera_2_clip"; + target: "camera_3_clip"; + target: "camera_4_clip"; + after: "send_sig_done"; + } + + program + { + name: "show_cameras"; + signal: "show"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.4; + target: "camera_1_clip"; + target: "camera_2_clip"; + target: "camera_3_clip"; + target: "camera_4_clip"; + } + + #define CAMERA_CLICK_EVENT_PROG(id) \ + program \ + { \ + name: "click_camera_"id; \ + signal: "mouse,clicked,1"; \ + source: "camera_click_"id; \ + action: SIGNAL_EMIT "select,"id "camera"; \ + } + + CAMERA_CLICK_EVENT_PROG("1") + CAMERA_CLICK_EVENT_PROG("2") + CAMERA_CLICK_EVENT_PROG("3") + CAMERA_CLICK_EVENT_PROG("4") + } + +} + + +group +{ + name: "calaos/page/media/camera_select"; + + script + { + public is_fullscreen; + public is_ptz; + } + + parts + { + part + { + name: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + } + } + part + { + name: "content_size"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + } + } + + part + { + name: "room_title.text"; + type: TEXT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + text { text: "Room Title"; font: "CalaosContent"; size: 13; min: 0 0; align: 0.0 0.5; } + color: 231 231 231 255; + rel1 { relative: 0.0 0.0; offset: 20+40 20; } + rel2 { relative: 0.5 0.0; offset: -11 20+30; } + max: 410 -1; + } + } + + part + { + name: "icon_room"; + clip_to: "content_clip"; + description + { + image.normal: "icon_room.png"; + rel1 { relative: 0.0 0.5; offset: -21-10 -8; to: "room_title.text"; } + rel2 { relative: 0.0 0.5; offset: -1-10 7; to: "room_title.text"; } + } + } + + part + { + name: "list_deco_left"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + rel1 { relative: 0.0 0.0; offset: 20 20+30; } + rel2 { relative: 0.5 1.0; offset: -160 -20; } + rel1.to: "content_size"; + rel2.to: "content_size"; + max: 410 -1; + } + } + + part + { + name: "list.swallow"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "list_deco_left"; + rel2.to: "list_deco_left"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "button_position_clip"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 255 255 255 0; + visible: 0; + rel1 { relative: 0.5 1.0; offset: -153 -20-160; } + rel2 { relative: 1.0 1.0; offset: -20 -20; } + rel1.to: "content_size"; + rel2.to: "content_size"; + } + description + { + state: "ptz" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + + } + + #define BUTTON_CAMERA_POSITION(id, offset_x1, offset_y1, offset_x2, offset_y2) \ + part \ + { \ + name: "button.position."id; \ + type: EXTERNAL; \ + source: "elm/button"; \ + clip_to: "button_position_clip"; \ + description \ + { \ + state: "default" 0.0; \ + params \ + { \ + string: "style" "calaos/button/position"; \ + string: "label" "Position "id; \ + } \ + rel1 { relative: 0.0 0.0; offset: offset_x1 offset_y1; to: "button_position_clip"; } \ + rel2 { relative: 0.0 0.0; offset: offset_x2 offset_y2; to: "button_position_clip"; } \ + } \ + } + + #ifdef BSPACER + #undef BSPACER + #endif + #define BSPACER 30 + BUTTON_CAMERA_POSITION("1", 38, 0, 38+112, 36) + BUTTON_CAMERA_POSITION("2", 38+112+BSPACER, 0, 38+112+BSPACER+112, 36) + BUTTON_CAMERA_POSITION("3", 38+112+BSPACER+112+BSPACER, 0, 38+112+BSPACER+112+BSPACER+112, 36) + BUTTON_CAMERA_POSITION("4", 38+112+BSPACER+112+BSPACER+112+BSPACER, 0, 38+112+BSPACER+112+BSPACER+112+BSPACER+112, 36) + + BUTTON_CAMERA_POSITION("5", 38, 50, 38+112, 86) + BUTTON_CAMERA_POSITION("6", 38+112+BSPACER, 50, 38+112+BSPACER+112, 86) + BUTTON_CAMERA_POSITION("7", 38+112+BSPACER+112+BSPACER, 50, 38+112+BSPACER+112+BSPACER+112, 86) + BUTTON_CAMERA_POSITION("8", 38+112+BSPACER+112+BSPACER+112+BSPACER, 50, 38+112+BSPACER+112+BSPACER+112+BSPACER+112, 86) + + part + { + name: "button.position.save"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_position_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position"; + string: "label" "Sauver la position actuelle"; + } + rel1 { relative: 0.0 0.0; offset: 38 100; to: "button_position_clip"; } + rel2 { relative: 0.0 0.0; offset: 38+112+BSPACER+112 136 ; to: "button_position_clip"; } + } + } + + part + { + name: "camera_mask"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 0 0 0 0; + visible: 0; + } + description + { + state: "ptz" 0.0; + color: 0 0 0 0; + visible: 0; + } + description + { + state: "fullscreen" 0.0; + color: 0 0 0 150; + visible: 1; + } + } + + part + { + name: "button_ptz_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 30 18; to: "camera_border_decoration"; } + rel2 { relative: 1.0 0.0; offset: 30+147 18+131; to: "camera_border_decoration"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "ptz" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "fullscreen" 0.0; + rel1 { relative: 1.0 0.0; offset: 10 18; to: "camera_border_decoration"; } + rel2 { relative: 1.0 0.0; offset: 10+147 18+131; to: "camera_border_decoration"; } + visible: 1; + color: 255 255 255 255; + } + description + { + state: "fullscreen" 1.0; + rel1 { relative: 1.0 0.0; offset: 10 18; to: "camera_border_decoration"; } + rel2 { relative: 1.0 0.0; offset: 10+147 18+131; to: "camera_border_decoration"; } + visible: 0; + color: 255 255 255 0; + } + } + + part + { + name: "button_ptz_zoom_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "button_ptz_clip"; + rel2.to: "button_ptz_clip"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "button.ptz.left"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/left"; } + rel1 { relative: 0.0 0.0; offset: 3 47; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 46 84; to: "button_ptz_clip"; } + } + } + + part + { + name: "button.ptz.center"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/center"; } + rel1 { relative: 0.0 0.0; offset: 52 47; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 95 84; to: "button_ptz_clip"; } + } + } + + part + { + name: "button.ptz.right"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/right"; } + rel1 { relative: 0.0 0.0; offset: 101 47; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 144 84; to: "button_ptz_clip"; } + } + } + + part + { + name: "button.ptz.up"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/up"; } + rel1 { relative: 0.0 0.0; offset: 52 3; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 95 40; to: "button_ptz_clip"; } + } + } + + part + { + name: "button.ptz.down"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/down"; } + rel1 { relative: 0.0 0.0; offset: 52 91; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 95 129; to: "button_ptz_clip"; } + } + } + + part + { + name: "button.ptz.zoom_in"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_zoom_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/zoom_in"; } + rel1 { relative: 0.0 0.0; offset: 101 91; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 144 129; to: "button_ptz_clip"; } + } + } + + part + { + name: "button.ptz.zoom_out"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_ptz_zoom_clip"; + description + { + state: "default" 0.0; + params { string: "style" "calaos/button/position/zoom_out"; } + rel1 { relative: 0.0 0.0; offset: 3 91; to: "button_ptz_clip"; } + rel2 { relative: 0.0 0.0; offset: 46 129; to: "button_ptz_clip"; } + } + } + + part + { + name: "camera_whole"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -153 -239; } + rel2 { relative: 0.5 0.5; offset: 475 238; } + } + description + { + state: "ptz" 0.0; + rel1 { relative: 0.5 0.0; offset: -213+60 10; } + rel2 { relative: 0.5 0.0; offset: 212+60 10+325; } + } + description + { + state: "fullscreen" 0.0; + aspect: 1.30675 1.0; + aspect_preference: BOTH; + rel1 { relative: 0.0 0.0; offset: 10 10; } + rel2 { relative: 1.0 1.0; offset: -10 -10; } + } + } + + part + { + name: "camera_border_decoration"; + clip_to: "camera_whole"; + description + { + state: "default" 0.0; + image { normal: "camera_medium_border.png"; border: 15 15 15 15; } + rel1.to: "camera_whole"; + rel2.to: "camera_whole"; + } + } + + part + { + name: "camera_clip"; + clip_to: "camera_whole"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 15 15; } + rel2 { relative: 1.0 1.0; offset: -14 -12; } + rel1.to: "camera_whole"; + rel2.to: "camera_whole"; + visible: 0; + color: 0 0 0 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "camera.swallow"; + type: SWALLOW; + clip_to: "camera_clip"; + description + { + rel1.to: "camera_clip"; + rel2.to: "camera_clip"; + } + } + + part + { + name: "button.fullscreen"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + fixed: 1 0; + params + { + string: "icon" "calaos/icons/action_button/fullscreen"; + string: "style" "calaos/action_button/blue"; + } + rel1 { relative: 1.0 1.0; offset: -21-20 -21-20; to: "camera_border_decoration"; } + rel2 { relative: 1.0 1.0; offset: 22-20 22-20; to: "camera_border_decoration"; } + } + } + + + + } + + programs + { + program + { + name: "show_image"; + signal: "show,picture"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.4; + target: "camera_clip"; + } + + program + { + name: "hide_image"; + signal: "hide,picture"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.4; + target: "camera_clip"; + } + + program + { + name: "ptz_true"; + signal: "ptz,true"; + source: "calaos"; + action: STATE_SET "ptz" 0.0; +// transition: DECELERATE 0.3; + target: "camera_whole"; + target: "button_ptz_clip"; + target: "button_position_clip"; + after: "ptz_true_code"; + } + program + { + name: "ptz_true_code"; + script + { + set_int(is_ptz, 1); + } + } + + program + { + name: "ptz_false"; + signal: "ptz,false"; + source: "calaos"; + action: STATE_SET "default" 0.0; +// transition: DECELERATE 0.3; + target: "camera_whole"; + target: "button_ptz_clip"; + target: "button_position_clip"; + after: "ptz_false_code"; + } + program + { + name: "ptz_false_code"; + script + { + set_int(is_ptz, 0); + } + } + + program + { + name: "zoom_true"; + signal: "zoom,true"; + source: "calaos"; + action: STATE_SET "visible" 0.0; +// transition: DECELERATE 0.3; + target: "button_ptz_zoom_clip"; + } + + program + { + name: "zoom_false"; + signal: "zoom,false"; + source: "calaos"; + action: STATE_SET "default" 0.0; +// transition: DECELERATE 0.3; + target: "button_ptz_zoom_clip"; + } + + program + { + name: "fullscreen_click"; + signal: "pressed"; + source: "button.fullscreen"; + script + { + if (get_int(is_fullscreen) == 1) + { + if (get_int(is_ptz) == 1) + run_program(PROGRAM:"fullscreen_unset_ptz"); + else + run_program(PROGRAM:"fullscreen_unset_normal"); + set_int(is_fullscreen, 0); + } + else + { + if (get_int(is_ptz) == 1) + run_program(PROGRAM:"fullscreen_set_ptz"); + else + run_program(PROGRAM:"fullscreen_set_normal"); + set_int(is_fullscreen, 1); + } + } + } + + program + { + name: "fullscreen_set_normal"; + action: STATE_SET "fullscreen" 1.0; + transition: DECELERATE 0.5; + target: "camera_whole"; + target: "camera_mask"; + target: "button_ptz_clip"; + } + + program + { + name: "fullscreen_set_ptz"; + action: STATE_SET "fullscreen" 0.0; + transition: DECELERATE 0.5; + target: "camera_whole"; + target: "camera_mask"; + target: "button_ptz_clip"; + } + + program + { + name: "fullscreen_unset_normal"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "camera_whole"; + target: "camera_mask"; + } + + program + { + name: "fullscreen_unset_ptz"; + action: STATE_SET "ptz" 0.0; + transition: DECELERATE 0.5; + target: "camera_whole"; + target: "camera_mask"; + target: "button_ptz_clip"; + } + } +} + +group +{ + name: "calaos/page/media/camera_select/position_save"; + + parts + { + part + { + name: "text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; offset: 5 15; } + rel2 { relative: 1.0 0.5; offset: -5 40; } + text { align: 0.5 0.5; style: "StandardText"; text: "
      Sauvegarde à la position #0
      "; } + } + } + + part + { + name: "spinner"; + type: GROUP; + source: "calaos/spinner/mini"; + description + { + rel1 { relative: 0.5 0.5; offset: -11 -11; } + rel2 { relative: 0.5 0.5; offset: 10 10; } + } + } + } + + programs + { + + } +} diff --git a/data/themes/default/structure/page_config_panel.edc b/data/themes/default/structure/page_config_panel.edc new file mode 100644 index 00000000..29411401 --- /dev/null +++ b/data/themes/default/structure/page_config_panel.edc @@ -0,0 +1,34 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/config"; + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "text"; + clip_to: "content_clip"; + type: TEXT; + description + { + state, "default" 0.0; + visible: 1; + text { text: "Text Part Config Panel"; font: "CalaosContentBold"; size: 20; min: 0 0; align: 0.5 0.8; } + color: 95 95 95 255; + } + } + } + + programs + { + + } + +} diff --git a/data/themes/default/structure/page_edit_scenario.edc b/data/themes/default/structure/page_edit_scenario.edc new file mode 100644 index 00000000..8fa71908 --- /dev/null +++ b/data/themes/default/structure/page_edit_scenario.edc @@ -0,0 +1,1070 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/edit_scenario"; + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "wizard_header"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + color: 255 255 255 38; + image.normal: "wizzard_header.png"; + rel1.to: "content_size"; + rel2.to: "content_size"; + rel1 { relative: 0.0 0.0; offset: 0 0; } + rel2 { relative: 1.0 0.0; offset: -1 68; } + } + } + + part + { + name: "wizard_line"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + color: 69 156 181 150; + rel1 { relative: 0.0 1.0; to: "wizard_header"; } + rel2 { relative: 1.0 1.0; offset: -1 0; to: "wizard_header"; } + } + } + + part + { + name: "wizard_sep_0"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + color: 0 0 0 86; + rel1 { relative: 0.0 0.0; offset: 13 1; to: "wizard_header"; } + rel2 { relative: 0.0 1.0; offset: 14 -2; to: "wizard_header"; } + } + } + part + { + name: "wizard_sep_1"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + color: 0 0 0 86; + rel1 { relative: 0.0 0.0; offset: 13+250 1; to: "wizard_header"; } + rel2 { relative: 0.0 1.0; offset: 14+250 -2; to: "wizard_header"; } + } + } + part + { + name: "wizard_sep_2"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + color: 0 0 0 86; + rel1 { relative: 0.0 0.0; offset: 13+2*250+2 1; to: "wizard_header"; } + rel2 { relative: 0.0 1.0; offset: 14+2*250+2 -2; to: "wizard_header"; } + } + } + + part + { + name: "wizard_base_1"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to_y: "wizard_header"; + rel2.to_y: "wizard_header"; + rel1.to_x: "wizard_sep_0"; + rel2.to_x: "wizard_sep_1"; + visible: 0; + rel1 { relative: 1.0 0.0; } + rel2 { relative: 0.0 1.0; } + } + } + part + { + name: "wizard_base_2"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to_y: "wizard_header"; + rel2.to_y: "wizard_header"; + rel1.to_x: "wizard_sep_1"; + rel2.to_x: "wizard_sep_2"; + visible: 0; + rel1 { relative: 1.0 0.0; } + rel2 { relative: 0.0 1.0; } + } + } + + part + { + name: "wizard_select"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image.normal: "wizzard_bg_selected.png"; + rel1.to: "wizard_base_1"; + rel2.to: "wizard_base_1"; + color: 255 255 255 76; + } + description + { + state: "step_1" 0.0; + inherit: "default" 0.0; + } + description + { + state: "step_2" 0.0; + inherit: "default" 0.0; + rel1.to: "wizard_base_2"; + rel2.to: "wizard_base_2"; + } + } + part + { + name: "wizard_select_line"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image.normal: "wizzard_line_selected.png"; + rel1.to: "wizard_select"; + rel2.to: "wizard_select"; + rel1 { relative: 0.0 1.0; offset: 0 -1; } + rel2 { relative: 1.0 1.0; offset: -1 1; } + } + } + + part + { + name: "wizard_step_1"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image.normal: "wizzard_1.png"; + rel1.to: "wizard_base_1"; + rel2.to: "wizard_base_1"; + color: 255 255 255 51; + rel1 { relative: 0.0 0.2; offset: 4 0; } + rel2 { relative: 0.0 1.0; offset: 4+60 -1; } + } + } + + part + { + name: "wizard_step_2"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image.normal: "wizzard_2.png"; + rel1.to: "wizard_base_2"; + rel2.to: "wizard_base_2"; + color: 255 255 255 51; + rel1 { relative: 0.0 0.2; offset: 4 0; } + rel2 { relative: 0.0 1.0; offset: 4+60 -1; } + } + } + + part + { + name: "clip_step_before"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "wizard_base_1"; + rel2.to: "wizard_base_1"; + rel2.to_x: "wizard_select"; + } + } + part + { + name: "clip_step_select"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "wizard_select"; + rel2.to: "wizard_select"; + } + } + part + { + name: "clip_step_after"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "wizard_base_2"; + rel1.to_x: "wizard_select"; + rel2.to: "wizard_base_2"; + } + } + + part + { + name: "title_step.1"; + type: TEXTBLOCK; + clip_to: "clip_step_select"; + description + { + state: "default" 0.0; + rel1.to: "wizard_base_1"; + rel2.to: "wizard_base_1"; + rel1 { relative: 0.0 0.0; offset: 4+60 0; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + text { text: "Informations
      Saisissez le nom et
      les informations du scénario.
      "; style: "HTMLStyle"; } + } + } + part + { + name: "title_step.1.disabled"; + type: TEXTBLOCK; + clip_to: "clip_step_before"; + description + { + state: "default" 0.0; + rel1.to: "wizard_base_1"; + rel2.to: "wizard_base_1"; + rel1 { relative: 0.0 0.0; offset: 4+60 0; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + text { text: "Informations
      Saisissez le nom et
      les informations du scénario.
      "; style: "HTMLStyle"; } + } + } + + part + { + name: "title_step.2"; + type: TEXTBLOCK; + clip_to: "clip_step_select"; + description + { + state: "default" 0.0; + rel1.to: "wizard_base_2"; + rel2.to: "wizard_base_2"; + rel1 { relative: 0.0 0.0; offset: 4+70 0; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + text { text: "Configuration
      Ajoutez les éléments de vos
      pièces et configurez-les.
      "; style: "HTMLStyle"; } + } + } + part + { + name: "title_step.2.disabled"; + type: TEXTBLOCK; + clip_to: "clip_step_after"; + description + { + state: "default" 0.0; + rel1.to: "wizard_base_2"; + rel2.to: "wizard_base_2"; + rel1 { relative: 0.0 0.0; offset: 4+70 0; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + text { text: "Configuration
      Ajoutez les éléments de vos
      pièces et configurez-les.
      "; style: "HTMLStyle"; } + } + } + + + part + { + name: "step.content"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to_y: "wizard_header"; + rel1.to_x: "content_size"; + rel2.to: "content_size"; + rel1 { relative: 0.0 1.0; } + } + } + + part + { + name: "button_previous_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "button.previous"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_previous_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -463-24 10; } + rel2 { relative: 1.0 0.0; offset: -293-24 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + params + { + string: "style" "calaos/activity/footer"; + string: "icon" "calaos/icons/button/back"; + string: "label" "Page précédente"; + } + } + } + + part + { + name: "button_next_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "button.next"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_next_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -293-12 10; } + rel2 { relative: 1.0 0.0; offset: -126-12 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + params + { + string: "style" "calaos/activity/footer"; + string: "icon" "calaos/icons/button/valid"; + string: "label" "Page suivante"; + } + } + } + + part + { + name: "button_valid_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "button.valid"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_valid_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; offset: -293-12 10; } + rel2 { relative: 1.0 0.0; offset: -126-12 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + params + { + string: "style" "calaos/activity/footer"; + string: "icon" "calaos/icons/button/valid"; + string: "label" "Enregistrer"; + } + } + } + } + + programs + { + program + { + in: 0.3 0.0; + name: "step_1_header"; + signal: "set,step1"; + source: "calaos"; + action: STATE_SET "step_1" 0.0; + transition: SPRING 0.4 3.0 3.0; + target: "wizard_select"; + } + program + { + in: 0.3 0.0; + name: "step_2_header"; + signal: "set,step2"; + source: "calaos"; + action: STATE_SET "step_2" 0.0; + transition: SPRING 0.4 3.0 3.0; + target: "wizard_select"; + } + + program + { + name: "step_1"; + signal: "set,step1"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.3; + target: "button_next_clip"; + } + program + { + name: "step_1_hide"; + signal: "set,step1"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.3; + target: "button_previous_clip"; + target: "button_valid_clip"; + } + + program + { + name: "step_2"; + signal: "set,step2"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.3; + target: "button_previous_clip"; + target: "button_valid_clip"; + } + program + { + name: "step_2_hide"; + signal: "set,step2"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.3; + target: "button_next_clip"; + } + } +} + +group +{ + name: "calaos/scenario/step_1"; + + parts + { + part + { + name: "title_step.2"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + max: 512 -1; + rel1 { relative: 0.0 0.5; offset: 0 -100; } + rel2 { relative: 1.0 0.5; offset: -1 -100+72; } + text { text: "Création ou modification d'un scénario

      Utilisez les champs ci-dessous pour nommer votre scénario afin de l'identifier
      rapidement. Choisissez également si le scénario sera visible ou non.
      "; style: "HTMLStyle"; } + } + } + + part + { + name: "item_back_name"; + description + { + state: "default" 0.0; + fixed: 1 1; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + max: 512 -1; + rel1 { relative: 0.0 0.5; offset: 0 -22; } + rel2 { relative: 1.0 0.5; offset: -1 21; } + } + } + + part + { + name: "button.name"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "item_back_name"; + rel2.to: "item_back_name"; + rel1 { relative: 1.0 0.5; offset: -6-33 -13; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + params + { + string: "style" "calaos/action_button/pink"; + string: "icon" "calaos/icons/action_button/keyboard"; + } + } + } + + part + { + name: "name.text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1.offset: 6 0; + rel2.offset: -39-5 -1; + rel1.to: "item_back_name"; + rel2.to: "item_back_name"; + text + { + text: "Nom du scénario: Mon Nouveau Scénario"; + style: "StandardText"; + } + } + } + + part + { + name: "item_back_visible"; + description + { + state: "default" 0.0; + fixed: 1 1; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + max: 512 -1; + rel1 { relative: 0.0 0.5; offset: 0 -22+44+5; } + rel2 { relative: 1.0 0.5; offset: -1 21+44+5; } + } + } + + part + { + name: "button_select_clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "select"; + color: 255 255 255 255; + visible: 1; + } + description + { + state: "unselect"; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "button_unselect_clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "select"; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "unselect"; + color: 255 255 255 255; + visible: 1; + } + } + + part + { + name: "button.selected"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_select_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "item_back_visible"; + rel2.to: "item_back_visible"; + rel1 { relative: 1.0 0.5; offset: -6-33 -13; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + params + { + string: "style" "calaos/action_button/blue"; + string: "icon" "calaos/icons/action_button/select"; + } + } + } + + part + { + name: "button.unselected"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_unselect_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "item_back_visible"; + rel2.to: "item_back_visible"; + rel1 { relative: 1.0 0.5; offset: -6-33 -13; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + params + { + string: "style" "calaos/action_button/blue"; + string: "icon" "calaos/icons/action_button/unselect"; + } + } + } + + part + { + name: "visible.text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state, "default" 0.0; + rel1.offset: 6 0; + rel2.offset: -39-5 -1; + rel1.to: "item_back_visible"; + rel2.to: "item_back_visible"; + text + { + text: "Afficher dans l'interface: Activé"; + style: "StandardText"; + } + } + } + } + + programs + { + program + { + signal: "visible.select"; + source: "calaos"; + action: STATE_SET "select" 0.0; + transition: DECELERATE 0.2; + target: "button_select_clip"; + target: "button_unselect_clip"; + } + + program + { + signal: "visible.unselect"; + source: "calaos"; + action: STATE_SET "unselect" 0.0; + transition: DECELERATE 0.2; + target: "button_select_clip"; + target: "button_unselect_clip"; + } + } +} + +group +{ + name: "calaos/scenario/step_2"; + + parts + { + part + { + name: "icon_myhome"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "icon_myhome.png"; + rel1 { relative: 0.0 0.0; offset: 1 -5-34; } + rel2 { relative: 0.0 0.0; offset: 57 -5; } + rel1.to: "home_list_deco"; + rel2.to: "home_list_deco"; + color: 255 255 255 140; + } + } + + part + { + name: "home_text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 66 -37; } + rel2 { relative: 1.0 0.0; offset: -1 -5; } + rel1.to: "home_list_deco"; + rel2.to: "home_list_deco"; + text { + text: "Sélectionnez et ajoutez les éléments désirés à votre scénario.
      Vous pourrez ensuite définir les actions.
      "; + style: "HTMLStyle"; + } + } + } + + part + { + name: "home_list_deco"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + max: 512 -1; + rel1 { relative: 0.0 0.0; offset: 30 52; } + rel2 { relative: 0.5 1.0; offset: -60 -30; } + } + } + + part + { + name: "home.list"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1.to: "home_list_deco"; + rel2.to: "home_list_deco"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "sep"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "scenario_separator.png"; } + rel1 { relative: 0.5 0.0; offset: -18 2; } + rel2 { relative: 0.5 1.0; offset: 17 -2; } + } + } + + part + { + name: "action_text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 2 -38; } + rel2 { relative: 1.0 0.0; offset: -1 -5; } + rel1.to: "actions_list_deco"; + rel2.to: "actions_list_deco"; + text { + text: "Modifiez les éléments ajoutés à la liste ci-dessous. Les actions définissent
      ce qui se passera lors de l'execution du scénario.
      "; + style: "HTMLStyle"; + } + } + } + + part + { + name: "actions_list_deco"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + max: 512 -1; + rel1 { relative: 0.5 0.0; offset: 60 52+30; } + rel2 { relative: 1.0 1.0; offset: -30 -30; } + } + } + + part + { + name: "actions.list"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1.to: "actions_list_deco"; + rel2.to: "actions_list_deco"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "button.step"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + fixed: 1 0; + params + { + string: "label" "Etape 1"; + string: "style" "calaos/button/position"; + } + rel1 { relative: 0.0 0.0; offset: -124 8; to_x: "button.step.add"; } + rel2 { relative: 0.0 0.0; offset: -6 45; to_x: "button.step.add"; } + } + } + + part + { + name: "button.step.add"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: -6-33 -13; to_y: "button.step"; to_x: "button.step.delete"; } + rel2 { relative: 0.0 0.5; offset: -6 13; to_y: "button.step"; to_x: "button.step.delete"; } + params + { + string: "style" "calaos/action_button/blue"; + string: "icon" "calaos/icons/action_button/more"; + } + } + } + + part + { + name: "button.step.delete"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: -10-33 -13; to_y: "button.step"; } + rel2 { relative: 1.0 0.5; offset: -10 13; to_y: "button.step"; } + params + { + string: "style" "calaos/action_button/blue"; + string: "icon" "calaos/icons/action_button/delete"; + } + } + } + + part + { + name: "item_back_cycle"; + description + { + state: "default" 0.0; + fixed: 1 1; + image { normal: "button_element.png"; border: 11 11 14 14; } + color: 255 255 255 105; + max: 512 -1; + rel1 { relative: 0.0 0.5; offset: 0 -22; to_y: "button.step"; to_x: "actions_list_deco"; } + rel2 { relative: 0.0 0.5; offset: -10 21; to_y: "button.step"; to_x: "button.step"; } + } + } + + part + { + name: "button_select_clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "select"; + color: 255 255 255 255; + visible: 1; + } + description + { + state: "unselect"; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "button_unselect_clip"; + type: RECT; + description + { + state: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "select"; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "unselect"; + color: 255 255 255 255; + visible: 1; + } + } + + part + { + name: "button.selected"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_select_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "item_back_cycle"; + rel2.to: "item_back_cycle"; + rel1 { relative: 1.0 0.5; offset: -6-33 -13; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + params + { + string: "style" "calaos/action_button/blue"; + string: "icon" "calaos/icons/action_button/select"; + } + } + } + + part + { + name: "button.unselected"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "button_unselect_clip"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "item_back_cycle"; + rel2.to: "item_back_cycle"; + rel1 { relative: 1.0 0.5; offset: -6-33 -13; } + rel2 { relative: 1.0 0.5; offset: -6 13; } + params + { + string: "style" "calaos/action_button/blue"; + string: "icon" "calaos/icons/action_button/unselect"; + } + } + } + + part + { + name: "cycle.text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state, "default" 0.0; + rel1.offset: 6 0; + rel2.offset: -39-5 -1; + rel1.to: "item_back_cycle"; + rel2.to: "item_back_cycle"; + text + { + text: "Execution en boucle: Activé"; + style: "StandardText"; + } + } + } + } + + programs + { + program + { + signal: "cycle.select"; + source: "calaos"; + action: STATE_SET "select" 0.0; + transition: DECELERATE 0.2; + target: "button_select_clip"; + target: "button_unselect_clip"; + } + + program + { + signal: "cycle.unselect"; + source: "calaos"; + action: STATE_SET "unselect" 0.0; + transition: DECELERATE 0.2; + target: "button_select_clip"; + target: "button_unselect_clip"; + } + } +} + + diff --git a/data/themes/default/structure/page_home.edc b/data/themes/default/structure/page_home.edc new file mode 100644 index 00000000..94d2076d --- /dev/null +++ b/data/themes/default/structure/page_home.edc @@ -0,0 +1,1287 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/home"; + + script + { + public room_mode_1; + public room_mode_2; + public room_mode_3; + public room_mode_4; + public room_mode_5; + public room_mode_6; + } + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "skyline_middle_gradient"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "middle_skyline.png"; } + rel1 { relative: 0.0 1.0; offset: 0 -3; } + rel2 { relative: 1.0 1.0; offset: -1 43; } + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + color: 255 255 255 60; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "skyline_middle_neon"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "middle_skyline_neon.png"; } + rel1 { relative: 0.0 0.49; offset: 0 -6; } + rel2 { relative: 1.0 0.49; offset: -1 -1; } + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + + part + { + name: "skyline_top_gradient"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "top_skyline.png"; } + rel1 { relative: 0.5 0.2; offset: -511 0; } + rel2 { relative: 0.5 0.2; offset: 512 41; } + color: 255 255 255 60; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "skyline_top_neon"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "top_skyline_neon.png"; } + rel1 { relative: 0.5 0.2; offset: -511 -2; } + rel2 { relative: 0.5 0.2; offset: 512 1; } + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "round_buttons_whole"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: 20 -33; } + rel2 { relative: 1.0 0.5; offset: -20 32; } + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + ROUND_BUTTON("button_previous_room", + "round_buttons_whole", + "round_buttons_whole", "round_buttons_whole", + "button_previous.png", "button_previous_glow.png", "button_previous_off.png", + "room,left", "home", + "left", + 0.0, 0.0, 0, 0, + 0.0, 1.0, 65, -1) + + ROUND_BUTTON("button_next_room", + "round_buttons_whole", + "round_buttons_whole", "round_buttons_whole", + "button_next.png", "button_next_glow.png", "button_next_off.png", + "room,right", "home", + "right", + 1.0, 0.0, -66, 0, + 1.0, 1.0, -1, -1) + + part + { + name: "clip_room.1"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.5; offset: -433 -146-18;} + rel2 { relative: 0.5 0.5; offset: -83 145-18;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1.to: "skyline_top_neon"; + rel2.to: "skyline_top_neon"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -175 -126;} + rel2 { relative: 0.5 0.5; offset: 174 165;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "clip_room.2"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.5; offset: -175 -146-18;} + rel2 { relative: 0.5 0.5; offset: 174 145-18;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1.to: "skyline_top_neon"; + rel2.to: "skyline_top_neon"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0.5 0.5; offset: -175 -126;} + rel2 { relative: 0.5 0.5; offset: 174 165;} + } + } + + part + { + name: "clip_room.3"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.5; offset: 85 -146-18;} + rel2 { relative: 0.5 0.5; offset: 434 145-18;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1.to: "skyline_top_neon"; + rel2.to: "skyline_top_neon"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -175 -126;} + rel2 { relative: 0.5 0.5; offset: 174 165;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "clip_room.4"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.5; offset: -433 -146-18;} + rel2 { relative: 0.5 0.5; offset: -83 145-18;} + rel1.to_y: "skyline_top_neon"; + rel2.to_y: "skyline_top_neon"; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1.to: "skyline_middle_neon"; + rel2.to: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -175 -126;} + rel2 { relative: 0.5 0.5; offset: 174 165;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "clip_room.5"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.5; offset: -175 -146-18;} + rel2 { relative: 0.5 0.5; offset: 174 145-18;} + rel1.to_y: "skyline_top_neon"; + rel2.to_y: "skyline_top_neon"; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1.to: "skyline_middle_neon"; + rel2.to: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -175 -126;} + rel2 { relative: 0.5 0.5; offset: 174 165;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "clip_room.6"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.5; offset: 85 -146-18;} + rel2 { relative: 0.5 0.5; offset: 434 145-18;} + rel1.to_y: "skyline_top_neon"; + rel2.to_y: "skyline_top_neon"; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1.to: "skyline_middle_neon"; + rel2.to: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -175 -126;} + rel2 { relative: 0.5 0.5; offset: 174 165;} + rel1.to_y: "skyline_middle_neon"; + rel2.to_y: "skyline_middle_neon"; + visible: 1; + color: 255 255 255 255; + } + } + + #define SWALLOW_ROOM(room) \ + part \ + { \ + name: "room."room; \ + clip_to: "clip_room."room; \ + type: SWALLOW; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "clip_room."room; \ + rel2.to: "clip_room."room; \ + } \ + } + + SWALLOW_ROOM("1") + SWALLOW_ROOM("2") + SWALLOW_ROOM("3") + SWALLOW_ROOM("4") + SWALLOW_ROOM("5") + SWALLOW_ROOM("6") + + #define ROOM_EVENT_CATCHER(id) \ + part \ + { \ + name: "event_room_"id; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "clip_room."id; \ + rel2.to: "clip_room."id; \ + color: 0 0 0 0; \ + } \ + description \ + { \ + state: "detail" 0.0; \ + inherit: "default" 0.0; \ + rel1.to: "clip_room."id; \ + rel2.to: "clip_room."id; \ + visible: 0; \ + } \ + } + + ROOM_EVENT_CATCHER("1") + ROOM_EVENT_CATCHER("2") + ROOM_EVENT_CATCHER("3") + ROOM_EVENT_CATCHER("4") + ROOM_EVENT_CATCHER("5") + ROOM_EVENT_CATCHER("6") + + part + { + name: "module_scenario_bloc"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.5 0.75; offset: -368-10 -53-20;} + rel2 { relative: 0.5 0.75; offset: 367+10 52+32;} + color: 255 255 255 255; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part + { + name: "home.pager"; + type: SWALLOW; + clip_to: "module_scenario_bloc"; + description + { + state: "default" 0.0; + rel1.to: "module_scenario_bloc"; + rel2.to: "module_scenario_bloc"; + } + } + + part + { + name: "pager_deco_left"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "player_line_decoration_right.png"; } + rel1 { relative: 0.0 0.0; offset: -1 -10; } + rel2 { relative: 0.0 1.0; offset: 15 -1; } + rel1.to: "home.pager"; + rel2.to: "home.pager"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "pager_deco_right"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "player_line_decoration_left.png"; } + rel1 { relative: 1.0 0.0; offset: -16 -10; } + rel2 { relative: 1.0 1.0; offset: 0 -1; } + rel1.to: "home.pager"; + rel2.to: "home.pager"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "list_deco_left"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + rel1 { relative: 0.0 0.0; offset: 20 20; } + rel2 { relative: 0.5 1.0; offset: -160 -20; } + rel1.to: "content_size"; + rel2.to: "content_size"; + visible: 0; + color: 255 255 255 0; + max: 410 -1; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "list_deco_right"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + rel1 { relative: 0.5 0.0; offset: 160 20; } + rel2 { relative: 1.0 1.0; offset: -20 -20; } + rel1.to: "content_size"; + rel2.to: "content_size"; + visible: 0; + color: 255 255 255 0; + max: 410 -1; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "list_deco_top"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + rel1 { relative: 0.5 0.0; offset: -138 20; } + rel2 { relative: 0.5 0.5; offset: 137 -110; } + rel1.to: "content_size"; + rel2.to: "content_size"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + #define LIST_CLIP_SWALLOW(id) \ + part \ + { \ + name: "list_clip_"id; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + rel1.to: "list_deco_"id; \ + rel2.to: "list_deco_"id; \ + rel1.offset: 5 5; \ + rel2.offset: -5 -5; \ + } \ + description \ + { \ + state: "detail" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + } \ + part \ + { \ + name: "list."id; \ + type: SWALLOW; \ + clip_to: "list_clip_"id; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "list_clip_"id; \ + rel2.to: "list_clip_"id; \ + } \ + } + + LIST_CLIP_SWALLOW("top") + LIST_CLIP_SWALLOW("left") + LIST_CLIP_SWALLOW("right") + + + part + { + name: "clip_buttons_detail"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "detail" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "button.back" "button_back:button.back"; + part + { + name: "button_back"; + clip_to: "clip_buttons_detail"; + type: GROUP; + source: "button.back"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-170 10; } + rel2 { relative: 1.0 0.0; offset: -125-10 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + alias: "button.save" "button_save:button.save_room"; + part + { + name: "button_save"; + clip_to: "clip_buttons_detail"; + type: GROUP; + source: "button.save_room"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-180-248 10; } + rel2 { relative: 1.0 0.0; offset: -125-170-10 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + #include "activity_loading.edc" + } + + programs + { + program + { + name: "on_show"; + signal: "show"; + action: STATE_SET "active" 0.0; + transition: DECELERATE 0.35; + target: "clip_room.1"; + target: "clip_room.2"; + target: "clip_room.3"; + target: "clip_room.4"; + target: "clip_room.5"; + target: "clip_room.6"; + target: "module_scenario_bloc"; + } + + #define ROOM_PROG_SIGNAL(id, idname) \ + program \ + { \ + name: "signal_room_"id; \ + signal: "mouse,down,1"; \ + source: "event_room_"id; \ + action: SIGNAL_EMIT "select,room,"id "home"; \ + } \ + program \ + { \ + name: "show_event_room_"id; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 0.8; \ + target: "event_room_"id; \ + } \ + program \ + { \ + name: "signal_room_enable_"id; \ + signal: "enable,room,"id; \ + source: "calaos"; \ + script \ + { \ + set_state(PART:"event_room_"id, "default", 0.0); \ + set_int(room_mode_##idname, 0); \ + } \ + } \ + program \ + { \ + name: "signal_room_disable_"id; \ + signal: "disable,room,"id; \ + source: "calaos"; \ + script \ + { \ + set_state(PART:"event_room_"id, "detail", 0.0); \ + set_int(room_mode_##idname, 1); \ + } \ + } + + ROOM_PROG_SIGNAL("1", 1) + ROOM_PROG_SIGNAL("2", 2) + ROOM_PROG_SIGNAL("3", 3) + ROOM_PROG_SIGNAL("4", 4) + ROOM_PROG_SIGNAL("5", 5) + ROOM_PROG_SIGNAL("6", 6) + + program + { + name: "swallow_room_1"; + signal: "mouse,down,1"; + source: "event_room_1"; + after: "exchange_room_6/3-2"; + after: "exchange_room_5/2-2"; + after: "exchange_room_1/4-2"; + } + program + { + name: "swallow_room_2"; + signal: "mouse,down,1"; + source: "event_room_2"; + after: "exchange_room_6/3-2"; + after: "exchange_room_5/2-2"; + after: "exchange_room_1/4-2"; + } + program + { + name: "swallow_room_3"; + signal: "mouse,down,1"; + source: "event_room_3"; + after: "exchange_room_6/3-2"; + after: "exchange_room_5/2-2"; + after: "exchange_room_1/4-2"; + } + program + { + name: "swallow_room_4"; + signal: "mouse,down,1"; + source: "event_room_4"; + after: "exchange_room_6/3-1"; + after: "exchange_room_5/2-1"; + after: "exchange_room_1/4-1"; + } + program + { + name: "swallow_room_5"; + signal: "mouse,down,1"; + source: "event_room_5"; + after: "exchange_room_6/3-1"; + after: "exchange_room_5/2-1"; + after: "exchange_room_1/4-1"; + } + program + { + name: "swallow_room_6"; + signal: "mouse,down,1"; + source: "event_room_6"; + after: "exchange_room_6/3-1"; + after: "exchange_room_5/2-1"; + after: "exchange_room_1/4-1"; + } + + program + { + name: "exchange_room_6/3-1"; + in: 0.025 0.0; + action: STATE_SET "selected" 0.0; + transition: DECELERATE 0.25; + target: "clip_room.3"; + target: "clip_room.6"; + } + + program + { + name: "exchange_room_6/3-2"; + in: 0.025 0.0; + signal: "reset,rooms"; + source: "calaos"; + action: STATE_SET "active" 0.0; + transition: DECELERATE 0.25; + target: "clip_room.3"; + target: "clip_room.6"; + } + + program + { + name: "exchange_room_5/2-1"; + in: 0.05 0.0; + action: STATE_SET "selected" 0.0; + transition: DECELERATE 0.25; + target: "clip_room.5"; + target: "clip_room.2"; + } + + program + { + name: "exchange_room_5/2-2"; + in: 0.05 0.0; + signal: "reset,rooms"; + source: "calaos"; + action: STATE_SET "active" 0.0; + transition: DECELERATE 0.25; + target: "clip_room.5"; + target: "clip_room.2"; + } + + program + { + name: "exchange_room_1/4-1"; + in: 0.1 0.0; + action: STATE_SET "selected" 0.0; + transition: DECELERATE 0.25; + target: "clip_room.1"; + target: "clip_room.4"; + } + + program + { + name: "exchange_room_1/4-2"; + in: 0.1 0.0; + signal: "reset,rooms"; + source: "calaos"; + action: STATE_SET "active" 0.0; + transition: DECELERATE 0.25; + target: "clip_room.1"; + target: "clip_room.4"; + } + + #define ROOM_DETAIL_PROG(id, hide1, hide2, hide3, hide4, hide5) \ + program \ + { \ + name: "go_mode_detail_room_"id; \ + signal: "select,room,"id; \ + source: "home"; \ + after: "mode_detail"; \ + after: "mode_detail_room_"id; \ + after: "hide_rooms_room_"id; \ + } \ + program \ + { \ + name: "mode_detail_room_"id; \ + in: 0.5 0.0; \ + action: STATE_SET "detail" 0.0; \ + transition: DECELERATE 0.8; \ + target: "clip_room."id; \ + } \ + program \ + { \ + name: "hide_rooms_room_"id; \ + in: 0.5 0.0; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 0.8; \ + target: "clip_room."hide1; \ + target: "clip_room."hide2; \ + target: "clip_room."hide3; \ + target: "clip_room."hide4; \ + target: "clip_room."hide5; \ + } + + ROOM_DETAIL_PROG("1", "2", "3", "4", "5", "6") + ROOM_DETAIL_PROG("2", "1", "3", "4", "5", "6") + ROOM_DETAIL_PROG("3", "1", "2", "4", "5", "6") + ROOM_DETAIL_PROG("4", "1", "2", "3", "5", "6") + ROOM_DETAIL_PROG("5", "1", "2", "3", "4", "6") + ROOM_DETAIL_PROG("6", "1", "2", "3", "4", "5") + + program + { + name: "mode_detail"; + action: STATE_SET "detail" 0.0; + transition: DECELERATE 0.8; + target: "skyline_top_neon"; + target: "skyline_top_gradient"; + target: "skyline_middle_neon"; + target: "skyline_middle_gradient"; + target: "round_buttons_whole"; + target: "module_scenario_bloc"; + target: "event_room_1"; + target: "event_room_2"; + target: "event_room_3"; + target: "event_room_4"; + target: "event_room_5"; + target: "event_room_6"; + target: "clip_buttons_detail"; + after: "mode_detail2"; + } + + program + { + name: "mode_detail2"; + action: STATE_SET "detail" 0.0; + transition: DECELERATE 0.8; + target: "list_deco_left"; + target: "list_deco_right"; + target: "list_deco_top"; + target: "list_clip_top"; + target: "list_clip_left"; + target: "list_clip_right"; + } + + program + { + name: "mode_normal"; + signal: "pressed"; + source: "button.back"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "list_deco_left"; + target: "list_deco_right"; + target: "list_deco_top"; + target: "list_clip_top"; + target: "list_clip_left"; + target: "list_clip_right"; + after: "mode_normal2"; + after: "mode_normal3"; + after: "mode_normal5"; + } + + program + { + name: "mode_normal2"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "skyline_top_neon"; + target: "skyline_top_gradient"; + target: "skyline_middle_neon"; + target: "skyline_middle_gradient"; + target: "round_buttons_whole"; + target: "module_scenario_bloc"; + target: "clip_buttons_detail"; + } + + program + { + name: "mode_normal5"; + script + { + if (get_int(room_mode_1) == 0) + run_program(PROGRAM:"show_event_room_1"); + else + set_state(PART:"event_room_1", "detail", 0.0); + + if (get_int(room_mode_2) == 0) + run_program(PROGRAM:"show_event_room_2"); + else + set_state(PART:"event_room_2", "detail", 0.0); + + if (get_int(room_mode_3) == 0) + run_program(PROGRAM:"show_event_room_3"); + else + set_state(PART:"event_room_3", "detail", 0.0); + + if (get_int(room_mode_4) == 0) + run_program(PROGRAM:"show_event_room_4"); + else + set_state(PART:"event_room_4", "detail", 0.0); + + if (get_int(room_mode_5) == 0) + run_program(PROGRAM:"show_event_room_5"); + else + set_state(PART:"event_room_5", "detail", 0.0); + + if (get_int(room_mode_6) == 0) + run_program(PROGRAM:"show_event_room_6"); + else + set_state(PART:"event_room_6", "detail", 0.0); + } + } + + program + { + name: "mode_normal3"; + action: SIGNAL_EMIT "reset,rooms" "calaos"; + } + + program + { + name: "mode_normal4"; + signal: "pressed"; + source: "button.back"; + action: SIGNAL_EMIT "mode,normal" "home"; + } + + program + { + name: "show_pager_deco"; + signal: "show,edge"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: ACCELERATE 0.15; + target: "pager_deco_left"; + target: "pager_deco_right"; + } + program + { + name: "hide_pager_deco"; + signal: "hide,edge"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.35; + target: "pager_deco_left"; + target: "pager_deco_right"; + } + } + +} + +group +{ + name: "calaos/page/home/scenario"; + + parts + { + #define SWALLOW_ELEMENT_SC(id, rel1_x, rel1_y, off1_x, off1_y, rel2_x, rel2_y, off2_x, off2_y) \ + part \ + { \ + name: id; \ + type: SWALLOW; \ + description \ + { \ + state: "default" 0.0; \ + rel1 { relative: rel1_x rel1_y; offset: off1_x off1_y; } \ + rel2 { relative: rel2_x rel2_y; offset: off2_x off2_y; } \ + } \ + } + + SWALLOW_ELEMENT_SC("element.1", 0.16, 0.30, -117, -23, 0.16, 0.30, 116, 22) + SWALLOW_ELEMENT_SC("element.2", 0.5, 0.30, -118, -23, 0.5, 0.30, 117, 22) + SWALLOW_ELEMENT_SC("element.3", 0.84, 0.30, -118, -23, 0.84, 0.30, 117, 22) + SWALLOW_ELEMENT_SC("element.4", 0.16, 0.72, -117, -23, 0.16, 0.72, 116, 22) + SWALLOW_ELEMENT_SC("element.5", 0.5, 0.72, -118, -23, 0.5, 0.72, 117, 22) + SWALLOW_ELEMENT_SC("element.6", 0.84, 0.72, -118, -23, 0.84, 0.72, 117, 22) + } +} + +group +{ + name: "calaos/page/home/status"; + + parts + { + part + { + name: "bg"; + description + { + state: "default" 0.0; + rel1 { offset: 25+90 0; } + rel2 { offset: -24-89 -1; } + image.normal: "controls_bg.png"; + image.border: 10 10 10 10; + } + } + + part + { + name: "separator"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 5 45; to: "bg"; } + rel2 { relative: 1.0 0.0; offset: -4 46; to: "bg"; } + image.normal: "controls_sep.png"; + } + } + + part + { + name: "title"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 11 5; to: "bg"; } + rel2 { relative: 1.0 0.0; offset: -11 45; to: "bg"; } + text + { + style: "TabWidgetTitle"; + text: "Etat de la maison : Normal
      Informations concernant votre maison"; + } + } + } + + part + { + name: "light"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 14 12; to_y: "separator"; to_x: "bg"; } + rel2 { relative: 0.0 1.0; offset: 14+22 12+16; to_y: "separator"; to_x: "bg"; } + image.normal: "icon_light.png"; + } + } + + part + { + name: "light.text"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 40 9; to_y: "separator"; to_x: "bg"; } + rel2 { relative: 0.5 1.0; offset: -1 31; to_y: "separator"; to_x: "bg"; } + color: 231 231 231 178; + text { text: "Text"; font: "CalaosContent"; size: 13; min: 0 0; align: 0.0 0.5; } + } + } + + alias: "button.lights_off" "button_lights_off:button.labeled.lights_off"; + part + { + name: "button_lights_off"; + type: GROUP; + source: "button.labeled.lights_off"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 121 8; } + rel2 { relative: 0.0 1.0; offset: 121+120 8+28; } + rel1.to_x: "bg"; + rel2.to_x: "bg"; + rel1.to_y: "light.text"; + rel2.to_y: "light.text"; + } + } + + alias: "button.lights_info" "button_lights_info:button.position.info"; + part + { + name: "button_lights_info"; + type: GROUP; + source: "button.position.info"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 13 4; } + rel2 { relative: 0.0 1.0; offset: 13+100 4+36; } + rel1.to_x: "bg"; + rel2.to_x: "bg"; + rel1.to_y: "light.text"; + rel2.to_y: "light.text"; + } + } + + part + { + name: "volet"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: 14 12; to_y: "separator"; to_x: "bg"; } + rel2 { relative: 0.5 1.0; offset: 14+22 12+16; to_y: "separator"; to_x: "bg"; } + image.normal: "icon_shutter.png"; + } + } + + part + { + name: "shutter.text"; + type: TEXT; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: 40 9; to_y: "separator"; to_x: "bg"; } + rel2 { relative: 1.0 1.0; offset: -1 31; to_y: "separator"; to_x: "bg"; } + color: 231 231 231 178; + text { text: "Text"; font: "CalaosContent"; size: 13; min: 0 0; align: 0.0 0.5; } + } + } + + alias: "button.shutters_down" "button_shutters_down:button.labeled.shutters_down"; + part + { + name: "button_shutters_down"; + type: GROUP; + source: "button.labeled.shutters_down"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: 121 8; } + rel2 { relative: 0.5 1.0; offset: 121+120 8+28; } + rel1.to_x: "bg"; + rel2.to_x: "bg"; + rel1.to_y: "shutter.text"; + rel2.to_y: "shutter.text"; + } + } + + alias: "button.shutters_info" "button_shutters_info:button.position.info"; + part + { + name: "button_shutters_info"; + type: GROUP; + source: "button.position.info"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: 13 4; } + rel2 { relative: 0.5 1.0; offset: 13+100 4+36; } + rel1.to_x: "bg"; + rel2.to_x: "bg"; + rel1.to_y: "shutter.text"; + rel2.to_y: "shutter.text"; + } + } + } +} diff --git a/data/themes/default/structure/page_keyboard.edc b/data/themes/default/structure/page_keyboard.edc new file mode 100644 index 00000000..a47fbb1a --- /dev/null +++ b/data/themes/default/structure/page_keyboard.edc @@ -0,0 +1,811 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/keyboard"; + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "module.subtitle"; + clip_to: "content_clip"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 -1; to_y: "header_img"; } + rel2 { relative: 1.0 1.0; offset: -1 30; to_y: "header_img"; } + align: 0.5 0.5; + text + { + style: "KeyboardSubtitle"; + text: "Un sous-titre pour donner une explication plus détaillée."; + } + } + } + + part + { + name: "sep1"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image.normal: "middle_skyline_neon.png"; + rel1 { relative: 0.0 1.0; offset: 0 -1; to_y: "module.subtitle"; } + rel2 { relative: 1.0 1.0; offset: -1 4; to_y: "module.subtitle"; } + } + } + + part + { + name: "sep2"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + image.normal: "middle_skyline_neon.png"; + rel1 { relative: 0.0 0.0; offset: 0 -6; to_y: "keyboard"; } + rel2 { relative: 1.0 0.0; offset: -1 -1; to_y: "keyboard"; } + } + } + + part + { + name: "keyboard"; + clip_to: "content_clip"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1.to_y: "content_size"; + rel2.to_y: "content_size"; + rel1 { relative: 0.0 1.0; offset: 0 -252; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + } + } + + part + { + name: "textblock"; + clip_to: "content_clip"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1.to_y: "sep1"; + rel2.to_y: "sep2"; + rel1 { relative: 0.0 1.0; offset: 0 2; } + rel2 { relative: 1.0 0.0; offset: -1 -3; } + } + } + + alias: "button.valid" "button_valid:button.valid"; + part + { + name: "button_valid"; + clip_to: "content_clip"; + type: GROUP; + source: "button.valid"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-130 10; } + rel2 { relative: 1.0 0.0; offset: -125-10 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + alias: "button.cleartext" "button_cleartext:button.cleartext"; + part + { + name: "button_cleartext"; + clip_to: "content_clip"; + type: GROUP; + source: "button.cleartext"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-140-213 10; } + rel2 { relative: 1.0 0.0; offset: -125-130-10 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + } + + programs + { + + } + +} + +#ifdef KMODULE_TEXT +#undef KMODULE_TEXT +#endif +#define KMODULE_TEXT "keyboard_text" +#include "keyboard_macros.edc" + +group +{ + name: "calaos/keyboard"; + + script + { + public is_clicked; + } + + parts + { + part + { + name: "module_keyboard"; + type: RECT; + description + { + state: "default" 0.0; + } + } + + part + { + name: "keyboard_text"; + type: RECT; + pointer_mode: NOGRAB; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 0 -400; } + rel2 { relative: 1.0 0.0; offset: -1 -300; } + visible: 0; + } + } + + part + { + name: "keyboard_alpha"; + type: RECT; + pointer_mode: NOGRAB; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -292 -126; } + rel2 { relative: 0.5 0.5; offset: 293 126; } + } + } + + #ifdef ROW1 + #undef ROW1 + #endif + #ifdef ROW2 + #undef ROW2 + #endif + #ifdef ROW3 + #undef ROW3 + #endif + #ifdef ROW4 + #undef ROW4 + #endif + #ifdef COL_SIZE + #undef COL_SIZE + #endif + #ifdef KEY_SIZE + #undef KEY_SIZE + #endif + #define ROW1 20 + #define ROW2 79 + #define ROW3 138 + #define ROW4 197 + #define COL_SIZE 60 + #define KEY_SIZE 45 + + //first line + KEY_ALPHA("a", "A", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 0), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("z", "Z", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 1), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("e", "E", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("r", "R", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 3), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 3 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("t", "T", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 4), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 4 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("y", "Y", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 5), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 5 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("u", "U", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 6), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 6 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("i", "I", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("o", "O", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 8), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 8 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("p", "P", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 9), ROW1, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 9 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_alpha") + + //2nd line + KEY_ALPHA("q", "Q", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 0), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("s", "S", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 1), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("d", "D", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("f", "F", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 3), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 3 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("g", "G", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 4), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 4 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("h", "H", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 5), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 5 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("j", "J", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 6), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 6 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("k", "K", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("l", "L", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 8), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 8 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("m", "M", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 9), ROW2, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 9 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_alpha") + + //3rd line + KEY_SPECIAL_TOGGLE("key_maj", "Maj", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 0), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("w", "W", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("x", "X", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 3), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 3 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("c", "C", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 4), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 4 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("v", "V", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 5), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 5 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("b", "B", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 6), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 6 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_ALPHA("n", "N", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + KEY_SPECIAL("key_del", "", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 8), ROW3, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 9 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_alpha") + + part + { + name: "icon_key_del"; + clip_to: "key_key_del"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "button_key_del.png"; + rel1.to: "key_key_del"; + rel2.to: "key_key_del"; + rel1 { relative: 0.0 0.0; offset: 7 11; } + rel2 { relative: 0.0 0.0; offset: 7+28 11+9; } + color: 255 255 255 127; + } + } + + //4th line + KEY_SPECIAL_TOGGLE("key_other", "Autres", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 0), ROW4, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_alpha") + KEY_SPECIAL("key_space", "", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 2), ROW4, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 7 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_alpha") + KEY_SPECIAL("key_enter", "", "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 8), ROW4, + "keyboard_alpha", + 0.0, 0.0, (COL_SIZE * 9 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_alpha") + + part + { + name: "icon_key_enter"; + clip_to: "key_key_enter"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "button_key_return.png"; + rel1.to: "key_key_enter"; + rel2.to: "key_key_enter"; + rel1 { relative: 1.0 1.0; offset: -9-30 -9-19; } + rel2 { relative: 1.0 1.0; offset: -9 -9; } + color: 255 255 255 127; + } + } + + part + { + name: "keyboard_left_keys1"; + type: RECT; + clip_to: "module_keyboard"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: -195 -126; } + rel2 { relative: 0.0 0.5; offset: -33 126; } + } + description + { + state: "visible" 0.0; + rel1 { relative: 0.0 0.5; offset: 33 -126; } + rel2 { relative: 0.0 0.5; offset: 194 126; } + } + } + + part + { + name: "keyboard_left_keys2"; + type: RECT; + clip_to: "module_keyboard"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: -195 -126; } + rel2 { relative: 0.0 0.5; offset: -33 126; } + } + description + { + state: "visible" 0.0; + rel1 { relative: 0.0 0.5; offset: 33 -126; } + rel2 { relative: 0.0 0.5; offset: 194 126; } + } + } + + part + { + name: "keyboard_right_keys1"; + type: RECT; + clip_to: "module_keyboard"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 33 -126; } + rel2 { relative: 1.0 0.5; offset: 195 126; } + } + description + { + state: "visible" 0.0; + rel1 { relative: 1.0 0.5; offset: -195 -126; } + rel2 { relative: 1.0 0.5; offset: -34 126; } + } + } + + part + { + name: "keyboard_right_keys2"; + type: RECT; + clip_to: "module_keyboard"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 33 -126; } + rel2 { relative: 1.0 0.5; offset: 195 126; } + } + description + { + state: "visible" 0.0; + rel1 { relative: 1.0 0.5; offset: -195 -126; } + rel2 { relative: 1.0 0.5; offset: -34 126; } + } + } + + #undef COL_SIZE + #define COL_SIZE 58 + + + //Left panel 1 + KEY_NORMAL("é", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW1, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("è", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW1, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("à", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW1, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("ç", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW2, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("@", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW2, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("ù", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW2, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL_SPECIAL("key_question", "?", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW3, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL_SPECIAL("key_quote", "\"", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW3, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("!", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW3, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("-", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW4, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("_", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW4, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_left_keys1") + KEY_NORMAL("/", "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW4, + "keyboard_left_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_left_keys1") + + + //Right panel 1 + KEY_NORMAL("7", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW1, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("8", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW1, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("9", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW1, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("4", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW2, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("5", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW2, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("6", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW2, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("1", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW3, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("2", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW3, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("3", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW3, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL("0", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0), ROW4, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL(".", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1), ROW4, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_right_keys1") + KEY_NORMAL(",", "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2), ROW4, + "keyboard_right_keys1", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_right_keys1") + + + //Left panel 2 + KEY_NORMAL("%", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW1, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("#", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW1, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("°", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW1, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("&", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW2, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("(", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW2, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL(")", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW2, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("|", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW3, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL_SPECIAL("key_bracket_open", "[", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW3, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL_SPECIAL("key_bracket_close", "]", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW3, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("~", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW4, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("{", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW4, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_left_keys2") + KEY_NORMAL("}", "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW4, + "keyboard_left_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_left_keys2") + + + //Right panel 2 + KEY_NORMAL("<", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW1, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL(">", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW1, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL("=", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW1, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW1 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL_SPECIAL("key_double_point", ":", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW2, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL(";", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW2, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL("$", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW2, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW2 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL_SPECIAL("key_backslash", "\\", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW3, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL("^", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW3, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL("€", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW3, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW3 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL("+", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0), ROW4, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 0 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL_SPECIAL("key_multiply", "*", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1), ROW4, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 1 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_right_keys2") + KEY_NORMAL("'", "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2), ROW4, + "keyboard_right_keys2", + 0.0, 0.0, (COL_SIZE * 2 + KEY_SIZE), (ROW4 + KEY_SIZE), + "keyboard_right_keys2") + + } + + programs + { + program + { + name: "init"; + signal: "show"; + after: "keyboard_normal"; + } + + program + { + name: "keyboard_upper"; + signal: "keyboard,upper"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.2; + target: "key_key_maj_select"; + } + + program + { + name: "keyboard_lower"; + signal: "keyboard,lower"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.2; + target: "key_key_maj_select"; + } + + program + { + name: "keyboard_normal"; + signal: "keyboard,normal"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.2; + target: "keyboard_left_keys2"; + target: "keyboard_right_keys2"; + target: "key_key_other_select"; + after: "keyboard_normal2"; + } + program + { + name: "keyboard_normal2"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.25; + target: "keyboard_left_keys1"; + target: "keyboard_right_keys1"; + } + + program + { + name: "keyboard_other"; + signal: "keyboard,other"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.2; + target: "keyboard_left_keys1"; + target: "keyboard_right_keys1"; + after: "keyboard_other2"; + } + program + { + name: "keyboard_other2"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.25; + target: "keyboard_left_keys2"; + target: "keyboard_right_keys2"; + target: "key_key_other_select"; + } + } +} diff --git a/data/themes/default/structure/page_media.edc b/data/themes/default/structure/page_media.edc new file mode 100644 index 00000000..28289bbb --- /dev/null +++ b/data/themes/default/structure/page_media.edc @@ -0,0 +1,788 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + + +group +{ + name: "calaos/icons/media/null"; + parts + { + part + { + name: "icon"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + } + } + } +} + +group +{ + name: "calaos/icons/media/flickr"; + parts + { + part + { + name: "icon_back"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -54 -58; } + rel2 { relative: 0.5 0.5; offset: 53 49; } + image.normal: "icon_flickr.png"; + } + } + } +} + +group +{ + name: "calaos/icons/media/web"; + parts + { + part + { + name: "icon_back"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -54 -58; } + rel2 { relative: 0.5 0.5; offset: 53 49; } + image.normal: "menu_media_icon_web_back.png"; + } + } + } +} + +group +{ + name: "calaos/icons/media/eskiss"; + parts + { + part + { + name: "icon_back"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -54 -58; } + rel2 { relative: 0.5 0.5; offset: 53 49; } + image.normal: "menu_media_icon_eskiss_back.png"; + } + } + } +} + +group +{ + name: "calaos/icons/media/music"; + parts + { + part + { + name: "icon_back"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -99 -69; } + rel2 { relative: 0.5 0.5; offset: 98 68; } + image.normal: "menu_media_icon_cd_back.png"; + } + } + part + { + name: "icon_cd"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -42 -47; } + rel2 { relative: 0.5 0.5; offset: 51 46; } + image.normal: "menu_media_icon_cd_01.png"; + } + description + { + state: "animation" 0.0; + inherit: "default" 0.0; + image + { + normal: "menu_media_icon_cd_01.png"; + tween: "menu_media_icon_cd_02.png"; + tween: "menu_media_icon_cd_03.png"; + tween: "menu_media_icon_cd_04.png"; + tween: "menu_media_icon_cd_05.png"; + tween: "menu_media_icon_cd_06.png"; + tween: "menu_media_icon_cd_07.png"; + tween: "menu_media_icon_cd_08.png"; + tween: "menu_media_icon_cd_09.png"; + } + } + } + } + + programs + { + program + { + name: "show"; + //in: 2.5 0.0; + signal: "show"; + source: ""; + after: "anim"; + } + program + { + name: "anim"; + action: STATE_SET "animation" 0.0; + transition: LINEAR 0.25; + target: "icon_cd"; + after: "anim"; + } + program + { + name: "hide"; + signal: "hide"; + source: ""; + action: ACTION_STOP; + target: "anim"; + } + } +} + +group +{ + name: "calaos/icons/media/camera"; + parts + { + part + { + name: "icon_back"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -54 -58; } + rel2 { relative: 0.5 0.5; offset: 53 49; } + image.normal: "menu_media_icon_camera_back.png"; + } + } + part + { + name: "icon_red"; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; offset: -54 -58; } + rel2 { relative: 0.5 0.5; offset: 53 49; } + image.normal: "menu_media_icon_camera_red.png"; + color: 255 255 255 255; + } + description + { + state: "animation" 0.0; + inherit: "default" 0.0; + color: 255 255 255 20; + } + } + programs + { + program + { + name: "show"; +// in: 0.7 0.0; + signal: "show"; + source: ""; + after: "anim"; + } + program + { + name: "anim"; + in: 1.8 0.0; + action: STATE_SET "animation" 0.0; + transition: ACCELERATE 0.15; + target: "icon_red"; + after: "anim2"; + } + program + { + name: "anim2"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.15; + target: "icon_red"; + after: "anim3"; + } + program + { + name: "anim3"; + in: 0.3 0.0; + action: STATE_SET "animation" 0.0; + transition: ACCELERATE 0.15; + target: "icon_red"; + after: "anim4"; + } + program + { + name: "anim4"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.15; + target: "icon_red"; + after: "anim"; + } + program + { + name: "hide"; + signal: "hide"; + source: ""; + action: ACTION_STOP; + target: "anim"; + target: "anim2"; + target: "anim3"; + target: "anim4"; + } + } + } +} + + +#define MEDIA_MENU_ITEM(gname, icon_source, title, desc, item_sig, item_source) \ +group { \ + name: gname; \ + parts \ + { \ + part \ + { \ + name: "item_clip"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; offset: 0 0; } \ + rel2 { relative: 1.0 1.0; offset: -1 -1; } \ + } \ + } \ + \ + part \ + { \ + name: "item_shadow"; \ + description \ + { \ + state: "default" 0.0; \ + image.normal: "menu_media_item_shadow.png"; \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + rel1 { relative: 0.0 1.0; offset: -28 -13; } \ + rel2 { relative: 1.0 1.0; offset: 27 35; } \ + } \ + } \ + \ + part \ + { \ + name: "item_back"; \ + clip_to: "item_clip"; \ + description \ + { \ + state: "default" 0.0; \ + image.normal: "menu_media_item.png"; \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + color: 255 255 255 255; \ + } \ + description \ + { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 76; \ + } \ + } \ + part \ + { \ + name: "item_reflect"; \ + clip_to: "item_clip"; \ + description \ + { \ + state: "default" 0.0; \ + image.normal: "menu_media_item_reflect.png"; \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + } \ + } \ + part \ + { \ + name: "item_icon_clip"; \ + clip_to: "item_clip"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel2 { relative: 1.0 0.0; offset: -1 75; } \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + } \ + } \ + part \ + { \ + name: "item_icon"; \ + clip_to: "item_icon_clip"; \ + type: GROUP; \ + source: icon_source; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + } \ + } \ + part \ + { \ + name: "item_separator"; \ + clip_to: "item_clip"; \ + description \ + { \ + state: "default" 0.0; \ + image.normal: "menu_media_item_separator.png"; \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + description \ + { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + } \ + part \ + { \ + name, "item_title"; \ + clip_to: "item_clip"; \ + type: TEXT; \ + description \ + { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; offset: 0 87; } \ + rel2 { relative: 1.0 0.0; offset: -1 104; } \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + color: 255 255 255 255; \ + text { text: title; font: "CalaosContent"; size: 15; } \ + } \ + description \ + { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + color: 52 180 215 255; \ + } \ + description \ + { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 231 231 231 76; \ + } \ + } \ + part \ + { \ + name, "item_description"; \ + clip_to: "item_clip"; \ + type: TEXT; \ + description \ + { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; offset: 0 110; } \ + rel2 { relative: 1.0 0.0; offset: -1 122; } \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + color: 255 255 255 102; \ + text { text: desc; font: "CalaosContent"; size: 10; } \ + } \ + description \ + { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 25; \ + } \ + } \ + part \ + { \ + name: "item_glow"; \ + description \ + { \ + state: "default" 0.0; \ + image.normal: "menu_media_item_glow.png"; \ + rel1 { relative: 0.0 0.0; offset: -5 -5;} \ + rel2 { relative: 1.0 1.0; offset: 4 4;} \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + } \ + part \ + { \ + name: "item_mask"; \ + clip_to: "item_clip"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + rel1.to: "item_clip"; \ + rel2.to: "item_clip"; \ + visible: 1; \ + color: 0 0 0 0; \ + } \ + description \ + { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + program \ + { \ + name: "disable_item"; \ + signal: "disable"; \ + source: "calaos"; \ + action, STATE_SET "disabled" 0.0; \ + transition, DECELERATE 0.2; \ + target: "item_back"; \ + target: "item_separator"; \ + target: "item_title"; \ + target: "item_description"; \ + target: "item_mask"; \ + } \ + program \ + { \ + name: "enable_item"; \ + signal: "enable"; \ + source: "calaos"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 0.2; \ + target: "item_back"; \ + target: "item_separator"; \ + target: "item_title"; \ + target: "item_description"; \ + target: "item_mask"; \ + } \ + program \ + { \ + name: "item_mouse_down"; \ + signal: "mouse,down,1"; \ + source: "item_mask"; \ + action: STATE_SET "active" 0.0; \ + transition: ACCELERATE 0.15; \ + target: "item_glow"; \ + target: "item_title"; \ + } \ + program \ + { \ + name: "item_mouse_up"; \ + signal: "mouse,up,1"; \ + source: "item_mask"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 0.25; \ + target: "item_glow"; \ + target: "item_title"; \ + after: "item_send_sig"; \ + } \ + program \ + { \ + name: "item_send_sig"; \ + action: SIGNAL_EMIT item_sig item_source; \ + } \ + program \ + { \ + name: "reset_item"; \ + signal: "hide"; \ + source: ""; \ + action: STATE_SET "default" 0.0; \ + target: "item_clip"; \ + target: "item_shadow"; \ + target: "item_back"; \ + target: "item_separator"; \ + target: "item_title"; \ + target: "item_description"; \ + target: "item_mask"; \ + target: "item_glow"; \ + } \ + } \ +} + +MEDIA_MENU_ITEM("calaos/icons/menu/media/music", "calaos/icons/media/music", "Votre Musique", "Accédez à toute votre discothèque", "click,music", "menu") +MEDIA_MENU_ITEM("calaos/icons/menu/media/camera", "calaos/icons/media/camera", "Vidéosurveillance", "Pilotez toutes vos caméras", "click,camera", "menu") +MEDIA_MENU_ITEM("calaos/icons/menu/media/photos", "calaos/icons/media/flickr", "Flickr", "Visualisez des photos", "click,photos", "menu") + +MEDIA_MENU_ITEM("calaos/icons/menu/media/web", "calaos/icons/media/web", "Internet", "Accédez et surfez sur le web", "click,web", "menu") +MEDIA_MENU_ITEM("calaos/icons/menu/media/eskiss", "calaos/icons/media/eskiss", "Eskiss", "Jouez avec la physique !", "click,eskiss", "menu") + +group +{ + name: "calaos/page/media"; + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "calaos.main.content"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "content_size"; + rel2.to: "content_size"; + } + } + + part + { + name: "clip_buttons_camera_list"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "button.back" "button_back:button.back"; + part + { + name: "button_back"; + clip_to: "clip_buttons_camera_list"; + type: GROUP; + source: "button.back"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-170 10; } + rel2 { relative: 1.0 0.0; offset: -125-10 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + part + { + name: "clip_buttons_audio_list_detail"; + clip_to: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 0; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + alias: "button.audio.back" "button_audio_back:button.audio.back"; + part + { + name: "button_audio_back"; + clip_to: "clip_buttons_audio_list_detail"; + type: GROUP; + source: "button.audio.back"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-190-125 10; } + rel2 { relative: 1.0 0.0; offset: -125-190 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + alias: "button.audio.more" "button_audio_more:button.audio.more"; + part + { + name: "button_audio_more"; + clip_to: "clip_buttons_audio_list_detail"; + type: GROUP; + source: "button.audio.more"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-180 10; } + rel2 { relative: 1.0 0.0; offset: -125-10 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + } + + programs + { + program + { + name: "mode_media_camera_list"; + signal: "mode,back"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.8; + target: "clip_buttons_camera_list"; + } + program + { + name: "mode_media_camera_list2"; + signal: "mode,back"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "clip_buttons_audio_list_detail"; + } + + program + { + name: "mode_media_audio_detail"; + signal: "mode,audio_detail"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.8; + target: "clip_buttons_audio_list_detail"; + } + program + { + name: "mode_media_audio_detail2"; + signal: "mode,audio_detail"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "clip_buttons_camera_list"; + } + + program + { + name: "mode_media_menu"; + signal: "mode,menu"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "clip_buttons_camera_list"; + target: "clip_buttons_audio_list_detail"; + } + } +} + +group +{ + name: "calaos/media/menu"; + + parts + { + #define ICON_SWALLOW_CLIPPER(_swallow, off1x, off1y, off2x, off2y) \ + part \ + { \ + name: _swallow"_clip"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + rel1.offset: 0 -15; \ + rel2.offset: -1 -16; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + rel1.offset: 0 0; \ + rel2.offset: -1 -1; \ + color: 255 255 255 255; \ + } \ + } \ + part \ + { \ + name: _swallow; \ + type: SWALLOW; \ + clip_to: _swallow"_clip"; \ + description \ + { \ + state: "default" 0.0; \ + rel1 { relative: 0.5 0.5; offset: off1x off1y; to: _swallow"_clip"; } \ + rel2 { relative: 0.5 0.5; offset: off2x off2y; to: _swallow"_clip"; } \ + } \ + } + + ICON_SWALLOW_CLIPPER("icon.1", + -98-71-197, -186, + -98-71, -186+137) + + ICON_SWALLOW_CLIPPER("icon.2", + -98, -186, + 98, -186+137) + + ICON_SWALLOW_CLIPPER("icon.3", + 98+71, -186, + 98+71+197, -186+137) + + ICON_SWALLOW_CLIPPER("icon.4", + -98-71-197, 34, + -98-71, 34+137) + + ICON_SWALLOW_CLIPPER("icon.5", + -98, 34, + 98, 34+137) + + ICON_SWALLOW_CLIPPER("icon.6", + 98+71, 34, + 98+71+197, 34+137) + + } + + programs + { + program + { + name: "on_show"; + signal: "show"; + in: 0.3 0.0; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.25; + target: "icon.1_clip"; + target: "icon.2_clip"; + target: "icon.3_clip"; + target: "icon.4_clip"; + target: "icon.5_clip"; + target: "icon.6_clip"; + } + } + +} diff --git a/data/themes/default/structure/page_scenarios.edc b/data/themes/default/structure/page_scenarios.edc new file mode 100644 index 00000000..3d95d56c --- /dev/null +++ b/data/themes/default/structure/page_scenarios.edc @@ -0,0 +1,310 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/scenarios"; + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "sep"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "separator.png"; + rel1 { to: "content_size"; relative: 0.5 0.0; offset: -11 20; } + rel2 { to: "content_size"; relative: 0.5 1.0; offset: 10 -20; } + } + } + + part + { + name: "scenario_list_deco"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 232 8 8 51; } + max: 512 -1; + rel1 { to: "content_size"; relative: 0.0 0.0; offset: 30 30; } + rel2 { to: "content_size"; relative: 0.5 1.0; offset: -20 -30-43; } + } + } + + part + { + name: "scenario_list_deco_buttons"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "scenario_list_decoration.png"; } + rel1 { to: "scenario_list_deco"; relative: 0.0 1.0; offset: 0 0; } + rel2 { to: "scenario_list_deco"; relative: 0.0 1.0; offset: 432 43; } + } + } + + part + { + name: "scenario.list"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "scenario_list_deco"; + rel2.to: "scenario_list_deco"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "button.list.all"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position/browser_icon"; + string: "label" "Tous"; + string: "icon" "calaos/icons/element/scenario"; + } + rel1 { relative: 0.0 1.0; offset: 15 -44; to: "scenario_list_deco_buttons"; } + rel2 { relative: 0.0 1.0; offset: 100 -3; to: "scenario_list_deco_buttons"; } + } + } + + part + { + name: "button.list.light"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position/browser"; + string: "label" "Lumières"; + } + rel1 { relative: 0.0 1.0; offset: 103 -44; to: "scenario_list_deco_buttons"; } + rel2 { relative: 0.0 1.0; offset: 213 -3; to: "scenario_list_deco_buttons"; } + } + } + + part + { + name: "button.list.volet"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position/browser"; + string: "label" "Volets"; + } + rel1 { relative: 0.0 1.0; offset: 216 -44; to: "scenario_list_deco_buttons"; } + rel2 { relative: 0.0 1.0; offset: 299 -3; to: "scenario_list_deco_buttons"; } + } + } + + part + { + name: "button.list.schedule"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + params + { + string: "style" "calaos/button/position/browser"; + string: "label" "Planifiés"; + } + rel1 { relative: 0.0 1.0; offset: 302 -44; to: "scenario_list_deco_buttons"; } + rel2 { relative: 0.0 1.0; offset: 422 -3; to: "scenario_list_deco_buttons"; } + } + } + + part + { + name: "schedule_top_bg"; + description + { + state: "default" 0.0; + color: 255 255 255 130; + image { normal: "button_element.png"; border: 11 11 14 14; } + rel1 { to: "content_size"; relative: 0.5 0.0; offset: 20 26; } + rel2 { to: "content_size"; relative: 1.0 0.0; offset: -30 26+44; } + } + } + + part + { + name: "schedule_list_deco"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + max: 512 -1; + rel1 { to: "content_size"; to_y: "schedule_top_bg"; relative: 0.5 1.0; offset: 20 6; } + rel2 { to: "content_size"; relative: 1.0 1.0; offset: -30 -30; } + } + } + + part + { + name: "scenario_schedule.list"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "schedule_list_deco"; + rel2.to: "schedule_list_deco"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "schedule.date"; + clip_to: "content_clip"; + mouse_events: 0; + type: TEXTBLOCK; + description { + state, "default" 0.0; + rel1.offset: 6 0; + rel2.offset: -10 -1; + rel1.to: "schedule_top_bg"; + rel2.to: "schedule_top_bg"; + text { + text: "A la date du: Dimanche 23 Décembre 2012"; + style: "StandardText"; + } + } + } + + part + { + name: "button.calendar"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: -6-33 -13; to: "schedule_top_bg"; } + rel2 { relative: 1.0 0.5; offset: -6 13; to: "schedule_top_bg"; } + params + { + string: "style" "calaos/action_button/pink"; + string: "icon" "calaos/icons/action_button/keyboard"; + } + } + } + + part + { + name: "button.calendar.today"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: -6-33-4-38 -15; to: "schedule_top_bg"; } + rel2 { relative: 1.0 0.5; offset: -6-33-4 15; to: "schedule_top_bg"; } + params + { + string: "style" "calaos/action_button/label"; + string: "label" "Auj."; + } + } + } + + part + { + name: "create_bt_clip"; + type: RECT; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + + alias: "button.create" "button_create:button.scenario.create"; + part + { + name: "button_create"; + clip_to: "create_bt_clip"; + type: GROUP; + source: "button.scenario.create"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-225 10; } + rel2 { relative: 1.0 0.0; offset: -125-15 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + #include "activity_loading.edc" + } + + programs + { + program + { + signal: "show,loading"; + source: "calaos"; + action: STATE_SET "hidden" 0.0; + transition: DECELERATE 0.25; + target: "create_bt_clip"; + } + + program + { + signal: "hide,loading"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.25; + target: "create_bt_clip"; + } + } + +} diff --git a/data/themes/default/structure/page_schedule.edc b/data/themes/default/structure/page_schedule.edc new file mode 100644 index 00000000..2816ea32 --- /dev/null +++ b/data/themes/default/structure/page_schedule.edc @@ -0,0 +1,172 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/schedule_scenario"; + + parts + { + #include "activity_header_footer.edc" + + part + { + name: "sep"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image.normal: "separator.png"; + rel1 { to: "content_size"; relative: 0.5 0.0; offset: -11 20; } + rel2 { to: "content_size"; relative: 0.5 1.0; offset: 10 -20; } + } + } + + part + { + name: "schedule_list_deco"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 232 8 8 51; } + max: 512 -1; + rel1 { to: "content_size"; relative: 0.0 0.0; offset: 30 76; } + rel2 { to: "content_size"; relative: 0.5 1.0; offset: -20 -30; } + } + } + + part + { + name: "schedule.list"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "schedule_list_deco"; + rel2.to: "schedule_list_deco"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "month_list_deco"; + clip_to: "content_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "standard_list_decoration.png"; border: 27 27 50 50; } + max: 512 -1; + rel1 { to: "content_size"; relative: 0.5 0.0; offset: 20 76; } + rel2 { to: "content_size"; relative: 1.0 1.0; offset: -30 -30; } + } + } + + part + { + name: "month.list"; + type: SWALLOW; + clip_to: "content_clip"; + description + { + state: "default" 0.0; + rel1.to: "month_list_deco"; + rel2.to: "month_list_deco"; + rel1.offset: 5 5; + rel2.offset: -5 -5; + } + } + + part + { + name: "button.add"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + fixed: 1 0; + params + { + string: "label" "Ajouter"; + string: "style" "calaos/button/position"; + } + rel1 { relative: 1.0 0.5; offset: -85 -18; } + rel2 { relative: 1.0 0.5; offset: -5 18; } + rel1.to: "hours_text"; + rel1.to_x: "schedule_list_deco"; + rel2.to: "hours_text"; + rel2.to_x: "schedule_list_deco"; + } + } + + part + { + name: "hours_text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 2 -37; } + rel2 { relative: 1.0 0.0; offset: -1 -5; } + rel1.to: "schedule_list_deco"; + rel2.to: "schedule_list_deco"; + text { + text: "Heures d'exécutions"; + style: "HTMLStyle"; + } + } + } + + part + { + name: "month_text"; + mouse_events: 0; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 2 -37; } + rel2 { relative: 1.0 0.0; offset: -1 -5; } + rel1.to: "month_list_deco"; + rel2.to: "month_list_deco"; + text { + text: "Planification spécifiques"; + style: "HTMLStyle"; + } + } + } + + alias: "button.valid" "button_valid:button.valid"; + part + { + name: "button_valid"; + clip_to: "content_clip"; + type: GROUP; + source: "button.valid"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -125-135 10; } + rel2 { relative: 1.0 0.0; offset: -125-15 44; } + rel1.to: "module_footer_background"; + rel2.to: "module_footer_background"; + } + } + + } + + programs + { + } + +} diff --git a/data/themes/default/structure/page_web.edc b/data/themes/default/structure/page_web.edc new file mode 100644 index 00000000..30ccf133 --- /dev/null +++ b/data/themes/default/structure/page_web.edc @@ -0,0 +1,557 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/web"; + + script + { + public is_loading; + public keyboard_visible; + } + + parts + { + + part + { + name: "webkit"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel2.to_y: "footer"; + rel2.relative: 1.0 0.0; + rel2.offset: -1 3; + } + description + { + state: "keyboard" 0.0; + inherit: "default" 0.0; + rel2.offset: -1 -268; + } + } + + part + { + name: "page_loader_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: -125 -13-25; } + rel2 { relative: 0.5 1.0; offset: 124 -13; } + rel1.to_y: "webkit"; + rel2.to_y: "webkit"; + color: 255 255 255 0; + visible: 0; + } + description + { + state: "visible" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "page_loader_bg"; + clip_to: "page_loader_clip"; + description + { + state: "default" 0.0; + image + { + normal: "loading_bar.png"; + border: 10 10 10 10; + } + rel1.to: "page_loader_clip"; + rel2.to: "page_loader_clip"; + } + } + + part + { + name: "loader_circular"; + clip_to: "page_loader_clip"; + description + { + state: "default" 0.0; + max: 22 22; + rel1 { relative: 1.0 0.0; offset: -28 2;} + rel2 { relative: 1.0 1.0; offset: -6 -2;} + rel1.to: "page_loader_clip"; + rel2.to: "page_loader_clip"; + image + { + normal: "mini_circular_000.png"; + tween: "mini_circular_001.png"; + tween: "mini_circular_002.png"; + tween: "mini_circular_003.png"; + tween: "mini_circular_004.png"; + tween: "mini_circular_005.png"; + tween: "mini_circular_006.png"; + tween: "mini_circular_007.png"; + tween: "mini_circular_008.png"; + tween: "mini_circular_009.png"; + tween: "mini_circular_010.png"; + tween: "mini_circular_011.png"; + tween: "mini_circular_012.png"; + tween: "mini_circular_013.png"; + tween: "mini_circular_014.png"; + tween: "mini_circular_015.png"; + tween: "mini_circular_016.png"; + //tween: "mini_circular_017.png"; + } + } + description { + state: "done" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + + part + { + name: "progressbar_whole"; + type: RECT; + clip_to: "page_loader_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 54 7; to: "page_loader_clip"; } + rel2 { relative: 1.0 1.0; offset: -31 -7; to: "page_loader_clip"; } + color: 0 0 0 0; + } + } + + part + { + name: "progress_center"; + type: RECT; + clip_to: "page_loader_clip"; + description + { + state: "default" 0.0; + color: 255 255 255 200; + rel1.to: "progressbar_whole"; + rel2.to: "progress.level"; + } + } + + part + { + name: "progress.level"; + type: RECT; + clip_to: "page_loader_clip"; + dragable + { + confine: "progressbar_whole"; + x: 1 1 1; + y: 0 0 0; + } + description + { + state: "default" 0.0; + min: 1 12; + visible: 1; + color: 255 255 255 200; + rel1.to: "progressbar_whole"; + rel2.to: "progressbar_whole"; + } + } + + part + { + name: "progress.text"; + type: TEXT; + clip_to: "page_loader_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 7 0; to: "page_loader_clip"; } + rel2 { relative: 0.0 1.0; offset: 54 -1; to: "page_loader_clip"; } + color: 255 255 255 180; + text { text: "85 %"; font: "CalaosContent"; size: 14; min: 1 1; align: 0.0 0.5; } + } + } + + part + { + name: "keyboard_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 3; to_y: "webkit"; } + rel2 { relative: 1.0 0.0; offset: -1 0; to_y: "footer"; } + } + } + + part + { + name: "keyboard"; + type: SWALLOW; + clip_to: "keyboard_clip"; + description + { + state: "default" 0.0; + rel1.to: "keyboard_clip"; + rel2.to: "keyboard_clip"; + } + } + + part + { + name: "keyboard_shadow"; + mouse_events: 0; + description + { + state: "default" 0.0; + image { normal: "footer_shadow.png"; } + rel1 { relative: 0.0 1.0; offset: 0 -40;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "webkit"; + rel2.to: "webkit"; + } + } + + part + { + name: "footer"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 -101;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + } + } + + part + { + name: "footer_bg"; + clip_to: "footer"; + description + { + state: "default" 0.0; + image { normal: "footer_kevlar.png"; } + rel1.to: "footer"; + rel2.to: "footer"; + } + } + + ROUND_BUTTON("button_previous", "footer", "footer", "footer", + "button_previous.png", "button_previous_glow.png", "button_previous_off.png", + "pressed", "button.back", "left", + 0.0, 1.0, 10, -82, + 0.0, 1.0, 75, -15) + ROUND_BUTTON("button_next", "footer", "footer", "footer", + "button_next.png", "button_next_glow.png", "button_next_off.png", + "pressed", "button.forward", "right", + 0.0, 1.0, 75, -82, + 0.0, 1.0, 140, -15) + + alias: "page.title" "page_title:text"; + part + { + name: "page_title"; + type: GROUP; + source: "calaos/text/scrolling/left"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: 15 -89; to_x: "button_go"; } + rel2 { relative: 1.0 1.0; offset: -15 -55; } + } + } + + alias: "button.quit" "button_quit:button.quit"; + part + { + name: "button_quit"; + type: GROUP; + source: "button.quit"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: -121 -44; } + rel2 { relative: 1.0 1.0; offset: -11 -10; } + } + } + + alias: "button.go" "button_go:button.go"; + part + { + name: "button_go"; + type: GROUP; + source: "button.go"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 166 -89; } + rel2 { relative: 0.0 1.0; offset: 282 -55; } + } + } + + alias: "button.reload" "button_reload:button.reload"; + part + { + name: "button_reload"; + type: GROUP; + source: "button.reload"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 166 -44; } + rel2 { relative: 0.0 1.0; offset: 282 -10; } + } + } + + alias: "button.stop" "button_stop:button.stop"; + part + { + name: "button_stop"; + type: GROUP; + source: "button.stop"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 15 0; to: "button_reload"; } + rel2 { relative: 1.0 1.0; offset: 98 -1; to: "button_reload"; } + } + } + + alias: "button.home" "button_home:button.home"; + part + { + name: "button_home"; + type: GROUP; + source: "button.home"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 15 0; to: "button_stop"; } + rel2 { relative: 1.0 1.0; offset: 159 -1; to: "button_stop"; } + } + } + + alias: "button.keyboard" "button_keyboard:button.keyboard"; + part + { + name: "button_keyboard"; + type: GROUP; + source: "button.keyboard"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 15 0; to: "button_home"; } + rel2 { relative: 1.0 1.0; offset: 112 -1; to: "button_home"; } + } + } + + alias: "button.bookmark" "button_bookmark:button.bookmark"; + part + { + name: "button_bookmark"; + type: GROUP; + source: "button.bookmark"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 15 0; to: "button_keyboard"; } + rel2 { relative: 1.0 1.0; offset: 185 -1; to: "button_keyboard"; } + } + } + } + + programs + { + SCROLLING_TEXT_SIGNAL_REPEAT("page_title") + + program + { + name: "init1"; + signal: "show"; + action: SIGNAL_EMIT "show,left" "calaos"; + } + program + { + name: "init2"; + signal: "show"; + action: SIGNAL_EMIT "show,right" "calaos"; + } + program + { + name: "init3"; + signal: "show"; + action: SIGNAL_EMIT "enable,left" "calaos"; + } + program + { + name: "init4"; + signal: "show"; + action: SIGNAL_EMIT "enable,right" "calaos"; + } + + program + { + name: "show_keyboard"; + signal: "show,keyboard"; + source: "calaos"; + script + { + set_int(keyboard_visible, 1); + run_program(PROGRAM:"show_keyboard2"); + } + } + + program + { + name: "show_keyboard2"; + action: STATE_SET "keyboard" 0.0; + transition: DECELERATE 0.7 CURRENT; + target: "webkit"; + } + + program + { + name: "hide_keyboard"; + signal: "hide,keyboard"; + source: "calaos"; + script + { + set_int(keyboard_visible, 0); + run_program(PROGRAM:"hide_keyboard2"); + } + } + + program + { + name: "hide_keyboard2"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.7 CURRENT; + target: "webkit"; + } + + program + { + name: "button_keyboard_click"; + signal: "pressed"; + source: "button.keyboard"; + script + { + if (get_int(keyboard_visible) == 0) + { + set_int(keyboard_visible, 1); + run_program(PROGRAM:"show_keyboard"); + } + else + { + set_int(keyboard_visible, 0); + run_program(PROGRAM:"hide_keyboard"); + } + } + } + + program + { + name: "show_loading"; + signal: "start,loading"; + source: "calaos"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 0.7; + target: "page_loader_clip"; + } + + program + { + name: "show_loading2"; + signal: "start,loading"; + source: "calaos"; + script + { + if (get_int(is_loading) == 0) + { + set_int(is_loading, 1); + run_program(PROGRAM:"anim_start"); + } + } + } + program + { + name: "hide_loading2"; + signal: "stop,loading"; + source: "calaos"; + script + { + if (get_int(is_loading) == 1) + { + set_int(is_loading, 0); + run_program(PROGRAM:"anim_stop"); + } + } + } + + program + { + name: "anim_start"; + action: STATE_SET "default" 0.0; + target: "loader_circular"; + transition: LINEAR 1; + after: "anim_start"; + } + + program + { + name: "anim_stop"; + after: "anim_stop1"; + after: "anim_stop2"; + } + program + { + name: "anim_stop1"; + action: STATE_SET "done" 0.0; + target: "loader_circular"; + } + program + { + name: "anim_stop2"; + action: ACTION_STOP; + target: "anim_start"; + } + + program + { + name: "hide_loading"; + signal: "stop,loading"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.7; + target: "page_loader_clip"; + } + + program + { + name: "start_anim_save_bookmark"; + signal: "saving,bookmark"; + source: "calaos"; + action: SIGNAL_EMIT "start,loading" "calaos"; + after: "stop_anim_save_bookmark"; + } + + program + { + name: "stop_anim_save_bookmark"; + in: 1.5 0.0; + action: SIGNAL_EMIT "stop,loading" "calaos"; + } + } + +} diff --git a/data/themes/default/structure/page_widgets.edc b/data/themes/default/structure/page_widgets.edc new file mode 100644 index 00000000..5976d046 --- /dev/null +++ b/data/themes/default/structure/page_widgets.edc @@ -0,0 +1,643 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/page/widgets"; + + parts + { + part + { + name: "content_clip"; + type: RECT; + description + { + state: "default" 0.0; + } + description + { + state: "faded" 0.0; + color: 255 255 255 0; + } + } + + part + { + name: "overlay"; + type: RECT; + description + { + state: "default" 0.0; + color: 0 0 0 0; + visible: 0; + } + description + { + state: "faded" 0.0; + color: 0 0 0 75; + visible: 1; + } + } + + part + { + name: "widgets.swallow"; + clip_to: "content_clip"; + type: SWALLOW; + description + { + state: "default" 0.0; + } + } + } + + programs + { + program + { + signal: "fade"; + source: "calaos"; + action: STATE_SET "faded" 0.0; + transition: DECELERATE 0.5; + target: "content_clip"; + target: "overlay"; + } + + program + { + signal: "normal"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.2; + target: "content_clip"; + target: "overlay"; + } + } +} + +group +{ + name: "calaos/widget/base"; + + parts + { + part + { + name: "back"; + description + { + state: "deafult" 0.0; + visible: 0; + color: 255 255 255 0; + image { normal: "widget_back_edit.png"; border: 62 70 65 64; } + rel1 { relative: 0.0 0.0; offset: -10 -2; } + rel2 { relative: 1.0 1.0; offset: 9 44; } + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "widget"; + type: SWALLOW; + repeat_events: 1; + description + { + state: "default" 0.0; + } + } + + part + { + name: "widget_button_up"; + description + { + state: "default" 0.0; + image.normal: "button_widget_move_up.png"; + min: 23 18; + max: 23 18; + rel1 { relative: 0.5 0.0; offset: 0 -17; to: "back"; } + rel2 { relative: 0.5 0.0; offset: 0 0; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part + { + name: "widget_button_up_big"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_up_big.png";} + min: 23 18; + max: 23 18; + rel1 { relative: 0.5 0.0; offset: 0 -17; to: "back"; } + rel2 { relative: 0.5 0.0; offset: 0 0; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.0; offset: 0 -35; to: "back"; } + rel2 { relative: 0.5 0.0; offset: 0 -18; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + description + { + state: "anim_end" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 0.0; offset: 0 -18; to: "back"; } + rel2 { relative: 0.5 0.0; offset: 0 0; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + } + + part + { + name: "widget_button_down"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_down.png";} + min: 23 18; + max: 23 18; + rel1 { relative: 0.5 1.0; offset: 0 0; to: "back"; } + rel2 { relative: 0.5 1.0; offset: 0 17; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part + { + name: "widget_button_down_big"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_down_big.png";} + min: 23 18; + max: 23 18; + rel1 { relative: 0.5 1.0; offset: 0 0; to: "back"; } + rel2 { relative: 0.5 1.0; offset: 0 17; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: 0 18; to: "back"; } + rel2 { relative: 0.5 1.0; offset: 0 35; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + description + { + state: "anim_end" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 1.0; offset: 0 0; to: "back"; } + rel2 { relative: 0.5 1.0; offset: 0 17; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + } + + part + { + name: "widget_button_left"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_left.png";} + min: 18 23; + max: 18 23; + rel1 { relative: 0.0 0.5; offset: -17 0; to: "back"; } + rel2 { relative: 0.0 0.5; offset: 0 0; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part + { + name: "widget_button_left_big"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_left_big.png";} + min: 18 23; + max: 18 23; + rel1 { relative: 0.0 0.5; offset: -17 0; to: "back"; } + rel2 { relative: 0.0 0.5; offset: 0 0; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: -35 0; to: "back"; } + rel2 { relative: 0.0 0.5; offset: -18 0; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + description + { + state: "anim_end" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.0 0.5; offset: -17 0; to: "back"; } + rel2 { relative: 0.0 0.5; offset: 0 0; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + } + + part + { + name: "widget_button_right"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_right.png";} + min: 18 23; + max: 18 23; + rel1 { relative: 1.0 0.5; offset: 0 0; to: "back"; } + rel2 { relative: 1.0 0.5; offset: 17 0; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part + { + name: "widget_button_right_big"; + description + { + state: "default" 0.0; + image { normal: "button_widget_move_right_big.png";} + min: 18 23; + max: 18 23; + rel1 { relative: 1.0 0.5; offset: 0 0; to: "back"; } + rel2 { relative: 1.0 0.5; offset: 17 0; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "anim" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 18 0; to: "back"; } + rel2 { relative: 1.0 0.5; offset: 35 0; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + description + { + state: "anim_end" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.5; offset: 0 0; to: "back"; } + rel2 { relative: 1.0 0.5; offset: 17 0; to: "back"; } + visible: 1; + color: 255 255 255 0; + } + } + + part + { + name: "buttons_edit_clip"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + rel1 { relative: 0.0 1.0; offset: 0 5; } + rel2 { relative: 1.0 1.0; offset: 0 40; } + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "widget_drag_icon"; + description + { + state: "default" 0.0; + image { normal: "button_widget_resize.png";} + min: 38 38; + max: 38 38; + rel1 { relative: 1.0 1.0; offset: -25 -25; to: "back"; } + rel2 { relative: 1.0 1.0; offset: 11 11; to: "back"; } + visible: 0; + color: 255 255 255 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description + { + state: "anim2" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: -27 -27; to: "back"; } + rel2 { relative: 1.0 1.0; offset: 9 9; to: "back"; } + visible: 1; + color: 255 255 255 255; + } + description + { + state: "anim1" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: -23 -23; to: "back"; } + rel2 { relative: 1.0 1.0; offset: 13 13; to: "back"; } + visible: 1; + color: 255 255 255 255; + } + } + + part + { + name: "widget_drag_move"; + type: RECT; + description + { + state: "default" 0.0; + color: 0 0 0 0; + visible: 0; + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part + { + name: "widget.resize.bloc"; + type: SWALLOW; + description + { + state: "default" 0.0; + color: 0 0 0 0; + visible: 0; + rel1 { relative: 1.0 1.0; offset: -28 -28; to: "back"; } + rel2 { relative: 1.0 1.0; offset: 15 15; to: "back"; } + } + description + { + state: "move" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part + { + name: "button.delete"; + type: EXTERNAL; + source: "elm/button"; + clip_to: "buttons_edit_clip"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 0 0; to: "buttons_edit_clip"; } + rel2 { relative: 0.0 0.0; offset: 33 33; to: "buttons_edit_clip"; } + params + { + string: "style" "calaos/action_button/small"; + string: "icon" "calaos/icons/button/delete"; + } + } + } + } + + programs + { + program + { + name: "begin_move"; + signal: "widget,edit"; + source: "calaos"; + action: STATE_SET "move" 0.0; + transition: DECELERATE 0.8; + target: "buttons_edit_clip"; + target: "back"; + target: "widget_button_up"; + target: "widget_button_up_big"; + target: "widget_button_down"; + target: "widget_button_down_big"; + target: "widget_button_left"; + target: "widget_button_left_big"; + target: "widget_button_right"; + target: "widget_button_right_big"; + target: "widget_drag_move"; + after: "start_move_anim"; + } + + program + { + name: "begin_resize"; + signal: "widget,resizable"; + source: "calaos"; + action: STATE_SET "move" 0.0; + transition: DECELERATE 0.8; + target: "widget_drag_icon"; + target: "widget.resize.bloc"; + after: "start_resize_anim"; + } + + program + { + name: "end_move"; + signal: "widget,normal"; + source: "calaos"; + after: "mode_normal2"; + after: "mode_normal3"; + } + + program + { + name: "mode_normal2"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "buttons_edit_clip"; + target: "back"; + target: "widget_button_up"; + target: "widget_button_up_big"; + target: "widget_button_down"; + target: "widget_button_down_big"; + target: "widget_button_left"; + target: "widget_button_left_big"; + target: "widget_button_right"; + target: "widget_button_right_big"; + target: "widget_drag_move"; + target: "widget_drag_icon"; + target: "widget.resize.bloc"; + } + + program + { + name: "mode_normal3"; + action: ACTION_STOP; + target: "start_move_anim"; + target: "start_move_anim2"; + target: "start_move_anim3"; + target: "start_resize_anim"; + target: "start_resize_anim2"; + } + + program + { + name: "start_move_anim"; + action: STATE_SET "anim" 0.0; + transition: DECELERATE 0.7; + target: "widget_button_up_big"; + target: "widget_button_down_big"; + target: "widget_button_left_big"; + target: "widget_button_right_big"; + after: "start_move_anim2"; + } + + program + { + name: "start_move_anim2"; + action: STATE_SET "anim_end" 0.0; + target: "widget_button_up_big"; + target: "widget_button_down_big"; + target: "widget_button_left_big"; + target: "widget_button_right_big"; + after: "start_move_anim3"; + } + + program + { + name: "start_move_anim3"; + action: STATE_SET "move" 0.0; + transition: DECELERATE 0.1; + target: "widget_button_up_big"; + target: "widget_button_down_big"; + target: "widget_button_left_big"; + target: "widget_button_right_big"; + after: "start_move_anim"; + } + + program + { + name: "start_resize_anim"; + action: STATE_SET "anim1" 0.0; + transition: LINEAR 0.35; + target: "widget_drag_icon"; + after: "start_resize_anim2"; + } + + program + { + name: "start_resize_anim2"; + action: STATE_SET "anim2" 0.0; + transition: LINEAR 0.35; + target: "widget_drag_icon"; + after: "start_resize_anim"; + } + + program + { + name: "start_move"; + signal: "mouse,down,1"; + source: "widget_drag_move"; + action: SIGNAL_EMIT "start,move" "widget"; + } + + program + { + name: "moving"; + signal: "mouse,move"; + source: "widget_drag_move"; + action: SIGNAL_EMIT "moving" "widget"; + } + + program + { + name: "stop_move"; + signal: "mouse,up,1"; + source: "widget_drag_move"; + action: SIGNAL_EMIT "stop,move" "widget"; + } + } +} diff --git a/data/themes/default/structure/paging_view.edc b/data/themes/default/structure/paging_view.edc new file mode 100644 index 00000000..99f8b61b --- /dev/null +++ b/data/themes/default/structure/paging_view.edc @@ -0,0 +1,107 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/paging_view"; + + parts + { + part + { + name: "pager.swallow"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel2.offset: -1 -30; + } + } + + part + { + name: "selector.swallow"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1.relative: 0.0 1.0; + rel1.offset: 0 -30; + } + } + } +} + +group +{ + name: "calaos/paging_view/selector"; + min: 18 24; + max: 18 24; + + parts + { + part + { + name: "select"; + description + { + state: "default" 0.0; + min: 7 7; + max: 7 7; + align: 0.5 0.5; + fixed: 1 1; + image.normal: "selector_on.png"; + color: 0 0 0 0; + } + description + { + state: "off" 0.0; + inherit: "default" 0.0; + } + description + { + state: "on" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + + part + { + name: "unselect"; + description + { + state: "default" 0.0; + min: 7 7; + max: 7 7; + align: 0.5 0.5; + fixed: 1 1; + image.normal: "selector_off.png"; + } + } + } + + programs + { + program + { + name: "select"; + signal: "select"; + source: "calaos"; + action: STATE_SET "on" 0.0; + target: "select"; + transition: ACCELERATE 0.2; + } + program + { + name: "unselect"; + signal: "unselect"; + source: "calaos"; + action: STATE_SET "off" 0.0; + target: "select"; + transition: DECELERATE 0.2; + } + } +} diff --git a/data/themes/default/structure/player.edc b/data/themes/default/structure/player.edc new file mode 100644 index 00000000..dfa43e26 --- /dev/null +++ b/data/themes/default/structure/player.edc @@ -0,0 +1,1415 @@ +// Calaos Home Module-audio player object file +// HECKY Raoul +// BOEHLER Frederic +// 07/08/2007 + +// Object whole +part { + name: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 130; + } + description { + state: "active" 0.0; + color: 255 255 255 255; + } +} +// End object whole + +// Player's cover whole +part { + name: "player_cover_whole"; + clip_to: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 0 36;} + rel2 { relative: 1.0 0.0; offset: -1 228;} + rel1.to: "player_whole"; + rel2.to: "player_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} +// End player's cover whole + +// Player's volume whole +part { + name: "player_volume_whole"; + clip_to: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.088 0.24; offset: -14 -95;} + rel2 { relative: 0.088 0.24; offset: 13 94;} + rel1.to: "player_whole"; + rel2.to: "player_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_volume_label"; + clip_to: "player_volume_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.551 0.065; offset: -14 -10;} + rel2 { relative: 0.551 0.065; offset: 13 9;} + rel1.to: "player_volume_whole"; + rel2.to: "player_volume_whole"; + color: 255 255 255 255; + } +} +// End player's volume whole + +// Player's title whole +part { + name: "player_title_whole"; + clip_to: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 0 17;} + rel2 { relative: 1.0 0.0; offset: -1 42;} + rel1.to: "player_whole"; + rel2.to: "player_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} +// End player's title whole + +// Player's buttons row +part { + name: "player_buttons_row"; + clip_to: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 0 226;} + rel2 { relative: 1.0 0.0; offset: -1 254;} + rel1.to: "player_whole"; + rel2.to: "player_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} +// End player's buttons row + +// Player's buttons wholes +part { + name: "player_buttons_previous_track"; + clip_to: "player_buttons_row"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.237 0.5; offset: -17 -14;} + rel2 { relative: 0.237 0.5; offset: 16 13;} + rel1.to: "player_buttons_row"; + rel2.to: "player_buttons_row"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_buttons_play"; + clip_to: "player_buttons_row"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.417 0.5; offset: -17 -14;} + rel2 { relative: 0.417 0.5; offset: 16 13;} + rel1.to: "player_buttons_row"; + rel2.to: "player_buttons_row"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_buttons_pause"; + clip_to: "player_buttons_row"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.417 0.5; offset: -17 -14;} + rel2 { relative: 0.417 0.5; offset: 16 13;} + rel1.to: "player_buttons_row"; + rel2.to: "player_buttons_row"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_buttons_stop"; + clip_to: "player_buttons_row"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.597 0.5; offset: -17 -14;} + rel2 { relative: 0.597 0.5; offset: 16 13;} + rel1.to: "player_buttons_row"; + rel2.to: "player_buttons_row"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_buttons_next_track"; + clip_to: "player_buttons_row"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.77 0.5; offset: -17 -14;} + rel2 { relative: 0.77 0.5; offset: 16 13;} + rel1.to: "player_buttons_row"; + rel2.to: "player_buttons_row"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_button_volume_more"; + clip_to: "player_volume_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.5 0.185; offset: -14 -17;} + rel2 { relative: 0.5 0.185; offset: 13 17;} + rel1.to: "player_volume_whole"; + rel2.to: "player_volume_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_button_volume_less"; + clip_to: "player_volume_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.5 0.915; offset: -14 -17;} + rel2 { relative: 0.5 0.915; offset: 13 17;} + rel1.to: "player_volume_whole"; + rel2.to: "player_volume_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_amp_clip"; + clip_to: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 1.0; offset: -1 9;} + rel2 { relative: 1.0 1.0; offset: -1 32;} + rel1.to: "player_button_volume_less"; + rel2.to: "player_button_volume_less"; + color: 255 255 255 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_button_amp"; + clip_to: "player_amp_clip"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + rel1.to: "player_amp_clip"; + rel2.to: "player_amp_clip"; + color: 255 255 255 255; + } +} +// End player's buttons woles + +// Player's details whole +part { + name: "player_details_whole"; + clip_to: "player_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 0 258;} + rel2 { relative: 1.0 0.0; offset: -1 509;} + rel1.to: "player_whole"; + rel2.to: "player_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} +// End player's details whole + +// Timer slider whole +part { + name: "time_slider_whole"; + clip_to: "player_details_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.5 0.1; offset: -95 -19;} + rel2 { relative: 0.5 0.1; offset: 94 18;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} +// End timer slider whole + +// Volume slider whole +part { + name: "volume_slider_whole"; + clip_to: "player_volume_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.5 0.548; offset: -14 -51;} + rel2 { relative: 0.5 0.548; offset: 13 50;} + rel1.to: "player_volume_whole"; + rel2.to: "player_volume_whole"; + color: 255 255 255 255; + } +} +// End volume slider whole + +// Player's cover decoration +part { + name: "player_cover_shadow"; + clip_to: "player_cover_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "player_shadow.png";} + rel1 { relative: 0.5 0.5; offset: -107 -96;} + rel2 { relative: 0.5 0.5; offset: 106 95;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_cover_glow"; + clip_to: "player_cover_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 0; + image { normal: "player_glow.png";} + rel1 { relative: 0.5 0.5; offset: -107 -96;} + rel2 { relative: 0.5 0.5; offset: 106 95;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + color: 255 255 255 0; + } + description { + state: "in" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 230; + } + description { + state: "out" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 100; + } +} + +part { + name: "player_cover_back"; + clip_to: "player_cover_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "player_cover_back.png";} + rel1 { relative: 0.505 0.495; offset: -94 -85;} + rel2 { relative: 0.505 0.495; offset: 93 84;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_cd_whole"; + clip_to: "player_cover_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.535 0.495; offset: -80 -80;} + rel2 { relative: 0.535 0.495; offset: 79 79;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + color: 255 255 255 0; + } + description { + state: "playing" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + description { + state: "select" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: 0.67 0.495; offset: -80 -80;} + rel2 { relative: 0.67 0.495; offset: 79 79;} + color: 255 255 255 255; + } +} + +part { + name: "player_cd"; + clip_to: "player_cd_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "cd_player_001.png";} + rel1.to: "player_cd_whole"; + rel2.to: "player_cd_whole"; + color: 255 255 255 255; + } + description { + state: "animation" 0.0; + visible: 1; + inherit: "default" 0.0; + image { normal: "cd_player_001.png"; + tween: "cd_player_002.png"; + tween: "cd_player_003.png"; + tween: "cd_player_004.png"; + tween: "cd_player_005.png"; + tween: "cd_player_006.png"; + tween: "cd_player_007.png"; + tween: "cd_player_008.png"; + tween: "cd_player_009.png"; + } + } +} + +part { + name: "player_cd_shadow"; + clip_to: "player_cover_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 0; + image { normal: "player_cd_shadow.png";} + rel1 { relative: 0.875 0.5; offset: -9 -85;} + rel2 { relative: 0.875 0.5; offset: 8 84;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 255; + } +} + +part { + name: "player_mini_cd"; + clip_to: "player_details_mini_cd_decoration_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "mini_cd_player_001.png";} + rel1 { relative: 0.5 1.5; offset: -47 -47;} + rel2 { relative: 0.5 1.5; offset: 46 46;} + rel1.to: "player_details_mini_cd_decoration_whole"; + rel2.to: "player_details_mini_cd_decoration_whole"; + color: 255 255 255 255; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.5 1.2; offset: -47 -47;} + rel2 { relative: 0.5 1.2; offset: 46 46;} + rel1.to: "player_details_mini_cd_decoration_whole"; + rel2.to: "player_details_mini_cd_decoration_whole"; + } +} + +part +{ + name: "cover_rot_center"; + type: RECT; + description + { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.505 0.495; offset: -94 -85;} + rel2 { relative: 0.505 0.495; offset: -93 84;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + } +} + +alias: "player.cover" "player_cover_front:player.cover"; +part +{ + name: "player_cover_front"; + type: GROUP; + source: "calaos/audio/player/cover"; + description + { + state: "default" 0.0; + rel1 { relative: 0.505 0.495; offset: -94 -85;} + rel2 { relative: 0.505 0.495; offset: 93 84;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + map + { + on: 1; + perspective_on: 1; + rotation.y: 0; + rotation.center: "cover_rot_center"; + } + } + description + { + state: "select" 0.0; + inherit: "default" 0.0; + map { rotation.y: -30; } + } +} + +// End player cover decoration + +// Click area +part { + name: "player_select_area"; + clip_to: "player_cover_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: 0.505 0.495; offset: -94 -85;} + rel2 { relative: 0.505 0.495; offset: 93 84;} + rel1.to: "player_cover_whole"; + rel2.to: "player_cover_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 0; + } +} +// End click area + +// Player details decoration +part { + name: "player_details_mini_cd_decoration_whole"; + clip_to: "player_details_whole"; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.505 0.247; offset: -47 -23;} + rel2 { relative: 0.505 0.247; offset: 46 22;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 127; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_details_line_decoration_top"; + clip_to: "player_details_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "player_line_decoration_top.png";} + rel1 { relative: 0.500 0.31; offset: -109 -8;} + rel2 { relative: 0.500 0.31; offset: 108 7;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_details_line_decoration_cd"; + clip_to: "player_details_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 0; + image { normal: "player_line_decoration_cd.png";} + rel1 { relative: 0.500 0.31; offset: -109 -8;} + rel2 { relative: 0.500 0.31; offset: 108 7;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +//Equalizer whole +part { + name: "eqalizer_whole"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; offset: 18 4;} + rel2 { relative: 1.0 0.0; offset: -18 54;} + rel1.to: "player_details_line_decoration_bottom"; + rel2.to: "player_details_line_decoration_bottom"; + color: 255 255 255 0; + } + description { + state, "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +// Equalizer parts +part { + name: "line1_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 14, 38, "eqalizer_whole") +} + +// Macros Line 1 +LEVEL("line1_0", "line1_clip", 0.0, 0.0, 0, 0, "eqalizer_whole", 0.0, 0.0, 13, 2, "eqalizer_whole") +LEVEL("line1_1", "line1_clip", 0.0, 1.0, 0, 2, "line1_0", 0.0, 1.0, 13, 4, "line1_0") +LEVEL("line1_2", "line1_clip", 0.0, 1.0, 0, 2, "line1_1", 0.0, 1.0, 13, 4, "line1_1") +LEVEL("line1_3", "line1_clip", 0.0, 1.0, 0, 2, "line1_2", 0.0, 1.0, 13, 4, "line1_2") +LEVEL("line1_4", "line1_clip", 0.0, 1.0, 0, 2, "line1_3", 0.0, 1.0, 13, 4, "line1_3") +LEVEL("line1_5", "line1_clip", 0.0, 1.0, 0, 2, "line1_4", 0.0, 1.0, 13, 4, "line1_4") +LEVEL("line1_6", "line1_clip", 0.0, 1.0, 0, 2, "line1_5", 0.0, 1.0, 13, 4, "line1_5") +LEVEL("line1_7", "line1_clip", 0.0, 1.0, 0, 2, "line1_6", 0.0, 1.0, 13, 4, "line1_6") +LEVEL("line1_8", "line1_clip", 0.0, 1.0, 0, 2, "line1_7", 0.0, 1.0, 13, 4, "line1_7") +LEVEL("line1_9", "line1_clip", 0.0, 1.0, 0, 2, "line1_8", 0.0, 1.0, 13, 4, "line1_8") + + +part { + name: "line2_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 38, 38, "eqalizer_whole") +} + +// Macros line 2 +LEVEL("line2_0", "line2_clip", 0.0, 0.0, 24, 0, "eqalizer_whole", 0.0, 0.0, 37, 2, "eqalizer_whole") +LEVEL("line2_1", "line2_clip", 0.0, 1.0, 0, 2, "line2_0", 0.0, 1.0, 13, 4, "line2_0") +LEVEL("line2_2", "line2_clip", 0.0, 1.0, 0, 2, "line2_1", 0.0, 1.0, 13, 4, "line2_1") +LEVEL("line2_3", "line2_clip", 0.0, 1.0, 0, 2, "line2_2", 0.0, 1.0, 13, 4, "line2_2") +LEVEL("line2_4", "line2_clip", 0.0, 1.0, 0, 2, "line2_3", 0.0, 1.0, 13, 4, "line2_3") +LEVEL("line2_5", "line2_clip", 0.0, 1.0, 0, 2, "line2_4", 0.0, 1.0, 13, 4, "line2_4") +LEVEL("line2_6", "line2_clip", 0.0, 1.0, 0, 2, "line2_5", 0.0, 1.0, 13, 4, "line2_5") +LEVEL("line2_7", "line2_clip", 0.0, 1.0, 0, 2, "line2_6", 0.0, 1.0, 13, 4, "line2_6") +LEVEL("line2_8", "line2_clip", 0.0, 1.0, 0, 2, "line2_7", 0.0, 1.0, 13, 4, "line2_7") +LEVEL("line2_9", "line2_clip", 0.0, 1.0, 0, 2, "line2_8", 0.0, 1.0, 13, 4, "line2_8") + +part { + name: "line3_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 62, 38, "eqalizer_whole") +} + +// Macros line 3 +LEVEL("line3_0", "line3_clip", 0.0, 0.0, 48, 0, "eqalizer_whole", 0.0, 0.0, 61, 2, "eqalizer_whole") +LEVEL("line3_1", "line3_clip", 0.0, 1.0, 0, 2, "line3_0", 0.0, 1.0, 13, 4, "line3_0") +LEVEL("line3_2", "line3_clip", 0.0, 1.0, 0, 2, "line3_1", 0.0, 1.0, 13, 4, "line3_1") +LEVEL("line3_3", "line3_clip", 0.0, 1.0, 0, 2, "line3_2", 0.0, 1.0, 13, 4, "line3_2") +LEVEL("line3_4", "line3_clip", 0.0, 1.0, 0, 2, "line3_3", 0.0, 1.0, 13, 4, "line3_3") +LEVEL("line3_5", "line3_clip", 0.0, 1.0, 0, 2, "line3_4", 0.0, 1.0, 13, 4, "line3_4") +LEVEL("line3_6", "line3_clip", 0.0, 1.0, 0, 2, "line3_5", 0.0, 1.0, 13, 4, "line3_5") +LEVEL("line3_7", "line3_clip", 0.0, 1.0, 0, 2, "line3_6", 0.0, 1.0, 13, 4, "line3_6") +LEVEL("line3_8", "line3_clip", 0.0, 1.0, 0, 2, "line3_7", 0.0, 1.0, 13, 4, "line3_7") +LEVEL("line3_9", "line3_clip", 0.0, 1.0, 0, 2, "line3_8", 0.0, 1.0, 13, 4, "line3_8") + +part { + name: "line4_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 86, 38, "eqalizer_whole") +} + +//Macro line 4 +LEVEL("line4_0", "line4_clip", 0.0, 0.0, 72, 0, "eqalizer_whole", 0.0, 0.0, 85, 2, "eqalizer_whole") +LEVEL("line4_1", "line4_clip", 0.0, 1.0, 0, 2, "line4_0", 0.0, 1.0, 13, 4, "line4_0") +LEVEL("line4_2", "line4_clip", 0.0, 1.0, 0, 2, "line4_1", 0.0, 1.0, 13, 4, "line4_1") +LEVEL("line4_3", "line4_clip", 0.0, 1.0, 0, 2, "line4_2", 0.0, 1.0, 13, 4, "line4_2") +LEVEL("line4_4", "line4_clip", 0.0, 1.0, 0, 2, "line4_3", 0.0, 1.0, 13, 4, "line4_3") +LEVEL("line4_5", "line4_clip", 0.0, 1.0, 0, 2, "line4_4", 0.0, 1.0, 13, 4, "line4_4") +LEVEL("line4_6", "line4_clip", 0.0, 1.0, 0, 2, "line4_5", 0.0, 1.0, 13, 4, "line4_5") +LEVEL("line4_7", "line4_clip", 0.0, 1.0, 0, 2, "line4_6", 0.0, 1.0, 13, 4, "line4_6") +LEVEL("line4_8", "line4_clip", 0.0, 1.0, 0, 2, "line4_7", 0.0, 1.0, 13, 4, "line4_7") +LEVEL("line4_9", "line4_clip", 0.0, 1.0, 0, 2, "line4_8", 0.0, 1.0, 13, 4, "line4_8") + +part { + name: "line5_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 110, 38, "eqalizer_whole") +} + +// Macros line 5 +LEVEL("line5_0", "line5_clip", 0.0, 0.0, 96, 0, "eqalizer_whole", 0.0, 0.0, 109, 2, "eqalizer_whole") +LEVEL("line5_1", "line5_clip", 0.0, 1.0, 0, 2, "line5_0", 0.0, 1.0, 13, 4, "line5_0") +LEVEL("line5_2", "line5_clip", 0.0, 1.0, 0, 2, "line5_1", 0.0, 1.0, 13, 4, "line5_1") +LEVEL("line5_3", "line5_clip", 0.0, 1.0, 0, 2, "line5_2", 0.0, 1.0, 13, 4, "line5_2") +LEVEL("line5_4", "line5_clip", 0.0, 1.0, 0, 2, "line5_3", 0.0, 1.0, 13, 4, "line5_3") +LEVEL("line5_5", "line5_clip", 0.0, 1.0, 0, 2, "line5_4", 0.0, 1.0, 13, 4, "line5_4") +LEVEL("line5_6", "line5_clip", 0.0, 1.0, 0, 2, "line5_5", 0.0, 1.0, 13, 4, "line5_5") +LEVEL("line5_7", "line5_clip", 0.0, 1.0, 0, 2, "line5_6", 0.0, 1.0, 13, 4, "line5_6") +LEVEL("line5_8", "line5_clip", 0.0, 1.0, 0, 2, "line5_7", 0.0, 1.0, 13, 4, "line5_7") +LEVEL("line5_9", "line5_clip", 0.0, 1.0, 0, 2, "line5_8", 0.0, 1.0, 13, 4, "line5_8") + +part { + name: "line6_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 134, 38, "eqalizer_whole") +} + +// Macros line 6 +LEVEL("line6_0", "line6_clip", 0.0, 0.0, 120, 0, "eqalizer_whole", 0.0, 0.0, 133, 2, "eqalizer_whole") +LEVEL("line6_1", "line6_clip", 0.0, 1.0, 0, 2, "line6_0", 0.0, 1.0, 13, 4, "line6_0") +LEVEL("line6_2", "line6_clip", 0.0, 1.0, 0, 2, "line6_1", 0.0, 1.0, 13, 4, "line6_1") +LEVEL("line6_3", "line6_clip", 0.0, 1.0, 0, 2, "line6_2", 0.0, 1.0, 13, 4, "line6_2") +LEVEL("line6_4", "line6_clip", 0.0, 1.0, 0, 2, "line6_3", 0.0, 1.0, 13, 4, "line6_3") +LEVEL("line6_5", "line6_clip", 0.0, 1.0, 0, 2, "line6_4", 0.0, 1.0, 13, 4, "line6_4") +LEVEL("line6_6", "line6_clip", 0.0, 1.0, 0, 2, "line6_5", 0.0, 1.0, 13, 4, "line6_5") +LEVEL("line6_7", "line6_clip", 0.0, 1.0, 0, 2, "line6_6", 0.0, 1.0, 13, 4, "line6_6") +LEVEL("line6_8", "line6_clip", 0.0, 1.0, 0, 2, "line6_7", 0.0, 1.0, 13, 4, "line6_7") +LEVEL("line6_9", "line6_clip", 0.0, 1.0, 0, 2, "line6_8", 0.0, 1.0, 13, 4, "line6_8") + +part { + name: "line7_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 158, 38, "eqalizer_whole") +} + +// Macro line 7 +LEVEL("line7_0", "line7_clip", 0.0, 0.0, 144, 0, "eqalizer_whole", 0.0, 0.0, 157, 2, "eqalizer_whole") +LEVEL("line7_1", "line7_clip", 0.0, 1.0, 0, 2, "line7_0", 0.0, 1.0, 13, 4, "line7_0") +LEVEL("line7_2", "line7_clip", 0.0, 1.0, 0, 2, "line7_1", 0.0, 1.0, 13, 4, "line7_1") +LEVEL("line7_3", "line7_clip", 0.0, 1.0, 0, 2, "line7_2", 0.0, 1.0, 13, 4, "line7_2") +LEVEL("line7_4", "line7_clip", 0.0, 1.0, 0, 2, "line7_3", 0.0, 1.0, 13, 4, "line7_3") +LEVEL("line7_5", "line7_clip", 0.0, 1.0, 0, 2, "line7_4", 0.0, 1.0, 13, 4, "line7_4") +LEVEL("line7_6", "line7_clip", 0.0, 1.0, 0, 2, "line7_5", 0.0, 1.0, 13, 4, "line7_5") +LEVEL("line7_7", "line7_clip", 0.0, 1.0, 0, 2, "line7_6", 0.0, 1.0, 13, 4, "line7_6") +LEVEL("line7_8", "line7_clip", 0.0, 1.0, 0, 2, "line7_7", 0.0, 1.0, 13, 4, "line7_7") +LEVEL("line7_9", "line7_clip", 0.0, 1.0, 0, 2, "line7_8", 0.0, 1.0, 13, 4, "line7_8") + +part { + name: "line8_clip"; + type: RECT; + clip_to: "eqalizer_whole"; + LEVEL_CLIP(0.0, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 2, "eqalizer_whole") + LEVEL_CLIP(0.1, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 6, "eqalizer_whole") + LEVEL_CLIP(0.2, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 10, "eqalizer_whole") + LEVEL_CLIP(0.3, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 14, "eqalizer_whole") + LEVEL_CLIP(0.4, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 18, "eqalizer_whole") + LEVEL_CLIP(0.5, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 22, "eqalizer_whole") + LEVEL_CLIP(0.6, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 26, "eqalizer_whole") + LEVEL_CLIP(0.7, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 30, "eqalizer_whole") + LEVEL_CLIP(0.8, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 34, "eqalizer_whole") + LEVEL_CLIP(0.9, 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 182, 38, "eqalizer_whole") +} + +// Macro line 8 +LEVEL("line8_0", "line8_clip", 0.0, 0.0, 168, 0, "eqalizer_whole", 0.0, 0.0, 181, 2, "eqalizer_whole") +LEVEL("line8_1", "line8_clip", 0.0, 1.0, 0, 2, "line8_0", 0.0, 1.0, 13, 4, "line8_0") +LEVEL("line8_2", "line8_clip", 0.0, 1.0, 0, 2, "line8_1", 0.0, 1.0, 13, 4, "line8_1") +LEVEL("line8_3", "line8_clip", 0.0, 1.0, 0, 2, "line8_2", 0.0, 1.0, 13, 4, "line8_2") +LEVEL("line8_4", "line8_clip", 0.0, 1.0, 0, 2, "line8_3", 0.0, 1.0, 13, 4, "line8_3") +LEVEL("line8_5", "line8_clip", 0.0, 1.0, 0, 2, "line8_4", 0.0, 1.0, 13, 4, "line8_4") +LEVEL("line8_6", "line8_clip", 0.0, 1.0, 0, 2, "line8_5", 0.0, 1.0, 13, 4, "line8_5") +LEVEL("line8_7", "line8_clip", 0.0, 1.0, 0, 2, "line8_6", 0.0, 1.0, 13, 4, "line8_6") +LEVEL("line8_8", "line8_clip", 0.0, 1.0, 0, 2, "line8_7", 0.0, 1.0, 13, 4, "line8_7") +LEVEL("line8_9", "line8_clip", 0.0, 1.0, 0, 2, "line8_8", 0.0, 1.0, 13, 4, "line8_8") + +part { + name: "player_details_line_decoration_bottom"; + clip_to: "player_details_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "player_line_decoration_bottom.png";} + rel1 { relative: 0.500 0.855; offset: -109 -8;} + rel2 { relative: 0.500 0.855; offset: 108 7;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} +// End player details decoration + +// Label and text parts +part { + name: "player_icon_whole"; + clip_to: "player_title_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.2 0.5; offset: -8 -9;} + rel2 { relative: 0.2 0.5; offset: 7 8;} + rel1.to: "player_title_whole"; + rel2.to: "player_title_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_name_label"; + clip_to: "player_title_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.545 0.5; offset: -80 -8;} + rel2 { relative: 0.545 0.5; offset: 79 7;} + rel1.to: "player_title_whole"; + rel2.to: "player_title_whole"; + color: 255 255 255 127; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player_icon"; + clip_to: "player_icon_whole"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 1; + image { normal: "icon_player.png"; } + rel1.to: "player_icon_whole"; + rel2.to: "player_icon_whole"; + color: 255 255 255 127; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } +} + +part { + name: "player.name"; + clip_to: "player_name_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_name_label"; + rel2.to: "player_name_label"; + color: 231 231 231 255; + text { text: "Aucun player"; font: "CalaosContent"; size: 13; min: 0 0; align: 0.0 0.5;} + } +} + +part { + name: "player_filetype_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.76 0.29; offset: 0 -7;} + rel2 { relative: 0.76 0.29; offset: 30 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_artist_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.430; offset: 10 -7;} + rel2 { relative: 0.0 0.430; offset: 91 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "track_artist_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.430; offset: 95 -7;} + rel2 { relative: 0.0 0.430; offset: 250 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_album_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.513; offset: 10 -7;} + rel2 { relative: 0.0 0.513; offset: 91 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "track_album_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.513; offset: 95 -7;} + rel2 { relative: 0.0 0.513; offset: 250 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_title_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.598; offset: 10 -7;} + rel2 { relative: 0.0 0.598; offset: 92 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "track_title_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.598; offset: 95 -7;} + rel2 { relative: 0.0 0.598; offset: 250 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_year_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.679; offset: 10 -7;} + rel2 { relative: 0.0 0.679; offset: 91 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "track_year_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.679; offset: 95 -7;} + rel2 { relative: 0.0 0.679; offset: 250 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player_duration_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.762; offset: 10 -7;} + rel2 { relative: 0.0 0.762; offset: 92 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "track_duration_label"; + clip_to: "player_details_whole"; + type: RECT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.762; offset: 95 -7;} + rel2 { relative: 0.0 0.762; offset: 250 6;} + rel1.to: "player_details_whole"; + rel2.to: "player_details_whole"; + color: 255 255 255 255; + } +} + +part { + name: "player.volume"; + clip_to: "player_volume_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_volume_label"; + rel2.to: "player_volume_label"; + color: 231 231 231 100; + text { text: "000%"; font: "CalaosContent"; size: 10; min: 0 0; align: 0.5 0.5;} + } +} + +part { + name: "player.type"; + clip_to: "player_filetype_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_filetype_label"; + rel2.to: "player_filetype_label"; + color: 231 231 231 140; + text { text: "Na"; font: "CalaosContent"; size: 10; min: 0 0; align: 1.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 140; + } +} + +part { + name: "text.artist"; + clip_to: "player_artist_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_artist_label"; + rel2.to: "player_artist_label"; + color: 231 231 231 140; + text { text: "Artiste :"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 140; + } +} + +alias: "player.artist" "player_artist:text"; +part +{ + name: "player_artist"; + type: GROUP; + source: "calaos/text/scrolling/left"; + clip_to: "track_artist_label"; + description + { + state: "default" 0.0; + rel1.to: "track_artist_label"; + rel2.to: "track_artist_label"; + } +} + +part { + name: "text.album"; + clip_to: "player_album_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_album_label"; + rel2.to: "player_album_label"; + color: 231 231 231 140; + text { text: "Album :"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 140; + } +} + + +alias: "player.album" "player_album:text"; +part +{ + name: "player_album"; + type: GROUP; + source: "calaos/text/scrolling/left"; + clip_to: "track_album_label"; + description + { + state: "default" 0.0; + rel1.to: "track_album_label"; + rel2.to: "track_album_label"; + } +} + +part { + name: "text.title"; + clip_to: "player_title_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_title_label"; + rel2.to: "player_title_label"; + color: 231 231 231 140; + text { text: "Piste :"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 140; + } +} + + +alias: "player.title" "player_title:text"; +part +{ + name: "player_title"; + type: GROUP; + source: "calaos/text/scrolling/left"; + clip_to: "track_title_label"; + description + { + state: "default" 0.0; + rel1.to: "track_title_label"; + rel2.to: "track_title_label"; + } +} + +part { + name: "text.year"; + clip_to: "player_year_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_year_label"; + rel2.to: "player_year_label"; + color: 231 231 231 140; + text { text: "Année :"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 140; + } +} + +part { + name: "player.year"; + clip_to: "track_year_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "track_year_label"; + rel2.to: "track_year_label"; + color: 231 231 231 100; + text { text: "Na"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + } +} + +part { + name: "text.duration"; + clip_to: "player_duration_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "player_duration_label"; + rel2.to: "player_duration_label"; + color: 231 231 231 140; + text { text: "Durée :"; font: "CalaosContent"; size: 12; min: 0 0; align: 1.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 140; + } +} + +part { + name: "player.duration"; + clip_to: "track_duration_label"; + type: TEXT; + description { + state, "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: -1 -1;} + rel1.to: "track_duration_label"; + rel2.to: "track_duration_label"; + color: 231 231 231 100; + text { text: "0:00"; font: "CalaosContent"; size: 12; min: 0 0; align: 0.0 0.5;} + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + } +} +// End label and text parts + + +// Macros +ELEMENT_ACTION_BUTTON_NORMAL("previous_track", "player_buttons_previous_track", "player_buttons_previous_track", "player_buttons_previous_track", "button_action_previous.png", "button_action_glow.png", "player", "player,previous", 0.5, 0.5, -17, -14, 0.5, 0.5, 16, 13) +ELEMENT_ACTION_BUTTON_NORMAL("play_button", "player_buttons_play", "player_buttons_play", "player_buttons_play", "button_action_play.png", "button_action_glow.png", "player", "player,play", 0.5, 0.5, -17, -14, 0.5, 0.5, 16, 13) +ELEMENT_ACTION_BUTTON_NORMAL("pause_button", "player_buttons_pause", "player_buttons_pause", "player_buttons_pause", "button_action_pause.png", "button_action_glow.png", "player", "player,pause", 0.5, 0.5, -17, -14, 0.5, 0.5, 16, 13) +ELEMENT_ACTION_BUTTON_NORMAL("stop_button", "player_buttons_stop", "player_buttons_stop", "player_buttons_stop", "button_action_stop.png", "button_action_glow.png", "player", "player,stop", 0.5, 0.5, -17, -14, 0.5, 0.5, 16, 13) +ELEMENT_ACTION_BUTTON_NORMAL("next_button", "player_buttons_next_track", "player_buttons_next_track", "player_buttons_next_track", "button_action_next.png", "button_action_glow.png", "player", "player,next", 0.5, 0.5, -17, -14, 0.5, 0.5, 16, 13) + +ELEMENT_ACTION_BUTTON_NORMAL("volume_more", "player_button_volume_more", "player_button_volume_more", "player_button_volume_more", "button_action_more_vertical.png", "button_action_vertical_glow.png", "player", "player,volume,plus", 0.5, 0.5, -14, -17, 0.5, 0.5, 13, 16) +ELEMENT_ACTION_BUTTON_NORMAL("volume_less", "player_button_volume_less", "player_button_volume_less", "player_button_volume_less", "button_action_less_vertical.png", "button_action_vertical_glow.png", "player", "player,volume,moins", 0.5, 0.5, -14, -17, 0.5, 0.5, 13, 16) +ELEMENT_ACTION_BUTTON_NORMAL("amplifier", "player_button_amp", "player_button_amp", "player_button_amp", "button_info.png", "button_info_glow.png", "player", "player,amplifier", 0.0, 0.0, 0, 0, 1.0, 1.0, -1, -1) + +HORIZ_SLIDER("player.time.slider", "time_slider_whole", "message.text", "Avancement :", "player.time", "00:00", 50, 180, 215, "slider.png", "slider_on.png", "slider_border.png", "player", "player,time,change", "local", "slider,timer,inactive", "local", "slider,timer,active") +VERTI_SLIDER("player.volume.slider", "volume_slider_whole", 50, 180, 215, "slider_vertical.png", "slider_vertical_on.png", "slider_border.png", "player", "player,volume,change", "local", "slider,volume,inactive", "local", "slider,volume,active") +// End macros + diff --git a/data/themes/default/structure/player_prog.edc b/data/themes/default/structure/player_prog.edc new file mode 100644 index 00000000..d8cf637b --- /dev/null +++ b/data/themes/default/structure/player_prog.edc @@ -0,0 +1,710 @@ +// Calaos Home Module-audio player program file +// HECKY Raoul +// BOEHLER Frederic +// 07/08/2007 + +SCROLLING_TEXT_SIGNAL_REPEAT("player_artist") +SCROLLING_TEXT_SIGNAL_REPEAT("player_album") +SCROLLING_TEXT_SIGNAL_REPEAT("player_title") + +// Player init program +program { + name, "init_module"; + signal, "show"; + source, ""; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.4; + target, "player_title_whole"; + target, "player_cover_whole"; +// target, "player_buttons_row"; + target, "player_details_whole"; + target, "eqalizer_whole"; +} + +// Set initial value mode of object +program { + name, "set_player_mode_playing_value"; + script { + set_int(playing_mode, 1); + } +} + +program { + name, "set_player_mode_stop_value"; + script { + set_int(playing_mode, 0); + } +} + +program { + name, "set_player_mode_selected_value"; + script { + set_int(object_mode, 1); + } +} + +program { + name, "set_player_mode_unselected_value"; + script { + set_int(object_mode, 0); + } +} + + +// Set slider active / inactive +program { + name, "send_slider_timer_inactive_signal"; + action: SIGNAL_EMIT "slider,timer,inactive" "local"; +} + +program { + name, "send_slider_timer_active_signal"; + action: SIGNAL_EMIT "slider,timer,active" "local"; +} + +program { + name, "send_slider_volume_inactive_signal"; + action: SIGNAL_EMIT "slider,volume,inactive" "local"; +} + +program { + name, "send_slider_volume_active_signal"; + action: SIGNAL_EMIT "slider,volume,active" "local"; +} + +// State programme +program { + name, "reset_player"; + signal, "show"; + source, ""; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.0001; + target, "player_buttons_row"; + target, "time_slider_whole"; + target, "player_cd_whole"; + target, "player_volume_whole"; + target, "player_select_area"; + target, "player_details_mini_cd_decoration_whole"; + target, "player_details_line_decoration_cd"; + target: "player_cd_shadow"; + target, "player_mini_cd"; + target, "player_name_label"; + target, "player_cover_glow"; + target, "player_icon"; + target, "player.type"; + target, "text.artist"; + target, "text.album"; + target, "text.title"; + target, "text.year"; + target, "player.year"; + target, "text.duration"; + target, "player.duration"; + after, "stop_glow_animation"; + after, "stop_cd_animation"; + after, "send_slider_timer_inactive_signal"; + after, "send_slider_volume_inactive_signal"; +} + +program +{ + name: "on_show"; + signal: "show"; + action: SIGNAL_EMIT "text,active,blue" "calaos"; +} + +program { + name, "set_player_in_inactive_mode"; + signal, "player,inactive"; + source, "calaos"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.2; + target: "player_whole"; + target, "player_buttons_row"; + target, "time_slider_whole"; + target, "player_volume_whole"; + target, "player_cd_whole"; + target, "player_select_area"; + target, "player_details_mini_cd_decoration_whole"; + target, "player_details_line_decoration_cd"; + target: "player_cd_shadow"; + target, "player_mini_cd"; + target, "player_name_label"; + target, "player_cover_glow"; + target, "player_icon"; + target, "player.type"; + target, "text.artist"; + target, "text.album"; + target, "text.title"; + target, "text.year"; + target, "player.year"; + target, "text.duration"; + target, "player.duration"; + after, "stop_glow_animation"; + after, "stop_cd_animation"; + after, "send_slider_timer_inactive_signal"; + after, "send_slider_volume_inactive_signal"; + after, "equalizer_stop"; +} + +program +{ + name: "on_inactive"; + signal: "player,inactive"; + source: "calaos"; + action: SIGNAL_EMIT "text,inactive" "calaos"; +} + +program { + name, "set_player_in_active_mode"; + signal, "player,active"; + source, "calaos"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.3; + target: "player_whole"; + target, "player_buttons_row"; + target, "time_slider_whole"; + target, "player_name_label"; + target, "player_select_area"; + target, "player_icon"; + after, "send_slider_volume_active_signal"; + after, "set_player_buttons_start_state"; +} + +program { + name, "set_player_in_playing_mode"; + signal, "player,playing"; + source, "calaos"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.3; + target, "player.type"; + target, "text.artist"; + target, "text.album"; + target, "text.title"; + target, "text.year"; + target, "player.year"; + target, "text.duration"; + target, "player.duration"; + target, "player_details_mini_cd_decoration_whole"; + target, "player_volume_whole"; + after, "set_player_playing_state"; + after, "set_player_buttons_play_state"; + after, "send_slider_timer_active_signal"; + after, "set_player_mini_cd_playing_state"; + after, "set_player_mode_playing_value"; +} + +program +{ + name: "on_playing"; + signal: "player,playing"; + source: "calaos"; + action: SIGNAL_EMIT "text,active,blue" "calaos"; +} + +program { + name, "set_player_in_stop_mode"; + signal, "player,stop"; + source, "calaos"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.3; + target, "text.artist"; + target, "player.type"; + target, "text.album"; + target, "text.title"; + target, "text.year"; + target, "player.year"; + target, "text.duration"; + target, "player.duration"; + target, "player_details_mini_cd_decoration_whole"; + target, "player_volume_whole"; + after, "set_player_stop_state"; + after, "set_player_buttons_stop_state"; + after, "send_slider_timer_inactive_signal"; + after, "set_player_mini_cd_stop_state"; + after, "set_player_mode_stop_value"; + after, "equalizer_stop"; +} + +program +{ + name: "on_stop"; + signal: "player,stop"; + source: "calaos"; + action: SIGNAL_EMIT "text,inactive" "calaos"; +} + +program { + name, "set_player_in_select_mode"; + signal, "player,select"; + source, "calaos"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.2; +// target, "player_details_whole"; + target, "player_select_area"; +// target, "eqalizer_whole"; + after, "set_player_cd_select_state"; + after, "set_player_mode_selected_value"; +// after, "equalizer_stop"; + after: "set_player_amp_selected"; +} + +program { + name, "set_player_in_unselect_mode"; + signal, "player,unselect"; + source, "calaos"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.2; + target, "player_select_area"; + after, "set_player_cd_unselect_state"; + after, "set_player_mode_unselected_value"; + after: "set_player_amp_unselected"; +} + +program +{ + name: "has_amp"; + signal: "player,amplifier"; + source: "calaos"; + script + { set_int(has_amp, 1); } +} + +program +{ + name: "has_no_amp"; + signal: "player,no_amplifier"; + source: "calaos"; + script + { set_int(has_amp, 0); } +} + +program +{ + name: "set_player_amp_selected"; + script + { + if (get_int(has_amp) == 1) + run_program(PROGRAM:"show_amp_button"); + } +} + +program +{ + name: "show_amp_button"; + action: STATE_SET "visible" 0.0; + transition: ACCELERATE 0.2; + target: "player_amp_clip"; +} + +program +{ + name: "set_player_amp_unselected"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.2; + target: "player_amp_clip"; +} + +program { + name, "set_player_details_in_unselect_mode"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.2; + target, "player_details_whole"; +} + +program { + name, "set_player_show_again"; + signal, "show,again"; + source, "calaos"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.2; + target, "player_details_whole"; + target, "eqalizer_whole"; +// after, "equalizer_restart"; +} + +program { + name, "set_player_to_show_swallowed_cover"; + signal, "track,cover"; + source, "calaos"; + script { + run_program(PROGRAM:"show_swallowed_cover"); + run_program(PROGRAM:"hide_no_cover_image"); + } +} + +program { + name, "set_player_to_show_no_cover_image"; + signal, "track,nocover"; + source, "calaos"; + script { + run_program(PROGRAM:"hide_swallowed_cover"); + run_program(PROGRAM:"show_no_cover_image"); + } +} + +program { + name, "select_player"; + signal, "mouse,down,1"; + source, "player_select_area"; + action: SIGNAL_EMIT "player,select" "player"; +} + +// Activate desactivate parts +program { + name, "show_swallowed_cover"; + action: SIGNAL_EMIT "player_cover_front:show,cover" "cover"; +} + +program { + name, "hide_swallowed_cover"; + action: SIGNAL_EMIT "player_cover_front:hide,cover" "cover"; +} + +program { + name, "show_no_cover_image"; + action: SIGNAL_EMIT "player_cover_front:show,nocover" "cover"; +} + +program { + name, "hide_no_cover_image"; + action: SIGNAL_EMIT "player_cover_front:hide,nocover" "cover"; +} + +program { + name, "set_player_volume_controle_active"; + signal, "player,select"; + source, "calaos"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.25; + target, "player_volume_whole"; +} + +program { + name, "set_player_buttons_start_state"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.5; + target, "player_buttons_previous_track"; + target, "player_buttons_play"; + target, "player_buttons_stop"; + target, "player_buttons_next_track"; +} + +program { + name, "set_player_buttons_play_state"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.01; + target, "player_buttons_pause"; + after, "hide_player_buttons_play"; +} + +program { + name, "set_player_buttons_stop_state"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.01; + target, "player_buttons_play"; + after, "hide_player_buttons_pause"; +} + +program { + name, "hide_player_buttons_play"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.01; + target, "player_buttons_play"; +} + +program { + name, "show_player_buttons_play"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.01; + target, "player_buttons_play"; +} + +program { + name, "hide_player_buttons_pause"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.01; + target, "player_buttons_pause"; +} + +program { + name, "show_player_buttons_pause"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.01; + target, "player_buttons_pause"; +} + +program { + name, "set_player_mini_cd_playing_state"; + script { + run_program(PROGRAM:"set_mini_cd_playing_state"); + run_program(PROGRAM:"set_mini_cd_shadow_playing_state"); + } +} + +program { + name, "set_player_mini_cd_stop_state"; + script { + run_program(PROGRAM:"set_mini_cd_stop_state"); + run_program(PROGRAM:"set_mini_cd_shadow_stop_state"); + } +} + +program { + name, "set_mini_cd_playing_state"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.8; + target, "player_mini_cd"; +} + +program { + name, "set_mini_cd_stop_state"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.8; + target, "player_mini_cd"; +} + +program { + name, "set_mini_cd_shadow_playing_state"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.3; + target, "player_details_line_decoration_cd"; +} + +program { + name, "set_mini_cd_shadow_stop_state"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.3; + target, "player_details_line_decoration_cd"; +} + +program { + name, "set_player_cd_select_state"; + script { + run_program(PROGRAM:"set_cd_select_state"); + run_program(PROGRAM:"set_cd_shadow_select_state"); + } +} + +program { + name, "set_player_cd_unselect_state"; + script { + if (get_int(playing_mode) == 0) { + run_program(PROGRAM:"set_cd_unselect_state"); + run_program(PROGRAM:"set_cd_shadow_unselect_state"); + } + if (get_int(playing_mode) == 1) { + run_program(PROGRAM:"set_cd_playing_state"); + run_program(PROGRAM:"set_cd_shadow_unselect_state"); + } + run_program(PROGRAM:"close_cd_case"); + } +} + +program { + name, "set_player_playing_state"; + script { + if (get_int(object_mode) == 0) { + run_program(PROGRAM:"set_cd_playing_state"); + } + } +} + +program { + name, "set_player_stop_state"; + script { + if (get_int(object_mode) == 0) { + run_program(PROGRAM:"set_cd_default_state"); + run_program(PROGRAM:"stop_cd_animation"); + } + if (get_int(object_mode) == 1) { + run_program(PROGRAM:"stop_cd_animation"); + } + } +} + +program { + name, "set_cd_playing_state"; + action, STATE_SET "playing" 0.0; + transition, DECELERATE 1.0; + target, "player_cd_whole"; + after, "stop_glow_animation"; + after, "set_cd_animation_start"; + after, "set_cover_glow_animation_default"; +} + +program { + name, "set_cd_default_state"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.8; + target, "player_cd_whole"; +} + +program { + name, "set_cd_select_state"; + action, STATE_SET "select" 0.0; + transition, DECELERATE 0.8; + target, "player_cd_whole"; + target: "player_cover_front"; + after, "set_cover_glow_animation_in"; + after, "stop_cd_animation"; +} + +program { + name, "set_cd_unselect_state"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.8; + target, "player_cd_whole"; + after, "stop_glow_animation"; + after, "set_cover_glow_animation_default"; +} + +program +{ + name: "close_cd_case"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.8; + target: "player_cover_front"; +} + +program { + name, "set_cover_glow_animation_default"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.5; + target, "player_cover_glow"; +} + +program { + name, "set_cd_animation_start"; + action, STATE_SET "animation" 0.0; + transition, LINEAR 0.25; + target, "player_cd"; + after, "set_cd_animation_start"; +} + +program { + name, "set_cover_glow_animation_in"; + action, STATE_SET "in" 0.0; + transition, DECELERATE 0.8; + target, "player_cover_glow"; + after, "set_cover_glow_animation_out"; +} + +program { + name, "set_cover_glow_animation_out"; + action, STATE_SET "out" 0.0; + transition, DECELERATE 0.5; + target, "player_cover_glow"; + after, "set_cover_glow_animation_in"; +} + +program { + name, "set_cd_shadow_select_state"; + action, STATE_SET "active" 0.0; + transition, DECELERATE 0.3; + target: "player_cd_shadow"; +} + +program { + name, "set_cd_shadow_unselect_state"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.3; + target: "player_cd_shadow"; +} + +program { + name, "stop_glow_animation"; + action, ACTION_STOP; + target, "set_cover_glow_animation_in"; + target, "set_cover_glow_animation_out"; +} + +program { + name, "stop_cd_animation"; + action, ACTION_STOP; + target, "set_cd_animation_start"; +} + +program { + name: "equalizer_start"; + signal: "player,playing"; + source: "calaos"; + script { + if (get_int(eq_started) == 0) { + set_int(stop_anim, 0); + set_int(eq_started, 1); + randomize_line1(0); + randomize_line2(0); + randomize_line3(0); + randomize_line4(0); + randomize_line5(0); + randomize_line6(0); + randomize_line7(0); + randomize_line8(0); + } + } +} + +FALL_BACK_PROG("line1") +FALL_BACK_PROG("line2") +FALL_BACK_PROG("line3") +FALL_BACK_PROG("line4") +FALL_BACK_PROG("line5") +FALL_BACK_PROG("line6") +FALL_BACK_PROG("line7") +FALL_BACK_PROG("line8") + +program { + name: "equalizer_stop"; + script { + set_int(stop_anim, 1); + set_int(eq_started, 0); + } +} + +program { + name: "equalizer_restart"; + script { + if (get_int(playing_mode) == 1 && get_int(eq_started) == 0) + run_program(PROGRAM:"equalizer_start"); + } +} + +// Player hide signal program +program { + name, "hide_module"; + signal, "hide"; + source, "calaos"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.2; + target, "player_title_whole"; + target, "player_cover_whole"; + target, "player_buttons_row"; + target, "player_details_whole"; + target: "player_amp_clip"; + after, "stop_glow_animation"; + after, "stop_cd_animation"; + after, "send_end_signal"; + after, "equalizer_stop"; +} + +// Player end signals programs +program { + name, "send_end_signal"; + action: SIGNAL_EMIT "hidden" "player"; +} + +// Player hide program +program { + name, "uninit_module"; + signal, "hide"; + source, ""; + action, STATE_SET "default" 0.0; + target, "player_title_whole"; + target, "player_cover_whole"; + target, "player_buttons_row"; + target, "player_details_whole"; + target: "player_amp_clip"; + after, "stop_glow_animation"; + after, "stop_cd_animation"; +} + diff --git a/data/themes/default/structure/popup_actions_pages.edc b/data/themes/default/structure/popup_actions_pages.edc new file mode 100644 index 00000000..ffd7cb2f --- /dev/null +++ b/data/themes/default/structure/popup_actions_pages.edc @@ -0,0 +1,304 @@ +//Calaos Home Theme +//Copyright 2012 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/popup/page/base"; + + parts + { + //prevent the ctxpopup to close when clicking on it + part + { + name: "mouse"; + type: RECT; + mouse_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + + part + { + name: "button.back"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 7 7; } + rel2 { relative: 0.0 0.0; offset: 7+76 7+31; } + params + { + string: "style" "calaos/action_button/label/back"; + string: "label" "Actions"; + } + } + } + + part + { + name: "button.valid"; + type: EXTERNAL; + source: "elm/button"; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: -7-36 7; } + rel2 { relative: 1.0 0.0; offset: -7 7+31; } + params + { + string: "style" "calaos/action_button/green"; + string: "icon" "calaos/icons/action_button/popup/valid"; + } + } + } + + part + { + name: "sep"; + type: RECT; + description + { + state: "default" 0.0; + fixed: 1 1; + color: 255 255 255 28; + rel1 { relative: 0.0 1.0; offset: 10 -2+7; to_y: "button.back"; } + rel2 { relative: 1.0 1.0; offset: -10 -1+7; to_y: "button.back"; } + } + } + + part + { + name: "text"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 10 7; to_y: "sep"; } + rel2 { relative: 1.0 1.0; offset: -10 7+40; to_y: "sep"; } + text { text: "Blablabla
      Changer la valeur blabla"; style: "HTMLStyle"; min: 0 1; } + } + } + } +} + +group +{ + name: "calaos/popup/page/slider"; + inherit: "calaos/popup/page/base"; + + parts + { + alias: "slider" "slider_obj:slider"; + part + { + name: "slider_obj"; + type: GROUP; + source: "calaos/slider/horizontal/default"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 7 10; to_y: "text"; } + rel2 { relative: 1.0 1.0; offset: -7 10+28; to_y: "text"; } + } + } + } +} + +group +{ + name: "calaos/popup/page/number"; + inherit: "calaos/popup/page/base"; + + parts + { + part + { + name: "button_position_clip"; + type: RECT; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 10 17; to_y: "text"; } + rel2 { relative: 1.0 1.0; offset: -10 -1; } + } + } + + #define BUTTON_NUMPAD_POSITION(id, label, offset_x1, offset_y1, offset_x2, offset_y2) \ + part \ + { \ + name: "button.pad."id; \ + type: EXTERNAL; \ + source: "elm/button"; \ + clip_to: "button_position_clip"; \ + description \ + { \ + state: "default" 0.0; \ + params \ + { \ + string: "style" "calaos/button/position"; \ + string: "label" label; \ + } \ + rel1 { relative: 0.0 0.0; offset: offset_x1 offset_y1; to: "button_position_clip"; } \ + rel2 { relative: 0.0 0.0; offset: offset_x2 offset_y2; to: "button_position_clip"; } \ + } \ + } + + #ifdef BSPACER + #undef BSPACER + #endif + #define BSPACER 5 + BUTTON_NUMPAD_POSITION("6", "6", 0, 0, 38, 36) + BUTTON_NUMPAD_POSITION("7", "7", 38+BSPACER, 0, 38+BSPACER+38, 36) + BUTTON_NUMPAD_POSITION("8", "8", 38+BSPACER+38+BSPACER, 0, 38+BSPACER+38+BSPACER+38, 36) + BUTTON_NUMPAD_POSITION("9", "9", 38+BSPACER+38+BSPACER+38+BSPACER, 0, 38+BSPACER+38+BSPACER+38+BSPACER+38, 36) + + BUTTON_NUMPAD_POSITION("2", "2", 0, 36+BSPACER, 38, 36+BSPACER+36) + BUTTON_NUMPAD_POSITION("3", "3", 38+BSPACER, 36+BSPACER, 38+BSPACER+38, 36+BSPACER+36) + BUTTON_NUMPAD_POSITION("4", "4", 38+BSPACER+38+BSPACER, 36+BSPACER, 38+BSPACER+38+BSPACER+38, 36+BSPACER+36) + BUTTON_NUMPAD_POSITION("5", "5", 38+BSPACER+38+BSPACER+38+BSPACER, 36+BSPACER, 38+BSPACER+38+BSPACER+38+BSPACER+38, 36+BSPACER+36) + + BUTTON_NUMPAD_POSITION("0", "0", 0, 36+BSPACER+36+BSPACER, 38, 36+BSPACER+36+BSPACER+36) + BUTTON_NUMPAD_POSITION("1", "1", 38+BSPACER, 36+BSPACER+36+BSPACER, 38+BSPACER+38, 36+BSPACER+36+BSPACER+36) + BUTTON_NUMPAD_POSITION("dot", ".", 38+BSPACER+38+BSPACER, 36+BSPACER+36+BSPACER, 38+BSPACER+38+BSPACER+38, 36+BSPACER+36+BSPACER+36) + BUTTON_NUMPAD_POSITION("del", "DEL", 38+BSPACER+38+BSPACER+38+BSPACER, 36+BSPACER+36+BSPACER, 38+BSPACER+38+BSPACER+38+BSPACER+38, 36+BSPACER+36+BSPACER+36) + + part + { + name: "value"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: 5 7; to_y: "text"; to_x: "button.pad.9"; } + rel2 { relative: 1.0 1.0; offset: -5 -1; } + align: 0.5 0.5; + text { text: "0.5"; style: "PadStyle"; min: 0 1; } + } + } + } +} + +group +{ + name: "calaos/popup/page/time"; + inherit: "calaos/popup/page/base"; + + parts + { + part + { + name: "spinner.hours"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 10; to_y: "text"; } + rel2 { relative: 0.0 1.0; offset: 62 10+122; to_y: "text"; } + } + } + part + { + name: "spinner.minutes"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: 5 10; to_y: "text"; to_x: "spinner.hours"; } + rel2 { relative: 1.0 1.0; offset: 5+62 10+122; to_y: "text"; to_x: "spinner.hours"; } + } + } + part + { + name: "spinner.seconds"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: 5 10; to_y: "text"; to_x: "spinner.minutes"; } + rel2 { relative: 1.0 1.0; offset: 5+62 10+122; to_y: "text"; to_x: "spinner.minutes"; } + } + } + part + { + name: "spinner.miliseconds"; + type: SWALLOW; + description + { + state: "default" 0.0; + rel1 { relative: 1.0 1.0; offset: 5 10; to_y: "text"; to_x: "spinner.seconds"; } + rel2 { relative: 1.0 1.0; offset: 5+62 10+122; to_y: "text"; to_x: "spinner.seconds"; } + } + } + } +} + +group +{ + name: "calaos/popup/page/color"; + inherit: "calaos/popup/page/base"; + + parts + { + part + { + name: "slider.red"; + type: GROUP; + source: "calaos/slider/horizontal/red"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 7 10; to_y: "text"; } + rel2 { relative: 1.0 1.0; offset: -7 10+28; to_y: "text"; } + } + } + + part + { + name: "slider.green"; + type: GROUP; + source: "calaos/slider/horizontal/green"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 7 10; to_y: "slider.red"; } + rel2 { relative: 1.0 1.0; offset: -7 10+28; to_y: "slider.red"; } + } + } + + part + { + name: "slider.blue"; + type: GROUP; + source: "calaos/slider/horizontal/blue"; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 7 10; to_y: "slider.green"; } + rel2 { relative: 1.0 1.0; offset: -7 10+28; to_y: "slider.green"; } + } + } + + part + { + name: "color.preview"; + type: SWALLOW; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; offset: 7 10; to_y: "slider.blue"; } + rel2 { relative: 1.0 1.0; offset: -7 10+28; to_y: "slider.blue"; } + } + } + } +} diff --git a/data/themes/default/structure/room_macro.edc b/data/themes/default/structure/room_macro.edc new file mode 100644 index 00000000..3270f50c --- /dev/null +++ b/data/themes/default/structure/room_macro.edc @@ -0,0 +1,543 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#define ROOM(id, title) \ +part { \ + name: "room_"id; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; offset: 0 0;} \ + rel2 { relative: 1.0 1.0; offset: -1 -1;} \ + color: 255 255 255 255; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ +} \ + \ +part { \ + name: "room_"id"_wire"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "big_room_wire.png"; } \ + rel1 { relative: 0.5 0.716; offset: -163 -53;} \ + rel2 { relative: 0.5 0.716; offset: 162 52;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "big" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 20; \ + } \ +} \ + \ +part { \ + name: "room_"id"_shadow_big"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "big_room_shadow.png"; } \ + rel1 { relative: 0.5 0.65; offset: -163 -75;} \ + rel2 { relative: 0.5 0.65; offset: 162 74;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "big" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ + \ +part { \ + name: "room_"id"_shadow_medium"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "medium_room_shadow.png"; } \ + rel1 { relative: 0.5 0.68; offset: -110 -41;} \ + rel2 { relative: 0.5 0.68; offset: 109 40;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "medium" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ + \ +part { \ + name: "room_"id"_glow_big"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "big_room_glow.png"; } \ + rel1 { relative: 0.5 0.545; offset: -163 -95;} \ + rel2 { relative: 0.5 0.545; offset: 162 94;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + description { \ + state: "translucient" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 100; \ + } \ +} \ + \ +part { \ + name: "room_"id"_big"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: id"_big.png"; } \ + rel1 { relative: 0.5 0.55; offset: -163 -86;} \ + rel2 { relative: 0.5 0.55; offset: 162 85;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "big" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ + \ +part { \ + name: "room_"id"_neon_medium"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "medium_room_neon.png"; } \ + rel1 { relative: 0.5 0.515; offset: -128 -91;} \ + rel2 { relative: 0.5 0.515; offset: 127 90;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + description { \ + state: "translucient" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 100; \ + } \ +} \ + \ +part { \ + name: "room_"id"_medium"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + image { normal: id"_medium.png"; } \ + rel1 { relative: 0.5 0.57; offset: -110 -60;} \ + rel2 { relative: 0.5 0.57; offset: 109 59;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "medium" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ +\ +part { \ + name: "room_"id"_medium_bloom"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: id"_medium_bloom.png"; } \ + rel1 { relative: 0.5 0.57; offset: -120 -70;} \ + rel2 { relative: 0.5 0.57; offset: 119 69;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 150; \ + } \ +} \ +\ +part { \ + name: "room_"id"_touched_medium"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + image { normal: "medium_room_touched_001.png"; } \ + rel1 { relative: 0.495 0.588; offset: -128 -91;} \ + rel2 { relative: 0.495 0.588; offset: 127 90;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "animin" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + image { normal: "medium_room_touched_003.png"; \ + tween: "medium_room_touched_001.png"; \ + tween: "medium_room_touched_002.png"; \ + tween: "medium_room_touched_003.png"; \ + } \ + } \ + description { \ + state: "animout" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 100; \ + image { normal: "medium_room_touched_001.png"; \ + tween: "medium_room_touched_003.png"; \ + tween: "medium_room_touched_002.png"; \ + tween: "medium_room_touched_001.png"; \ + } \ + } \ +} \ + \ +part { \ + name: "room_"id"_glow_medium"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "medium_room_glow.png"; } \ + rel1 { relative: 0.5 0.57; offset: -110 -60;} \ + rel2 { relative: 0.5 0.57; offset: 109 59;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 150; \ + } \ + description { \ + state: "translucient" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 10; \ + } \ +} \ + \ +part { \ + name: "room_"id"_shadow_small"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: "small_room_shadow.png"; } \ + rel1 { relative: 0.5 0.66; offset: -67 -21;} \ + rel2 { relative: 0.5 0.66; offset: 66 20;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "small" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ + \ +part { \ + name: "room_"id"_small"; \ + clip_to: "room_"id; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: id"_small.png"; } \ + rel1 { relative: 0.5 0.59; offset: -56 -31;} \ + rel2 { relative: 0.5 0.59; offset: 54 30;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "small" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ + \ +part { \ + name: "room.title"; \ + clip_to: "room_"id; \ + type: TEXT; \ + effect: SOFT_OUTLINE; \ + description { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.505 0.20; offset: -163 -10;} \ + rel2 { relative: 0.505 0.20; offset: 162 9;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + color2: 255 255 255 0; \ + fixed: 1 1; \ + text { text: title; font: "CalaosContent"; size: 17; min: 1 1; } \ + } \ + description { \ + state, "big" 0.0; \ + inherit: "default" 0.0; \ + color: 231 231 231 255; \ + color2: 231 231 231 30; \ + } \ + description { \ + state, "medium" 0.0; \ + inherit: "default" 0.0; \ + rel1 { relative: 0.505 0.28; offset: -163 -10;} \ + rel2 { relative: 0.505 0.28; offset: 162 9;} \ + } \ + description { \ + state, "medium_on" 0.0; \ + inherit: "default" 0.0; \ + rel1 { relative: 0.505 0.28; offset: -163 -10;} \ + rel2 { relative: 0.505 0.28; offset: 162 9;} \ + color: 231 231 231 255; \ + color2: 231 231 231 30; \ + } \ + description { \ + state: "small" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 0; \ + color2: 0 0 0 0; \ + } \ +} \ + \ +part { \ + name: "room.title_small"; \ + clip_to: "room_"id; \ + type: TEXT; \ + description { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.505 0.38; offset: -163 -10;} \ + rel2 { relative: 0.505 0.38; offset: 162 9;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + text { text: title; font: "CalaosContent"; size: 11; min: 1 1; } \ + } \ + description { \ + state, "small" 0.0; \ + inherit: "default" 0.0; \ + rel1 { relative: 0.505 0.42; offset: -163 -10;} \ + rel2 { relative: 0.505 0.42; offset: 162 9;} \ + color: 231 231 231 255; \ + } \ +} \ + \ +part { \ + name: "room_"id"_row_warming"; \ + clip_to: "room_"id; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.47 0.9; offset: -233 -15;} \ + rel2 { relative: 0.47 0.9; offset: 162 14;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "big" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + description { \ + state: "medium" 0.0; \ + visible: 0; \ + rel1 { relative: 0.16 0.80 ; offset: -163 -15;} \ + rel2 { relative: 0.16 0.80 ; offset: 162 14;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "medium_on" 0.0; \ + inherit: "medium" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ + \ +part { \ + name: "chauffage.temp"; \ + clip_to: "room_"id"_row_warming"; \ + type: TEXTBLOCK; \ + description { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.5 0.5; offset: -150 -24;} \ + rel2 { relative: 0.5 0.5; offset: 100 8;} \ + rel1.to: "room_"id"_row_warming"; \ + rel2.to: "room_"id"_row_warming"; \ + text { text: "0.0 °C"; style: "RoomTempBig"; min: 1 1; } \ + } \ +} \ + \ +part { \ + name: "room_"id"_row_warming_small"; \ + clip_to: "room_"id; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.2 0.8; offset: -163 -40;} \ + rel2 { relative: 0.2 0.8; offset: 162 14;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "small" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ +} \ +part { \ + name: "chauffage.temp.small"; \ + clip_to: "room_"id"_row_warming_small"; \ + type: TEXT; \ + description { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.5 0.0; offset: -150 0;} \ + rel2 { relative: 0.5 0.5; offset: 90 -2;} \ + rel1.to: "room_"id"_row_warming_small"; \ + rel2.to: "room_"id"_row_warming_small"; \ + color: 231 231 231 255; \ + text { text: "0.0 °C"; font: "CalaosContent"; size: 12; min: 1 1; align: 1.0 0.5; } \ + } \ +} \ + \ +part { \ + name: "room_"id"_row_buttons_big"; \ + clip_to: "room_"id; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.5 0.933; offset: -57 -14;} \ + rel2 { relative: 0.5 0.933; offset: 56 13;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "big" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 0; \ + } \ +} \ + \ +part { \ + name: "room_"id"_row_buttons_normal"; \ + clip_to: "room_"id; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.85 0.765; offset: -17 -30;} \ + rel2 { relative: 0.85 0.765; offset: 16 29;} \ + rel1.to: "room_"id; \ + rel2.to: "room_"id; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "medium_on" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 0; \ + } \ +} \ + \ +part { \ + name: "room_"id"_selection_area"; \ + clip_to: "room_"id; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; offset: 0 0;} \ + rel2 { relative: 1.0 1.0; offset: -1 -1;} \ + color: 255 255 255 0; \ + } \ + description { \ + state: "inactive" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + description { \ + state: "big" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ +} diff --git a/data/themes/default/structure/room_prog_macro.edc b/data/themes/default/structure/room_prog_macro.edc new file mode 100644 index 00000000..cfe0223c --- /dev/null +++ b/data/themes/default/structure/room_prog_macro.edc @@ -0,0 +1,454 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#define ROOM_PROG(id) \ +program { \ + name, "select_"id; \ + signal, "select"; \ + source, "calaos"; \ + action, STATE_SET "inactive" 0.0; \ + target, "room_"id"_selection_area"; \ + after, "set_room_"id"_select"; \ +} \ + \ +program { \ + name, "set_room_"id"_select"; \ + script { \ + set_int(room_select, 1); \ + if (get_int(warming_mode) == 1) { \ + if (get_int(room_mode) == 1) { \ + } \ + if (get_int(room_mode) == 2) { \ + run_program(PROGRAM:"set_"id"_row_buttons_normal"); \ + run_program(PROGRAM:"set_"id"_bloom_medium_in"); \ + } \ + if (get_int(room_mode) == 3) { \ + run_program(PROGRAM:"set_"id"_warming_big"); \ + } \ + } \ + run_program(PROGRAM:"test_"id"_neon_animation"); \ + } \ +} \ + \ +program { \ + name, "set_"id"_bloom_medium_in"; \ + action, STATE_SET "active" 0.0; \ + transition, ACCELERATE 0.2; \ + target, "room_"id"_medium_bloom"; \ + after, "set_"id"_bloom_medium_out"; \ +} \ +\ +program { \ + name, "set_"id"_bloom_medium_out"; \ + action, STATE_SET "default" 0.0; \ + transition, DECELERATE 0.85; \ + target, "room_"id"_medium_bloom"; \ +} \ +\ +program { \ + name, id"_touched_animation_in"; \ + action, STATE_SET "animin" 0.0; \ + transition, ACCELERATE 0.4; \ + target, "room_"id"_touched_medium"; \ + after, id"_touched_animation_out"; \ +} \ + \ +program { \ + name, id"_touched_animation_out"; \ + action, STATE_SET "animout" 0.0; \ + transition, DECELERATE 0.8; \ + target, "room_"id"_touched_medium"; \ + after, id"_touched_animation_in"; \ +} \ + \ +program { \ + name, "test_"id"_neon_animation"; \ + script { \ + if (get_int(room_mode) == 2) { \ + run_program(PROGRAM:id"_glow_medium_animation_in"); \ + run_program(PROGRAM:id"_touched_animation_in"); \ + } \ + } \ +} \ + \ +program { \ + name, "set_room_"id"_unselect"; \ + script {set_int(room_select, 0);} \ +} \ +\ +program { \ + name, "set_room_"id"_unselect_stop"; \ + signal, "unselect"; \ + source, "calaos"; \ + action, ACTION_STOP; \ + target, id"_glow_medium_animation_in"; \ + target, id"_glow_medium_animation_out"; \ + target, id"_glow_animation_in"; \ + target, id"_glow_animation_out"; \ + target, id"_touched_animation_in"; \ + target, id"_touched_animation_out"; \ +} \ + \ +program { \ + name, "unselect_"id; \ + signal, "unselect"; \ + source, "calaos"; \ + action, STATE_SET "default" 0.0; \ + transition, LINEAR 0.25; \ + target, "room_"id"_selection_area"; \ + target, "room_"id"_glow_big"; \ + target, "room_"id"_neon_medium"; \ + target, "room_"id"_glow_medium"; \ + target, "room_"id"_row_buttons_normal"; \ + after, "set_room_"id"_unselect"; \ +} \ +\ +program { \ + name, "default_touched_"id; \ + signal, "unselect"; \ + source, "calaos"; \ + action, STATE_SET "default" 0.0; \ + transition, LINEAR 0.001; \ + target, "room_"id"_touched_medium"; \ +} \ + \ +program { \ + name, "set_"id"_in_small_mode"; \ + signal, "size,small"; \ + source, "calaos"; \ + script { \ + set_int(room_mode, 1); \ + run_program(PROGRAM:"reset_"id"_normal"); \ + run_program(PROGRAM:"reset_"id"_big"); \ + run_program(PROGRAM:"set_"id"_small"); \ + if (get_int(warming_mode) == 1) { \ + run_program(PROGRAM:"set_"id"_warming"); \ + } \ + } \ +} \ + \ +program { \ + name, "set_"id"_in_big_mode"; \ + in: 0.8 0.0; \ + signal, "size,big"; \ + source, "calaos"; \ + script { \ + set_int(room_mode, 3); \ + run_program(PROGRAM:"reset_"id"_normal"); \ + run_program(PROGRAM:"reset_"id"_small"); \ + run_program(PROGRAM:"set_"id"_big"); \ + if (get_int(warming_mode) == 1) { \ + run_program(PROGRAM:"set_"id"_warming"); \ + } \ + } \ +} \ + \ +program { \ + name, "set_"id"_in_medium_mode"; \ + signal, "size,normal"; \ + source, "calaos"; \ + script { \ + set_int(room_mode, 2); \ + run_program(PROGRAM:"reset_"id"_small"); \ + run_program(PROGRAM:"reset_"id"_big"); \ + run_program(PROGRAM:"set_"id"_medium_position"); \ + run_program(PROGRAM:"set_"id"_room_medium"); \ + run_program(PROGRAM:"set_"id"_label_medium"); \ + run_program(PROGRAM:"set_"id"_bg_medium"); \ + run_program(PROGRAM:"test_room_"id"_select_mode"); \ + if (get_int(warming_mode) == 1) { \ + run_program(PROGRAM:"set_"id"_warming"); \ + } \ + } \ +} \ + \ +program { \ + name, "set_"id"_warming"; \ + signal, "chauffage,show"; \ + source, "calaos"; \ + script { \ + if (get_int(room_mode) == 3) { \ + set_int(warming_mode, 1); \ + run_program(PROGRAM:"set_"id"_warming_big"); \ + } \ + if (get_int(room_mode) == 2) { \ + set_int(warming_mode, 1); \ + run_program(PROGRAM:"set_"id"_warming_normal"); \ + if (get_int(room_select) == 1) { \ + run_program(PROGRAM:"set_"id"_row_buttons_normal"); \ + } \ + } \ + if (get_int(room_mode) == 1) { \ + set_int(warming_mode, 1); \ + run_program(PROGRAM:"set_"id"_row_warming_small"); \ + } \ + } \ +} \ + \ +program { \ + name, "unset_"id"_warming_signal"; \ + signal, "chauffage,hide"; \ + source, "calaos"; \ + script { \ + set_int(warming_mode, 0); \ + run_program(PROGRAM:"unset_"id"_warming"); \ + } \ +} \ + \ +program { \ + name, "set_"id"_big"; \ + action, STATE_SET "big" 0.0; \ + transition, DECELERATE 1.8; \ + target, "room_"id"_big"; \ + target, "room.title"; \ + target, "room_"id"_selection_area"; \ + after, "set_"id"_bg_big"; \ + after, id"_glow_animation_in"; \ +} \ + \ +program { \ + name, "set_"id"_bg_big"; \ + action, STATE_SET "big" 0.0; \ + transition, DECELERATE 1.0; \ + target, "room_"id"_wire"; \ + target, "room_"id"_shadow_big"; \ +} \ + \ +program { \ + name, "set_"id"_warming_big"; \ + action, STATE_SET "big" 0.0; \ + transition, DECELERATE 0.3; \ + target, "room_"id"_row_warming"; \ + after, "set_"id"_warming_big_buttons"; \ +} \ + \ +program { \ + name, "set_"id"_warming_big_buttons"; \ + action, STATE_SET "big" 0.0; \ + transition, DECELERATE 0.3; \ + target, "room_"id"_row_buttons_big"; \ +} \ + \ +program { \ + name, id"_glow_animation_in"; \ + action, STATE_SET "active" 0.0; \ + transition, DECELERATE 2.5; \ + target, "room_"id"_glow_big"; \ + after, id"_glow_animation_out"; \ +} \ + \ +program { \ + name, id"_glow_animation_out"; \ + action, STATE_SET "translucient" 0.0; \ + transition, ACCELERATE 1.7; \ + target, "room_"id"_glow_big"; \ + after, id"_glow_animation_in"; \ +} \ + \ +program { \ + name, "set_"id"_big_touched"; \ + signal, "mouse,down,1"; \ + source, "room_"id"_big"; \ + action, STATE_SET "active" 0.0; \ + transition, ACCELERATE 0.00001; \ + target, "room_"id"_glow_big"; \ + after, "set_"id"_big_untouched"; \ +} \ + \ +program { \ + name, "set_"id"_big_untouched"; \ + action, STATE_SET "translucient" 0.0; \ + transition, DECELERATE 0.5; \ + target, "room_"id"_glow_big"; \ +} \ + \ +program { \ + name, "set_"id"_medium_position"; \ + action, STATE_SET "medium" 0.0; \ + target, "room_"id"_row_warming"; \ +} \ + \ +program { \ + name, "test_room_"id"_select_mode"; \ + script { \ + if (get_int(room_select) == 1) { \ + run_program(PROGRAM:id"_glow_medium_animation_in"); \ + } \ + } \ +} \ + \ +program { \ + name, "set_"id"_label_medium"; \ + action, STATE_SET "medium_on" 0.0; \ + transition, DECELERATE 0.5; \ + target, "room.title"; \ +} \ + \ +program { \ + name, "set_"id"_room_medium"; \ + action, STATE_SET "medium" 0.0; \ + transition, DECELERATE 0.5; \ + target, "room_"id"_medium"; \ +} \ + \ +program { \ + name, "set_"id"_bg_medium"; \ + action, STATE_SET "medium" 0.0; \ + transition, DECELERATE 0.3; \ + target, "room_"id"_shadow_medium"; \ +} \ + \ +program { \ + name, "set_"id"_warming_normal"; \ + action, STATE_SET "medium_on" 0.0; \ + transition, DECELERATE 0.3; \ + target, "room_"id"_row_warming"; \ +} \ + \ +program { \ + name, "set_"id"_row_buttons_normal"; \ + action, STATE_SET "medium_on" 0.0; \ + transition, DECELERATE 0.3; \ + target, "room_"id"_row_buttons_normal"; \ +} \ + \ +program { \ + name, id"_glow_medium_animation_in"; \ + action, STATE_SET "active" 0.0; \ + transition, DECELERATE 2.5; \ + target, "room_"id"_glow_medium"; \ + target, "room_"id"_neon_medium"; \ + after, id"_glow_medium_animation_out"; \ +} \ + \ +program { \ + name, id"_glow_medium_animation_out"; \ + action, STATE_SET "translucient" 0.0; \ + transition, ACCELERATE 1.7; \ + target, "room_"id"_glow_medium"; \ + target, "room_"id"_neon_medium"; \ + after, id"_glow_medium_animation_in"; \ +} \ + \ +program { \ + name, "set_"id"_small"; \ + action, STATE_SET "small" 0.0; \ + transition, DECELERATE 1.5; \ + target, "room.title_small"; \ + target, "room.title"; \ + target, "room_"id"_row_warming"; \ + target, "room_"id"_small"; \ + target, "room_"id"_shadow_small"; \ +} \ + \ +program { \ + name, "set_"id"_row_warming_small"; \ + action, STATE_SET "small" 0.0; \ + transition, DECELERATE 0.3; \ + target, "room_"id"_row_warming_small"; \ +} \ + \ +program { \ + name, "hide_"id; \ + signal, "hide"; \ + source, "calaos"; \ + action, STATE_SET "hide" 0.0; \ + transition, LINEAR 0.2; \ + target, "room_"id; \ + after, "send_hide_signal"; \ +} \ +program { \ + name, "send_hide_signal"; \ + action: SIGNAL_EMIT "hidden" "room"; \ +} \ + \ +program { \ + name, "uninit_"id; \ + signal, "hide"; \ + source, ""; \ + action, STATE_SET "default" 0.0; \ + target, "room_"id; \ + target, "room_"id"_big"; \ + target, "room_"id"_medium"; \ + target, "room_"id"_wire"; \ + target, "room_"id"_shadow_big"; \ + target, "room_"id"_shadow_medium"; \ + target, "room_"id"_glow_big"; \ + target, "room.title"; \ + target, "room_"id"_row_warming"; \ + target, "room_"id"_row_buttons_big"; \ + target, "room_"id"_row_buttons_normal"; \ + target, "room_"id"_glow_medium"; \ + target, "room_"id"_touched_medium"; \ + target, "room_"id"_neon_medium"; \ + target, "room.title_small"; \ + target, "room_"id"_row_warming_small"; \ + target, "room_"id"_small"; \ + target, "room_"id"_shadow_small"; \ +} \ + \ +program { \ + name, "reset_"id; \ + signal, "show"; \ + source, ""; \ + action, STATE_SET "default" 0.0; \ + target, "room_"id; \ + target, "room_"id"_big"; \ + target, "room_"id"_medium"; \ + target, "room_"id"_wire"; \ + target, "room_"id"_shadow_big"; \ + target, "room_"id"_shadow_medium"; \ + target, "room_"id"_glow_big"; \ + target, "room.title"; \ + target, "room_"id"_row_warming"; \ + target, "room_"id"_row_buttons_big"; \ + target, "room_"id"_row_buttons_normal"; \ + target, "room_"id"_glow_medium"; \ + target, "room_"id"_neon_medium"; \ + target, "room.title_small"; \ + target, "room_"id"_touched_medium"; \ + target, "room_"id"_row_warming_small"; \ + target, "room_"id"_small"; \ + target, "room_"id"_shadow_small"; \ +} \ +program { \ + name, "reset_"id"_small"; \ + action, STATE_SET "default" 0.0; \ + transition, DECELERATE 0.8; \ + target, "room.title_small"; \ + target, "room_"id"_row_warming_small"; \ + target, "room_"id"_small"; \ + target, "room_"id"_shadow_small"; \ +} \ +program { \ + name, "reset_"id"_normal"; \ + action, STATE_SET "default" 0.0; \ + transition, DECELERATE 1.8; \ + target, "room_"id"_medium"; \ + target, "room_"id"_shadow_medium"; \ + target, "room_"id"_row_warming"; \ + target, "room_"id"_row_buttons_normal"; \ + target, "room_"id"_glow_medium"; \ + target, "room_"id"_neon_medium"; \ +} \ +program { \ + name, "reset_"id"_big"; \ + action, STATE_SET "default" 0.0; \ + transition, DECELERATE 0.8; \ + target, "room_"id"_big"; \ + target, "room_"id"_wire"; \ + target, "room_"id"_shadow_big"; \ + target, "room_"id"_glow_big"; \ + target, "room_"id"_row_buttons_big"; \ +} \ + \ +program { \ + name, "unset_"id"_warming"; \ + action, STATE_SET "default" 0.0; \ + target, "room_"id"_row_warming"; \ + target, "room_"id"_row_buttons_big"; \ + target, "room_"id"_row_buttons_normal"; \ + target, "room_"id"_row_warming_small"; \ +} \ No newline at end of file diff --git a/data/themes/default/structure/rooms.edc b/data/themes/default/structure/rooms.edc new file mode 100644 index 00000000..addc66e1 --- /dev/null +++ b/data/themes/default/structure/rooms.edc @@ -0,0 +1,161 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#include "room_macro.edc" +#include "room_prog_macro.edc" + +group +{ + name: "calaos/room/lounge"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("lounge", "Salon") + } + programs + { + ROOM_PROG("lounge") + } +} + +group +{ + name: "calaos/room/bedroom"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("bedroom", "Chambre") + } + programs + { + ROOM_PROG("bedroom") + } +} + +group +{ + name: "calaos/room/kitchen"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("kitchen", "Cuisine") + } + programs + { + ROOM_PROG("kitchen") + } +} + +group +{ + name: "calaos/room/office"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("office", "Bureau") + } + programs + { + ROOM_PROG("office") + } +} + +group +{ + name: "calaos/room/diningroom"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("diningroom", "Salle à manger") + } + programs + { + ROOM_PROG("diningroom") + } +} + +group +{ + name: "calaos/room/cellar"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("cellar", "Cave") + } + programs + { + ROOM_PROG("cellar") + } +} + +group +{ + name: "calaos/room/various"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("various", "Divers") + } + programs + { + ROOM_PROG("various") + } +} + +group +{ + name: "calaos/room/garage"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("garage", "Garage") + } + programs + { + ROOM_PROG("garage") + } +} + +group +{ + name: "calaos/room/outside"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("outside", "Exterieur / Terrasse") + } + programs + { + ROOM_PROG("outside") + } +} + +group +{ + name: "calaos/room/bathroom"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("bathroom", "Salle de bain / Wc") + } + programs + { + ROOM_PROG("bathroom") + } +} + +group +{ + name: "calaos/room/corridor"; + script { public room_mode; public room_select; public warming_mode;} + parts + { + ROOM("corridor", "Couloir / Hall") + } + programs + { + ROOM_PROG("corridor") + } +} diff --git a/data/themes/default/structure/scrolling_text.edc b/data/themes/default/structure/scrolling_text.edc new file mode 100644 index 00000000..f3a29f4c --- /dev/null +++ b/data/themes/default/structure/scrolling_text.edc @@ -0,0 +1,449 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +group +{ + name: "calaos/text/scrolling/left"; + + parts + { + part + { + name: "label_clip"; + type: RECT; + description + { + state: "default" 0.0; + } + } + + part + { + name: "text"; + type: TEXT; + clip_to: "label_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + visible: 1; + color: 231 231 231 127; + fixed: 1 0; + align: 0.0 0.0; + text { text: "Titre de l'objet"; font: "CalaosContent"; size: 12; min: 1 1; align: 0.0 0.5; } + } + description + { + state: "default" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 127; + align: 1.0 0.0; + } + description + { + state: "selected_blue" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + } + description + { + state: "selected_blue" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + align: 1.0 0.0; + } + description + { + state: "selected_yellow" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 218 90 255; + } + description + { + state: "selected_yellow" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 255 218 90 255; + align: 1.0 0.0; + } + } + } + + programs + { + program + { + name: "on_show"; + signal: "show"; + after: "go_passive"; + } + + program + { + name: "go_active_blue"; + signal: "text,active,blue"; + source: "calaos"; + action: STATE_SET "selected_blue" 0.0; + transition: ACCELERATE 0.25; + target: "text"; + after: "text_slide_stop"; + after: "start_after_on_blue"; + } + program + { + name: "go_active_yellow"; + signal: "text,active,yellow"; + source: "calaos"; + action: STATE_SET "selected_yellow" 0.0; + transition: ACCELERATE 0.25; + target: "text"; + after: "text_slide_stop"; + after: "start_after_on_yellow"; + } + + program + { + name: "go_passive"; + signal: "text,inactive"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.18; + target: "text"; + after: "text_slide_stop"; + after: "start_after_off"; + } + + program + { + name: "text_slide_on_blue"; + in: 1.0 0.0; + action: STATE_SET "selected_blue" 1.0; + target: "text"; + transition: LINEAR 3.0; + after: "text_slide_on_blue2"; + } + + program + { + name: "text_slide_on_blue2"; + in: 1.0 0.0; + action: STATE_SET "selected_blue" 0.0; + target: "text"; + transition: ACCELERATE 0.5; + after: "text_slide_on_blue"; + } + + program + { + name: "text_slide_on_yellow"; + in: 1.0 0.0; + action: STATE_SET "selected_yellow" 1.0; + target: "text"; + transition: LINEAR 3.0; + after: "text_slide_on_yellow2"; + } + + program + { + name: "text_slide_on_yellow2"; + in: 1.0 0.0; + action: STATE_SET "selected_yellow" 0.0; + target: "text"; + transition: ACCELERATE 0.5; + after: "text_slide_on_yellow"; + } + + program + { + name: "text_slide_off"; + in: 1.0 0.0; + action: STATE_SET "default" 1.0; + target: "text"; + transition: LINEAR 3.0; + after: "text_slide_off2"; + } + + program + { + name: "text_slide_off2"; + in: 1.0 0.0; + action: STATE_SET "default" 0.0; + target: "text"; + transition: ACCELERATE 0.5; + after: "text_slide_off"; + } + program + { + name: "text_slide_stop"; + action: ACTION_STOP; + target: "text_slide_on_blue"; + target: "text_slide_on_blue2"; + target: "text_slide_on_yellow"; + target: "text_slide_on_yellow2"; + target: "text_slide_off"; + target: "text_slide_off2"; + } + + program + { + name: "start_after_on_blue"; + in: 0.2 0.0; + after: "text_slide_on_blue"; + } + + program + { + name: "start_after_on_yellow"; + in: 0.2 0.0; + after: "text_slide_on_yellow"; + } + + program + { + name: "start_after_off"; + in: 0.2 0.0; + after: "text_slide_off"; + } + } +} + +group +{ + name: "calaos/text/scrolling/right"; + + parts + { + part + { + name: "label_clip"; + type: RECT; + description + { + state: "default" 0.0; + } + } + + part + { + name: "text"; + type: TEXT; + clip_to: "label_clip"; + mouse_events: 0; + description + { + state: "default" 0.0; + visible: 1; + color: 231 231 231 127; + fixed: 1 0; + align: 0.0 0.0; + text { text: "Titre de l'objet"; font: "CalaosContent"; size: 12; min: 1 1; align: 1.0 0.5; } + } + description + { + state: "default" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 231 231 231 127; + align: 1.0 0.0; + } + description + { + state: "selected_blue" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + } + description + { + state: "selected_blue" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 58 180 215 255; + align: 1.0 0.0; + } + description + { + state: "selected_yellow" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 218 90 255; + } + description + { + state: "selected_yellow" 1.0; + inherit: "default" 0.0; + visible: 1; + color: 255 218 90 255; + align: 1.0 0.0; + } + } + } + + programs + { + program + { + name: "on_show"; + signal: "show"; + after: "go_passive"; + } + + program + { + name: "go_active_blue"; + signal: "text,active,blue"; + source: "calaos"; + action: STATE_SET "selected_blue" 0.0; + transition: ACCELERATE 0.25; + target: "text"; + after: "text_slide_stop"; + after: "start_after_on_blue"; + } + program + { + name: "go_active_yellow"; + signal: "text,active,yellow"; + source: "calaos"; + action: STATE_SET "selected_yellow" 0.0; + transition: ACCELERATE 0.25; + target: "text"; + after: "text_slide_stop"; + after: "start_after_on_yellow"; + } + + program + { + name: "go_passive"; + signal: "text,inactive"; + source: "calaos"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.18; + target: "text"; + after: "text_slide_stop"; + after: "start_after_off"; + } + + program + { + name: "text_slide_on_blue"; + in: 1.0 0.0; + action: STATE_SET "selected_blue" 1.0; + target: "text"; + transition: LINEAR 3.0; + after: "text_slide_on_blue2"; + } + + program + { + name: "text_slide_on_blue2"; + in: 1.0 0.0; + action: STATE_SET "selected_blue" 0.0; + target: "text"; + transition: ACCELERATE 0.5; + after: "text_slide_on_blue"; + } + + program + { + name: "text_slide_on_yellow"; + in: 1.0 0.0; + action: STATE_SET "selected_yellow" 1.0; + target: "text"; + transition: LINEAR 3.0; + after: "text_slide_on_yellow2"; + } + + program + { + name: "text_slide_on_yellow2"; + in: 1.0 0.0; + action: STATE_SET "selected_yellow" 0.0; + target: "text"; + transition: ACCELERATE 0.5; + after: "text_slide_on_yellow"; + } + + program + { + name: "text_slide_off"; + in: 1.0 0.0; + action: STATE_SET "default" 1.0; + target: "text"; + transition: LINEAR 3.0; + after: "text_slide_off2"; + } + + program + { + name: "text_slide_off2"; + in: 1.0 0.0; + action: STATE_SET "default" 0.0; + target: "text"; + transition: ACCELERATE 0.5; + after: "text_slide_off"; + } + program + { + name: "text_slide_stop"; + action: ACTION_STOP; + target: "text_slide_on_blue"; + target: "text_slide_on_blue2"; + target: "text_slide_on_yellow"; + target: "text_slide_on_yellow2"; + target: "text_slide_off"; + target: "text_slide_off2"; + } + + program + { + name: "start_after_on_blue"; + in: 0.2 0.0; + after: "text_slide_on_blue"; + } + + program + { + name: "start_after_on_yellow"; + in: 0.2 0.0; + after: "text_slide_on_yellow"; + } + + program + { + name: "start_after_off"; + in: 0.2 0.0; + after: "text_slide_off"; + } + } +} + +#define SCROLLING_TEXT_SIGNAL_REPEAT(text_part) \ + program \ + { \ + name: "sig_text_active_blue_"text_part; \ + signal: "text,active,blue"; \ + source: "calaos"; \ + action: SIGNAL_EMIT text_part":text,active,blue" "calaos"; \ + } \ + \ + program \ + { \ + name: "sig_text_active_yellow_"text_part; \ + signal: "text,active,yellow"; \ + source: "calaos"; \ + action: SIGNAL_EMIT text_part":text,active,yellow" "calaos"; \ + } \ + \ + program \ + { \ + name: "sig_text_inactive_"text_part; \ + signal: "text,inactive"; \ + source: "calaos"; \ + action: SIGNAL_EMIT text_part":text,inactive" "calaos"; \ + } diff --git a/data/themes/default/structure/slider.edc b/data/themes/default/structure/slider.edc new file mode 100644 index 00000000..b5a5104a --- /dev/null +++ b/data/themes/default/structure/slider.edc @@ -0,0 +1,14 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#include "slider_horizontal_macro.edc" +#include "slider_vertical_macro.edc" + +SLIDER_HORIZONTAL("default", 50, 180, 215, "slider.png", "slider_on.png", "slider_border.png") +SLIDER_HORIZONTAL("red", 215, 58, 58, "slider_red.png", "slider_red_on.png", "slider_border_red.png") +SLIDER_HORIZONTAL("green", 58, 215, 69, "slider_green.png", "slider_green_on.png", "slider_border_green.png") +SLIDER_HORIZONTAL("blue", 56, 66, 215, "slider_blue.png", "slider_blue_on.png", "slider_border_blue.png") + +VERTICAL_SLIDER("default", 50, 180, 215, "slider_vertical.png", "slider_vertical_on.png", "slider_border.png") \ No newline at end of file diff --git a/data/themes/default/structure/slider_horizontal_macro.edc b/data/themes/default/structure/slider_horizontal_macro.edc new file mode 100644 index 00000000..af0f7b98 --- /dev/null +++ b/data/themes/default/structure/slider_horizontal_macro.edc @@ -0,0 +1,443 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#define SLIDER_HORIZONTAL(slider_name, ref_r, ref_g, ref_b, slider_img, slider_on_img, slider_border_image) \ +group \ +{ \ + name: "calaos/slider/horizontal/"slider_name; \ + \ + parts \ + { \ + \ + part \ + { \ + name: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + } \ + \ + part \ + { \ + name: "slider_border_whole"; \ + clip_to: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.5; offset: 2 -2;} \ + rel2 { relative: 1.0 0.5; offset: -3 1;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider_main"; \ + color: 255 255 255 255; \ + } \ + } \ + \ + part \ + { \ + name: "slider_message_label"; \ + mouse_events: 0; \ + clip_to: "slider_main"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.5; offset: 2 -18;} \ + rel2 { relative: 1.0 0.5; offset: -40 -4;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider_main"; \ + color: 255 255 255 255; \ + } \ + } \ + \ + part \ + { \ + name: "slider_level_label"; \ + mouse_events: 0; \ + clip_to: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 1.0 0.5; offset: -30 -18;} \ + rel2 { relative: 1.0 0.5; offset: -4 -4;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider_main"; \ + color: 255 255 255 255; \ + } \ + } \ + \ + part \ + { \ + name: "slider_move_confine"; \ + clip_to: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.0 0.5; offset: 0 -14;} \ + rel2 { relative: 1.0 0.5; offset: -1 13;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider_main"; \ + color: 0 0 0 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider_border_decoration"; \ + clip_to: "slider_border_whole"; \ + type: IMAGE; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + image { normal: slider_border_image; border: 1 1 1 1;} \ + rel1.to: "slider_border_whole"; \ + rel2.to: "slider_border_whole"; \ + color: 255 255 255 80; \ + } \ + } \ + \ + part \ + { \ + name: "slider_level"; \ + clip_to: "slider_border_whole"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + color: ref_r ref_g ref_b 255; \ + rel1 { relative: 0.0 0.5; offset: 1 -1;} \ + rel2 { relative: 1.0 0.5; offset: -24 0;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider"; \ + } \ + description \ + { \ + state: "out" 0.0; \ + inherit: "default" 0.0; \ + color: ref_r ref_g ref_b 150; \ + } \ + description \ + { \ + state: "in" 0.0; \ + inherit: "default" 0.0; \ + color: ref_r ref_g ref_b 250; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider_slider_decoration"; \ + clip_to: "slider_main"; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + image { normal: slider_img;} \ + rel1 { relative: 0.5 0.5; offset: -16 -14;} \ + rel2 { relative: 0.5 0.5; offset: 15 13;} \ + rel1.to: "slider"; \ + rel2.to: "slider"; \ + color: 255 255 255 255; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider_slider_decoration_touched"; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: slider_on_img;} \ + rel1 { relative: 0.5 0.5; offset: -16 -14;} \ + rel2 { relative: 0.5 0.5; offset: 15 13;} \ + rel1.to: "slider"; \ + rel2.to: "slider"; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "touched" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 200; \ + } \ + description \ + { \ + state: "out" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 100; \ + } \ + description \ + { \ + state: "in" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 200; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider"; \ + clip_to: "slider_main"; \ + mouse_events: 1; \ + type: RECT; \ + dragable \ + { \ + confine: "slider_move_confine"; \ + x: 1 1 1; y: 0 0 0; \ + } \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + min: 34 28; max: 34 28; \ + rel2 { relative: 0.0 0.5; offset: -1 11;} \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "label.text"; \ + mouse_events: 0; \ + clip_to: "slider_message_label"; \ + type: TEXT; \ + description \ + { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; offset: 0 0;} \ + rel2 { relative: 1.0 1.0; offset: -1 -1;} \ + rel1.to: "slider_message_label"; \ + rel2.to: "slider_message_label"; \ + color: 231 231 231 100; \ + text { text: ""; font: "CalaosContent"; size: 10; min: 0 0; align: 0.0 0.0;} \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + color: 231 231 231 50; \ + } \ + } \ + \ + part \ + { \ + name: "label.value"; \ + mouse_events: 0; \ + clip_to: "slider_level_label"; \ + type: TEXT; \ + description \ + { \ + state, "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; offset: 0 0;} \ + rel2 { relative: 1.0 1.0; offset: -1 -1;} \ + rel1.to: "slider_level_label"; \ + rel2.to: "slider_level_label"; \ + color: 231 231 231 100; \ + text { text: ""; font: "CalaosContent"; size: 10; min: 0 0; align: 1.0 0.0;} \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + color: 231 231 231 50; \ + } \ + } \ + \ + } \ + \ + \ + programs \ + { \ + \ + program { \ + name: "slider_init"; \ + signal: "show"; \ + source: ""; \ + action: STATE_SET "active" 0.0; \ + transition: DECELERATE 0.2; \ + target: "slider_main"; \ + } \ + \ + program { \ + name: "slider_signal"; \ + signal: "drag,stop"; \ + source: "slider"; \ + action: SIGNAL_EMIT "slider,changed" "object"; \ + } \ + program { \ + name: "slider_signal_drag"; \ + signal: "drag"; \ + source: "slider"; \ + action: SIGNAL_EMIT "slider,move" "object"; \ + } \ + program { \ + name: "slider_signal_start"; \ + signal: "drag,start"; \ + source: "slider"; \ + action: SIGNAL_EMIT "slider,start" "object"; \ + } \ + \ + program { \ + name: "slider_slider_touched"; \ + signal: "mouse,down,1"; \ + source: "slider"; \ + action: STATE_SET "touched" 0.0; \ + transition: DECELERATE 0.2; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program { \ + name: "slider_slider_untouched"; \ + signal: "mouse,up,1"; \ + source: "slider"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 1.2; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program { \ + name: "slider_slider_animations_set_default"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 1.2; \ + target: "slider_level"; \ + } \ + \ + program { \ + name: "slider_level_animation_out"; \ + signal: "mouse,down,1"; \ + source: "slider"; \ + action: STATE_SET "out" 0.0; \ + transition: DECELERATE 0.5; \ + target: "slider_level"; \ + after: "slider_level_animation_in"; \ + } \ + \ + program { \ + name: "slider_level_animation_in"; \ + action: STATE_SET "in" 0.0; \ + transition: DECELERATE 1.0; \ + target: "slider_level"; \ + after: "slider_level_animation_out"; \ + } \ + \ + program { \ + name: "slider_slider_animation_out"; \ + signal: "mouse,down,1"; \ + source: "slider"; \ + action: STATE_SET "out" 0.0; \ + transition: DECELERATE 0.5; \ + target: "slider_slider_decoration_touched"; \ + after: "slider_slider_animation_in"; \ + } \ + \ + program { \ + name: "slider_slider_animation_in"; \ + action: STATE_SET "in" 0.0; \ + transition: DECELERATE 1.0; \ + target: "slider_slider_decoration_touched"; \ + after: "slider_slider_animation_out"; \ + } \ + \ + program { \ + name: "slider_level_stop_animation"; \ + signal: "mouse,up,1"; \ + source: "slider"; \ + action: ACTION_STOP; \ + target: "slider_level_animation_in"; \ + target: "slider_level_animation_out"; \ + target: "slider_slider_animation_in"; \ + target: "slider_slider_animation_out"; \ + after: "slider_slider_animations_set_default"; \ + } \ + \ + program { \ + name: "slider_desactivate_slider"; \ + signal: "slider,disable"; \ + source: "calaos"; \ + action: STATE_SET "desactivate" 0.0; \ + transition: ACCELERATE 0.2; \ + target: "slider"; \ + target: "label.value"; \ + target: "label.text"; \ + target: "slider_level"; \ + target: "slider_slider_decoration"; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program { \ + name: "slider_activate_slider"; \ + signal: "slider,enable"; \ + source: "calaos"; \ + action: STATE_SET "default" 0.0; \ + transition: ACCELERATE 0.2; \ + target: "slider"; \ + target: "label.value"; \ + target: "label.text"; \ + target: "slider_level"; \ + target: "slider_slider_decoration"; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program { \ + name: "slider_uninit"; \ + signal: "hide"; \ + source: ""; \ + action: STATE_SET "default" 0.0; \ + target: "slider_main"; \ + } \ + \ + } \ +} diff --git a/data/themes/default/structure/slider_vertical_macro.edc b/data/themes/default/structure/slider_vertical_macro.edc new file mode 100644 index 00000000..d69ac778 --- /dev/null +++ b/data/themes/default/structure/slider_vertical_macro.edc @@ -0,0 +1,363 @@ +// Calaos Home vert slider macro file +// HECKY Raoul +// BOEHLER Frederic +// 08/08/2007 + +// Slider object +#define VERTICAL_SLIDER(slider_name, ref_r, ref_g, ref_b, slider_img, slider_on_img, slider_border_image) \ +group \ +{ \ + name: "calaos/slider/vertical/"slider_name; \ + \ + parts \ + { \ + part \ + { \ + name: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "active" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + } \ + \ + part \ + { \ + name: "slider_border_whole"; \ + clip_to: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.5 0.0; offset: -2 2;} \ + rel2 { relative: 0.5 1.0; offset: 1 -2;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider_main"; \ + color: 255 255 255 255; \ + } \ + } \ + \ + part \ + { \ + name: "slider_move_confine"; \ + clip_to: "slider_main"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.5 0.0; offset: -14 -1;} \ + rel2 { relative: 0.5 1.0; offset: 13 2;} \ + rel1.to: "slider_main"; \ + rel2.to: "slider_main"; \ + color: 0 0 0 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider_border_decoration"; \ + clip_to: "slider_border_whole"; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + image { normal: slider_border_image; border: 1 1 1 1;} \ + rel1.to: "slider_border_whole"; \ + rel2.to: "slider_border_whole"; \ + color: 255 255 255 80; \ + } \ + } \ + \ + part \ + { \ + name: "slider_level"; \ + clip_to: "slider_border_whole"; \ + type: RECT; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + color: ref_r ref_g ref_b 255; \ + rel1 { relative: 0.5 0.0; offset: -1 24;} \ + rel2 { relative: 0.5 1.0; offset: 0 -3;} \ + rel1.to: "slider"; \ + rel2.to: "slider_main"; \ + } \ + description \ + { \ + state: "out" 0.0; \ + inherit: "default" 0.0; \ + color: ref_r ref_g ref_b 150; \ + } \ + description \ + { \ + state: "in" 0.0; \ + inherit: "default" 0.0; \ + color: ref_r ref_g ref_b 250; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider_slider_decoration"; \ + clip_to: "slider_main"; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + image { normal: slider_img;} \ + rel1 { relative: 0.5 0.5; offset: -14 -16;} \ + rel2 { relative: 0.5 0.5; offset: 13 15;} \ + rel1.to: "slider"; \ + rel2.to: "slider"; \ + color: 255 255 255 255; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider_slider_decoration_touched"; \ + mouse_events: 0; \ + description \ + { \ + state: "default" 0.0; \ + visible: 0; \ + image { normal: slider_on_img;} \ + rel1 { relative: 0.5 0.5; offset: -14 -15;} \ + rel2 { relative: 0.5 0.5; offset: 13 15;} \ + rel1.to: "slider"; \ + rel2.to: "slider"; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "touched" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 200; \ + } \ + description \ + { \ + state: "out" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 100; \ + } \ + description \ + { \ + state: "in" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 200; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + \ + part \ + { \ + name: "slider"; \ + clip_to: "slider_main"; \ + mouse_events: 1; \ + type: RECT; \ + dragable \ + { \ + confine: "slider_move_confine"; \ + x: 0 0 0; y: 1 1 1; \ + } \ + description \ + { \ + state: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + min: 28 34; max: 28 34; \ + color: 255 255 255 0; \ + } \ + description \ + { \ + state: "desactivate" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + } \ + \ + programs \ + { \ + program \ + { \ + name: "slider_init"; \ + signal: "show"; \ + source: ""; \ + action: STATE_SET "active" 0.0; \ + transition: DECELERATE 0.2; \ + target: "slider_main"; \ + } \ + \ + program \ + { \ + name: "slider_signal"; \ + signal: "drag,stop"; \ + source: "slider"; \ + action: SIGNAL_EMIT "slider,changed" "object"; \ + } \ + program \ + { \ + name: "slider_signal_drag"; \ + signal: "drag"; \ + source: "slider"; \ + action: SIGNAL_EMIT "slider,move" "object"; \ + } \ + program \ + { \ + name: "slider_signal_start"; \ + signal: "drag,start"; \ + source: "slider"; \ + action: SIGNAL_EMIT "slider,start" "object"; \ + } \ + \ + program \ + { \ + name: "slider_slider_touched"; \ + signal: "mouse,down,1"; \ + source: "slider"; \ + action: STATE_SET "touched" 0.0; \ + transition: DECELERATE 0.2; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program \ + { \ + name: "slider_slider_untouched"; \ + signal: "mouse,up,1"; \ + source: "slider"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 1.2; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program \ + { \ + name: "slider_slider_animations_set_default"; \ + action: STATE_SET "default" 0.0; \ + transition: DECELERATE 1.2; \ + target: "slider_level"; \ + } \ + \ + program \ + { \ + name: "slider_level_animation_out"; \ + signal: "mouse,down,1"; \ + source: "slider"; \ + action: STATE_SET "out" 0.0; \ + transition: DECELERATE 0.5; \ + target: "slider_level"; \ + after: "slider_level_animation_in"; \ + } \ + \ + program \ + { \ + name: "slider_level_animation_in"; \ + action: STATE_SET "in" 0.0; \ + transition: DECELERATE 1.0; \ + target: "slider_level"; \ + after: "slider_level_animation_out"; \ + } \ + \ + program \ + { \ + name: "slider_slider_animation_out"; \ + signal: "mouse,down,1"; \ + source: "slider"; \ + action: STATE_SET "out" 0.0; \ + transition: DECELERATE 0.5; \ + target: "slider_slider_decoration_touched"; \ + after: "slider_slider_animation_in"; \ + } \ + \ + program \ + { \ + name: "slider_slider_animation_in"; \ + action: STATE_SET "in" 0.0; \ + transition: DECELERATE 1.0; \ + target: "slider_slider_decoration_touched"; \ + after: "slider_slider_animation_out"; \ + } \ + \ + program \ + { \ + name: "slider_level_stop_animation"; \ + signal: "mouse,up,1"; \ + source: "slider"; \ + action: ACTION_STOP; \ + target: "slider_level_animation_in"; \ + target: "slider_level_animation_out"; \ + target: "slider_slider_animation_in"; \ + target: "slider_slider_animation_out"; \ + after: "slider_slider_animations_set_default"; \ + } \ + \ + program \ + { \ + name: "slider_desactivate_slider"; \ + signal: "slider,disable"; \ + source: "calaos"; \ + action: STATE_SET "desactivate" 0.0; \ + transition: ACCELERATE 0.2; \ + target: "slider"; \ + target: "slider_level"; \ + target: "slider_slider_decoration"; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program \ + { \ + name: "slider_activate_slider"; \ + signal: "slider,enable"; \ + source: "calaos"; \ + action: STATE_SET "default" 0.0; \ + transition: ACCELERATE 0.2; \ + target: "slider"; \ + target: "slider_level"; \ + target: "slider_slider_decoration"; \ + target: "slider_slider_decoration_touched"; \ + } \ + \ + program \ + { \ + name: "slider_uninit"; \ + signal: "hide"; \ + source: ""; \ + action: STATE_SET "default" 0.0; \ + target: "slider_main"; \ + } \ + } \ +} diff --git a/data/themes/default/structure/styles.edc b/data/themes/default/structure/styles.edc new file mode 100644 index 00000000..4fbdf893 --- /dev/null +++ b/data/themes/default/structure/styles.edc @@ -0,0 +1,189 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +styles +{ + style + { + name: "ElementLabel"; + base: "font=CalaosContent font_size=14"; + tag: "left" "+ align=left"; + tag: "right" "+ align=right"; + } + + style + { + name: "RoomTempBig"; + base: "font=CalaosContent font_size=17 color=#FFC96B valign=0.5 align=right"; + tag: "consigne" "+ font_size=13 color=#E7E7E7 valign=0.65"; + } + + style + { + name: "ElementTempValueLeft"; + base: "font=CalaosContent font_size=12 color=#FFC96B valign=0.5 align=right"; + tag: "consigne" "+ font_size=11 color=#E7E7E7 valign=0.65"; + } + + style + { + name: "ElementTempValueRight"; + base: "font=CalaosContent font_size=12 color=#FFC96B valign=0.5"; + tag: "consigne" "+ font_size=11 color=#E7E7E7 valign=0.65"; + } + + style + { + name: "TabWidgetTitle"; + base: "font=CalaosContent font_size=16 align=left color=#FFFF wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "light_blue" "+ color=#70b5fb"; + tag: "small" "+ font_size=10 color=#E7E7E7"; + } + + style + { + name: "GenlistSimpleHeader"; + base: "font=CalaosContent font_size=16 align=left color=#FFFF wrap=word valign=bottom"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "light_blue" "+ color=#70b5fb"; + tag: "small" "+ font_size=10 color=#E7E7E7"; + } + + style + { + name: "StandardText"; + base: "font=CalaosContent font_size=12 align=left color=#FFFF wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "light_blue" "+ color=#70b5fb"; + tag: "blue" "+ color=#3ab4d7"; + tag: "small" "+ font_size=10 color=#E7E7E7"; + tag: "center" "+ align=center"; + } + + style + { + name: "GenlistText"; + base: "font=CalaosContent font_size=12 align=left color=#e7e7e77f wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "light_blue" "+ color=#70b5fb"; + tag: "blue" "+ color=#3ab4d7"; + tag: "small" "+ font_size=10 color=#E7E7E7"; + tag: "center" "+ align=center"; + } + + style + { + name: "KeyboardSubtitle"; + base: "font=CalaosContent font_size=16 align=center valign=center color=#E7E7E77F wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "light_blue" "+ color=#70b5fb7F"; + tag: "small" "+ font_size=10 color=#E7E7E77F"; + } + + style + { + name: "KeyboardText"; + base: "font=CalaosContentBold font_size=18 align=left valign=center color=#E7E7E7FF wrap=word style=soft_outline outline_color=#E7E7E77F"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + } + + style + { + name: "WidgetDescription"; + base: "font=CalaosContent font_size=13 align=left color=#70b5fb wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "small" "+ font_size=10"; + tag: "left" "+ align=left"; + tag: "right" "+ align=right"; + tag: "center" "+ align=center"; + } + + style + { + name: "TabDescription"; + base: "font=CalaosContent font_size=13 align=right color=#3ab4d7 wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + } + + style + { + name: "HTMLStyle"; + base: "font=CalaosContent font_size=12 align=left valign=center color=#E7E7E7FF wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "html" ""; + tag: "head" ""; + tag: "body" ""; + tag: "p" "+ \n \n"; + tag: "div" "+ \n \n"; + tag: "b" "+ font=CalaosContentBold font_size=14"; + tag: "i" "+ font=CalaosContentOblique"; + tag: "script" "+ color=#E7E7E700"; + tag: "small" "+ font_size=10"; + tag: "big" "+ font_size=16"; + tag: "huge" "+ font_size=20"; + tag: "hilight" "+ color=#3ab4d7"; + tag: "light_blue" "+ color=#70b5fb7F"; + tag: "disabled" "+ color=#E7E7E766"; + } + + style + { + name: "PadStyle"; + base: "font=CalaosContentBold font_size=20 align=center valign=center color=#E7E7E7FF wrap=word"; + } + + style + { + name: "TimerSpinnerStyle"; + base: "font=CalaosContent font_size=20 align=center valign=center color=#E7E7E7FF wrap=word"; + tag: "br" "+ \n"; + tag: "subtitle" "+ font_size=16 color=#70b5fb7F"; + } + + style + { + name: "KeyboardStyle"; + base: "font=CalaosContentBold font_size=18 align=left valign=center color=#E7E7E7FF outline_color=#E7E7E70A wrap=word style=outline text_class=entry left_margin=5 right_margin=5"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "html" ""; + tag: "head" ""; + tag: "body" ""; + tag: "p" "+ \n \n"; + tag: "div" "+ \n \n"; + tag: "b" "+ font=CalaosContentBold font_size=14"; + tag: "i" "+ font=CalaosContentOblique"; + tag: "em" "+ font=CalaosContentOblique"; + tag: "script" "+ color=#E7E7E700"; + tag: "small" "+ font_size=10"; + tag: "link" "+ color=#800 underline=on underline_color=#8008"; + tag: "hilight" "+ font_weight=Bold"; + tag: "preedit" "+ underline=on underline_color=#FFF"; + tag: "preedit_sel" "+ backing=on backing_color=#FFF color=#000"; + } + + style + { + name: "download_manager_style"; + base: "font=CalaosContent font_size=12 align=left color=#FFFF style=soft_shadow shadow_color=#00000020 wrap=word"; + tag: "br" "+ \n"; + tag: "ps" "+ \n"; + tag: "title" "+ font_size=16 font=CalaosContentBold style=soft_shadow color=#fff shadow_color=#00000020"; + tag: "center" "+ align=center"; + tag: "bold" "+ font=CalaosContentBold"; + tag: "italic" "+ font=CalaosContent"; + tag: "small" "+ font_size=10"; + } +} diff --git a/data/themes/default/structure/utils.edc b/data/themes/default/structure/utils.edc new file mode 100644 index 00000000..d125c671 --- /dev/null +++ b/data/themes/default/structure/utils.edc @@ -0,0 +1,77 @@ +//Calaos Home Theme +//Copyright 2011 Calaos +//All graphics are copyrighted materials. +//You can't modify/distribute/sell it for any purpose. + +#define ELM_BUTTON(_name, _label, _icon) \ +group \ +{ \ + name: _name; \ + parts \ + { \ + part \ + { \ + name: _name; \ + type: EXTERNAL; \ + source: "elm/button"; \ + description \ + { \ + state: "default" 0.0; \ + fixed: 1 0; \ + params \ + { \ + string: "label" _label; \ + string: "icon" _icon; \ + string: "style" "calaos/activity/footer"; \ + } \ + } \ + } \ + } \ +} + +#define ELM_BUTTON_STYLE(_name, _label, _style) \ +group \ +{ \ + name: _name; \ + parts \ + { \ + part \ + { \ + name: _name; \ + type: EXTERNAL; \ + source: "elm/button"; \ + description \ + { \ + state: "default" 0.0; \ + fixed: 1 0; \ + params \ + { \ + string: "label" _label; \ + string: "style" _style; \ + } \ + } \ + } \ + } \ +} + + +//Sizer group for boxes +group +{ + name: "sizer"; + + parts + { + part + { + name: "rect"; + type: RECT; + description + { + state: "default" 0.0; + visible: 1; + color: 213 45 222 180; + } + } + } +} \ No newline at end of file diff --git a/depcomp b/depcomp new file mode 100755 index 00000000..bd0ac089 --- /dev/null +++ b/depcomp @@ -0,0 +1,688 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2011-12-04.11; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/install-sh b/install-sh new file mode 100755 index 00000000..a9244eb0 --- /dev/null +++ b/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-01-19.21; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for `test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/ltmain.sh b/ltmain.sh new file mode 100644 index 00000000..c2852d85 --- /dev/null +++ b/ltmain.sh @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1ubuntu1" +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 00000000..828104cf --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8001 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_REPLACE_SHELLFNS + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 00000000..5d9acd8e --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,384 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 00000000..9000a057 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,123 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 00000000..07a8602d --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 00000000..c573da90 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,98 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/missing b/missing new file mode 100755 index 00000000..86a8fc31 --- /dev/null +++ b/missing @@ -0,0 +1,331 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2012-01-06.13; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 00000000..368a1629 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = lib bin + +MAINTAINERCLEANFILES = Makefile.in diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 00000000..af5c7a9e --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,584 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = lib bin +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am new file mode 100644 index 00000000..73188a9d --- /dev/null +++ b/src/bin/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = calaos_server calaos_home + +MAINTAINERCLEANFILES = Makefile.in diff --git a/src/bin/Makefile.in b/src/bin/Makefile.in new file mode 100644 index 00000000..ccf9a14b --- /dev/null +++ b/src/bin/Makefile.in @@ -0,0 +1,584 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/bin +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = calaos_server calaos_home +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bin/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/bin/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/bin/calaos_home/ApplicationMain.cpp b/src/bin/calaos_home/ApplicationMain.cpp new file mode 100644 index 00000000..2f442290 --- /dev/null +++ b/src/bin/calaos_home/ApplicationMain.cpp @@ -0,0 +1,160 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ApplicationMain.h" + +#include +#include +#include "config.h" + +string ApplicationMain::theme = THEME_DIR"/default.edj"; + +static void _window_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + ApplicationMain *app = reinterpret_cast(data); + if (app) + app->Resize(); +} + +ApplicationMain::ApplicationMain(int argc, char **argv) +{ + Utils::logger("root") << Priority::INFO << "Calaos Home, starting..." << log4cpp::eol; + + if (system("killall -9 eskiss") == -1) + Utils::logger("root") << Priority::CRIT << "Error forking !" << log4cpp::eol; + + //init random generator + srand(time(NULL)); + + //Init SSL and CURL + SSL_load_error_strings(); + SSL_library_init(); + curl_global_init(CURL_GLOBAL_ALL); + + //Init efl core + if (!eina_init()) + throw (runtime_error("Unable to init Eina")); + if (!ecore_init()) + throw (runtime_error("Unable to init Ecore")); + if (!ecore_con_init()) + throw (runtime_error("Unable to init Ecore-Con")); + if (!ecore_con_url_init()) + throw (runtime_error("Unable to init Ecore-Con-Url")); + if (!evas_init()) + throw (runtime_error("Unable to init Evas")); + if (!ecore_evas_init()) + throw (runtime_error("Unable to init Ecore-Evas")); + if (!edje_init()) + throw (runtime_error("Unable to init Edje")); + + edje_frametime_set(1.0 / 60.0); + edje_scale_set(1.0); + + if (!elm_init(argc, argv)) + throw (runtime_error("Unable to init Elementary")); + + //Load Calaos specific ELM extensions + elm_theme_extension_add(NULL, ApplicationMain::getTheme()); + + //Create the main window + window = elm_win_add(NULL, "calaos-home", ELM_WIN_BASIC); + elm_win_title_set(window, "Calaos Home"); + elm_win_borderless_set(window, true); + + //Automatically quit main loop when the window is closed + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + elm_win_autodel_set(window, true); + + // Change default finger size, elementary should not resize elements. + // It made the calaos theme looks wrong. + //elm_finger_size_set(10); + + evas_object_event_callback_add(window, EVAS_CALLBACK_RESIZE, _window_resize_cb, this); + evas = evas_object_evas_get(window); + + Evas_Object *bg = elm_bg_add(window); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(window, bg); + evas_object_show(bg); + evas_object_size_hint_min_set(bg, 200, 200); + elm_bg_color_set(bg, 0, 0, 0); + + layout = elm_layout_add(window); + if (!elm_layout_file_set(layout, ApplicationMain::getTheme(), EDJE_GROUP_MAIN_LAYOUT)) + { + string e = "Unable to find group \""; + e += EDJE_GROUP_MAIN_LAYOUT; + e += "\" in theme \""; + e += ApplicationMain::getTheme(); + e += "\""; + throw (runtime_error(e)); + } + + evas_object_size_hint_weight_set(layout, 1.0, 1.0); + evas_object_show(layout); + + evas_object_resize(window, 1024, 768); + evas_object_show(window); + + Resize(); + + try + { + controller = new ApplicationController(evas, layout); + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "Can't create ApplicationController" << log4cpp::eol; + throw; + } +} + +ApplicationMain::~ApplicationMain() +{ + DELETE_NULL(controller) + + elm_shutdown(); + edje_shutdown(); + ecore_evas_shutdown(); + evas_shutdown(); + ecore_con_url_shutdown(); + ecore_con_shutdown(); + ecore_shutdown(); + eina_shutdown(); +} + +void ApplicationMain::Run() +{ + elm_run(); +} + +void ApplicationMain::Stop() +{ + elm_exit(); +} + +void ApplicationMain::Resize() +{ + Evas_Coord w, h; + + evas_object_geometry_get(window, NULL, NULL, &w, &h); + evas_object_resize(layout, w, h); + evas_object_move(layout, 0, 0); +} diff --git a/src/bin/calaos_home/ApplicationMain.h b/src/bin/calaos_home/ApplicationMain.h new file mode 100644 index 00000000..72773d91 --- /dev/null +++ b/src/bin/calaos_home/ApplicationMain.h @@ -0,0 +1,101 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef APPLICATIONMAIN_H +#define APPLICATIONMAIN_H + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "ApplicationController.h" + +#include "ScenarioModel.h" + +using namespace Utils; + +#define EDJE_GROUP_MAIN_LAYOUT "calaos/main/layout" + +class ApplicationMain +{ + private: + + //The main canvas + Evas *evas; + + //The main window object + Evas_Object *window; + + //The elementary layout, it contains the app + Evas_Object *layout; + + //The main application controller + ApplicationController *controller; + + static string theme; + + ApplicationMain(int argc, char **argv); + public: + static ApplicationMain &Instance(int argc = 0, char **argv = NULL) + { + static ApplicationMain appmain(argc, argv); + return appmain; + } + ~ApplicationMain(); + + void Run(); + void Stop(); + + void Resize(); + + static const char *getTheme() + { + return theme.c_str(); + } + + //type is 0 for UTF-8 text, 1 is for keeping evas textblock markup instead + void ShowKeyboard(string subtitle, ActivityKeyboardCb callback, bool multiline, string oldtext = "", int type = 0) + { + if (controller) controller->ShowKeyboard(subtitle, callback, multiline, oldtext, type); + } + + void ShowWebBrowser(string url = "") + { + if (controller) controller->ShowWebBrowser(url); + } + + void ShowScenarioEditor(Scenario *scenario = NULL) + { + if (controller) controller->ShowScenarioEditor(scenario); + } + + void ShowScenarioSchedule(Scenario *scenario) + { + if (controller) controller->ShowScenarioSchedule(scenario); + } +}; + +#endif // APPLICATIONMAIN_H diff --git a/src/bin/calaos_home/CalaosConnection.cpp b/src/bin/calaos_home/CalaosConnection.cpp new file mode 100644 index 00000000..ddaef75f --- /dev/null +++ b/src/bin/calaos_home/CalaosConnection.cpp @@ -0,0 +1,271 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "CalaosConnection.h" + +static Eina_Bool _ecore_con_handler_add(void *data, int type, Ecore_Con_Event_Server_Add *ev) +{ + CalaosConnection *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->addConnection(ev->server); + else + Utils::logger("network.connection") << Priority::CRIT + << "CalaosConnection(): _con_server_add, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _ecore_con_handler_del(void *data, int type, Ecore_Con_Event_Server_Del *ev) +{ + CalaosConnection *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->delConnection(ev->server); + else + Utils::logger("network.connection") << Priority::CRIT + << "CalaosConnection(): _con_server_del, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _ecore_con_handler_data_get(void *data, int type, Ecore_Con_Event_Server_Data *ev) +{ + CalaosConnection *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->dataGet(ev->server, ev->data, ev->size); + else + Utils::logger("network.connection") << Priority::CRIT + << "CalaosConnection(): _con_server_data, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +CalaosConnection::CalaosConnection(string h, bool no_listenner): + econ(NULL), + con_state(CALAOS_CON_NONE), + host(h), + timeout(NULL), + sendInProgress(false), + listener(NULL) +{ + event_handler_data_get = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_ecore_con_handler_data_get, this); + event_handler_add = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_ecore_con_handler_add, this); + event_handler_del = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, (Ecore_Event_Handler_Cb)_ecore_con_handler_del, this); + + econ = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, + host.c_str(), + TCP_LISTEN_PORT, + this); + ecore_con_server_data_set(econ, this); + + timeout = new EcoreTimer(TIMEOUT_CONNECT, (sigc::slot)sigc::mem_fun(*this, &CalaosConnection::TimeoutTick)); + + if (!no_listenner) + listener = new CalaosListener(host); +} + +CalaosConnection::~CalaosConnection() +{ + DELETE_NULL_FUNC(ecore_event_handler_del, event_handler_data_get); + DELETE_NULL_FUNC(ecore_event_handler_del, event_handler_add); + DELETE_NULL_FUNC(ecore_event_handler_del, event_handler_del); + + DELETE_NULL(listener); + DELETE_NULL(timeout); + DELETE_NULL_FUNC(ecore_con_server_del, econ); +} + +void CalaosConnection::addConnection(Ecore_Con_Server *server) +{ + if (server != econ) return; + + if (con_state == CALAOS_CON_NONE) + { + con_state = CALAOS_CON_LOGIN; + + string cmd = "login "; + + //Get username/password + string username = Utils::get_config_option("calaos_user"); + string password = Utils::get_config_option("calaos_password"); + + if (Utils::get_config_option("cn_user") != "" && + Utils::get_config_option("cn_pass") != "") + { + username = Utils::get_config_option("cn_user"); + password = Utils::get_config_option("cn_pass"); + } + + cmd += Utils::url_encode(username) + " "; + cmd += Utils::url_encode(password); + cmd += "\r\n"; + + Utils::logger("network.connection") << Priority::DEBUG << "CalaosConnection: trying to log in." << log4cpp::eol; + + ecore_con_server_send(econ, cmd.c_str(), cmd.length()); + } +} + +void CalaosConnection::delConnection(Ecore_Con_Server *server) +{ + if (server != econ) return; + + if (con_state == CALAOS_CON_LOGIN) + { + error_login.emit(); + + Utils::logger("network.connection") << Priority::CRIT << "CalaosConnection: Login failed !" << log4cpp::eol; + + return; + } + + lost_connection.emit(); + + Utils::logger("network.connection") << Priority::CRIT << "CalaosConnection: Connection closed !" << log4cpp::eol; +} + +void CalaosConnection::dataGet(Ecore_Con_Server *server, void *data, int size) +{ + if (server != econ) return; + + string msg((char *)data, size); + + if (con_state == CALAOS_CON_LOGIN) + { + con_state = CALAOS_CON_OK; + + Utils::logger("network.connection") << Priority::DEBUG << "CalaosConnection: Successfully logged in." << log4cpp::eol; + + connection_ok.emit(); + } + else if (con_state == CALAOS_CON_OK) + { + DELETE_NULL(timeout) + + //Clean string + while( (msg[msg.length() - 1] == '\n' || msg[msg.length() - 1] == '\r') + && !msg.empty() ) + msg.erase(msg.length() - 1, 1); + + Utils::logger("network.connection") << Priority::DEBUG << "CalaosConnection: Received: " << msg << log4cpp::eol; + + //Here we split command result. + vector v; + split(msg, v); + + for_each(v.begin(), v.end(), UrlDecode()); + + CalaosCmd &cmd = commands.front(); + CommandDone_sig sig; + sig.connect(cmd.callback); + sig.emit(true, v, cmd.user_data); + + commands.pop(); + + sendAndDequeue(); + } +} + +void CalaosConnection::TimeoutTick() +{ + if (con_state == CALAOS_CON_NONE) + { + timeout_connect.emit(); + + Utils::logger("network.connection") << Priority::CRIT << "CalaosConnection: Timeout connecting to " << host << log4cpp::eol; + } + + if (con_state == CALAOS_CON_OK) + { + Utils::logger("network.connection") << Priority::CRIT << "CalaosConnection: Timeout waiting answer..." << log4cpp::eol; + + vector v; + CalaosCmd &cmd = commands.front(); + CommandDone_sig sig; + sig.connect(cmd.callback); + sig.emit(false, v, cmd.user_data); + + commands.pop(); + + sendAndDequeue(); + } + + if (timeout) + { + delete timeout; + timeout = NULL; + } +} + +void CalaosConnection::SendCommand(string scmd, CommandDone_cb callback, void *data) +{ + CalaosCmd cmd; + + cmd.command = scmd; + cmd.callback = callback; + cmd.user_data = data; + + commands.push(cmd); + + sendAndDequeue(); +} + +void CalaosConnection::SendCommand(string scmd) +{ + CalaosCmd cmd; + + cmd.command = scmd; + cmd.noCallback = true; + + commands.push(cmd); + + sendAndDequeue(); +} + +void CalaosConnection::sendAndDequeue() +{ + if (commands.empty() || commands.front().inProgress) + return; + + CalaosCmd &cmd = commands.front(); + cmd.inProgress = true; + + if (!timeout) + timeout = new EcoreTimer(TIMEOUT_SEND, (sigc::slot)sigc::mem_fun(*this, &CalaosConnection::TimeoutTick)); + + Utils::logger("network.connection") << Priority::DEBUG << "CalaosConnection: Sending command: " << cmd.command << log4cpp::eol; + + cmd.command += "\n\r"; + ecore_con_server_send(econ, cmd.command.c_str(), cmd.command.length()); +} diff --git a/src/bin/calaos_home/CalaosConnection.h b/src/bin/calaos_home/CalaosConnection.h new file mode 100644 index 00000000..5d8b20fc --- /dev/null +++ b/src/bin/calaos_home/CalaosConnection.h @@ -0,0 +1,110 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef CALAOSCONNECTION_H +#define CALAOSCONNECTION_H + +#include + +#include +#include +#include + +#include "CalaosListener.h" + +using namespace Utils; + +#define TIMEOUT_CONNECT 60.0 +#define TIMEOUT_SEND 60.0 + +typedef sigc::slot, void * > CommandDone_cb; +typedef sigc::signal, void * > CommandDone_sig; + +class CalaosCmd +{ + public: + CalaosCmd(): + inProgress(false), + noCallback(false) + {} + CalaosCmd(string c, CommandDone_cb cb): + command(c), + callback(cb), + user_data(NULL), + inProgress(false), + noCallback(false) + {} + + string command; + CommandDone_cb callback; + void *user_data; + + bool inProgress; + bool noCallback; +}; + +class CalaosConnection: public sigc::trackable +{ + public: + //Ecore Internal use only + void addConnection(Ecore_Con_Server *server); + void delConnection(Ecore_Con_Server *server); + void dataGet(Ecore_Con_Server *server, void *data, int size); + + private: + Ecore_Con_Server *econ; + + enum { CALAOS_CON_NONE, CALAOS_CON_LOGIN, CALAOS_CON_OK }; + + int con_state; + + string host; + + EcoreTimer *timeout; + + Ecore_Event_Handler *event_handler_data_get; + Ecore_Event_Handler *event_handler_add; + Ecore_Event_Handler *event_handler_del; + + queue commands; + + bool sendInProgress; + + CalaosListener *listener; + + void sendAndDequeue(); + void TimeoutTick(); + + public: + CalaosConnection(string host, bool no_listenner = false); + ~CalaosConnection(); + + void SendCommand(string cmd, CommandDone_cb callback, void *data = NULL); + void SendCommand(string cmd); + + CalaosListener *getListener() { return listener; } + + sigc::signal error_login; + sigc::signal timeout_connect; + sigc::signal lost_connection; + sigc::signal connection_ok; +}; + +#endif // CALAOSCONNECTION_H diff --git a/src/bin/calaos_home/CalaosDiscover.cpp b/src/bin/calaos_home/CalaosDiscover.cpp new file mode 100644 index 00000000..8b83ed95 --- /dev/null +++ b/src/bin/calaos_home/CalaosDiscover.cpp @@ -0,0 +1,129 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "CalaosDiscover.h" + +static Eina_Bool _con_server_data(void *data, int type, Ecore_Con_Event_Client_Data *ev) +{ + CalaosDiscover *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ecore_con_client_server_get(ev->client)))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->dataGet(ecore_con_client_server_get(ev->client), ev->data, ev->size); + else + Utils::logger("network") << Priority::CRIT + << "CalaosDiscover(): _con_server_data, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +CalaosDiscover::CalaosDiscover(): + econ(NULL), + econ_sender(NULL), + timer(NULL), + connection(NULL) +{ + event_handler_data_get = ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DATA, (Ecore_Event_Handler_Cb)_con_server_data, this); + + econ = ecore_con_server_add(ECORE_CON_REMOTE_UDP, "0.0.0.0", BCAST_UDP_PORT, this); + ecore_con_server_data_set(econ, this); + + econ_sender = ecore_con_server_connect(ECORE_CON_REMOTE_BROADCAST, "255.255.255.255", BCAST_UDP_PORT, this); + + timerDiscover(); + + timer = new EcoreTimer(1., + (sigc::slot)sigc::mem_fun(*this, &CalaosDiscover::timerDiscover)); +} + +CalaosDiscover::~CalaosDiscover() +{ + DELETE_NULL_FUNC(ecore_event_handler_del, event_handler_data_get); + + DELETE_NULL(timer); + DELETE_NULL_FUNC(ecore_con_server_del, econ); + DELETE_NULL_FUNC(ecore_con_server_del, econ_sender); + DELETE_NULL(connection); +} + +void CalaosDiscover::timerDiscover() +{ + Utils::logger("network") << Priority::DEBUG << "CalaosDiscover: try to discover server..." << log4cpp::eol; + + string packet = "CALAOS_DISCOVER"; + if (!ecore_con_server_send(econ_sender, packet.c_str(), packet.length())) + { + econ_sender = ecore_con_server_connect(ECORE_CON_REMOTE_BROADCAST, "0.0.0.0", BCAST_UDP_PORT, this); + ecore_con_server_send(econ_sender, packet.c_str(), packet.length()); + } +} + +void CalaosDiscover::dataGet(Ecore_Con_Server *server, void *data, int size) +{ + if (server != econ) return; + + string msg((char *)data, size); + + Utils::logger("network") << Priority::DEBUG << "CalaosDiscover: DataServer: some data arrived msg: \"" << msg << "\"" << log4cpp::eol; + + if (msg.substr(0, 10) == "CALAOS_IP " && !connection) + { + msg.erase(0, 10); + address = msg; + + DELETE_NULL(timer); + EcoreTimer::singleShot(0.0, sigc::mem_fun(*this, &CalaosDiscover::delayDel)); + + connection = new CalaosConnection(address, true); + connection->connection_ok.connect(sigc::mem_fun(*this, &CalaosDiscover::loginSuccess)); + connection->error_login.connect(sigc::mem_fun(*this, &CalaosDiscover::loginFailed)); + } +} + +void CalaosDiscover::delayDel() +{ + DELETE_NULL_FUNC(ecore_con_server_del, econ); + DELETE_NULL_FUNC(ecore_con_server_del, econ_sender); +} + +void CalaosDiscover::loginSuccess() +{ + Utils::logger("network") << Priority::DEBUG << "CalaosDiscover: Login to host " << address << " successfully" << log4cpp::eol; + + DELETE_NULL(connection); + + server_found.emit(address); +} + +void CalaosDiscover::loginFailed() +{ + Utils::logger("network") << Priority::DEBUG << "CalaosDiscover: Wrong login/password on host " << address << log4cpp::eol; + + DELETE_NULL(connection); + + login_error.emit(address); + + //Restart timer to search again for a valid server + timer = new EcoreTimer(1., + (sigc::slot)sigc::mem_fun(*this, &CalaosDiscover::timerDiscover)); +} diff --git a/src/bin/calaos_home/CalaosDiscover.h b/src/bin/calaos_home/CalaosDiscover.h new file mode 100644 index 00000000..6d504fd5 --- /dev/null +++ b/src/bin/calaos_home/CalaosDiscover.h @@ -0,0 +1,65 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef CALAOSDISCOVER_H +#define CALAOSDISCOVER_H + +#include + +#include +#include +#include + +#include +#include + +using namespace Utils; + +class CalaosDiscover: public sigc::trackable +{ + public: + //Ecore Internal use only + void dataGet(Ecore_Con_Server *server, void *data, int size); + + private: + string address; + Ecore_Con_Server *econ; + Ecore_Con_Server *econ_sender; + + Ecore_Event_Handler *event_handler_data_get; + + EcoreTimer *timer; + + CalaosConnection *connection; + + void loginSuccess(); + void loginFailed(); + void timerDiscover(); + void delayDel(); + + public: + CalaosDiscover(); + ~CalaosDiscover(); + + sigc::signal server_found; + sigc::signal login_error; +}; + +#endif // CALAOSDISCOVER_H diff --git a/src/bin/calaos_home/CalaosListener.cpp b/src/bin/calaos_home/CalaosListener.cpp new file mode 100644 index 00000000..b55b99f4 --- /dev/null +++ b/src/bin/calaos_home/CalaosListener.cpp @@ -0,0 +1,246 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "CalaosListener.h" + +static Eina_Bool _con_server_add(void *data, int type, Ecore_Con_Event_Server_Add *ev) +{ + CalaosListener *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->addConnection(ev->server); + else + Utils::logger("network.listener") << Priority::CRIT + << "CalaosListener(): _con_server_add, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _con_server_del(void *data, int type, Ecore_Con_Event_Server_Del *ev) +{ + CalaosListener *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->delConnection(ev->server); + else + Utils::logger("network.listener") << Priority::CRIT + << "CalaosListener(): _con_server_del, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _con_server_data(void *data, int type, Ecore_Con_Event_Server_Data *ev) +{ + CalaosListener *o = reinterpret_cast(data); + + if (ev && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->dataGet(ev->server, ev->data, ev->size); + else + Utils::logger("network.listener") << Priority::CRIT + << "CalaosListener(): _con_server_data, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +CalaosListener::CalaosListener(string _address): + address(_address), + econ(NULL), + login(false), + timer(NULL) +{ + handler_add = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_con_server_add, this); + handler_del = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, (Ecore_Event_Handler_Cb)_con_server_del, this); + handler_data = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_con_server_data, this); + + timerReconnect(); + + timer = new EcoreTimer(1000., + (sigc::slot)sigc::mem_fun(*this, &CalaosListener::timerReconnect)); +} + +CalaosListener::~CalaosListener() +{ + DELETE_NULL_FUNC(ecore_event_handler_del, handler_add); + DELETE_NULL_FUNC(ecore_event_handler_del, handler_del); + DELETE_NULL_FUNC(ecore_event_handler_del, handler_data); + + DELETE_NULL(timer); + DELETE_NULL_FUNC(ecore_con_server_del, econ); +} + +void CalaosListener::timerReconnect() +{ + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: Connecting to " << address << ":" << TCP_LISTEN_PORT << log4cpp::eol; + + DELETE_NULL_FUNC(ecore_con_server_del, econ) + econ = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, address.c_str(), TCP_LISTEN_PORT, this); + ecore_con_server_data_set(econ, this); +} + +void CalaosListener::addConnection(Ecore_Con_Server *server) +{ + if (server != econ) return; + + DELETE_NULL(timer) + + //Login first + login = true; + string cmd = "login "; + + //Get username/password + string username = Utils::get_config_option("calaos_user"); + string password = Utils::get_config_option("calaos_password"); + + if (Utils::get_config_option("cn_user") != "" && + Utils::get_config_option("cn_pass") != "") + { + username = Utils::get_config_option("cn_user"); + password = Utils::get_config_option("cn_pass"); + } + + cmd += Utils::url_encode(username) + " "; + cmd += Utils::url_encode(password); + cmd += "\r\n"; + + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: trying to log in." << log4cpp::eol; + + ecore_con_server_send(econ, cmd.c_str(), cmd.length()); +} + +void CalaosListener::delConnection(Ecore_Con_Server *server) +{ + if (server != econ) return; + + DELETE_NULL(timer) + + if (login) + { + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: Wrong login/password." << log4cpp::eol; + + return; + } + + Utils::logger("network.listener") << Priority::WARN << "CalaosListener: Connection closed !" << log4cpp::eol; + Utils::logger("network.listener") << Priority::WARN << "CalaosListener: Trying to reconnect..." << log4cpp::eol; + + timer = new EcoreTimer(5 / 100., + (sigc::slot)sigc::mem_fun(*this, &CalaosListener::timerReconnect)); + + lost_connection.emit(); +} + +void CalaosListener::dataGet(Ecore_Con_Server *server, void *data, int size) +{ + if (server != econ) return; + + string msg((char *)data, size); + + if (login) + { + login = false; + + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: Successfully logged in." << log4cpp::eol; + + string cmd = "listen\n\r"; + ecore_con_server_send(econ, cmd.c_str(), cmd.length()); + + return; + } + + if (msg.find('\n') == string::npos && + msg.find('\r') == string::npos) + { + //We have not a complete paquet yet, buffurize it. + buffer += msg; + + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: Bufferize data." << log4cpp::eol; + + return; + } + + if (!buffer.empty()) + { + msg = buffer; + buffer.clear(); + } + + //Clean data string + int i = msg.length() - 1; + while ((msg[i] == '\n' || msg[i] == '\r' || msg[i] == '\0') && i >= 0) i--; + + vector tokens; + + replace_str(msg, "\r\n", "\n"); + replace_str(msg, "\r", "\n"); + + split(msg, tokens, "\n"); + + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: Got " << tokens.size() << " messages." << log4cpp::eol; + + for(unsigned int i = 0; i < tokens.size(); i++) + processMessage(tokens[i]); +} + +void CalaosListener::processMessage(string msg) +{ + Utils::logger("network.listener") << Priority::DEBUG << "CalaosListener: Message: \"" << msg << "\"" << log4cpp::eol; + + vector msgSplit; + + split(msg, msgSplit, " "); + + if(msgSplit[0] == "output" || msgSplit[0] == "input" || msgSplit[0] == "input_range_change") + notify_io_change.emit(msg); + else if(msgSplit[0] == "new_output" || msgSplit[0] == "new_input") + notify_io_new.emit(msg); + else if(msgSplit[0] == "delete_output" || msgSplit[0] == "delete_input") + notify_io_delete.emit(msg); + else if(msgSplit[0] == "modify_room") + notify_room_change.emit(msg); + else if(msgSplit[0] == "delete_room") + notify_room_delete.emit(msg); + else if(msgSplit[0] == "new_room") + notify_room_new.emit(msg); + else if (msgSplit[0] == "audio" || + msgSplit[0] == "audio_playlist" || + msgSplit[0] == "audio_status" || + msgSplit[0] == "audio_volume") + { + notify_audio_change.emit(msg); + } + else if (msgSplit[0] == "new_scenario") + notify_scenario_add.emit(msg); + else if (msgSplit[0] == "delete_scenario") + notify_scenario_del.emit(msg); + else if (msgSplit[0] == "modify_scenario") + notify_scenario_change.emit(msg); +} diff --git a/src/bin/calaos_home/CalaosListener.h b/src/bin/calaos_home/CalaosListener.h new file mode 100644 index 00000000..96e8b757 --- /dev/null +++ b/src/bin/calaos_home/CalaosListener.h @@ -0,0 +1,77 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef CALAOSLISTENER_H +#define CALAOSLISTENER_H + +#include +#include +#include + +class CalaosListener: public sigc::trackable +{ + public: + //Ecore Internal use only + void addConnection(Ecore_Con_Server *server); + void delConnection(Ecore_Con_Server *server); + void dataGet(Ecore_Con_Server *server, void *data, int size); + + private: + string address; + Ecore_Con_Server *econ; + bool login; + + string buffer; + + EcoreTimer *timer; + + Ecore_Event_Handler *handler_add; + Ecore_Event_Handler *handler_data; + Ecore_Event_Handler *handler_del; + + void processMessage(string msg); + void timerReconnect(); + + public: + CalaosListener(string address); + ~CalaosListener(); + + //RoomModel signals + sigc::signal notify_io_change; + sigc::signal notify_io_new; + sigc::signal notify_io_delete; + sigc::signal notify_room_change; + sigc::signal notify_room_new; + sigc::signal notify_room_delete; + + //AudioModel signals + sigc::signal notify_audio_change; + + //ScenarioModel signals + sigc::signal notify_scenario_add; + sigc::signal notify_scenario_del; + sigc::signal notify_scenario_change; + + sigc::signal lost_connection; + +}; + +#endif // CALAOSLISTENER_H diff --git a/src/bin/calaos_home/CommonUtils.cpp b/src/bin/calaos_home/CommonUtils.cpp new file mode 100644 index 00000000..d98dfaf0 --- /dev/null +++ b/src/bin/calaos_home/CommonUtils.cpp @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "CommonUtils.h" +#include + +using namespace Utils; + +Evas_Object *Utils::createPaddingTable(Evas *evas, Evas_Object *parent, int w, int h, int padding_top_bottom, int padding_side) +{ + Evas_Object *table = elm_table_add(parent); + evas_object_size_hint_min_set(table, w, h); + evas_object_show(table); + + Evas_Object *pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, w-10, padding_top_bottom); + elm_table_pack(table, pad, 1, 0, 1, 1); + + pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, w-10, padding_top_bottom); + elm_table_pack(table, pad, 1, 2, 1, 1); + + pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, padding_side, h); + elm_table_pack(table, pad, 0, 1, 1, 1); + + pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, padding_side, h); + elm_table_pack(table, pad, 2, 1, 1, 1); + + return table; +} diff --git a/src/bin/calaos_home/CommonUtils.h b/src/bin/calaos_home/CommonUtils.h new file mode 100644 index 00000000..bffad9ce --- /dev/null +++ b/src/bin/calaos_home/CommonUtils.h @@ -0,0 +1,42 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef COMMONUTILS_H +#define COMMONUTILS_H + +#include +#include + +namespace Utils +{ + +struct DeleteEvasObject +{ + template void operator ()(T *&p) const + { + DELETE_NULL_FUNC(evas_object_del, p); + } +}; + +Evas_Object *createPaddingTable(Evas *evas, Evas_Object *parent, int w, int h, int padding_top_bottom = 1, int padding_side = 1); + +} + +#endif // COMMONUTILS_H diff --git a/src/bin/calaos_home/EdjeObject.cpp b/src/bin/calaos_home/EdjeObject.cpp new file mode 100644 index 00000000..2242d90f --- /dev/null +++ b/src/bin/calaos_home/EdjeObject.cpp @@ -0,0 +1,263 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +static void _edje_object_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source); +static void _edje_del(void *data, Evas *e , Evas_Object *obj, void *event_info); +static void _edje_show(void *data, Evas *e , Evas_Object *obj, void *event_info); +static void _edje_hide(void *data, Evas *e , Evas_Object *obj, void *event_info); + +EdjeObject::EdjeObject(string &_theme, Evas *_evas): + theme(_theme), + evas(_evas), + autodelete(false) +{ + //create the edje object + edje = edje_object_add(evas); + + evas_object_event_callback_add(edje, EVAS_CALLBACK_DEL, _edje_del, this); + evas_object_event_callback_add(edje, EVAS_CALLBACK_SHOW, _edje_show, this); + evas_object_event_callback_add(edje, EVAS_CALLBACK_HIDE, _edje_hide, this); + + evas_object_data_set(edje, "EdjeObject", this); + + // Add an automatic callback that triggers the object_signal for all signals (*, *) + addCallback("*", "*", sigc::mem_fun(object_signal, &sigc::signal::emit)); +} + +EdjeObject::EdjeObject(const char *_theme, Evas *_evas): + theme(_theme), + evas(_evas), + autodelete(false) +{ + //create the edje object + edje = edje_object_add(evas); + + evas_object_event_callback_add(edje, EVAS_CALLBACK_DEL, _edje_del, this); + evas_object_event_callback_add(edje, EVAS_CALLBACK_SHOW, _edje_show, this); + evas_object_event_callback_add(edje, EVAS_CALLBACK_HIDE, _edje_hide, this); + + evas_object_data_set(edje, "EdjeObject", this); + + // Add an automatic callback that triggers the object_signal for all signals (*, *) + addCallback("*", "*", sigc::mem_fun(object_signal, &sigc::signal::emit)); +} + +EdjeObject::~EdjeObject() +{ + //deletes all swallowed objs + for_each(swallow_eobjs.begin(), swallow_eobjs.end(), Delete()); + for_each(swallow_objs.begin(), swallow_objs.end(), DeleteEvasObject()); + + vector::iterator iter = callbacks.begin(); + + for (;callbacks.size() > 0 && iter != callbacks.end();iter++) + { + EdjeCallbackData *data = *iter; + if (edje) + edje_object_signal_callback_del(edje, data->signal.c_str(), data->source.c_str(), _edje_object_signal_cb); + + delete data; + } + callbacks.clear(); + + if (edje) + { + void *data = evas_object_event_callback_del_full(edje, EVAS_CALLBACK_DEL, _edje_del, this); + if (!data) + Utils::logger("root") << Priority::CRIT << "EdjeObject::~EdjeObject : Something went wrong with callback deletion !" << log4cpp::eol; + + //Emit deleted signal only if the Evas_Object is still alive + objectDeleted(); + object_deleted.emit(); + } + DELETE_NULL_FUNC(evas_object_del, edje) +} + +bool EdjeObject::LoadEdje(string c) +{ + CHECK_EDJE_RETURN(false) + + collection = c; + if (edje_object_file_set(edje, theme.c_str(), collection.c_str()) == 0) + { + int err = edje_object_load_error_get(edje); + string serr = "EdjeObject::LoadEdje - "; + switch (err) + { + case EDJE_LOAD_ERROR_NONE: serr += "No Error."; break; + default: + case EDJE_LOAD_ERROR_GENERIC: serr += "Unknown Error"; break; + case EDJE_LOAD_ERROR_DOES_NOT_EXIST: serr += "File doesn't exist"; break; + case EDJE_LOAD_ERROR_PERMISSION_DENIED: serr += "Permission denied"; break; + case EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED: serr += "Allocation failed"; break; + case EDJE_LOAD_ERROR_CORRUPT_FILE: serr += "File is corrupted"; break; + case EDJE_LOAD_ERROR_UNKNOWN_FORMAT: serr += "Unknown file format"; break; + case EDJE_LOAD_ERROR_INCOMPATIBLE_FILE: serr += "Incompatible file"; break; + case EDJE_LOAD_ERROR_UNKNOWN_COLLECTION: serr += "Unknown collection (" + collection + ")"; break; + case EDJE_LOAD_ERROR_RECURSIVE_REFERENCE: serr += "Recursive reference"; break; + } + + throw (runtime_error(serr)); + + return false; + } + + return true; +} + +void EdjeObject::getGeometry(int *x, int *y, int *w, int *h) +{ + CHECK_EDJE_RETURN() + + evas_object_geometry_get(edje, x, y, w, h); +} + +string EdjeObject::getPartText(string part) +{ + CHECK_EDJE_RETURN("") + + const char *txt = edje_object_part_text_get(edje, part.c_str()); + if (txt) + return string(txt); + + return ""; +} + +void EdjeObject::Swallow(EdjeObject *obj, string part, bool delete_on_del) +{ + CHECK_EDJE_RETURN(); + edje_object_part_swallow(edje, part.c_str(), obj->getEvasObject()); + + if (delete_on_del) + swallow_eobjs.push_back(obj); +} + +void EdjeObject::Swallow(Evas_Object *obj, string part, bool delete_on_del) +{ + CHECK_EDJE_RETURN(); + edje_object_part_swallow(edje, part.c_str(), obj); + + if (delete_on_del) + swallow_objs.push_back(obj); +} + +sigc::connection *EdjeObject::addCallback(string source, string signal, EdjeCallBack slot_cb, void *user_data) +{ + CHECK_EDJE_RETURN(NULL) + + EdjeCallbackData *data = new EdjeCallbackData; + + data->connection = data->signal_cb.connect(slot_cb); + data->user_data = user_data; + data->signal = signal; + data->source = source; + + callbacks.push_back(data); + + edje_object_signal_callback_add(edje, signal.c_str(), source.c_str(), _edje_object_signal_cb, data); + + return &data->connection; +} + +void EdjeObject::delCallback(sigc::connection *connection) +{ + CHECK_EDJE_RETURN() + + vector::iterator iter = callbacks.begin(); + + for (;iter != callbacks.end();iter++) + { + EdjeCallbackData *data = *iter; + if (&data->connection == connection) + { + edje_object_signal_callback_del(edje, data->signal.c_str(), data->source.c_str(), _edje_object_signal_cb); + + delete data; + callbacks.erase(iter); + + break; + } + } +} + +void EdjeObject::_evasObjectDeleted() +{ + for_each(callbacks.begin(), callbacks.end(), Delete()); + + edje = NULL; + + objectDeleted(); + object_deleted.emit(); + + if (autodelete) + { + //Warning ! We do suicide here. + //Don't do anything here after that call, + //it will mess up the stack + delete this; + } +} + +static void _edje_del(void *data, Evas *e , Evas_Object *obj, void *event_info) +{ + EdjeObject *o = reinterpret_cast(data); + if (!o) return; + + o->_evasObjectDeleted(); +} + +void EdjeObject::_evasObjectShow() +{ + object_shown.emit(); + objectShown(); +} + +static void _edje_show(void *data, Evas *e , Evas_Object *obj, void *event_info) +{ + EdjeObject *o = reinterpret_cast(data); + if (!o) return; + + o->_evasObjectShow(); +} + +void EdjeObject::_evasObjectHide() +{ + object_hidden.emit(); + objectHidden(); +} + +static void _edje_hide(void *data, Evas *e , Evas_Object *obj, void *event_info) +{ + EdjeObject *o = reinterpret_cast(data); + if (!o) return; + + o->_evasObjectHide(); +} + +static void _edje_object_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + EdjeCallbackData *d = reinterpret_cast(data); + if (!d) return; + + d->signal_cb.emit(d->user_data, obj, emission, source); +} + diff --git a/src/bin/calaos_home/EdjeObject.h b/src/bin/calaos_home/EdjeObject.h new file mode 100644 index 00000000..afe841ff --- /dev/null +++ b/src/bin/calaos_home/EdjeObject.h @@ -0,0 +1,133 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef EDJEOBJECT_H +#define EDJEOBJECT_H + + +#include +#include +#include +#include + +using namespace Utils; + +/* Edje signal callback + Prototype is callback(void *data, Evas_Object *edje_object, string emission, string source) +*/ +typedef sigc::slot EdjeCallBack; +typedef sigc::signal EdjeCallBackSignal; + +typedef struct _EdjeCallbackData: public sigc::trackable +{ + EdjeCallBackSignal signal_cb; + sigc::connection connection; + void *user_data; + string signal; + string source; +} EdjeCallbackData; + +#define CHECK_EDJE_RETURN(...) \ + if (!edje) \ + { \ + Utils::logger("root") << Priority::CRIT << "EdjeObject: Edje object NULL ! (" << collection << ")" << log4cpp::eol; \ + return __VA_ARGS__; \ + } + +class EdjeObject: public sigc::trackable +{ + public: + void _evasObjectDeleted(); + void _evasObjectShow(); + void _evasObjectHide(); + + protected: + string theme; //Edje theme filename + string collection; //Edje collection group + + Evas *evas; + Evas_Object *edje; //The edje object + + vector callbacks; + + bool autodelete; //autodelete EdjeObject if Evas_Object is deleted. Be carefull with this + + list swallow_objs; + list swallow_eobjs; + + virtual void objectDeleted() { } + virtual void objectShown() { } + virtual void objectHidden() { } + + public: + EdjeObject(string &_theme, Evas *_evas); + EdjeObject(const char *_theme, Evas *_evas); + virtual ~EdjeObject(); + + //load the edje file + bool LoadEdje(string collection); + + virtual void Show() { CHECK_EDJE_RETURN() evas_object_show(edje); } + virtual void Hide() { CHECK_EDJE_RETURN() evas_object_hide(edje); } + void Move(int x, int y) { CHECK_EDJE_RETURN() evas_object_move(edje, x, y); } + void Resize(int w, int h) { CHECK_EDJE_RETURN() evas_object_resize(edje, w, h); } + + void getGeometry(int *x, int *y, int *w, int *h); + void getSizeMin(int *w, int *h) { CHECK_EDJE_RETURN() edje_object_size_min_get(edje, w, h); } + void getSizeMax(int *w, int *h) { CHECK_EDJE_RETURN() edje_object_size_max_get(edje, w, h); } + + void setLayer(int i) { CHECK_EDJE_RETURN() evas_object_layer_set(edje, i); } + int getLayer() { CHECK_EDJE_RETURN(0) return evas_object_layer_get(edje); } + + void EmitSignal(string signal, string source) { CHECK_EDJE_RETURN() edje_object_signal_emit(edje, signal.c_str(), source.c_str()); } + + void setPartText(string part, string text) { CHECK_EDJE_RETURN() edje_object_part_text_set(edje, part.c_str(), text.c_str()); } + string getPartText(string part); + + void setDragValue(string part, double x, double y) { CHECK_EDJE_RETURN() edje_object_part_drag_value_set(edje, part.c_str(), x, y); } + void getDragValue(string part, double *x, double *y) { CHECK_EDJE_RETURN() edje_object_part_drag_value_get(edje, part.c_str(), x, y); } + + void Swallow(EdjeObject *obj, string part, bool delete_on_del = false); + void Swallow(Evas_Object *obj, string part, bool delete_on_del = false); + + Evas_Object *getEvasObject() { CHECK_EDJE_RETURN(NULL) return edje; } + + void setTheme(string &_theme) { theme = _theme; } + + string getCollection() { return collection; } + + void setAutoDelete(bool autodel) { autodelete = autodel; } + bool getAutoDelete() { return autodelete; } + + sigc::connection *addCallback(string source, string signal, EdjeCallBack slot_cb, void *user_data = NULL); + void delCallback(sigc::connection *connection); + + /* Object was deleted */ + sigc::signal object_deleted; + + /* Object was shown/hidden */ + sigc::signal object_shown; + sigc::signal object_hidden; + + /* Edje signal */ + sigc::signal object_signal; +}; + +#endif // EDJEOBJECT_H diff --git a/src/bin/calaos_home/EvasSmart.cpp b/src/bin/calaos_home/EvasSmart.cpp new file mode 100644 index 00000000..abb36a9b --- /dev/null +++ b/src/bin/calaos_home/EvasSmart.cpp @@ -0,0 +1,163 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +static void _smart_add(Evas_Object *o); +static void _smart_del(Evas_Object *o); +static void _smart_move(Evas_Object *o, Evas_Coord x, Evas_Coord y); +static void _smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h); +static void _smart_show(Evas_Object *o); +static void _smart_hide(Evas_Object *o); +static void _smart_color_set(Evas_Object * o, int r, int g, int b, int a); +static void _smart_clip_set(Evas_Object * o, Evas_Object * clip); +static void _smart_clip_unset(Evas_Object * o); +static void _smart_calculate(Evas_Object * o); +static void _smart_member_add(Evas_Object * o, Evas_Object *child); +static void _smart_member_del(Evas_Object * o, Evas_Object *child); + +EvasSmart::EvasSmart(Evas *evas, string evas_smart_type): + evas_object(NULL), + smart_object(NULL), + member_count(0) +{ + smart_object = EvasSmartClassCreate(evas_smart_type); + + evas_object = evas_object_smart_add(evas, smart_object); + evas_object_smart_data_set(evas_object, this); +} + +Evas_Smart *EvasSmart::EvasSmartClassCreate(string evas_smart_type) +{ + static std::map SmartObjects; + static std::map SmartClasses; + + //try to find the smart class + //if not found create a new one + map::iterator fter = SmartObjects.find(evas_smart_type); + if (fter != SmartObjects.end()) + return SmartObjects[evas_smart_type]; + + Evas_Smart_Class sc = + { + NULL, + EVAS_SMART_CLASS_VERSION, + _smart_add, + _smart_del, + _smart_move, + _smart_resize, + _smart_show, + _smart_hide, + _smart_color_set, + _smart_clip_set, + _smart_clip_unset, + _smart_calculate, + _smart_member_add, + _smart_member_del, + NULL + }; + + sc.name = evas_smart_type.c_str(); + + SmartClasses[evas_smart_type] = sc; + + return (evas_smart_class_new(&SmartClasses[evas_smart_type])); +} + +EvasSmart::~EvasSmart() +{ + if (evas_object) + { + evas_object_del(evas_object); + evas_object = NULL; + } + + evas_smart_free(smart_object); +} + +//C smart objects callbacks +static void _smart_add(Evas_Object *o) +{ +} +static void _smart_del(Evas_Object *o) +{ +} +static void _smart_move(Evas_Object *o, Evas_Coord x, Evas_Coord y) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartMove(x, y); +} +static void _smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartResize(w, h); +} +static void _smart_show(Evas_Object *o) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartShow(); +} +static void _smart_hide(Evas_Object *o) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartHide(); +} +static void _smart_color_set(Evas_Object * o, int r, int g, int b, int a) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartColorSet(r, g, b, a); +} +static void _smart_clip_set(Evas_Object *o, Evas_Object * clip) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartClipSet(clip); +} +static void _smart_clip_unset(Evas_Object *o) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartClipUnset(); +} +static void _smart_calculate(Evas_Object * o) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartCalculate(); +} + +static void _smart_member_add(Evas_Object * o, Evas_Object *child) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartMemberAdd(child); +} + +static void _smart_member_del(Evas_Object * o, Evas_Object *child) +{ + EvasSmart *_esmart = reinterpret_cast(evas_object_smart_data_get(o)); + if (_esmart) + _esmart->SmartMemberDel(child); +} diff --git a/src/bin/calaos_home/EvasSmart.h b/src/bin/calaos_home/EvasSmart.h new file mode 100644 index 00000000..bb0af8f7 --- /dev/null +++ b/src/bin/calaos_home/EvasSmart.h @@ -0,0 +1,63 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef CEVASSMART_H +#define CEVASSMART_H + +#include +#include + +class EvasSmart +{ + protected: + //The main evas object + Evas_Object *evas_object; + + Evas_Smart *smart_object; + + static Evas_Smart *EvasSmartClassCreate(string evas_smart_type); + + //Add a memmber Evas object to the smart object + void AddMemberObject(Evas_Object *obj) + { evas_object_smart_member_add(obj, evas_object); member_count++; } + void DelMemberObject(Evas_Object *obj) + { evas_object_smart_member_del(obj); member_count--; } + + int member_count; + + public: + EvasSmart(Evas *evas, string evas_smart_type); + virtual ~EvasSmart(); + + virtual void SmartMove(int x, int y) { } + virtual void SmartResize(int w, int h) { } + virtual void SmartShow() { } + virtual void SmartHide() { } + virtual void SmartColorSet(int r, int g, int b, int a) { } + virtual void SmartClipSet(Evas_Object *clip) { } + virtual void SmartClipUnset() { } + virtual void SmartCalculate() { } + virtual void SmartMemberAdd(Evas_Object *child) { } + virtual void SmartMemberDel(Evas_Object *child) { } + + Evas_Object *getSmartObject() { return evas_object; } +}; + +#endif diff --git a/src/bin/calaos_home/Makefile.am b/src/bin/calaos_home/Makefile.am new file mode 100644 index 00000000..11b3f20e --- /dev/null +++ b/src/bin/calaos_home/Makefile.am @@ -0,0 +1,199 @@ + +MAINTAINERCLEANFILES = Makefile.in + +AM_CXXFLAGS = \ +-I. \ +-I./Rules \ +-I./IPCam \ +-I./Audio \ +-I./IO \ +-I./IO/libmbus \ +-I./Scenario \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/calaos\" \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/LuaScript \ +-I$(top_srcdir)/src/bin/calaos_home/controllers \ +-I$(top_srcdir)/src/bin/calaos_home/views \ +-I$(top_srcdir)/src/bin/calaos_home/views/GenlistItems \ +-I$(top_srcdir)/src/bin/calaos_home/views/IO \ +-I$(top_srcdir)/src/bin/calaos_home/models \ +@CALAOS_COMMON_CFLAGS@ \ +@CALAOS_HOME_CFLAGS@ \ +-DETC_DIR=\"/etc\" \ +-DLIBMBUS \ +-DTHEME_DIR=\"/usr/share/calaos\" + +bin_PROGRAMS = calaos_home + +calaos_home_SOURCES = \ + main.cpp \ + CommonUtils.cpp \ + views/BaseView.cpp \ + views/MainContentView.cpp \ + ApplicationMain.cpp \ + controllers/ApplicationController.cpp \ + views/ActivityView.cpp \ + views/ActivityHomeView.cpp \ + views/ActivityMediaView.cpp \ + views/ActivityScenariosView.cpp \ + views/ActivityConfigView.cpp \ + views/ActivityWidgetsView.cpp \ + views/ActivityMediaMenuView.cpp \ + views/ActivityKeyboardView.cpp \ + views/ActivityWebView.cpp \ + controllers/ActivityController.cpp \ + controllers/ActivityHomeController.cpp \ + controllers/ActivityMediaController.cpp \ + controllers/ActivityScenariosController.cpp \ + controllers/ActivityConfigController.cpp \ + controllers/ActivityWidgetsController.cpp \ + controllers/ActivityMediaMenuController.cpp \ + controllers/ActivityKeyboardController.cpp \ + controllers/ActivityWebController.cpp \ + views/IO/IOScenarioHomeView.cpp \ + views/IOView.cpp \ + EdjeObject.cpp \ + views/MainMenuView.cpp \ + CalaosDiscover.cpp \ + CalaosConnection.cpp \ + CalaosListener.cpp \ + models/CalaosModel.cpp \ + models/AudioModel.cpp \ + models/CameraModel.cpp \ + models/RoomModel.cpp \ + models/ScenarioModel.cpp \ + views/GenlistItems/GenlistItemBase.cpp \ + views/GenlistItems/GenlistItemSimple.cpp \ + views/GenlistItems/GenlistItemSimpleHeader.cpp \ + views/IO/IOWODigitalHomeView.cpp \ + views/IO/IOWODaliHomeView.cpp \ + views/IO/IOInternalBoolHomeView.cpp \ + views/IO/IOInternalIntHomeView.cpp \ + views/IO/IOInternalStringHomeView.cpp \ + views/IO/IOWODaliRVBHomeView.cpp \ + views/IO/IOGenlistScenarioHomeView.cpp \ + views/IO/IOWIAnalogHomeView.cpp \ + views/IO/IOWOAnalogHomeView.cpp \ + views/IO/IOWITempHomeView.cpp \ + views/IO/IOWOVoletHomeView.cpp \ + views/IO/IOWOVoletSmartHomeView.cpp \ + views/IO/IOGenlistRoomGroup.cpp \ + views/GenlistItems/GenlistItemPlaylist.cpp \ + views/GenlistItems/GenlistItemAlbum.cpp \ + views/GenlistItems/GenlistItemAlbumHeader.cpp \ + views/GenlistItems/GenlistItemTrack.cpp \ + views/GenlistItems/GenlistItemArtist.cpp \ + views/GenlistItems/GenlistItemYear.cpp \ + views/GenlistItems/GenlistItemGenre.cpp \ + views/GenlistItems/GenlistItemBrowserPlaylist.cpp \ + views/GenlistItems/GenlistItemPlaylistHeader.cpp \ + views/GenlistItems/GenlistItemRadio.cpp \ + views/GenlistItems/GenlistItemScenarioSchedule.cpp \ + views/GenlistItems/GenlistItemScenarioScheduleTime.cpp \ + views/GenlistItems/GenlistItemScenarioAction.cpp \ + views/GenlistItems/GenlistItemScenarioHeader.cpp \ + views/PagingView.cpp \ + views/KeyboardView.cpp \ + EvasSmart.cpp \ + views/ActivityCameraListView.cpp \ + views/ActivityCameraSelectView.cpp \ + views/ActivityAudioListView.cpp \ + views/ActivityAudioPlayerObject.cpp \ + controllers/ActivityCameraListController.cpp \ + controllers/ActivityCameraSelectController.cpp \ + controllers/ActivityAudioListController.cpp \ + views/ActivityEditScenarioView.cpp \ + views/ActivityScheduleScenarioView.cpp \ + controllers/ActivityEditScenarioController.cpp \ + controllers/ActivityScheduleScenarioController.cpp \ + Modules.cpp \ + views/Widget.cpp \ + views/ActivityKeyboardView.h \ + views/ActivityMediaMenuView.h \ + views/ActivityScenariosView.h \ + views/ActivityScheduleScenarioView.h \ + views/ActivityWebView.h \ + views/ActivityConfigView.h \ + views/ActivityWidgetsView.h \ + views/MainContentView.h \ + views/PagingView.h \ + views/ActivityCameraListView.h \ + views/ActivityCameraSelectView.h \ + views/BaseView.h \ + views/MainMenuView.h \ + views/ActivityView.h \ + views/ActivityMediaView.h \ + views/KeyboardView.h \ + views/GenlistItems/GenlistItemBase.h \ + views/GenlistItems/GenlistItemArtist.h \ + views/GenlistItems/GenlistItemRadio.h \ + views/GenlistItems/GenlistItemScenarioScheduleTime.h \ + views/GenlistItems/GenlistItemScenarioHeader.h \ + views/GenlistItems/GenlistItemBrowserPlaylist.h \ + views/GenlistItems/GenlistItemAlbum.h \ + views/GenlistItems/GenlistItemScenarioSchedule.h \ + views/GenlistItems/GenlistItemSimpleHeader.h \ + views/GenlistItems/GenlistItemSimple.h \ + views/GenlistItems/GenlistItemGenre.h \ + views/GenlistItems/GenlistItemPlaylist.h \ + views/GenlistItems/GenlistItemScenarioAction.h \ + views/GenlistItems/GenlistItemYear.h \ + views/GenlistItems/GenlistItemPlaylistHeader.h \ + views/GenlistItems/GenlistItemAlbumHeader.h \ + views/GenlistItems/GenlistItemTrack.h \ + views/WebKitError.h \ + views/Widget.h \ + views/ActivityAudioListView.h \ + views/IO/IOWODaliHomeView.h \ + views/IO/IOWODigitalHomeView.h \ + views/IO/IOWODaliRVBHomeView.h \ + views/IO/IOScenarioHomeView.h \ + views/IO/IOWIAnalogHomeView.h \ + views/IO/IOGenlistRoomGroup.h \ + views/IO/IOInternalBoolHomeView.h \ + views/IO/IOWOAnalogHomeView.h \ + views/IO/IOInternalStringHomeView.h \ + views/IO/IOGenlistScenarioHomeView.h \ + views/IO/IOWOVoletSmartHomeView.h \ + views/IO/IOWOVoletHomeView.h \ + views/IO/IOWITempHomeView.h \ + views/IO/IOInternalIntHomeView.h \ + views/ActivityAudioPlayerObject.h \ + views/ActivityHomeView.h \ + views/IOView.h \ + views/ActivityEditScenarioView.h \ + controllers/ActivityAudioListController.h \ + controllers/ActivityKeyboardController.h \ + controllers/ActivityMediaController.h \ + controllers/ActivityWidgetsController.h \ + controllers/ActivityHomeController.h \ + controllers/ActivityWebController.h \ + controllers/ActivityMediaMenuController.h \ + controllers/ActivityController.h \ + controllers/ActivityEditScenarioController.h \ + controllers/ActivityCameraListController.h \ + controllers/ActivityScenariosController.h \ + controllers/ActivityConfigController.h \ + controllers/ActivityScheduleScenarioController.h \ + controllers/ApplicationController.h \ + controllers/ActivityCameraSelectController.h \ + CalaosListener.h \ + CommonUtils.h \ + models/ScenarioModel.h \ + models/CalaosModel.h \ + models/AudioModel.h \ + models/CameraModel.h \ + models/RoomModel.h \ + CalaosConnection.h \ + EdjeObject.h \ + Modules.h \ + CalaosDiscover.h \ + EvasSmart.h \ + ApplicationMain.h + +calaos_home_LDADD = \ + $(top_builddir)/src/lib/libcalaos_common.la \ + @CALAOS_HOME_LIBS@ \ + @CALAOS_COMMON_LIBS@ diff --git a/src/bin/calaos_home/Makefile.in b/src/bin/calaos_home/Makefile.in new file mode 100644 index 00000000..3b9eb86c --- /dev/null +++ b/src/bin/calaos_home/Makefile.in @@ -0,0 +1,1913 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = calaos_home$(EXEEXT) +subdir = src/bin/calaos_home +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_calaos_home_OBJECTS = main.$(OBJEXT) CommonUtils.$(OBJEXT) \ + BaseView.$(OBJEXT) MainContentView.$(OBJEXT) \ + ApplicationMain.$(OBJEXT) ApplicationController.$(OBJEXT) \ + ActivityView.$(OBJEXT) ActivityHomeView.$(OBJEXT) \ + ActivityMediaView.$(OBJEXT) ActivityScenariosView.$(OBJEXT) \ + ActivityConfigView.$(OBJEXT) ActivityWidgetsView.$(OBJEXT) \ + ActivityMediaMenuView.$(OBJEXT) ActivityKeyboardView.$(OBJEXT) \ + ActivityWebView.$(OBJEXT) ActivityController.$(OBJEXT) \ + ActivityHomeController.$(OBJEXT) \ + ActivityMediaController.$(OBJEXT) \ + ActivityScenariosController.$(OBJEXT) \ + ActivityConfigController.$(OBJEXT) \ + ActivityWidgetsController.$(OBJEXT) \ + ActivityMediaMenuController.$(OBJEXT) \ + ActivityKeyboardController.$(OBJEXT) \ + ActivityWebController.$(OBJEXT) IOScenarioHomeView.$(OBJEXT) \ + IOView.$(OBJEXT) EdjeObject.$(OBJEXT) MainMenuView.$(OBJEXT) \ + CalaosDiscover.$(OBJEXT) CalaosConnection.$(OBJEXT) \ + CalaosListener.$(OBJEXT) CalaosModel.$(OBJEXT) \ + AudioModel.$(OBJEXT) CameraModel.$(OBJEXT) RoomModel.$(OBJEXT) \ + ScenarioModel.$(OBJEXT) GenlistItemBase.$(OBJEXT) \ + GenlistItemSimple.$(OBJEXT) GenlistItemSimpleHeader.$(OBJEXT) \ + IOWODigitalHomeView.$(OBJEXT) IOWODaliHomeView.$(OBJEXT) \ + IOInternalBoolHomeView.$(OBJEXT) \ + IOInternalIntHomeView.$(OBJEXT) \ + IOInternalStringHomeView.$(OBJEXT) \ + IOWODaliRVBHomeView.$(OBJEXT) \ + IOGenlistScenarioHomeView.$(OBJEXT) \ + IOWIAnalogHomeView.$(OBJEXT) IOWOAnalogHomeView.$(OBJEXT) \ + IOWITempHomeView.$(OBJEXT) IOWOVoletHomeView.$(OBJEXT) \ + IOWOVoletSmartHomeView.$(OBJEXT) IOGenlistRoomGroup.$(OBJEXT) \ + GenlistItemPlaylist.$(OBJEXT) GenlistItemAlbum.$(OBJEXT) \ + GenlistItemAlbumHeader.$(OBJEXT) GenlistItemTrack.$(OBJEXT) \ + GenlistItemArtist.$(OBJEXT) GenlistItemYear.$(OBJEXT) \ + GenlistItemGenre.$(OBJEXT) \ + GenlistItemBrowserPlaylist.$(OBJEXT) \ + GenlistItemPlaylistHeader.$(OBJEXT) GenlistItemRadio.$(OBJEXT) \ + GenlistItemScenarioSchedule.$(OBJEXT) \ + GenlistItemScenarioScheduleTime.$(OBJEXT) \ + GenlistItemScenarioAction.$(OBJEXT) \ + GenlistItemScenarioHeader.$(OBJEXT) PagingView.$(OBJEXT) \ + KeyboardView.$(OBJEXT) EvasSmart.$(OBJEXT) \ + ActivityCameraListView.$(OBJEXT) \ + ActivityCameraSelectView.$(OBJEXT) \ + ActivityAudioListView.$(OBJEXT) \ + ActivityAudioPlayerObject.$(OBJEXT) \ + ActivityCameraListController.$(OBJEXT) \ + ActivityCameraSelectController.$(OBJEXT) \ + ActivityAudioListController.$(OBJEXT) \ + ActivityEditScenarioView.$(OBJEXT) \ + ActivityScheduleScenarioView.$(OBJEXT) \ + ActivityEditScenarioController.$(OBJEXT) \ + ActivityScheduleScenarioController.$(OBJEXT) Modules.$(OBJEXT) \ + Widget.$(OBJEXT) +calaos_home_OBJECTS = $(am_calaos_home_OBJECTS) +calaos_home_DEPENDENCIES = \ + $(top_builddir)/src/lib/libcalaos_common.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(calaos_home_SOURCES) +DIST_SOURCES = $(calaos_home_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MAINTAINERCLEANFILES = Makefile.in +AM_CXXFLAGS = \ +-I. \ +-I./Rules \ +-I./IPCam \ +-I./Audio \ +-I./IO \ +-I./IO/libmbus \ +-I./Scenario \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/calaos\" \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/LuaScript \ +-I$(top_srcdir)/src/bin/calaos_home/controllers \ +-I$(top_srcdir)/src/bin/calaos_home/views \ +-I$(top_srcdir)/src/bin/calaos_home/views/GenlistItems \ +-I$(top_srcdir)/src/bin/calaos_home/views/IO \ +-I$(top_srcdir)/src/bin/calaos_home/models \ +@CALAOS_COMMON_CFLAGS@ \ +@CALAOS_HOME_CFLAGS@ \ +-DETC_DIR=\"/etc\" \ +-DLIBMBUS \ +-DTHEME_DIR=\"/usr/share/calaos\" + +calaos_home_SOURCES = \ + main.cpp \ + CommonUtils.cpp \ + views/BaseView.cpp \ + views/MainContentView.cpp \ + ApplicationMain.cpp \ + controllers/ApplicationController.cpp \ + views/ActivityView.cpp \ + views/ActivityHomeView.cpp \ + views/ActivityMediaView.cpp \ + views/ActivityScenariosView.cpp \ + views/ActivityConfigView.cpp \ + views/ActivityWidgetsView.cpp \ + views/ActivityMediaMenuView.cpp \ + views/ActivityKeyboardView.cpp \ + views/ActivityWebView.cpp \ + controllers/ActivityController.cpp \ + controllers/ActivityHomeController.cpp \ + controllers/ActivityMediaController.cpp \ + controllers/ActivityScenariosController.cpp \ + controllers/ActivityConfigController.cpp \ + controllers/ActivityWidgetsController.cpp \ + controllers/ActivityMediaMenuController.cpp \ + controllers/ActivityKeyboardController.cpp \ + controllers/ActivityWebController.cpp \ + views/IO/IOScenarioHomeView.cpp \ + views/IOView.cpp \ + EdjeObject.cpp \ + views/MainMenuView.cpp \ + CalaosDiscover.cpp \ + CalaosConnection.cpp \ + CalaosListener.cpp \ + models/CalaosModel.cpp \ + models/AudioModel.cpp \ + models/CameraModel.cpp \ + models/RoomModel.cpp \ + models/ScenarioModel.cpp \ + views/GenlistItems/GenlistItemBase.cpp \ + views/GenlistItems/GenlistItemSimple.cpp \ + views/GenlistItems/GenlistItemSimpleHeader.cpp \ + views/IO/IOWODigitalHomeView.cpp \ + views/IO/IOWODaliHomeView.cpp \ + views/IO/IOInternalBoolHomeView.cpp \ + views/IO/IOInternalIntHomeView.cpp \ + views/IO/IOInternalStringHomeView.cpp \ + views/IO/IOWODaliRVBHomeView.cpp \ + views/IO/IOGenlistScenarioHomeView.cpp \ + views/IO/IOWIAnalogHomeView.cpp \ + views/IO/IOWOAnalogHomeView.cpp \ + views/IO/IOWITempHomeView.cpp \ + views/IO/IOWOVoletHomeView.cpp \ + views/IO/IOWOVoletSmartHomeView.cpp \ + views/IO/IOGenlistRoomGroup.cpp \ + views/GenlistItems/GenlistItemPlaylist.cpp \ + views/GenlistItems/GenlistItemAlbum.cpp \ + views/GenlistItems/GenlistItemAlbumHeader.cpp \ + views/GenlistItems/GenlistItemTrack.cpp \ + views/GenlistItems/GenlistItemArtist.cpp \ + views/GenlistItems/GenlistItemYear.cpp \ + views/GenlistItems/GenlistItemGenre.cpp \ + views/GenlistItems/GenlistItemBrowserPlaylist.cpp \ + views/GenlistItems/GenlistItemPlaylistHeader.cpp \ + views/GenlistItems/GenlistItemRadio.cpp \ + views/GenlistItems/GenlistItemScenarioSchedule.cpp \ + views/GenlistItems/GenlistItemScenarioScheduleTime.cpp \ + views/GenlistItems/GenlistItemScenarioAction.cpp \ + views/GenlistItems/GenlistItemScenarioHeader.cpp \ + views/PagingView.cpp \ + views/KeyboardView.cpp \ + EvasSmart.cpp \ + views/ActivityCameraListView.cpp \ + views/ActivityCameraSelectView.cpp \ + views/ActivityAudioListView.cpp \ + views/ActivityAudioPlayerObject.cpp \ + controllers/ActivityCameraListController.cpp \ + controllers/ActivityCameraSelectController.cpp \ + controllers/ActivityAudioListController.cpp \ + views/ActivityEditScenarioView.cpp \ + views/ActivityScheduleScenarioView.cpp \ + controllers/ActivityEditScenarioController.cpp \ + controllers/ActivityScheduleScenarioController.cpp \ + Modules.cpp \ + views/Widget.cpp \ + views/ActivityKeyboardView.h \ + views/ActivityMediaMenuView.h \ + views/ActivityScenariosView.h \ + views/ActivityScheduleScenarioView.h \ + views/ActivityWebView.h \ + views/ActivityConfigView.h \ + views/ActivityWidgetsView.h \ + views/MainContentView.h \ + views/PagingView.h \ + views/ActivityCameraListView.h \ + views/ActivityCameraSelectView.h \ + views/BaseView.h \ + views/MainMenuView.h \ + views/ActivityView.h \ + views/ActivityMediaView.h \ + views/KeyboardView.h \ + views/GenlistItems/GenlistItemBase.h \ + views/GenlistItems/GenlistItemArtist.h \ + views/GenlistItems/GenlistItemRadio.h \ + views/GenlistItems/GenlistItemScenarioScheduleTime.h \ + views/GenlistItems/GenlistItemScenarioHeader.h \ + views/GenlistItems/GenlistItemBrowserPlaylist.h \ + views/GenlistItems/GenlistItemAlbum.h \ + views/GenlistItems/GenlistItemScenarioSchedule.h \ + views/GenlistItems/GenlistItemSimpleHeader.h \ + views/GenlistItems/GenlistItemSimple.h \ + views/GenlistItems/GenlistItemGenre.h \ + views/GenlistItems/GenlistItemPlaylist.h \ + views/GenlistItems/GenlistItemScenarioAction.h \ + views/GenlistItems/GenlistItemYear.h \ + views/GenlistItems/GenlistItemPlaylistHeader.h \ + views/GenlistItems/GenlistItemAlbumHeader.h \ + views/GenlistItems/GenlistItemTrack.h \ + views/WebKitError.h \ + views/Widget.h \ + views/ActivityAudioListView.h \ + views/IO/IOWODaliHomeView.h \ + views/IO/IOWODigitalHomeView.h \ + views/IO/IOWODaliRVBHomeView.h \ + views/IO/IOScenarioHomeView.h \ + views/IO/IOWIAnalogHomeView.h \ + views/IO/IOGenlistRoomGroup.h \ + views/IO/IOInternalBoolHomeView.h \ + views/IO/IOWOAnalogHomeView.h \ + views/IO/IOInternalStringHomeView.h \ + views/IO/IOGenlistScenarioHomeView.h \ + views/IO/IOWOVoletSmartHomeView.h \ + views/IO/IOWOVoletHomeView.h \ + views/IO/IOWITempHomeView.h \ + views/IO/IOInternalIntHomeView.h \ + views/ActivityAudioPlayerObject.h \ + views/ActivityHomeView.h \ + views/IOView.h \ + views/ActivityEditScenarioView.h \ + controllers/ActivityAudioListController.h \ + controllers/ActivityKeyboardController.h \ + controllers/ActivityMediaController.h \ + controllers/ActivityWidgetsController.h \ + controllers/ActivityHomeController.h \ + controllers/ActivityWebController.h \ + controllers/ActivityMediaMenuController.h \ + controllers/ActivityController.h \ + controllers/ActivityEditScenarioController.h \ + controllers/ActivityCameraListController.h \ + controllers/ActivityScenariosController.h \ + controllers/ActivityConfigController.h \ + controllers/ActivityScheduleScenarioController.h \ + controllers/ApplicationController.h \ + controllers/ActivityCameraSelectController.h \ + CalaosListener.h \ + CommonUtils.h \ + models/ScenarioModel.h \ + models/CalaosModel.h \ + models/AudioModel.h \ + models/CameraModel.h \ + models/RoomModel.h \ + CalaosConnection.h \ + EdjeObject.h \ + Modules.h \ + CalaosDiscover.h \ + EvasSmart.h \ + ApplicationMain.h + +calaos_home_LDADD = \ + $(top_builddir)/src/lib/libcalaos_common.la \ + @CALAOS_HOME_LIBS@ \ + @CALAOS_COMMON_LIBS@ + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bin/calaos_home/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/bin/calaos_home/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +calaos_home$(EXEEXT): $(calaos_home_OBJECTS) $(calaos_home_DEPENDENCIES) $(EXTRA_calaos_home_DEPENDENCIES) + @rm -f calaos_home$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(calaos_home_OBJECTS) $(calaos_home_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityAudioListController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityAudioListView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityAudioPlayerObject.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityCameraListController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityCameraListView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityCameraSelectController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityCameraSelectView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityConfigController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityConfigView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityEditScenarioController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityEditScenarioView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityHomeController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityKeyboardController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityKeyboardView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityMediaController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityMediaMenuController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityMediaMenuView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityMediaView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityScenariosController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityScenariosView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityScheduleScenarioController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityScheduleScenarioView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityWebController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityWebView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityWidgetsController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActivityWidgetsView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ApplicationController.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ApplicationMain.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioModel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BaseView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CalaosConnection.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CalaosDiscover.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CalaosListener.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CalaosModel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CameraModel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CommonUtils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EdjeObject.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EvasSmart.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemAlbum.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemAlbumHeader.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemArtist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemBase.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemBrowserPlaylist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemGenre.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemPlaylist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemPlaylistHeader.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemRadio.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemScenarioAction.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemScenarioHeader.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemScenarioSchedule.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemScenarioScheduleTime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemSimple.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemSimpleHeader.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemTrack.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenlistItemYear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOGenlistRoomGroup.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOGenlistScenarioHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOInternalBoolHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOInternalIntHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOInternalStringHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOScenarioHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWIAnalogHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWITempHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWOAnalogHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWODaliHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWODaliRVBHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWODigitalHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWOVoletHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOWOVoletSmartHomeView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KeyboardView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MainContentView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MainMenuView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Modules.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PagingView.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RoomModel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScenarioModel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Widget.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +BaseView.o: views/BaseView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BaseView.o -MD -MP -MF $(DEPDIR)/BaseView.Tpo -c -o BaseView.o `test -f 'views/BaseView.cpp' || echo '$(srcdir)/'`views/BaseView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/BaseView.Tpo $(DEPDIR)/BaseView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/BaseView.cpp' object='BaseView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BaseView.o `test -f 'views/BaseView.cpp' || echo '$(srcdir)/'`views/BaseView.cpp + +BaseView.obj: views/BaseView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BaseView.obj -MD -MP -MF $(DEPDIR)/BaseView.Tpo -c -o BaseView.obj `if test -f 'views/BaseView.cpp'; then $(CYGPATH_W) 'views/BaseView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/BaseView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/BaseView.Tpo $(DEPDIR)/BaseView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/BaseView.cpp' object='BaseView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BaseView.obj `if test -f 'views/BaseView.cpp'; then $(CYGPATH_W) 'views/BaseView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/BaseView.cpp'; fi` + +MainContentView.o: views/MainContentView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MainContentView.o -MD -MP -MF $(DEPDIR)/MainContentView.Tpo -c -o MainContentView.o `test -f 'views/MainContentView.cpp' || echo '$(srcdir)/'`views/MainContentView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/MainContentView.Tpo $(DEPDIR)/MainContentView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/MainContentView.cpp' object='MainContentView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MainContentView.o `test -f 'views/MainContentView.cpp' || echo '$(srcdir)/'`views/MainContentView.cpp + +MainContentView.obj: views/MainContentView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MainContentView.obj -MD -MP -MF $(DEPDIR)/MainContentView.Tpo -c -o MainContentView.obj `if test -f 'views/MainContentView.cpp'; then $(CYGPATH_W) 'views/MainContentView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/MainContentView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/MainContentView.Tpo $(DEPDIR)/MainContentView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/MainContentView.cpp' object='MainContentView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MainContentView.obj `if test -f 'views/MainContentView.cpp'; then $(CYGPATH_W) 'views/MainContentView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/MainContentView.cpp'; fi` + +ApplicationController.o: controllers/ApplicationController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ApplicationController.o -MD -MP -MF $(DEPDIR)/ApplicationController.Tpo -c -o ApplicationController.o `test -f 'controllers/ApplicationController.cpp' || echo '$(srcdir)/'`controllers/ApplicationController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ApplicationController.Tpo $(DEPDIR)/ApplicationController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ApplicationController.cpp' object='ApplicationController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ApplicationController.o `test -f 'controllers/ApplicationController.cpp' || echo '$(srcdir)/'`controllers/ApplicationController.cpp + +ApplicationController.obj: controllers/ApplicationController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ApplicationController.obj -MD -MP -MF $(DEPDIR)/ApplicationController.Tpo -c -o ApplicationController.obj `if test -f 'controllers/ApplicationController.cpp'; then $(CYGPATH_W) 'controllers/ApplicationController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ApplicationController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ApplicationController.Tpo $(DEPDIR)/ApplicationController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ApplicationController.cpp' object='ApplicationController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ApplicationController.obj `if test -f 'controllers/ApplicationController.cpp'; then $(CYGPATH_W) 'controllers/ApplicationController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ApplicationController.cpp'; fi` + +ActivityView.o: views/ActivityView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityView.o -MD -MP -MF $(DEPDIR)/ActivityView.Tpo -c -o ActivityView.o `test -f 'views/ActivityView.cpp' || echo '$(srcdir)/'`views/ActivityView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityView.Tpo $(DEPDIR)/ActivityView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityView.cpp' object='ActivityView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityView.o `test -f 'views/ActivityView.cpp' || echo '$(srcdir)/'`views/ActivityView.cpp + +ActivityView.obj: views/ActivityView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityView.obj -MD -MP -MF $(DEPDIR)/ActivityView.Tpo -c -o ActivityView.obj `if test -f 'views/ActivityView.cpp'; then $(CYGPATH_W) 'views/ActivityView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityView.Tpo $(DEPDIR)/ActivityView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityView.cpp' object='ActivityView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityView.obj `if test -f 'views/ActivityView.cpp'; then $(CYGPATH_W) 'views/ActivityView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityView.cpp'; fi` + +ActivityHomeView.o: views/ActivityHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityHomeView.o -MD -MP -MF $(DEPDIR)/ActivityHomeView.Tpo -c -o ActivityHomeView.o `test -f 'views/ActivityHomeView.cpp' || echo '$(srcdir)/'`views/ActivityHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityHomeView.Tpo $(DEPDIR)/ActivityHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityHomeView.cpp' object='ActivityHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityHomeView.o `test -f 'views/ActivityHomeView.cpp' || echo '$(srcdir)/'`views/ActivityHomeView.cpp + +ActivityHomeView.obj: views/ActivityHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityHomeView.obj -MD -MP -MF $(DEPDIR)/ActivityHomeView.Tpo -c -o ActivityHomeView.obj `if test -f 'views/ActivityHomeView.cpp'; then $(CYGPATH_W) 'views/ActivityHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityHomeView.Tpo $(DEPDIR)/ActivityHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityHomeView.cpp' object='ActivityHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityHomeView.obj `if test -f 'views/ActivityHomeView.cpp'; then $(CYGPATH_W) 'views/ActivityHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityHomeView.cpp'; fi` + +ActivityMediaView.o: views/ActivityMediaView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaView.o -MD -MP -MF $(DEPDIR)/ActivityMediaView.Tpo -c -o ActivityMediaView.o `test -f 'views/ActivityMediaView.cpp' || echo '$(srcdir)/'`views/ActivityMediaView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaView.Tpo $(DEPDIR)/ActivityMediaView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityMediaView.cpp' object='ActivityMediaView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaView.o `test -f 'views/ActivityMediaView.cpp' || echo '$(srcdir)/'`views/ActivityMediaView.cpp + +ActivityMediaView.obj: views/ActivityMediaView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaView.obj -MD -MP -MF $(DEPDIR)/ActivityMediaView.Tpo -c -o ActivityMediaView.obj `if test -f 'views/ActivityMediaView.cpp'; then $(CYGPATH_W) 'views/ActivityMediaView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityMediaView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaView.Tpo $(DEPDIR)/ActivityMediaView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityMediaView.cpp' object='ActivityMediaView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaView.obj `if test -f 'views/ActivityMediaView.cpp'; then $(CYGPATH_W) 'views/ActivityMediaView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityMediaView.cpp'; fi` + +ActivityScenariosView.o: views/ActivityScenariosView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScenariosView.o -MD -MP -MF $(DEPDIR)/ActivityScenariosView.Tpo -c -o ActivityScenariosView.o `test -f 'views/ActivityScenariosView.cpp' || echo '$(srcdir)/'`views/ActivityScenariosView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScenariosView.Tpo $(DEPDIR)/ActivityScenariosView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityScenariosView.cpp' object='ActivityScenariosView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScenariosView.o `test -f 'views/ActivityScenariosView.cpp' || echo '$(srcdir)/'`views/ActivityScenariosView.cpp + +ActivityScenariosView.obj: views/ActivityScenariosView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScenariosView.obj -MD -MP -MF $(DEPDIR)/ActivityScenariosView.Tpo -c -o ActivityScenariosView.obj `if test -f 'views/ActivityScenariosView.cpp'; then $(CYGPATH_W) 'views/ActivityScenariosView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityScenariosView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScenariosView.Tpo $(DEPDIR)/ActivityScenariosView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityScenariosView.cpp' object='ActivityScenariosView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScenariosView.obj `if test -f 'views/ActivityScenariosView.cpp'; then $(CYGPATH_W) 'views/ActivityScenariosView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityScenariosView.cpp'; fi` + +ActivityConfigView.o: views/ActivityConfigView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityConfigView.o -MD -MP -MF $(DEPDIR)/ActivityConfigView.Tpo -c -o ActivityConfigView.o `test -f 'views/ActivityConfigView.cpp' || echo '$(srcdir)/'`views/ActivityConfigView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityConfigView.Tpo $(DEPDIR)/ActivityConfigView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityConfigView.cpp' object='ActivityConfigView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityConfigView.o `test -f 'views/ActivityConfigView.cpp' || echo '$(srcdir)/'`views/ActivityConfigView.cpp + +ActivityConfigView.obj: views/ActivityConfigView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityConfigView.obj -MD -MP -MF $(DEPDIR)/ActivityConfigView.Tpo -c -o ActivityConfigView.obj `if test -f 'views/ActivityConfigView.cpp'; then $(CYGPATH_W) 'views/ActivityConfigView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityConfigView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityConfigView.Tpo $(DEPDIR)/ActivityConfigView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityConfigView.cpp' object='ActivityConfigView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityConfigView.obj `if test -f 'views/ActivityConfigView.cpp'; then $(CYGPATH_W) 'views/ActivityConfigView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityConfigView.cpp'; fi` + +ActivityWidgetsView.o: views/ActivityWidgetsView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWidgetsView.o -MD -MP -MF $(DEPDIR)/ActivityWidgetsView.Tpo -c -o ActivityWidgetsView.o `test -f 'views/ActivityWidgetsView.cpp' || echo '$(srcdir)/'`views/ActivityWidgetsView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWidgetsView.Tpo $(DEPDIR)/ActivityWidgetsView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityWidgetsView.cpp' object='ActivityWidgetsView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWidgetsView.o `test -f 'views/ActivityWidgetsView.cpp' || echo '$(srcdir)/'`views/ActivityWidgetsView.cpp + +ActivityWidgetsView.obj: views/ActivityWidgetsView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWidgetsView.obj -MD -MP -MF $(DEPDIR)/ActivityWidgetsView.Tpo -c -o ActivityWidgetsView.obj `if test -f 'views/ActivityWidgetsView.cpp'; then $(CYGPATH_W) 'views/ActivityWidgetsView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityWidgetsView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWidgetsView.Tpo $(DEPDIR)/ActivityWidgetsView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityWidgetsView.cpp' object='ActivityWidgetsView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWidgetsView.obj `if test -f 'views/ActivityWidgetsView.cpp'; then $(CYGPATH_W) 'views/ActivityWidgetsView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityWidgetsView.cpp'; fi` + +ActivityMediaMenuView.o: views/ActivityMediaMenuView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaMenuView.o -MD -MP -MF $(DEPDIR)/ActivityMediaMenuView.Tpo -c -o ActivityMediaMenuView.o `test -f 'views/ActivityMediaMenuView.cpp' || echo '$(srcdir)/'`views/ActivityMediaMenuView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaMenuView.Tpo $(DEPDIR)/ActivityMediaMenuView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityMediaMenuView.cpp' object='ActivityMediaMenuView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaMenuView.o `test -f 'views/ActivityMediaMenuView.cpp' || echo '$(srcdir)/'`views/ActivityMediaMenuView.cpp + +ActivityMediaMenuView.obj: views/ActivityMediaMenuView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaMenuView.obj -MD -MP -MF $(DEPDIR)/ActivityMediaMenuView.Tpo -c -o ActivityMediaMenuView.obj `if test -f 'views/ActivityMediaMenuView.cpp'; then $(CYGPATH_W) 'views/ActivityMediaMenuView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityMediaMenuView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaMenuView.Tpo $(DEPDIR)/ActivityMediaMenuView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityMediaMenuView.cpp' object='ActivityMediaMenuView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaMenuView.obj `if test -f 'views/ActivityMediaMenuView.cpp'; then $(CYGPATH_W) 'views/ActivityMediaMenuView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityMediaMenuView.cpp'; fi` + +ActivityKeyboardView.o: views/ActivityKeyboardView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityKeyboardView.o -MD -MP -MF $(DEPDIR)/ActivityKeyboardView.Tpo -c -o ActivityKeyboardView.o `test -f 'views/ActivityKeyboardView.cpp' || echo '$(srcdir)/'`views/ActivityKeyboardView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityKeyboardView.Tpo $(DEPDIR)/ActivityKeyboardView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityKeyboardView.cpp' object='ActivityKeyboardView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityKeyboardView.o `test -f 'views/ActivityKeyboardView.cpp' || echo '$(srcdir)/'`views/ActivityKeyboardView.cpp + +ActivityKeyboardView.obj: views/ActivityKeyboardView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityKeyboardView.obj -MD -MP -MF $(DEPDIR)/ActivityKeyboardView.Tpo -c -o ActivityKeyboardView.obj `if test -f 'views/ActivityKeyboardView.cpp'; then $(CYGPATH_W) 'views/ActivityKeyboardView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityKeyboardView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityKeyboardView.Tpo $(DEPDIR)/ActivityKeyboardView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityKeyboardView.cpp' object='ActivityKeyboardView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityKeyboardView.obj `if test -f 'views/ActivityKeyboardView.cpp'; then $(CYGPATH_W) 'views/ActivityKeyboardView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityKeyboardView.cpp'; fi` + +ActivityWebView.o: views/ActivityWebView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWebView.o -MD -MP -MF $(DEPDIR)/ActivityWebView.Tpo -c -o ActivityWebView.o `test -f 'views/ActivityWebView.cpp' || echo '$(srcdir)/'`views/ActivityWebView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWebView.Tpo $(DEPDIR)/ActivityWebView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityWebView.cpp' object='ActivityWebView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWebView.o `test -f 'views/ActivityWebView.cpp' || echo '$(srcdir)/'`views/ActivityWebView.cpp + +ActivityWebView.obj: views/ActivityWebView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWebView.obj -MD -MP -MF $(DEPDIR)/ActivityWebView.Tpo -c -o ActivityWebView.obj `if test -f 'views/ActivityWebView.cpp'; then $(CYGPATH_W) 'views/ActivityWebView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityWebView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWebView.Tpo $(DEPDIR)/ActivityWebView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityWebView.cpp' object='ActivityWebView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWebView.obj `if test -f 'views/ActivityWebView.cpp'; then $(CYGPATH_W) 'views/ActivityWebView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityWebView.cpp'; fi` + +ActivityController.o: controllers/ActivityController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityController.o -MD -MP -MF $(DEPDIR)/ActivityController.Tpo -c -o ActivityController.o `test -f 'controllers/ActivityController.cpp' || echo '$(srcdir)/'`controllers/ActivityController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityController.Tpo $(DEPDIR)/ActivityController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityController.cpp' object='ActivityController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityController.o `test -f 'controllers/ActivityController.cpp' || echo '$(srcdir)/'`controllers/ActivityController.cpp + +ActivityController.obj: controllers/ActivityController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityController.obj -MD -MP -MF $(DEPDIR)/ActivityController.Tpo -c -o ActivityController.obj `if test -f 'controllers/ActivityController.cpp'; then $(CYGPATH_W) 'controllers/ActivityController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityController.Tpo $(DEPDIR)/ActivityController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityController.cpp' object='ActivityController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityController.obj `if test -f 'controllers/ActivityController.cpp'; then $(CYGPATH_W) 'controllers/ActivityController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityController.cpp'; fi` + +ActivityHomeController.o: controllers/ActivityHomeController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityHomeController.o -MD -MP -MF $(DEPDIR)/ActivityHomeController.Tpo -c -o ActivityHomeController.o `test -f 'controllers/ActivityHomeController.cpp' || echo '$(srcdir)/'`controllers/ActivityHomeController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityHomeController.Tpo $(DEPDIR)/ActivityHomeController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityHomeController.cpp' object='ActivityHomeController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityHomeController.o `test -f 'controllers/ActivityHomeController.cpp' || echo '$(srcdir)/'`controllers/ActivityHomeController.cpp + +ActivityHomeController.obj: controllers/ActivityHomeController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityHomeController.obj -MD -MP -MF $(DEPDIR)/ActivityHomeController.Tpo -c -o ActivityHomeController.obj `if test -f 'controllers/ActivityHomeController.cpp'; then $(CYGPATH_W) 'controllers/ActivityHomeController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityHomeController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityHomeController.Tpo $(DEPDIR)/ActivityHomeController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityHomeController.cpp' object='ActivityHomeController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityHomeController.obj `if test -f 'controllers/ActivityHomeController.cpp'; then $(CYGPATH_W) 'controllers/ActivityHomeController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityHomeController.cpp'; fi` + +ActivityMediaController.o: controllers/ActivityMediaController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaController.o -MD -MP -MF $(DEPDIR)/ActivityMediaController.Tpo -c -o ActivityMediaController.o `test -f 'controllers/ActivityMediaController.cpp' || echo '$(srcdir)/'`controllers/ActivityMediaController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaController.Tpo $(DEPDIR)/ActivityMediaController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityMediaController.cpp' object='ActivityMediaController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaController.o `test -f 'controllers/ActivityMediaController.cpp' || echo '$(srcdir)/'`controllers/ActivityMediaController.cpp + +ActivityMediaController.obj: controllers/ActivityMediaController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaController.obj -MD -MP -MF $(DEPDIR)/ActivityMediaController.Tpo -c -o ActivityMediaController.obj `if test -f 'controllers/ActivityMediaController.cpp'; then $(CYGPATH_W) 'controllers/ActivityMediaController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityMediaController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaController.Tpo $(DEPDIR)/ActivityMediaController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityMediaController.cpp' object='ActivityMediaController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaController.obj `if test -f 'controllers/ActivityMediaController.cpp'; then $(CYGPATH_W) 'controllers/ActivityMediaController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityMediaController.cpp'; fi` + +ActivityScenariosController.o: controllers/ActivityScenariosController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScenariosController.o -MD -MP -MF $(DEPDIR)/ActivityScenariosController.Tpo -c -o ActivityScenariosController.o `test -f 'controllers/ActivityScenariosController.cpp' || echo '$(srcdir)/'`controllers/ActivityScenariosController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScenariosController.Tpo $(DEPDIR)/ActivityScenariosController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityScenariosController.cpp' object='ActivityScenariosController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScenariosController.o `test -f 'controllers/ActivityScenariosController.cpp' || echo '$(srcdir)/'`controllers/ActivityScenariosController.cpp + +ActivityScenariosController.obj: controllers/ActivityScenariosController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScenariosController.obj -MD -MP -MF $(DEPDIR)/ActivityScenariosController.Tpo -c -o ActivityScenariosController.obj `if test -f 'controllers/ActivityScenariosController.cpp'; then $(CYGPATH_W) 'controllers/ActivityScenariosController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityScenariosController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScenariosController.Tpo $(DEPDIR)/ActivityScenariosController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityScenariosController.cpp' object='ActivityScenariosController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScenariosController.obj `if test -f 'controllers/ActivityScenariosController.cpp'; then $(CYGPATH_W) 'controllers/ActivityScenariosController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityScenariosController.cpp'; fi` + +ActivityConfigController.o: controllers/ActivityConfigController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityConfigController.o -MD -MP -MF $(DEPDIR)/ActivityConfigController.Tpo -c -o ActivityConfigController.o `test -f 'controllers/ActivityConfigController.cpp' || echo '$(srcdir)/'`controllers/ActivityConfigController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityConfigController.Tpo $(DEPDIR)/ActivityConfigController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityConfigController.cpp' object='ActivityConfigController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityConfigController.o `test -f 'controllers/ActivityConfigController.cpp' || echo '$(srcdir)/'`controllers/ActivityConfigController.cpp + +ActivityConfigController.obj: controllers/ActivityConfigController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityConfigController.obj -MD -MP -MF $(DEPDIR)/ActivityConfigController.Tpo -c -o ActivityConfigController.obj `if test -f 'controllers/ActivityConfigController.cpp'; then $(CYGPATH_W) 'controllers/ActivityConfigController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityConfigController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityConfigController.Tpo $(DEPDIR)/ActivityConfigController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityConfigController.cpp' object='ActivityConfigController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityConfigController.obj `if test -f 'controllers/ActivityConfigController.cpp'; then $(CYGPATH_W) 'controllers/ActivityConfigController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityConfigController.cpp'; fi` + +ActivityWidgetsController.o: controllers/ActivityWidgetsController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWidgetsController.o -MD -MP -MF $(DEPDIR)/ActivityWidgetsController.Tpo -c -o ActivityWidgetsController.o `test -f 'controllers/ActivityWidgetsController.cpp' || echo '$(srcdir)/'`controllers/ActivityWidgetsController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWidgetsController.Tpo $(DEPDIR)/ActivityWidgetsController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityWidgetsController.cpp' object='ActivityWidgetsController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWidgetsController.o `test -f 'controllers/ActivityWidgetsController.cpp' || echo '$(srcdir)/'`controllers/ActivityWidgetsController.cpp + +ActivityWidgetsController.obj: controllers/ActivityWidgetsController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWidgetsController.obj -MD -MP -MF $(DEPDIR)/ActivityWidgetsController.Tpo -c -o ActivityWidgetsController.obj `if test -f 'controllers/ActivityWidgetsController.cpp'; then $(CYGPATH_W) 'controllers/ActivityWidgetsController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityWidgetsController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWidgetsController.Tpo $(DEPDIR)/ActivityWidgetsController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityWidgetsController.cpp' object='ActivityWidgetsController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWidgetsController.obj `if test -f 'controllers/ActivityWidgetsController.cpp'; then $(CYGPATH_W) 'controllers/ActivityWidgetsController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityWidgetsController.cpp'; fi` + +ActivityMediaMenuController.o: controllers/ActivityMediaMenuController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaMenuController.o -MD -MP -MF $(DEPDIR)/ActivityMediaMenuController.Tpo -c -o ActivityMediaMenuController.o `test -f 'controllers/ActivityMediaMenuController.cpp' || echo '$(srcdir)/'`controllers/ActivityMediaMenuController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaMenuController.Tpo $(DEPDIR)/ActivityMediaMenuController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityMediaMenuController.cpp' object='ActivityMediaMenuController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaMenuController.o `test -f 'controllers/ActivityMediaMenuController.cpp' || echo '$(srcdir)/'`controllers/ActivityMediaMenuController.cpp + +ActivityMediaMenuController.obj: controllers/ActivityMediaMenuController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityMediaMenuController.obj -MD -MP -MF $(DEPDIR)/ActivityMediaMenuController.Tpo -c -o ActivityMediaMenuController.obj `if test -f 'controllers/ActivityMediaMenuController.cpp'; then $(CYGPATH_W) 'controllers/ActivityMediaMenuController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityMediaMenuController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityMediaMenuController.Tpo $(DEPDIR)/ActivityMediaMenuController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityMediaMenuController.cpp' object='ActivityMediaMenuController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityMediaMenuController.obj `if test -f 'controllers/ActivityMediaMenuController.cpp'; then $(CYGPATH_W) 'controllers/ActivityMediaMenuController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityMediaMenuController.cpp'; fi` + +ActivityKeyboardController.o: controllers/ActivityKeyboardController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityKeyboardController.o -MD -MP -MF $(DEPDIR)/ActivityKeyboardController.Tpo -c -o ActivityKeyboardController.o `test -f 'controllers/ActivityKeyboardController.cpp' || echo '$(srcdir)/'`controllers/ActivityKeyboardController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityKeyboardController.Tpo $(DEPDIR)/ActivityKeyboardController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityKeyboardController.cpp' object='ActivityKeyboardController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityKeyboardController.o `test -f 'controllers/ActivityKeyboardController.cpp' || echo '$(srcdir)/'`controllers/ActivityKeyboardController.cpp + +ActivityKeyboardController.obj: controllers/ActivityKeyboardController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityKeyboardController.obj -MD -MP -MF $(DEPDIR)/ActivityKeyboardController.Tpo -c -o ActivityKeyboardController.obj `if test -f 'controllers/ActivityKeyboardController.cpp'; then $(CYGPATH_W) 'controllers/ActivityKeyboardController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityKeyboardController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityKeyboardController.Tpo $(DEPDIR)/ActivityKeyboardController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityKeyboardController.cpp' object='ActivityKeyboardController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityKeyboardController.obj `if test -f 'controllers/ActivityKeyboardController.cpp'; then $(CYGPATH_W) 'controllers/ActivityKeyboardController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityKeyboardController.cpp'; fi` + +ActivityWebController.o: controllers/ActivityWebController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWebController.o -MD -MP -MF $(DEPDIR)/ActivityWebController.Tpo -c -o ActivityWebController.o `test -f 'controllers/ActivityWebController.cpp' || echo '$(srcdir)/'`controllers/ActivityWebController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWebController.Tpo $(DEPDIR)/ActivityWebController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityWebController.cpp' object='ActivityWebController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWebController.o `test -f 'controllers/ActivityWebController.cpp' || echo '$(srcdir)/'`controllers/ActivityWebController.cpp + +ActivityWebController.obj: controllers/ActivityWebController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityWebController.obj -MD -MP -MF $(DEPDIR)/ActivityWebController.Tpo -c -o ActivityWebController.obj `if test -f 'controllers/ActivityWebController.cpp'; then $(CYGPATH_W) 'controllers/ActivityWebController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityWebController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityWebController.Tpo $(DEPDIR)/ActivityWebController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityWebController.cpp' object='ActivityWebController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityWebController.obj `if test -f 'controllers/ActivityWebController.cpp'; then $(CYGPATH_W) 'controllers/ActivityWebController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityWebController.cpp'; fi` + +IOScenarioHomeView.o: views/IO/IOScenarioHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOScenarioHomeView.o -MD -MP -MF $(DEPDIR)/IOScenarioHomeView.Tpo -c -o IOScenarioHomeView.o `test -f 'views/IO/IOScenarioHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOScenarioHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOScenarioHomeView.Tpo $(DEPDIR)/IOScenarioHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOScenarioHomeView.cpp' object='IOScenarioHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOScenarioHomeView.o `test -f 'views/IO/IOScenarioHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOScenarioHomeView.cpp + +IOScenarioHomeView.obj: views/IO/IOScenarioHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOScenarioHomeView.obj -MD -MP -MF $(DEPDIR)/IOScenarioHomeView.Tpo -c -o IOScenarioHomeView.obj `if test -f 'views/IO/IOScenarioHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOScenarioHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOScenarioHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOScenarioHomeView.Tpo $(DEPDIR)/IOScenarioHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOScenarioHomeView.cpp' object='IOScenarioHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOScenarioHomeView.obj `if test -f 'views/IO/IOScenarioHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOScenarioHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOScenarioHomeView.cpp'; fi` + +IOView.o: views/IOView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOView.o -MD -MP -MF $(DEPDIR)/IOView.Tpo -c -o IOView.o `test -f 'views/IOView.cpp' || echo '$(srcdir)/'`views/IOView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOView.Tpo $(DEPDIR)/IOView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IOView.cpp' object='IOView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOView.o `test -f 'views/IOView.cpp' || echo '$(srcdir)/'`views/IOView.cpp + +IOView.obj: views/IOView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOView.obj -MD -MP -MF $(DEPDIR)/IOView.Tpo -c -o IOView.obj `if test -f 'views/IOView.cpp'; then $(CYGPATH_W) 'views/IOView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IOView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOView.Tpo $(DEPDIR)/IOView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IOView.cpp' object='IOView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOView.obj `if test -f 'views/IOView.cpp'; then $(CYGPATH_W) 'views/IOView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IOView.cpp'; fi` + +MainMenuView.o: views/MainMenuView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MainMenuView.o -MD -MP -MF $(DEPDIR)/MainMenuView.Tpo -c -o MainMenuView.o `test -f 'views/MainMenuView.cpp' || echo '$(srcdir)/'`views/MainMenuView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/MainMenuView.Tpo $(DEPDIR)/MainMenuView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/MainMenuView.cpp' object='MainMenuView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MainMenuView.o `test -f 'views/MainMenuView.cpp' || echo '$(srcdir)/'`views/MainMenuView.cpp + +MainMenuView.obj: views/MainMenuView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MainMenuView.obj -MD -MP -MF $(DEPDIR)/MainMenuView.Tpo -c -o MainMenuView.obj `if test -f 'views/MainMenuView.cpp'; then $(CYGPATH_W) 'views/MainMenuView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/MainMenuView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/MainMenuView.Tpo $(DEPDIR)/MainMenuView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/MainMenuView.cpp' object='MainMenuView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MainMenuView.obj `if test -f 'views/MainMenuView.cpp'; then $(CYGPATH_W) 'views/MainMenuView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/MainMenuView.cpp'; fi` + +CalaosModel.o: models/CalaosModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CalaosModel.o -MD -MP -MF $(DEPDIR)/CalaosModel.Tpo -c -o CalaosModel.o `test -f 'models/CalaosModel.cpp' || echo '$(srcdir)/'`models/CalaosModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CalaosModel.Tpo $(DEPDIR)/CalaosModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/CalaosModel.cpp' object='CalaosModel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CalaosModel.o `test -f 'models/CalaosModel.cpp' || echo '$(srcdir)/'`models/CalaosModel.cpp + +CalaosModel.obj: models/CalaosModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CalaosModel.obj -MD -MP -MF $(DEPDIR)/CalaosModel.Tpo -c -o CalaosModel.obj `if test -f 'models/CalaosModel.cpp'; then $(CYGPATH_W) 'models/CalaosModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/CalaosModel.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CalaosModel.Tpo $(DEPDIR)/CalaosModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/CalaosModel.cpp' object='CalaosModel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CalaosModel.obj `if test -f 'models/CalaosModel.cpp'; then $(CYGPATH_W) 'models/CalaosModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/CalaosModel.cpp'; fi` + +AudioModel.o: models/AudioModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioModel.o -MD -MP -MF $(DEPDIR)/AudioModel.Tpo -c -o AudioModel.o `test -f 'models/AudioModel.cpp' || echo '$(srcdir)/'`models/AudioModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioModel.Tpo $(DEPDIR)/AudioModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/AudioModel.cpp' object='AudioModel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioModel.o `test -f 'models/AudioModel.cpp' || echo '$(srcdir)/'`models/AudioModel.cpp + +AudioModel.obj: models/AudioModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioModel.obj -MD -MP -MF $(DEPDIR)/AudioModel.Tpo -c -o AudioModel.obj `if test -f 'models/AudioModel.cpp'; then $(CYGPATH_W) 'models/AudioModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/AudioModel.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioModel.Tpo $(DEPDIR)/AudioModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/AudioModel.cpp' object='AudioModel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioModel.obj `if test -f 'models/AudioModel.cpp'; then $(CYGPATH_W) 'models/AudioModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/AudioModel.cpp'; fi` + +CameraModel.o: models/CameraModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CameraModel.o -MD -MP -MF $(DEPDIR)/CameraModel.Tpo -c -o CameraModel.o `test -f 'models/CameraModel.cpp' || echo '$(srcdir)/'`models/CameraModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CameraModel.Tpo $(DEPDIR)/CameraModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/CameraModel.cpp' object='CameraModel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CameraModel.o `test -f 'models/CameraModel.cpp' || echo '$(srcdir)/'`models/CameraModel.cpp + +CameraModel.obj: models/CameraModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CameraModel.obj -MD -MP -MF $(DEPDIR)/CameraModel.Tpo -c -o CameraModel.obj `if test -f 'models/CameraModel.cpp'; then $(CYGPATH_W) 'models/CameraModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/CameraModel.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CameraModel.Tpo $(DEPDIR)/CameraModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/CameraModel.cpp' object='CameraModel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CameraModel.obj `if test -f 'models/CameraModel.cpp'; then $(CYGPATH_W) 'models/CameraModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/CameraModel.cpp'; fi` + +RoomModel.o: models/RoomModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RoomModel.o -MD -MP -MF $(DEPDIR)/RoomModel.Tpo -c -o RoomModel.o `test -f 'models/RoomModel.cpp' || echo '$(srcdir)/'`models/RoomModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/RoomModel.Tpo $(DEPDIR)/RoomModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/RoomModel.cpp' object='RoomModel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RoomModel.o `test -f 'models/RoomModel.cpp' || echo '$(srcdir)/'`models/RoomModel.cpp + +RoomModel.obj: models/RoomModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RoomModel.obj -MD -MP -MF $(DEPDIR)/RoomModel.Tpo -c -o RoomModel.obj `if test -f 'models/RoomModel.cpp'; then $(CYGPATH_W) 'models/RoomModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/RoomModel.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/RoomModel.Tpo $(DEPDIR)/RoomModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/RoomModel.cpp' object='RoomModel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RoomModel.obj `if test -f 'models/RoomModel.cpp'; then $(CYGPATH_W) 'models/RoomModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/RoomModel.cpp'; fi` + +ScenarioModel.o: models/ScenarioModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ScenarioModel.o -MD -MP -MF $(DEPDIR)/ScenarioModel.Tpo -c -o ScenarioModel.o `test -f 'models/ScenarioModel.cpp' || echo '$(srcdir)/'`models/ScenarioModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ScenarioModel.Tpo $(DEPDIR)/ScenarioModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/ScenarioModel.cpp' object='ScenarioModel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ScenarioModel.o `test -f 'models/ScenarioModel.cpp' || echo '$(srcdir)/'`models/ScenarioModel.cpp + +ScenarioModel.obj: models/ScenarioModel.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ScenarioModel.obj -MD -MP -MF $(DEPDIR)/ScenarioModel.Tpo -c -o ScenarioModel.obj `if test -f 'models/ScenarioModel.cpp'; then $(CYGPATH_W) 'models/ScenarioModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/ScenarioModel.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ScenarioModel.Tpo $(DEPDIR)/ScenarioModel.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='models/ScenarioModel.cpp' object='ScenarioModel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ScenarioModel.obj `if test -f 'models/ScenarioModel.cpp'; then $(CYGPATH_W) 'models/ScenarioModel.cpp'; else $(CYGPATH_W) '$(srcdir)/models/ScenarioModel.cpp'; fi` + +GenlistItemBase.o: views/GenlistItems/GenlistItemBase.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemBase.o -MD -MP -MF $(DEPDIR)/GenlistItemBase.Tpo -c -o GenlistItemBase.o `test -f 'views/GenlistItems/GenlistItemBase.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemBase.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemBase.Tpo $(DEPDIR)/GenlistItemBase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemBase.cpp' object='GenlistItemBase.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemBase.o `test -f 'views/GenlistItems/GenlistItemBase.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemBase.cpp + +GenlistItemBase.obj: views/GenlistItems/GenlistItemBase.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemBase.obj -MD -MP -MF $(DEPDIR)/GenlistItemBase.Tpo -c -o GenlistItemBase.obj `if test -f 'views/GenlistItems/GenlistItemBase.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemBase.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemBase.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemBase.Tpo $(DEPDIR)/GenlistItemBase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemBase.cpp' object='GenlistItemBase.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemBase.obj `if test -f 'views/GenlistItems/GenlistItemBase.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemBase.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemBase.cpp'; fi` + +GenlistItemSimple.o: views/GenlistItems/GenlistItemSimple.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemSimple.o -MD -MP -MF $(DEPDIR)/GenlistItemSimple.Tpo -c -o GenlistItemSimple.o `test -f 'views/GenlistItems/GenlistItemSimple.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemSimple.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemSimple.Tpo $(DEPDIR)/GenlistItemSimple.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemSimple.cpp' object='GenlistItemSimple.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemSimple.o `test -f 'views/GenlistItems/GenlistItemSimple.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemSimple.cpp + +GenlistItemSimple.obj: views/GenlistItems/GenlistItemSimple.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemSimple.obj -MD -MP -MF $(DEPDIR)/GenlistItemSimple.Tpo -c -o GenlistItemSimple.obj `if test -f 'views/GenlistItems/GenlistItemSimple.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemSimple.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemSimple.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemSimple.Tpo $(DEPDIR)/GenlistItemSimple.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemSimple.cpp' object='GenlistItemSimple.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemSimple.obj `if test -f 'views/GenlistItems/GenlistItemSimple.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemSimple.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemSimple.cpp'; fi` + +GenlistItemSimpleHeader.o: views/GenlistItems/GenlistItemSimpleHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemSimpleHeader.o -MD -MP -MF $(DEPDIR)/GenlistItemSimpleHeader.Tpo -c -o GenlistItemSimpleHeader.o `test -f 'views/GenlistItems/GenlistItemSimpleHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemSimpleHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemSimpleHeader.Tpo $(DEPDIR)/GenlistItemSimpleHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemSimpleHeader.cpp' object='GenlistItemSimpleHeader.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemSimpleHeader.o `test -f 'views/GenlistItems/GenlistItemSimpleHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemSimpleHeader.cpp + +GenlistItemSimpleHeader.obj: views/GenlistItems/GenlistItemSimpleHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemSimpleHeader.obj -MD -MP -MF $(DEPDIR)/GenlistItemSimpleHeader.Tpo -c -o GenlistItemSimpleHeader.obj `if test -f 'views/GenlistItems/GenlistItemSimpleHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemSimpleHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemSimpleHeader.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemSimpleHeader.Tpo $(DEPDIR)/GenlistItemSimpleHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemSimpleHeader.cpp' object='GenlistItemSimpleHeader.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemSimpleHeader.obj `if test -f 'views/GenlistItems/GenlistItemSimpleHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemSimpleHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemSimpleHeader.cpp'; fi` + +IOWODigitalHomeView.o: views/IO/IOWODigitalHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWODigitalHomeView.o -MD -MP -MF $(DEPDIR)/IOWODigitalHomeView.Tpo -c -o IOWODigitalHomeView.o `test -f 'views/IO/IOWODigitalHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWODigitalHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWODigitalHomeView.Tpo $(DEPDIR)/IOWODigitalHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWODigitalHomeView.cpp' object='IOWODigitalHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWODigitalHomeView.o `test -f 'views/IO/IOWODigitalHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWODigitalHomeView.cpp + +IOWODigitalHomeView.obj: views/IO/IOWODigitalHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWODigitalHomeView.obj -MD -MP -MF $(DEPDIR)/IOWODigitalHomeView.Tpo -c -o IOWODigitalHomeView.obj `if test -f 'views/IO/IOWODigitalHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWODigitalHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWODigitalHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWODigitalHomeView.Tpo $(DEPDIR)/IOWODigitalHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWODigitalHomeView.cpp' object='IOWODigitalHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWODigitalHomeView.obj `if test -f 'views/IO/IOWODigitalHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWODigitalHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWODigitalHomeView.cpp'; fi` + +IOWODaliHomeView.o: views/IO/IOWODaliHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWODaliHomeView.o -MD -MP -MF $(DEPDIR)/IOWODaliHomeView.Tpo -c -o IOWODaliHomeView.o `test -f 'views/IO/IOWODaliHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWODaliHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWODaliHomeView.Tpo $(DEPDIR)/IOWODaliHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWODaliHomeView.cpp' object='IOWODaliHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWODaliHomeView.o `test -f 'views/IO/IOWODaliHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWODaliHomeView.cpp + +IOWODaliHomeView.obj: views/IO/IOWODaliHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWODaliHomeView.obj -MD -MP -MF $(DEPDIR)/IOWODaliHomeView.Tpo -c -o IOWODaliHomeView.obj `if test -f 'views/IO/IOWODaliHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWODaliHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWODaliHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWODaliHomeView.Tpo $(DEPDIR)/IOWODaliHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWODaliHomeView.cpp' object='IOWODaliHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWODaliHomeView.obj `if test -f 'views/IO/IOWODaliHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWODaliHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWODaliHomeView.cpp'; fi` + +IOInternalBoolHomeView.o: views/IO/IOInternalBoolHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOInternalBoolHomeView.o -MD -MP -MF $(DEPDIR)/IOInternalBoolHomeView.Tpo -c -o IOInternalBoolHomeView.o `test -f 'views/IO/IOInternalBoolHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOInternalBoolHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOInternalBoolHomeView.Tpo $(DEPDIR)/IOInternalBoolHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOInternalBoolHomeView.cpp' object='IOInternalBoolHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOInternalBoolHomeView.o `test -f 'views/IO/IOInternalBoolHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOInternalBoolHomeView.cpp + +IOInternalBoolHomeView.obj: views/IO/IOInternalBoolHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOInternalBoolHomeView.obj -MD -MP -MF $(DEPDIR)/IOInternalBoolHomeView.Tpo -c -o IOInternalBoolHomeView.obj `if test -f 'views/IO/IOInternalBoolHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOInternalBoolHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOInternalBoolHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOInternalBoolHomeView.Tpo $(DEPDIR)/IOInternalBoolHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOInternalBoolHomeView.cpp' object='IOInternalBoolHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOInternalBoolHomeView.obj `if test -f 'views/IO/IOInternalBoolHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOInternalBoolHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOInternalBoolHomeView.cpp'; fi` + +IOInternalIntHomeView.o: views/IO/IOInternalIntHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOInternalIntHomeView.o -MD -MP -MF $(DEPDIR)/IOInternalIntHomeView.Tpo -c -o IOInternalIntHomeView.o `test -f 'views/IO/IOInternalIntHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOInternalIntHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOInternalIntHomeView.Tpo $(DEPDIR)/IOInternalIntHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOInternalIntHomeView.cpp' object='IOInternalIntHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOInternalIntHomeView.o `test -f 'views/IO/IOInternalIntHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOInternalIntHomeView.cpp + +IOInternalIntHomeView.obj: views/IO/IOInternalIntHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOInternalIntHomeView.obj -MD -MP -MF $(DEPDIR)/IOInternalIntHomeView.Tpo -c -o IOInternalIntHomeView.obj `if test -f 'views/IO/IOInternalIntHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOInternalIntHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOInternalIntHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOInternalIntHomeView.Tpo $(DEPDIR)/IOInternalIntHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOInternalIntHomeView.cpp' object='IOInternalIntHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOInternalIntHomeView.obj `if test -f 'views/IO/IOInternalIntHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOInternalIntHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOInternalIntHomeView.cpp'; fi` + +IOInternalStringHomeView.o: views/IO/IOInternalStringHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOInternalStringHomeView.o -MD -MP -MF $(DEPDIR)/IOInternalStringHomeView.Tpo -c -o IOInternalStringHomeView.o `test -f 'views/IO/IOInternalStringHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOInternalStringHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOInternalStringHomeView.Tpo $(DEPDIR)/IOInternalStringHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOInternalStringHomeView.cpp' object='IOInternalStringHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOInternalStringHomeView.o `test -f 'views/IO/IOInternalStringHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOInternalStringHomeView.cpp + +IOInternalStringHomeView.obj: views/IO/IOInternalStringHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOInternalStringHomeView.obj -MD -MP -MF $(DEPDIR)/IOInternalStringHomeView.Tpo -c -o IOInternalStringHomeView.obj `if test -f 'views/IO/IOInternalStringHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOInternalStringHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOInternalStringHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOInternalStringHomeView.Tpo $(DEPDIR)/IOInternalStringHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOInternalStringHomeView.cpp' object='IOInternalStringHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOInternalStringHomeView.obj `if test -f 'views/IO/IOInternalStringHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOInternalStringHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOInternalStringHomeView.cpp'; fi` + +IOWODaliRVBHomeView.o: views/IO/IOWODaliRVBHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWODaliRVBHomeView.o -MD -MP -MF $(DEPDIR)/IOWODaliRVBHomeView.Tpo -c -o IOWODaliRVBHomeView.o `test -f 'views/IO/IOWODaliRVBHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWODaliRVBHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWODaliRVBHomeView.Tpo $(DEPDIR)/IOWODaliRVBHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWODaliRVBHomeView.cpp' object='IOWODaliRVBHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWODaliRVBHomeView.o `test -f 'views/IO/IOWODaliRVBHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWODaliRVBHomeView.cpp + +IOWODaliRVBHomeView.obj: views/IO/IOWODaliRVBHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWODaliRVBHomeView.obj -MD -MP -MF $(DEPDIR)/IOWODaliRVBHomeView.Tpo -c -o IOWODaliRVBHomeView.obj `if test -f 'views/IO/IOWODaliRVBHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWODaliRVBHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWODaliRVBHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWODaliRVBHomeView.Tpo $(DEPDIR)/IOWODaliRVBHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWODaliRVBHomeView.cpp' object='IOWODaliRVBHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWODaliRVBHomeView.obj `if test -f 'views/IO/IOWODaliRVBHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWODaliRVBHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWODaliRVBHomeView.cpp'; fi` + +IOGenlistScenarioHomeView.o: views/IO/IOGenlistScenarioHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOGenlistScenarioHomeView.o -MD -MP -MF $(DEPDIR)/IOGenlistScenarioHomeView.Tpo -c -o IOGenlistScenarioHomeView.o `test -f 'views/IO/IOGenlistScenarioHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOGenlistScenarioHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOGenlistScenarioHomeView.Tpo $(DEPDIR)/IOGenlistScenarioHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOGenlistScenarioHomeView.cpp' object='IOGenlistScenarioHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOGenlistScenarioHomeView.o `test -f 'views/IO/IOGenlistScenarioHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOGenlistScenarioHomeView.cpp + +IOGenlistScenarioHomeView.obj: views/IO/IOGenlistScenarioHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOGenlistScenarioHomeView.obj -MD -MP -MF $(DEPDIR)/IOGenlistScenarioHomeView.Tpo -c -o IOGenlistScenarioHomeView.obj `if test -f 'views/IO/IOGenlistScenarioHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOGenlistScenarioHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOGenlistScenarioHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOGenlistScenarioHomeView.Tpo $(DEPDIR)/IOGenlistScenarioHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOGenlistScenarioHomeView.cpp' object='IOGenlistScenarioHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOGenlistScenarioHomeView.obj `if test -f 'views/IO/IOGenlistScenarioHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOGenlistScenarioHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOGenlistScenarioHomeView.cpp'; fi` + +IOWIAnalogHomeView.o: views/IO/IOWIAnalogHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWIAnalogHomeView.o -MD -MP -MF $(DEPDIR)/IOWIAnalogHomeView.Tpo -c -o IOWIAnalogHomeView.o `test -f 'views/IO/IOWIAnalogHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWIAnalogHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWIAnalogHomeView.Tpo $(DEPDIR)/IOWIAnalogHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWIAnalogHomeView.cpp' object='IOWIAnalogHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWIAnalogHomeView.o `test -f 'views/IO/IOWIAnalogHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWIAnalogHomeView.cpp + +IOWIAnalogHomeView.obj: views/IO/IOWIAnalogHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWIAnalogHomeView.obj -MD -MP -MF $(DEPDIR)/IOWIAnalogHomeView.Tpo -c -o IOWIAnalogHomeView.obj `if test -f 'views/IO/IOWIAnalogHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWIAnalogHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWIAnalogHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWIAnalogHomeView.Tpo $(DEPDIR)/IOWIAnalogHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWIAnalogHomeView.cpp' object='IOWIAnalogHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWIAnalogHomeView.obj `if test -f 'views/IO/IOWIAnalogHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWIAnalogHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWIAnalogHomeView.cpp'; fi` + +IOWOAnalogHomeView.o: views/IO/IOWOAnalogHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWOAnalogHomeView.o -MD -MP -MF $(DEPDIR)/IOWOAnalogHomeView.Tpo -c -o IOWOAnalogHomeView.o `test -f 'views/IO/IOWOAnalogHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWOAnalogHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWOAnalogHomeView.Tpo $(DEPDIR)/IOWOAnalogHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWOAnalogHomeView.cpp' object='IOWOAnalogHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWOAnalogHomeView.o `test -f 'views/IO/IOWOAnalogHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWOAnalogHomeView.cpp + +IOWOAnalogHomeView.obj: views/IO/IOWOAnalogHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWOAnalogHomeView.obj -MD -MP -MF $(DEPDIR)/IOWOAnalogHomeView.Tpo -c -o IOWOAnalogHomeView.obj `if test -f 'views/IO/IOWOAnalogHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWOAnalogHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWOAnalogHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWOAnalogHomeView.Tpo $(DEPDIR)/IOWOAnalogHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWOAnalogHomeView.cpp' object='IOWOAnalogHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWOAnalogHomeView.obj `if test -f 'views/IO/IOWOAnalogHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWOAnalogHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWOAnalogHomeView.cpp'; fi` + +IOWITempHomeView.o: views/IO/IOWITempHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWITempHomeView.o -MD -MP -MF $(DEPDIR)/IOWITempHomeView.Tpo -c -o IOWITempHomeView.o `test -f 'views/IO/IOWITempHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWITempHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWITempHomeView.Tpo $(DEPDIR)/IOWITempHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWITempHomeView.cpp' object='IOWITempHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWITempHomeView.o `test -f 'views/IO/IOWITempHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWITempHomeView.cpp + +IOWITempHomeView.obj: views/IO/IOWITempHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWITempHomeView.obj -MD -MP -MF $(DEPDIR)/IOWITempHomeView.Tpo -c -o IOWITempHomeView.obj `if test -f 'views/IO/IOWITempHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWITempHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWITempHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWITempHomeView.Tpo $(DEPDIR)/IOWITempHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWITempHomeView.cpp' object='IOWITempHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWITempHomeView.obj `if test -f 'views/IO/IOWITempHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWITempHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWITempHomeView.cpp'; fi` + +IOWOVoletHomeView.o: views/IO/IOWOVoletHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWOVoletHomeView.o -MD -MP -MF $(DEPDIR)/IOWOVoletHomeView.Tpo -c -o IOWOVoletHomeView.o `test -f 'views/IO/IOWOVoletHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWOVoletHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWOVoletHomeView.Tpo $(DEPDIR)/IOWOVoletHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWOVoletHomeView.cpp' object='IOWOVoletHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWOVoletHomeView.o `test -f 'views/IO/IOWOVoletHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWOVoletHomeView.cpp + +IOWOVoletHomeView.obj: views/IO/IOWOVoletHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWOVoletHomeView.obj -MD -MP -MF $(DEPDIR)/IOWOVoletHomeView.Tpo -c -o IOWOVoletHomeView.obj `if test -f 'views/IO/IOWOVoletHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWOVoletHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWOVoletHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWOVoletHomeView.Tpo $(DEPDIR)/IOWOVoletHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWOVoletHomeView.cpp' object='IOWOVoletHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWOVoletHomeView.obj `if test -f 'views/IO/IOWOVoletHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWOVoletHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWOVoletHomeView.cpp'; fi` + +IOWOVoletSmartHomeView.o: views/IO/IOWOVoletSmartHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWOVoletSmartHomeView.o -MD -MP -MF $(DEPDIR)/IOWOVoletSmartHomeView.Tpo -c -o IOWOVoletSmartHomeView.o `test -f 'views/IO/IOWOVoletSmartHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWOVoletSmartHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWOVoletSmartHomeView.Tpo $(DEPDIR)/IOWOVoletSmartHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWOVoletSmartHomeView.cpp' object='IOWOVoletSmartHomeView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWOVoletSmartHomeView.o `test -f 'views/IO/IOWOVoletSmartHomeView.cpp' || echo '$(srcdir)/'`views/IO/IOWOVoletSmartHomeView.cpp + +IOWOVoletSmartHomeView.obj: views/IO/IOWOVoletSmartHomeView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOWOVoletSmartHomeView.obj -MD -MP -MF $(DEPDIR)/IOWOVoletSmartHomeView.Tpo -c -o IOWOVoletSmartHomeView.obj `if test -f 'views/IO/IOWOVoletSmartHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWOVoletSmartHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWOVoletSmartHomeView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOWOVoletSmartHomeView.Tpo $(DEPDIR)/IOWOVoletSmartHomeView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOWOVoletSmartHomeView.cpp' object='IOWOVoletSmartHomeView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOWOVoletSmartHomeView.obj `if test -f 'views/IO/IOWOVoletSmartHomeView.cpp'; then $(CYGPATH_W) 'views/IO/IOWOVoletSmartHomeView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOWOVoletSmartHomeView.cpp'; fi` + +IOGenlistRoomGroup.o: views/IO/IOGenlistRoomGroup.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOGenlistRoomGroup.o -MD -MP -MF $(DEPDIR)/IOGenlistRoomGroup.Tpo -c -o IOGenlistRoomGroup.o `test -f 'views/IO/IOGenlistRoomGroup.cpp' || echo '$(srcdir)/'`views/IO/IOGenlistRoomGroup.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOGenlistRoomGroup.Tpo $(DEPDIR)/IOGenlistRoomGroup.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOGenlistRoomGroup.cpp' object='IOGenlistRoomGroup.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOGenlistRoomGroup.o `test -f 'views/IO/IOGenlistRoomGroup.cpp' || echo '$(srcdir)/'`views/IO/IOGenlistRoomGroup.cpp + +IOGenlistRoomGroup.obj: views/IO/IOGenlistRoomGroup.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOGenlistRoomGroup.obj -MD -MP -MF $(DEPDIR)/IOGenlistRoomGroup.Tpo -c -o IOGenlistRoomGroup.obj `if test -f 'views/IO/IOGenlistRoomGroup.cpp'; then $(CYGPATH_W) 'views/IO/IOGenlistRoomGroup.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOGenlistRoomGroup.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOGenlistRoomGroup.Tpo $(DEPDIR)/IOGenlistRoomGroup.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/IO/IOGenlistRoomGroup.cpp' object='IOGenlistRoomGroup.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOGenlistRoomGroup.obj `if test -f 'views/IO/IOGenlistRoomGroup.cpp'; then $(CYGPATH_W) 'views/IO/IOGenlistRoomGroup.cpp'; else $(CYGPATH_W) '$(srcdir)/views/IO/IOGenlistRoomGroup.cpp'; fi` + +GenlistItemPlaylist.o: views/GenlistItems/GenlistItemPlaylist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemPlaylist.o -MD -MP -MF $(DEPDIR)/GenlistItemPlaylist.Tpo -c -o GenlistItemPlaylist.o `test -f 'views/GenlistItems/GenlistItemPlaylist.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemPlaylist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemPlaylist.Tpo $(DEPDIR)/GenlistItemPlaylist.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemPlaylist.cpp' object='GenlistItemPlaylist.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemPlaylist.o `test -f 'views/GenlistItems/GenlistItemPlaylist.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemPlaylist.cpp + +GenlistItemPlaylist.obj: views/GenlistItems/GenlistItemPlaylist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemPlaylist.obj -MD -MP -MF $(DEPDIR)/GenlistItemPlaylist.Tpo -c -o GenlistItemPlaylist.obj `if test -f 'views/GenlistItems/GenlistItemPlaylist.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemPlaylist.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemPlaylist.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemPlaylist.Tpo $(DEPDIR)/GenlistItemPlaylist.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemPlaylist.cpp' object='GenlistItemPlaylist.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemPlaylist.obj `if test -f 'views/GenlistItems/GenlistItemPlaylist.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemPlaylist.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemPlaylist.cpp'; fi` + +GenlistItemAlbum.o: views/GenlistItems/GenlistItemAlbum.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemAlbum.o -MD -MP -MF $(DEPDIR)/GenlistItemAlbum.Tpo -c -o GenlistItemAlbum.o `test -f 'views/GenlistItems/GenlistItemAlbum.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemAlbum.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemAlbum.Tpo $(DEPDIR)/GenlistItemAlbum.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemAlbum.cpp' object='GenlistItemAlbum.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemAlbum.o `test -f 'views/GenlistItems/GenlistItemAlbum.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemAlbum.cpp + +GenlistItemAlbum.obj: views/GenlistItems/GenlistItemAlbum.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemAlbum.obj -MD -MP -MF $(DEPDIR)/GenlistItemAlbum.Tpo -c -o GenlistItemAlbum.obj `if test -f 'views/GenlistItems/GenlistItemAlbum.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemAlbum.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemAlbum.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemAlbum.Tpo $(DEPDIR)/GenlistItemAlbum.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemAlbum.cpp' object='GenlistItemAlbum.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemAlbum.obj `if test -f 'views/GenlistItems/GenlistItemAlbum.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemAlbum.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemAlbum.cpp'; fi` + +GenlistItemAlbumHeader.o: views/GenlistItems/GenlistItemAlbumHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemAlbumHeader.o -MD -MP -MF $(DEPDIR)/GenlistItemAlbumHeader.Tpo -c -o GenlistItemAlbumHeader.o `test -f 'views/GenlistItems/GenlistItemAlbumHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemAlbumHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemAlbumHeader.Tpo $(DEPDIR)/GenlistItemAlbumHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemAlbumHeader.cpp' object='GenlistItemAlbumHeader.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemAlbumHeader.o `test -f 'views/GenlistItems/GenlistItemAlbumHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemAlbumHeader.cpp + +GenlistItemAlbumHeader.obj: views/GenlistItems/GenlistItemAlbumHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemAlbumHeader.obj -MD -MP -MF $(DEPDIR)/GenlistItemAlbumHeader.Tpo -c -o GenlistItemAlbumHeader.obj `if test -f 'views/GenlistItems/GenlistItemAlbumHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemAlbumHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemAlbumHeader.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemAlbumHeader.Tpo $(DEPDIR)/GenlistItemAlbumHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemAlbumHeader.cpp' object='GenlistItemAlbumHeader.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemAlbumHeader.obj `if test -f 'views/GenlistItems/GenlistItemAlbumHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemAlbumHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemAlbumHeader.cpp'; fi` + +GenlistItemTrack.o: views/GenlistItems/GenlistItemTrack.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemTrack.o -MD -MP -MF $(DEPDIR)/GenlistItemTrack.Tpo -c -o GenlistItemTrack.o `test -f 'views/GenlistItems/GenlistItemTrack.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemTrack.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemTrack.Tpo $(DEPDIR)/GenlistItemTrack.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemTrack.cpp' object='GenlistItemTrack.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemTrack.o `test -f 'views/GenlistItems/GenlistItemTrack.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemTrack.cpp + +GenlistItemTrack.obj: views/GenlistItems/GenlistItemTrack.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemTrack.obj -MD -MP -MF $(DEPDIR)/GenlistItemTrack.Tpo -c -o GenlistItemTrack.obj `if test -f 'views/GenlistItems/GenlistItemTrack.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemTrack.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemTrack.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemTrack.Tpo $(DEPDIR)/GenlistItemTrack.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemTrack.cpp' object='GenlistItemTrack.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemTrack.obj `if test -f 'views/GenlistItems/GenlistItemTrack.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemTrack.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemTrack.cpp'; fi` + +GenlistItemArtist.o: views/GenlistItems/GenlistItemArtist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemArtist.o -MD -MP -MF $(DEPDIR)/GenlistItemArtist.Tpo -c -o GenlistItemArtist.o `test -f 'views/GenlistItems/GenlistItemArtist.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemArtist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemArtist.Tpo $(DEPDIR)/GenlistItemArtist.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemArtist.cpp' object='GenlistItemArtist.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemArtist.o `test -f 'views/GenlistItems/GenlistItemArtist.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemArtist.cpp + +GenlistItemArtist.obj: views/GenlistItems/GenlistItemArtist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemArtist.obj -MD -MP -MF $(DEPDIR)/GenlistItemArtist.Tpo -c -o GenlistItemArtist.obj `if test -f 'views/GenlistItems/GenlistItemArtist.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemArtist.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemArtist.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemArtist.Tpo $(DEPDIR)/GenlistItemArtist.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemArtist.cpp' object='GenlistItemArtist.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemArtist.obj `if test -f 'views/GenlistItems/GenlistItemArtist.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemArtist.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemArtist.cpp'; fi` + +GenlistItemYear.o: views/GenlistItems/GenlistItemYear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemYear.o -MD -MP -MF $(DEPDIR)/GenlistItemYear.Tpo -c -o GenlistItemYear.o `test -f 'views/GenlistItems/GenlistItemYear.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemYear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemYear.Tpo $(DEPDIR)/GenlistItemYear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemYear.cpp' object='GenlistItemYear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemYear.o `test -f 'views/GenlistItems/GenlistItemYear.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemYear.cpp + +GenlistItemYear.obj: views/GenlistItems/GenlistItemYear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemYear.obj -MD -MP -MF $(DEPDIR)/GenlistItemYear.Tpo -c -o GenlistItemYear.obj `if test -f 'views/GenlistItems/GenlistItemYear.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemYear.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemYear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemYear.Tpo $(DEPDIR)/GenlistItemYear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemYear.cpp' object='GenlistItemYear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemYear.obj `if test -f 'views/GenlistItems/GenlistItemYear.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemYear.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemYear.cpp'; fi` + +GenlistItemGenre.o: views/GenlistItems/GenlistItemGenre.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemGenre.o -MD -MP -MF $(DEPDIR)/GenlistItemGenre.Tpo -c -o GenlistItemGenre.o `test -f 'views/GenlistItems/GenlistItemGenre.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemGenre.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemGenre.Tpo $(DEPDIR)/GenlistItemGenre.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemGenre.cpp' object='GenlistItemGenre.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemGenre.o `test -f 'views/GenlistItems/GenlistItemGenre.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemGenre.cpp + +GenlistItemGenre.obj: views/GenlistItems/GenlistItemGenre.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemGenre.obj -MD -MP -MF $(DEPDIR)/GenlistItemGenre.Tpo -c -o GenlistItemGenre.obj `if test -f 'views/GenlistItems/GenlistItemGenre.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemGenre.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemGenre.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemGenre.Tpo $(DEPDIR)/GenlistItemGenre.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemGenre.cpp' object='GenlistItemGenre.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemGenre.obj `if test -f 'views/GenlistItems/GenlistItemGenre.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemGenre.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemGenre.cpp'; fi` + +GenlistItemBrowserPlaylist.o: views/GenlistItems/GenlistItemBrowserPlaylist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemBrowserPlaylist.o -MD -MP -MF $(DEPDIR)/GenlistItemBrowserPlaylist.Tpo -c -o GenlistItemBrowserPlaylist.o `test -f 'views/GenlistItems/GenlistItemBrowserPlaylist.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemBrowserPlaylist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemBrowserPlaylist.Tpo $(DEPDIR)/GenlistItemBrowserPlaylist.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemBrowserPlaylist.cpp' object='GenlistItemBrowserPlaylist.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemBrowserPlaylist.o `test -f 'views/GenlistItems/GenlistItemBrowserPlaylist.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemBrowserPlaylist.cpp + +GenlistItemBrowserPlaylist.obj: views/GenlistItems/GenlistItemBrowserPlaylist.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemBrowserPlaylist.obj -MD -MP -MF $(DEPDIR)/GenlistItemBrowserPlaylist.Tpo -c -o GenlistItemBrowserPlaylist.obj `if test -f 'views/GenlistItems/GenlistItemBrowserPlaylist.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemBrowserPlaylist.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemBrowserPlaylist.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemBrowserPlaylist.Tpo $(DEPDIR)/GenlistItemBrowserPlaylist.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemBrowserPlaylist.cpp' object='GenlistItemBrowserPlaylist.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemBrowserPlaylist.obj `if test -f 'views/GenlistItems/GenlistItemBrowserPlaylist.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemBrowserPlaylist.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemBrowserPlaylist.cpp'; fi` + +GenlistItemPlaylistHeader.o: views/GenlistItems/GenlistItemPlaylistHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemPlaylistHeader.o -MD -MP -MF $(DEPDIR)/GenlistItemPlaylistHeader.Tpo -c -o GenlistItemPlaylistHeader.o `test -f 'views/GenlistItems/GenlistItemPlaylistHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemPlaylistHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemPlaylistHeader.Tpo $(DEPDIR)/GenlistItemPlaylistHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemPlaylistHeader.cpp' object='GenlistItemPlaylistHeader.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemPlaylistHeader.o `test -f 'views/GenlistItems/GenlistItemPlaylistHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemPlaylistHeader.cpp + +GenlistItemPlaylistHeader.obj: views/GenlistItems/GenlistItemPlaylistHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemPlaylistHeader.obj -MD -MP -MF $(DEPDIR)/GenlistItemPlaylistHeader.Tpo -c -o GenlistItemPlaylistHeader.obj `if test -f 'views/GenlistItems/GenlistItemPlaylistHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemPlaylistHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemPlaylistHeader.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemPlaylistHeader.Tpo $(DEPDIR)/GenlistItemPlaylistHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemPlaylistHeader.cpp' object='GenlistItemPlaylistHeader.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemPlaylistHeader.obj `if test -f 'views/GenlistItems/GenlistItemPlaylistHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemPlaylistHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemPlaylistHeader.cpp'; fi` + +GenlistItemRadio.o: views/GenlistItems/GenlistItemRadio.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemRadio.o -MD -MP -MF $(DEPDIR)/GenlistItemRadio.Tpo -c -o GenlistItemRadio.o `test -f 'views/GenlistItems/GenlistItemRadio.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemRadio.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemRadio.Tpo $(DEPDIR)/GenlistItemRadio.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemRadio.cpp' object='GenlistItemRadio.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemRadio.o `test -f 'views/GenlistItems/GenlistItemRadio.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemRadio.cpp + +GenlistItemRadio.obj: views/GenlistItems/GenlistItemRadio.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemRadio.obj -MD -MP -MF $(DEPDIR)/GenlistItemRadio.Tpo -c -o GenlistItemRadio.obj `if test -f 'views/GenlistItems/GenlistItemRadio.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemRadio.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemRadio.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemRadio.Tpo $(DEPDIR)/GenlistItemRadio.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemRadio.cpp' object='GenlistItemRadio.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemRadio.obj `if test -f 'views/GenlistItems/GenlistItemRadio.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemRadio.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemRadio.cpp'; fi` + +GenlistItemScenarioSchedule.o: views/GenlistItems/GenlistItemScenarioSchedule.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioSchedule.o -MD -MP -MF $(DEPDIR)/GenlistItemScenarioSchedule.Tpo -c -o GenlistItemScenarioSchedule.o `test -f 'views/GenlistItems/GenlistItemScenarioSchedule.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioSchedule.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioSchedule.Tpo $(DEPDIR)/GenlistItemScenarioSchedule.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioSchedule.cpp' object='GenlistItemScenarioSchedule.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioSchedule.o `test -f 'views/GenlistItems/GenlistItemScenarioSchedule.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioSchedule.cpp + +GenlistItemScenarioSchedule.obj: views/GenlistItems/GenlistItemScenarioSchedule.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioSchedule.obj -MD -MP -MF $(DEPDIR)/GenlistItemScenarioSchedule.Tpo -c -o GenlistItemScenarioSchedule.obj `if test -f 'views/GenlistItems/GenlistItemScenarioSchedule.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioSchedule.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioSchedule.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioSchedule.Tpo $(DEPDIR)/GenlistItemScenarioSchedule.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioSchedule.cpp' object='GenlistItemScenarioSchedule.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioSchedule.obj `if test -f 'views/GenlistItems/GenlistItemScenarioSchedule.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioSchedule.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioSchedule.cpp'; fi` + +GenlistItemScenarioScheduleTime.o: views/GenlistItems/GenlistItemScenarioScheduleTime.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioScheduleTime.o -MD -MP -MF $(DEPDIR)/GenlistItemScenarioScheduleTime.Tpo -c -o GenlistItemScenarioScheduleTime.o `test -f 'views/GenlistItems/GenlistItemScenarioScheduleTime.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioScheduleTime.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioScheduleTime.Tpo $(DEPDIR)/GenlistItemScenarioScheduleTime.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioScheduleTime.cpp' object='GenlistItemScenarioScheduleTime.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioScheduleTime.o `test -f 'views/GenlistItems/GenlistItemScenarioScheduleTime.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioScheduleTime.cpp + +GenlistItemScenarioScheduleTime.obj: views/GenlistItems/GenlistItemScenarioScheduleTime.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioScheduleTime.obj -MD -MP -MF $(DEPDIR)/GenlistItemScenarioScheduleTime.Tpo -c -o GenlistItemScenarioScheduleTime.obj `if test -f 'views/GenlistItems/GenlistItemScenarioScheduleTime.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioScheduleTime.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioScheduleTime.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioScheduleTime.Tpo $(DEPDIR)/GenlistItemScenarioScheduleTime.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioScheduleTime.cpp' object='GenlistItemScenarioScheduleTime.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioScheduleTime.obj `if test -f 'views/GenlistItems/GenlistItemScenarioScheduleTime.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioScheduleTime.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioScheduleTime.cpp'; fi` + +GenlistItemScenarioAction.o: views/GenlistItems/GenlistItemScenarioAction.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioAction.o -MD -MP -MF $(DEPDIR)/GenlistItemScenarioAction.Tpo -c -o GenlistItemScenarioAction.o `test -f 'views/GenlistItems/GenlistItemScenarioAction.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioAction.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioAction.Tpo $(DEPDIR)/GenlistItemScenarioAction.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioAction.cpp' object='GenlistItemScenarioAction.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioAction.o `test -f 'views/GenlistItems/GenlistItemScenarioAction.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioAction.cpp + +GenlistItemScenarioAction.obj: views/GenlistItems/GenlistItemScenarioAction.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioAction.obj -MD -MP -MF $(DEPDIR)/GenlistItemScenarioAction.Tpo -c -o GenlistItemScenarioAction.obj `if test -f 'views/GenlistItems/GenlistItemScenarioAction.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioAction.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioAction.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioAction.Tpo $(DEPDIR)/GenlistItemScenarioAction.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioAction.cpp' object='GenlistItemScenarioAction.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioAction.obj `if test -f 'views/GenlistItems/GenlistItemScenarioAction.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioAction.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioAction.cpp'; fi` + +GenlistItemScenarioHeader.o: views/GenlistItems/GenlistItemScenarioHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioHeader.o -MD -MP -MF $(DEPDIR)/GenlistItemScenarioHeader.Tpo -c -o GenlistItemScenarioHeader.o `test -f 'views/GenlistItems/GenlistItemScenarioHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioHeader.Tpo $(DEPDIR)/GenlistItemScenarioHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioHeader.cpp' object='GenlistItemScenarioHeader.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioHeader.o `test -f 'views/GenlistItems/GenlistItemScenarioHeader.cpp' || echo '$(srcdir)/'`views/GenlistItems/GenlistItemScenarioHeader.cpp + +GenlistItemScenarioHeader.obj: views/GenlistItems/GenlistItemScenarioHeader.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenlistItemScenarioHeader.obj -MD -MP -MF $(DEPDIR)/GenlistItemScenarioHeader.Tpo -c -o GenlistItemScenarioHeader.obj `if test -f 'views/GenlistItems/GenlistItemScenarioHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioHeader.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/GenlistItemScenarioHeader.Tpo $(DEPDIR)/GenlistItemScenarioHeader.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/GenlistItems/GenlistItemScenarioHeader.cpp' object='GenlistItemScenarioHeader.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenlistItemScenarioHeader.obj `if test -f 'views/GenlistItems/GenlistItemScenarioHeader.cpp'; then $(CYGPATH_W) 'views/GenlistItems/GenlistItemScenarioHeader.cpp'; else $(CYGPATH_W) '$(srcdir)/views/GenlistItems/GenlistItemScenarioHeader.cpp'; fi` + +PagingView.o: views/PagingView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PagingView.o -MD -MP -MF $(DEPDIR)/PagingView.Tpo -c -o PagingView.o `test -f 'views/PagingView.cpp' || echo '$(srcdir)/'`views/PagingView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/PagingView.Tpo $(DEPDIR)/PagingView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/PagingView.cpp' object='PagingView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PagingView.o `test -f 'views/PagingView.cpp' || echo '$(srcdir)/'`views/PagingView.cpp + +PagingView.obj: views/PagingView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PagingView.obj -MD -MP -MF $(DEPDIR)/PagingView.Tpo -c -o PagingView.obj `if test -f 'views/PagingView.cpp'; then $(CYGPATH_W) 'views/PagingView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/PagingView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/PagingView.Tpo $(DEPDIR)/PagingView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/PagingView.cpp' object='PagingView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PagingView.obj `if test -f 'views/PagingView.cpp'; then $(CYGPATH_W) 'views/PagingView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/PagingView.cpp'; fi` + +KeyboardView.o: views/KeyboardView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT KeyboardView.o -MD -MP -MF $(DEPDIR)/KeyboardView.Tpo -c -o KeyboardView.o `test -f 'views/KeyboardView.cpp' || echo '$(srcdir)/'`views/KeyboardView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/KeyboardView.Tpo $(DEPDIR)/KeyboardView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/KeyboardView.cpp' object='KeyboardView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o KeyboardView.o `test -f 'views/KeyboardView.cpp' || echo '$(srcdir)/'`views/KeyboardView.cpp + +KeyboardView.obj: views/KeyboardView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT KeyboardView.obj -MD -MP -MF $(DEPDIR)/KeyboardView.Tpo -c -o KeyboardView.obj `if test -f 'views/KeyboardView.cpp'; then $(CYGPATH_W) 'views/KeyboardView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/KeyboardView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/KeyboardView.Tpo $(DEPDIR)/KeyboardView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/KeyboardView.cpp' object='KeyboardView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o KeyboardView.obj `if test -f 'views/KeyboardView.cpp'; then $(CYGPATH_W) 'views/KeyboardView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/KeyboardView.cpp'; fi` + +ActivityCameraListView.o: views/ActivityCameraListView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraListView.o -MD -MP -MF $(DEPDIR)/ActivityCameraListView.Tpo -c -o ActivityCameraListView.o `test -f 'views/ActivityCameraListView.cpp' || echo '$(srcdir)/'`views/ActivityCameraListView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraListView.Tpo $(DEPDIR)/ActivityCameraListView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityCameraListView.cpp' object='ActivityCameraListView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraListView.o `test -f 'views/ActivityCameraListView.cpp' || echo '$(srcdir)/'`views/ActivityCameraListView.cpp + +ActivityCameraListView.obj: views/ActivityCameraListView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraListView.obj -MD -MP -MF $(DEPDIR)/ActivityCameraListView.Tpo -c -o ActivityCameraListView.obj `if test -f 'views/ActivityCameraListView.cpp'; then $(CYGPATH_W) 'views/ActivityCameraListView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityCameraListView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraListView.Tpo $(DEPDIR)/ActivityCameraListView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityCameraListView.cpp' object='ActivityCameraListView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraListView.obj `if test -f 'views/ActivityCameraListView.cpp'; then $(CYGPATH_W) 'views/ActivityCameraListView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityCameraListView.cpp'; fi` + +ActivityCameraSelectView.o: views/ActivityCameraSelectView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraSelectView.o -MD -MP -MF $(DEPDIR)/ActivityCameraSelectView.Tpo -c -o ActivityCameraSelectView.o `test -f 'views/ActivityCameraSelectView.cpp' || echo '$(srcdir)/'`views/ActivityCameraSelectView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraSelectView.Tpo $(DEPDIR)/ActivityCameraSelectView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityCameraSelectView.cpp' object='ActivityCameraSelectView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraSelectView.o `test -f 'views/ActivityCameraSelectView.cpp' || echo '$(srcdir)/'`views/ActivityCameraSelectView.cpp + +ActivityCameraSelectView.obj: views/ActivityCameraSelectView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraSelectView.obj -MD -MP -MF $(DEPDIR)/ActivityCameraSelectView.Tpo -c -o ActivityCameraSelectView.obj `if test -f 'views/ActivityCameraSelectView.cpp'; then $(CYGPATH_W) 'views/ActivityCameraSelectView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityCameraSelectView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraSelectView.Tpo $(DEPDIR)/ActivityCameraSelectView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityCameraSelectView.cpp' object='ActivityCameraSelectView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraSelectView.obj `if test -f 'views/ActivityCameraSelectView.cpp'; then $(CYGPATH_W) 'views/ActivityCameraSelectView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityCameraSelectView.cpp'; fi` + +ActivityAudioListView.o: views/ActivityAudioListView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityAudioListView.o -MD -MP -MF $(DEPDIR)/ActivityAudioListView.Tpo -c -o ActivityAudioListView.o `test -f 'views/ActivityAudioListView.cpp' || echo '$(srcdir)/'`views/ActivityAudioListView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityAudioListView.Tpo $(DEPDIR)/ActivityAudioListView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityAudioListView.cpp' object='ActivityAudioListView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityAudioListView.o `test -f 'views/ActivityAudioListView.cpp' || echo '$(srcdir)/'`views/ActivityAudioListView.cpp + +ActivityAudioListView.obj: views/ActivityAudioListView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityAudioListView.obj -MD -MP -MF $(DEPDIR)/ActivityAudioListView.Tpo -c -o ActivityAudioListView.obj `if test -f 'views/ActivityAudioListView.cpp'; then $(CYGPATH_W) 'views/ActivityAudioListView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityAudioListView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityAudioListView.Tpo $(DEPDIR)/ActivityAudioListView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityAudioListView.cpp' object='ActivityAudioListView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityAudioListView.obj `if test -f 'views/ActivityAudioListView.cpp'; then $(CYGPATH_W) 'views/ActivityAudioListView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityAudioListView.cpp'; fi` + +ActivityAudioPlayerObject.o: views/ActivityAudioPlayerObject.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityAudioPlayerObject.o -MD -MP -MF $(DEPDIR)/ActivityAudioPlayerObject.Tpo -c -o ActivityAudioPlayerObject.o `test -f 'views/ActivityAudioPlayerObject.cpp' || echo '$(srcdir)/'`views/ActivityAudioPlayerObject.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityAudioPlayerObject.Tpo $(DEPDIR)/ActivityAudioPlayerObject.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityAudioPlayerObject.cpp' object='ActivityAudioPlayerObject.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityAudioPlayerObject.o `test -f 'views/ActivityAudioPlayerObject.cpp' || echo '$(srcdir)/'`views/ActivityAudioPlayerObject.cpp + +ActivityAudioPlayerObject.obj: views/ActivityAudioPlayerObject.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityAudioPlayerObject.obj -MD -MP -MF $(DEPDIR)/ActivityAudioPlayerObject.Tpo -c -o ActivityAudioPlayerObject.obj `if test -f 'views/ActivityAudioPlayerObject.cpp'; then $(CYGPATH_W) 'views/ActivityAudioPlayerObject.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityAudioPlayerObject.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityAudioPlayerObject.Tpo $(DEPDIR)/ActivityAudioPlayerObject.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityAudioPlayerObject.cpp' object='ActivityAudioPlayerObject.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityAudioPlayerObject.obj `if test -f 'views/ActivityAudioPlayerObject.cpp'; then $(CYGPATH_W) 'views/ActivityAudioPlayerObject.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityAudioPlayerObject.cpp'; fi` + +ActivityCameraListController.o: controllers/ActivityCameraListController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraListController.o -MD -MP -MF $(DEPDIR)/ActivityCameraListController.Tpo -c -o ActivityCameraListController.o `test -f 'controllers/ActivityCameraListController.cpp' || echo '$(srcdir)/'`controllers/ActivityCameraListController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraListController.Tpo $(DEPDIR)/ActivityCameraListController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityCameraListController.cpp' object='ActivityCameraListController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraListController.o `test -f 'controllers/ActivityCameraListController.cpp' || echo '$(srcdir)/'`controllers/ActivityCameraListController.cpp + +ActivityCameraListController.obj: controllers/ActivityCameraListController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraListController.obj -MD -MP -MF $(DEPDIR)/ActivityCameraListController.Tpo -c -o ActivityCameraListController.obj `if test -f 'controllers/ActivityCameraListController.cpp'; then $(CYGPATH_W) 'controllers/ActivityCameraListController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityCameraListController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraListController.Tpo $(DEPDIR)/ActivityCameraListController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityCameraListController.cpp' object='ActivityCameraListController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraListController.obj `if test -f 'controllers/ActivityCameraListController.cpp'; then $(CYGPATH_W) 'controllers/ActivityCameraListController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityCameraListController.cpp'; fi` + +ActivityCameraSelectController.o: controllers/ActivityCameraSelectController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraSelectController.o -MD -MP -MF $(DEPDIR)/ActivityCameraSelectController.Tpo -c -o ActivityCameraSelectController.o `test -f 'controllers/ActivityCameraSelectController.cpp' || echo '$(srcdir)/'`controllers/ActivityCameraSelectController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraSelectController.Tpo $(DEPDIR)/ActivityCameraSelectController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityCameraSelectController.cpp' object='ActivityCameraSelectController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraSelectController.o `test -f 'controllers/ActivityCameraSelectController.cpp' || echo '$(srcdir)/'`controllers/ActivityCameraSelectController.cpp + +ActivityCameraSelectController.obj: controllers/ActivityCameraSelectController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityCameraSelectController.obj -MD -MP -MF $(DEPDIR)/ActivityCameraSelectController.Tpo -c -o ActivityCameraSelectController.obj `if test -f 'controllers/ActivityCameraSelectController.cpp'; then $(CYGPATH_W) 'controllers/ActivityCameraSelectController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityCameraSelectController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityCameraSelectController.Tpo $(DEPDIR)/ActivityCameraSelectController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityCameraSelectController.cpp' object='ActivityCameraSelectController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityCameraSelectController.obj `if test -f 'controllers/ActivityCameraSelectController.cpp'; then $(CYGPATH_W) 'controllers/ActivityCameraSelectController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityCameraSelectController.cpp'; fi` + +ActivityAudioListController.o: controllers/ActivityAudioListController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityAudioListController.o -MD -MP -MF $(DEPDIR)/ActivityAudioListController.Tpo -c -o ActivityAudioListController.o `test -f 'controllers/ActivityAudioListController.cpp' || echo '$(srcdir)/'`controllers/ActivityAudioListController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityAudioListController.Tpo $(DEPDIR)/ActivityAudioListController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityAudioListController.cpp' object='ActivityAudioListController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityAudioListController.o `test -f 'controllers/ActivityAudioListController.cpp' || echo '$(srcdir)/'`controllers/ActivityAudioListController.cpp + +ActivityAudioListController.obj: controllers/ActivityAudioListController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityAudioListController.obj -MD -MP -MF $(DEPDIR)/ActivityAudioListController.Tpo -c -o ActivityAudioListController.obj `if test -f 'controllers/ActivityAudioListController.cpp'; then $(CYGPATH_W) 'controllers/ActivityAudioListController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityAudioListController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityAudioListController.Tpo $(DEPDIR)/ActivityAudioListController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityAudioListController.cpp' object='ActivityAudioListController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityAudioListController.obj `if test -f 'controllers/ActivityAudioListController.cpp'; then $(CYGPATH_W) 'controllers/ActivityAudioListController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityAudioListController.cpp'; fi` + +ActivityEditScenarioView.o: views/ActivityEditScenarioView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityEditScenarioView.o -MD -MP -MF $(DEPDIR)/ActivityEditScenarioView.Tpo -c -o ActivityEditScenarioView.o `test -f 'views/ActivityEditScenarioView.cpp' || echo '$(srcdir)/'`views/ActivityEditScenarioView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityEditScenarioView.Tpo $(DEPDIR)/ActivityEditScenarioView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityEditScenarioView.cpp' object='ActivityEditScenarioView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityEditScenarioView.o `test -f 'views/ActivityEditScenarioView.cpp' || echo '$(srcdir)/'`views/ActivityEditScenarioView.cpp + +ActivityEditScenarioView.obj: views/ActivityEditScenarioView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityEditScenarioView.obj -MD -MP -MF $(DEPDIR)/ActivityEditScenarioView.Tpo -c -o ActivityEditScenarioView.obj `if test -f 'views/ActivityEditScenarioView.cpp'; then $(CYGPATH_W) 'views/ActivityEditScenarioView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityEditScenarioView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityEditScenarioView.Tpo $(DEPDIR)/ActivityEditScenarioView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityEditScenarioView.cpp' object='ActivityEditScenarioView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityEditScenarioView.obj `if test -f 'views/ActivityEditScenarioView.cpp'; then $(CYGPATH_W) 'views/ActivityEditScenarioView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityEditScenarioView.cpp'; fi` + +ActivityScheduleScenarioView.o: views/ActivityScheduleScenarioView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScheduleScenarioView.o -MD -MP -MF $(DEPDIR)/ActivityScheduleScenarioView.Tpo -c -o ActivityScheduleScenarioView.o `test -f 'views/ActivityScheduleScenarioView.cpp' || echo '$(srcdir)/'`views/ActivityScheduleScenarioView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScheduleScenarioView.Tpo $(DEPDIR)/ActivityScheduleScenarioView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityScheduleScenarioView.cpp' object='ActivityScheduleScenarioView.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScheduleScenarioView.o `test -f 'views/ActivityScheduleScenarioView.cpp' || echo '$(srcdir)/'`views/ActivityScheduleScenarioView.cpp + +ActivityScheduleScenarioView.obj: views/ActivityScheduleScenarioView.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScheduleScenarioView.obj -MD -MP -MF $(DEPDIR)/ActivityScheduleScenarioView.Tpo -c -o ActivityScheduleScenarioView.obj `if test -f 'views/ActivityScheduleScenarioView.cpp'; then $(CYGPATH_W) 'views/ActivityScheduleScenarioView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityScheduleScenarioView.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScheduleScenarioView.Tpo $(DEPDIR)/ActivityScheduleScenarioView.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/ActivityScheduleScenarioView.cpp' object='ActivityScheduleScenarioView.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScheduleScenarioView.obj `if test -f 'views/ActivityScheduleScenarioView.cpp'; then $(CYGPATH_W) 'views/ActivityScheduleScenarioView.cpp'; else $(CYGPATH_W) '$(srcdir)/views/ActivityScheduleScenarioView.cpp'; fi` + +ActivityEditScenarioController.o: controllers/ActivityEditScenarioController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityEditScenarioController.o -MD -MP -MF $(DEPDIR)/ActivityEditScenarioController.Tpo -c -o ActivityEditScenarioController.o `test -f 'controllers/ActivityEditScenarioController.cpp' || echo '$(srcdir)/'`controllers/ActivityEditScenarioController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityEditScenarioController.Tpo $(DEPDIR)/ActivityEditScenarioController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityEditScenarioController.cpp' object='ActivityEditScenarioController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityEditScenarioController.o `test -f 'controllers/ActivityEditScenarioController.cpp' || echo '$(srcdir)/'`controllers/ActivityEditScenarioController.cpp + +ActivityEditScenarioController.obj: controllers/ActivityEditScenarioController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityEditScenarioController.obj -MD -MP -MF $(DEPDIR)/ActivityEditScenarioController.Tpo -c -o ActivityEditScenarioController.obj `if test -f 'controllers/ActivityEditScenarioController.cpp'; then $(CYGPATH_W) 'controllers/ActivityEditScenarioController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityEditScenarioController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityEditScenarioController.Tpo $(DEPDIR)/ActivityEditScenarioController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityEditScenarioController.cpp' object='ActivityEditScenarioController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityEditScenarioController.obj `if test -f 'controllers/ActivityEditScenarioController.cpp'; then $(CYGPATH_W) 'controllers/ActivityEditScenarioController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityEditScenarioController.cpp'; fi` + +ActivityScheduleScenarioController.o: controllers/ActivityScheduleScenarioController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScheduleScenarioController.o -MD -MP -MF $(DEPDIR)/ActivityScheduleScenarioController.Tpo -c -o ActivityScheduleScenarioController.o `test -f 'controllers/ActivityScheduleScenarioController.cpp' || echo '$(srcdir)/'`controllers/ActivityScheduleScenarioController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScheduleScenarioController.Tpo $(DEPDIR)/ActivityScheduleScenarioController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityScheduleScenarioController.cpp' object='ActivityScheduleScenarioController.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScheduleScenarioController.o `test -f 'controllers/ActivityScheduleScenarioController.cpp' || echo '$(srcdir)/'`controllers/ActivityScheduleScenarioController.cpp + +ActivityScheduleScenarioController.obj: controllers/ActivityScheduleScenarioController.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActivityScheduleScenarioController.obj -MD -MP -MF $(DEPDIR)/ActivityScheduleScenarioController.Tpo -c -o ActivityScheduleScenarioController.obj `if test -f 'controllers/ActivityScheduleScenarioController.cpp'; then $(CYGPATH_W) 'controllers/ActivityScheduleScenarioController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityScheduleScenarioController.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActivityScheduleScenarioController.Tpo $(DEPDIR)/ActivityScheduleScenarioController.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='controllers/ActivityScheduleScenarioController.cpp' object='ActivityScheduleScenarioController.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActivityScheduleScenarioController.obj `if test -f 'controllers/ActivityScheduleScenarioController.cpp'; then $(CYGPATH_W) 'controllers/ActivityScheduleScenarioController.cpp'; else $(CYGPATH_W) '$(srcdir)/controllers/ActivityScheduleScenarioController.cpp'; fi` + +Widget.o: views/Widget.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Widget.o -MD -MP -MF $(DEPDIR)/Widget.Tpo -c -o Widget.o `test -f 'views/Widget.cpp' || echo '$(srcdir)/'`views/Widget.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Widget.Tpo $(DEPDIR)/Widget.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/Widget.cpp' object='Widget.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Widget.o `test -f 'views/Widget.cpp' || echo '$(srcdir)/'`views/Widget.cpp + +Widget.obj: views/Widget.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Widget.obj -MD -MP -MF $(DEPDIR)/Widget.Tpo -c -o Widget.obj `if test -f 'views/Widget.cpp'; then $(CYGPATH_W) 'views/Widget.cpp'; else $(CYGPATH_W) '$(srcdir)/views/Widget.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Widget.Tpo $(DEPDIR)/Widget.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='views/Widget.cpp' object='Widget.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Widget.obj `if test -f 'views/Widget.cpp'; then $(CYGPATH_W) 'views/Widget.cpp'; else $(CYGPATH_W) '$(srcdir)/views/Widget.cpp'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-binPROGRAMS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/bin/calaos_home/Modules.cpp b/src/bin/calaos_home/Modules.cpp new file mode 100644 index 00000000..ad201fa2 --- /dev/null +++ b/src/bin/calaos_home/Modules.cpp @@ -0,0 +1,207 @@ +/****************************************************************************** + ** Copyright (c) 2006-2012, Calaos. All Rights Reserved. + ** + ** This file is part of Calaos Home. + ** + ** Calaos Home is free software; you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation; either version 3 of the License, or + ** (at your option) any later version. + ** + ** Calaos Home is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Foobar; if not, write to the Free Software + ** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + ** + ******************************************************************************/ +#include + +ModuleManager::ModuleManager() +{ + ecore_file_init(); +} + +struct DlCloseHandle +{ + template void operator ()(T &p) const + { + if (p.inst) delete p.inst; + p.inst = NULL; + dlclose(p.handle); + p.handle = NULL; + p.api = NULL; + } +}; +ModuleManager::~ModuleManager() +{ + for_each(modules.begin(), modules.end(), DlCloseHandle()); + for_each(mods_inst.begin(), mods_inst.end(), DlCloseHandle()); +} + +void ModuleManager::SearchModules() +{ + for (uint i = 0;i < search_paths.size();i++) + { + char *fname = NULL; + void *data = NULL; + Eina_List *subdir = ecore_file_ls(search_paths[i].c_str()); + Eina_List *l = NULL; + + EINA_LIST_FOREACH(subdir, l, data) + { + fname = (char *)data; + string p; + + p = search_paths[i]; + + if (fname) + { + p += "/"; + p += fname; + } + if (p[p.length() - 1] != '/') p += "/"; + + if (!ecore_file_is_dir(p.c_str())) + continue; + + p += "module.so"; + + if (!ecore_file_exists(p.c_str())) + continue; + + //try to load the module + void *handle = dlopen(p.c_str(), RTLD_LAZY); + + if (handle) + { + //object can be loaded, check version and + CalaosModuleApi *api = (CalaosModuleApi *)dlsym(handle, "calaos_modapi"); + + if (api->api_version != CALAOS_MODULE_API_VERSION) + { + dlclose(handle); + + Utils::logger("module") << Priority::ERROR << "ModuleManager: module " << p << ". The API version doesn't match" << log4cpp::eol; + + continue; + } + + string::size_type pos = p.find_last_of('/'); + + ModuleDef mdef; + mdef.mod_name = api->name; + mdef.mod_desc = api->desc; + mdef.mod_version = api->version; + mdef.mod_author = api->author; + mdef.mod_icon = p.substr(0, pos + 1) + "icon.edj"; + mdef.mod_fname = p; + mdef.handle = handle; + mdef.inst = NULL; + mdef.api = api; + + Utils::logger("module") << Priority::INFO << "ModuleManager: found module: " << mdef.mod_name << log4cpp::eol; + + modules.push_back(mdef); + } + else + { + Utils::logger("module") << Priority::WARN << "ModuleManager: file " << p << " : failed to dlopen: " << dlerror() << log4cpp::eol; + } + + } + + EINA_LIST_FREE(subdir, data) + free(data); + } +} + +bool ModuleManager::createModuleInstance(Evas *evas, ModuleDef &type, ModuleDef &mdef, string id) +{ + if (!type.handle || !type.api) return false; + + string::size_type pos = type.mod_fname.find_last_of('/'); + string module_path = type.mod_fname.substr(0, pos + 1); + + CalaosModuleBase *cmod = type.api->create_object(evas, id.c_str(), module_path.c_str()); + + if (cmod) + { + mdef.mod_name = type.mod_name; + mdef.mod_desc = type.mod_desc; + mdef.mod_version = type.mod_version; + mdef.mod_author = type.mod_author; + mdef.mod_icon = type.mod_fname.substr(0, pos + 1) + "icon.edj"; + mdef.mod_fname = type.mod_fname; + mdef.inst = cmod; + mdef.handle = type.handle; + mdef.api = type.api; + + Utils::logger("module") << Priority::INFO << "ModuleManager: New module instance: " << mdef.mod_name << log4cpp::eol; + + mods_inst.push_back(mdef); + + return true; + } + + mdef.inst = NULL; + mdef.handle = NULL; + mdef.api = NULL; + + return false; +} + +void ModuleManager::DeleteInstance(ModuleDef &mod) +{ + //safety check + + if (!mod.inst) return; + + vector::iterator it = mods_inst.begin(); + for (int i = 0;i < instanceSize();i++, it++) + { + if (mod.inst == mods_inst[i].inst) + { + CalaosModuleBase *cmod = getModuleInstance(mod); + if (cmod) delete cmod; + mod.inst = NULL; + + mods_inst.erase(it); + + break; + } + } +} + +CalaosModuleBase *ModuleManager::getModuleInstance(ModuleDef &mod) +{ + //safety check + + if (!mod.inst) return NULL; + + bool found = false; + for (int i = 0;i < instanceSize();i++) + { + if (mod.inst == mods_inst[i].inst) found = true; + } + + if (found) return mod.inst; + + return NULL; +} + +vector ModuleManager::getModuleInstances(string mod_fname) +{ + vector mods; + + for (int i = 0;i < instanceSize();i++) + { + if (mods_inst[i].mod_fname == mod_fname) + mods.push_back(mods_inst[i]); + } + + return mods; +} diff --git a/src/bin/calaos_home/Modules.h b/src/bin/calaos_home/Modules.h new file mode 100644 index 00000000..7413d7c5 --- /dev/null +++ b/src/bin/calaos_home/Modules.h @@ -0,0 +1,107 @@ +/****************************************************************************** + ** Copyright (c) 2006-2012, Calaos. All Rights Reserved. + ** + ** This file is part of Calaos Home. + ** + ** Calaos Home is free software; you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation; either version 3 of the License, or + ** (at your option) any later version. + ** + ** Calaos Home is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Foobar; if not, write to the Free Software + ** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + ** + ******************************************************************************/ +#ifndef CALAOS_MODULES +#define CALAOS_MODULES + +#include +#include +#include +#include +#include +#include + +using namespace std; + +class ModuleDef +{ + public: + ModuleDef(): mod_name("\0"), mod_author("\0"), + mod_desc("\0"), mod_version("\0"), + mod_icon("\0"), mod_fname("\0"), + api(NULL), inst(NULL), handle(NULL) + {} + + string mod_name; // module name as returned by module->getName() + string mod_author; // module name as returned by module->getName() + string mod_desc; // module description as returned by module->getDescription() + string mod_version; // module version as returned by module->getVersion() + string mod_icon; // module icon, this is the filename + path of an edje file containing the module icon + // The group "icon" is loaded from the edje file. If nothing is found, it take the + // default icon from the main theme. + string mod_fname; //module filename + + CalaosModuleApi *api; + + CalaosModuleBase *inst; //module instance + + void *handle; //shared object handle +}; + +class ModuleManager +{ + private: + ModuleManager(); + ~ModuleManager(); + + //search paths + vector search_paths; + + //all running modules are stored here + vector mods_inst; + + //all loadable modules are listed here + vector modules; + + public: + static ModuleManager &Instance() + { + static ModuleManager mmanager; + + return mmanager; + } + + void addPath(string path) { search_paths.push_back(path); } + + // Search for loadable modules in paths + void SearchModules(); + + // Get all available modules + vector getModules() { return modules; } + + // Create a new instance of mod_fname + bool createModuleInstance(Evas *evas, ModuleDef &type, ModuleDef &mdef, string id); + + // Delete a module instance + void DeleteInstance(ModuleDef &mod); + + // Get C++ instance of i module + CalaosModuleBase *getModuleInstance(ModuleDef &mod); + + // Get all instance for a specific module type + vector getModuleInstances(string mod_fname); + + //total number of modules instance + int instanceSize() { return mods_inst.size(); } + //total modules available + int availableSize() { return modules.size(); } +}; + +#endif diff --git a/src/bin/calaos_home/controllers/ActivityAudioListController.cpp b/src/bin/calaos_home/controllers/ActivityAudioListController.cpp new file mode 100644 index 00000000..41fc40a6 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityAudioListController.cpp @@ -0,0 +1,179 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityAudioListController.h" +#include "ActivityMediaController.h" + +ActivityAudioListController::ActivityAudioListController(Evas *e, Evas_Object *p, ActivityMediaController *pc): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_AUDIO_LIST), + parentController(pc) +{ + CalaosModel::Instance(); +} + +ActivityAudioListController::~ActivityAudioListController() +{ +} + +void ActivityAudioListController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityAudioListView *audioView = dynamic_cast(view); + + audioView->button_left_click.connect(sigc::mem_fun(*this, &ActivityAudioListController::clickLeft)); + audioView->button_right_click.connect(sigc::mem_fun(*this, &ActivityAudioListController::clickRight)); + audioView->addCallback("audio", "animation,done", sigc::mem_fun(*this, &ActivityAudioListController::doneCallback)); + audioView->player_selected.connect(sigc::mem_fun(*this, &ActivityAudioListController::playerSelectCallback)); + + if (!CalaosModel::Instance().isLoaded()) + { + audioView->ShowLoading(); + + CalaosModel::Instance().home_loaded.connect(sigc::mem_fun(*this, &ActivityAudioListController::load_done)); + + return; + } + + page = 0; + updatePageView(); +} + +void ActivityAudioListController::load_done() +{ + ActivityAudioListView *audioView = dynamic_cast(view); + audioView->HideLoading(); + + page = 0; + updatePageView(); +} + +void ActivityAudioListController::updatePageView() +{ + ActivityAudioListView *audioView = dynamic_cast(view); + + list::iterator it = CalaosModel::Instance().getAudio()->players.begin(); + int i = 0; + + for (int j = 0;j < page * 3;j++) + it++; + + for (int j = 0;j < 3;j++) + { + //disable unused players + audioView->disablePlayer(j); + } + + for (;it != CalaosModel::Instance().getAudio()->players.end() && i < 3; + it++, i++) + { + AudioPlayer *player = (*it); + + audioView->setPlayer(player, i); + } + + if (page == 0) + audioView->DisableLeftButton(); + else + audioView->EnableLeftButton(); + + int page_count = (CalaosModel::Instance().getAudio()->players.size() / 3) - 1; + if (CalaosModel::Instance().getAudio()->players.size() % 3 > 0) + page_count++; + + if (page < page_count && + (CalaosModel::Instance().getAudio()->players.size() > 3)) + audioView->EnableRightButton(); + else + audioView->DisableRightButton(); + + audioView->EmitSignal("show", "calaos"); +} + +void ActivityAudioListController::clickLeft() +{ + page--; + if (page < 0) + { + page = 0; + return; + } + + ActivityAudioListView *audioView = dynamic_cast(view); + audioView->EmitSignal("hide,right", "calaos"); + parentController->setButtonMode("mode,back"); +} + +void ActivityAudioListController::clickRight() +{ + page++; + if (page > (int)(CalaosModel::Instance().getAudio()->players.size() / 3)) + { + page = (CalaosModel::Instance().getAudio()->players.size() / 3); + return; + } + + ActivityAudioListView *audioView = dynamic_cast(view); + audioView->EmitSignal("hide,left", "calaos"); + parentController->setButtonMode("mode,back"); +} + +void ActivityAudioListController::doneCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + updatePageView(); +} + +void ActivityAudioListController::playerSelectCallback(AudioPlayer *player) +{ + //ActivityCameraSelectController *controller = new ActivityCameraSelectController(*it, evas, parent); + //parentController->addSubController(controller); + parentController->setButtonMode("mode,audio_detail"); +} + +bool ActivityAudioListController::handleButtonClick(string button) +{ + if (button == "button.audio.back") + { + ActivityAudioListView *audioView = dynamic_cast(view); + + if (!audioView->isEditMode()) + { + audioView->unselectPlayers(); + parentController->setButtonMode("mode,back"); + } + else + { + audioView->unsetEditMode(); + } + + return true; + } + else if (button == "button.audio.more") + { + ActivityAudioListView *audioView = dynamic_cast(view); + audioView->setEditMode(); + + return true; + } + + return false; +} diff --git a/src/bin/calaos_home/controllers/ActivityAudioListController.h b/src/bin/calaos_home/controllers/ActivityAudioListController.h new file mode 100644 index 00000000..741233fb --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityAudioListController.h @@ -0,0 +1,62 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYAUDIOLISTCONTROLLER_H +#define ACTIVITYAUDIOLISTCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityAudioListView.h" +#include "AudioModel.h" + +using namespace Utils; + +class ActivityMediaController; + +class ActivityAudioListController: public ActivityController +{ + private: + void createView(); + + ActivityMediaController *parentController; + + int page; + + void catchBackButton(); + + void updatePageView(); + + void clickLeft(); + void clickRight(); + + void load_done(); + + void doneCallback(void *data, Evas_Object *edje_object, string emission, string source); + void playerSelectCallback(AudioPlayer *player); + + public: + ActivityAudioListController(Evas *evas, Evas_Object *parent, ActivityMediaController *parentController); + ~ActivityAudioListController(); + + virtual bool handleButtonClick(string button); +}; + +#endif // ACTIVITYAUDIOLISTCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityCameraListController.cpp b/src/bin/calaos_home/controllers/ActivityCameraListController.cpp new file mode 100644 index 00000000..4e1bd9c2 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityCameraListController.cpp @@ -0,0 +1,189 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityCameraListController.h" +#include "ActivityMediaController.h" + +ActivityCameraListController::ActivityCameraListController(Evas *e, Evas_Object *p, ActivityMediaController *pc): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_CAMERA_LIST), + parentController(pc), + cameraSelectController(NULL) +{ + CalaosModel::Instance(); +} + +ActivityCameraListController::~ActivityCameraListController() +{ +} + +void ActivityCameraListController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityCameraListView *cameraView = dynamic_cast(view); + + cameraView->button_left_click.connect(sigc::mem_fun(*this, &ActivityCameraListController::clickLeft)); + cameraView->button_right_click.connect(sigc::mem_fun(*this, &ActivityCameraListController::clickRight)); + cameraView->addCallback("cameras", "animation,done", sigc::mem_fun(*this, &ActivityCameraListController::doneCallback)); + cameraView->addCallback("camera", "select,*", sigc::mem_fun(*this, &ActivityCameraListController::cameraSelectCallback)); + + if (!CalaosModel::Instance().isLoaded()) + { + cameraView->ShowLoading(); + + CalaosModel::Instance().home_loaded.connect(sigc::mem_fun(*this, &ActivityCameraListController::load_done)); + + return; + } + + page = 0; + updatePageView(); + updateScenarios(); +} + +void ActivityCameraListController::load_done() +{ + ActivityCameraListView *cameraView = dynamic_cast(view); + cameraView->HideLoading(); + + page = 0; + updatePageView(); + updateScenarios(); +} + +void ActivityCameraListController::updatePageView() +{ + ActivityCameraListView *cameraView = dynamic_cast(view); + + list::iterator it = CalaosModel::Instance().getCamera()->cameras.begin(); + int i = 0; + + for (int j = 0;j < page * 4;j++) + it++; + + for (int j = 0;j < 4;j++) + { + //disable unused camera + cameraView->disableCamera(j); + } + + for (;it != CalaosModel::Instance().getCamera()->cameras.end() && i < 4; + it++, i++) + { + Camera *camera = (*it); + + cameraView->setCamera(camera, i); + } + + if (page == 0) + cameraView->DisableLeftButton(); + else + cameraView->EnableLeftButton(); + + int page_count = (CalaosModel::Instance().getCamera()->cameras.size() / 4) - 1; + if (CalaosModel::Instance().getCamera()->cameras.size() % 4 > 0) + page_count++; + + if (page < page_count && + (CalaosModel::Instance().getCamera()->cameras.size() > 4)) + cameraView->EnableRightButton(); + else + cameraView->DisableRightButton(); + + cameraView->EmitSignal("show", "calaos"); +} + +void ActivityCameraListController::updateScenarios() +{ + ActivityCameraListView *cameraView = dynamic_cast(view); + + const list &scenarios = CalaosModel::Instance().getHome()->getCacheScenariosPref(); + list page; + + list::const_iterator it = scenarios.begin(); + for (int i = 0;it != scenarios.end();it++, i++) + { + IOBase *io = *it; + page.push_back(io); + + if (page.size() >= 6) + { + cameraView->addScenarioPage(page); + page.clear(); + } + } + + if (page.size() > 0) + { + while (page.size() < 6) page.push_back(NULL); + cameraView->addScenarioPage(page); + } +} + +void ActivityCameraListController::clickLeft() +{ + page--; + if (page < 0) + { + page = 0; + return; + } + + ActivityCameraListView *cameraView = dynamic_cast(view); + cameraView->EmitSignal("hide,right", "calaos"); +} + +void ActivityCameraListController::clickRight() +{ + page++; + if (page > (int)(CalaosModel::Instance().getCamera()->cameras.size() / 4)) + { + page = (CalaosModel::Instance().getCamera()->cameras.size() / 4); + return; + } + + ActivityCameraListView *cameraView = dynamic_cast(view); + cameraView->EmitSignal("hide,left", "calaos"); +} + +void ActivityCameraListController::doneCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + updatePageView(); +} + +void ActivityCameraListController::cameraSelectCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (emission.substr(0, 7) == "select,") + emission = emission.erase(0, 7); + int position; + from_string(emission, position); + + if ((page * 4 + position - 1) >= (int)CalaosModel::Instance().getCamera()->cameras.size()) + return; + + list::iterator it = CalaosModel::Instance().getCamera()->cameras.begin(); + for (int j = 0;j < page * 4 + position - 1;j++) + it++; + + ActivityCameraSelectController *controller = new ActivityCameraSelectController(*it, evas, parent); + parentController->addSubController(controller); +} diff --git a/src/bin/calaos_home/controllers/ActivityCameraListController.h b/src/bin/calaos_home/controllers/ActivityCameraListController.h new file mode 100644 index 00000000..9cf725bb --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityCameraListController.h @@ -0,0 +1,61 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCAMERALISTCONTROLLER_H +#define ACTIVITYCAMERALISTCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityCameraListView.h" +#include "CalaosModel.h" +#include "ActivityCameraSelectController.h" + +using namespace Utils; + +class ActivityMediaController; + +class ActivityCameraListController: public ActivityController +{ + private: + void createView(); + + ActivityMediaController *parentController; + ActivityCameraSelectController *cameraSelectController; + + int page; + + void updatePageView(); + void updateScenarios(); + + void clickLeft(); + void clickRight(); + + void load_done(); + + void doneCallback(void *data, Evas_Object *edje_object, string emission, string source); + void cameraSelectCallback(void *data, Evas_Object *edje_object, string emission, string source); + + public: + ActivityCameraListController(Evas *evas, Evas_Object *parent, ActivityMediaController *parentController); + ~ActivityCameraListController(); +}; + +#endif // ACTIVITYCAMERALISTCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityCameraSelectController.cpp b/src/bin/calaos_home/controllers/ActivityCameraSelectController.cpp new file mode 100644 index 00000000..a1d22a67 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityCameraSelectController.cpp @@ -0,0 +1,66 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityCameraSelectController.h" + +ActivityCameraSelectController::ActivityCameraSelectController(Camera *cam, Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_CAMERA_SELECT), + camera(cam) +{ + CalaosModel::Instance(); +} + +ActivityCameraSelectController::~ActivityCameraSelectController() +{ +} + +void ActivityCameraSelectController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityCameraSelectView *cameraView = dynamic_cast(view); + + if (!CalaosModel::Instance().isLoaded()) + { + cameraView->ShowLoading(); + + CalaosModel::Instance().home_loaded.connect(sigc::mem_fun(*this, &ActivityCameraSelectController::load_done)); + + return; + } + + updateView(); +} + +void ActivityCameraSelectController::load_done() +{ + ActivityCameraSelectView *cameraView = dynamic_cast(view); + cameraView->HideLoading(); + + updateView(); +} + +void ActivityCameraSelectController::updateView() +{ + ActivityCameraSelectView *cameraView = dynamic_cast(view); + cameraView->setCamera(camera); +} diff --git a/src/bin/calaos_home/controllers/ActivityCameraSelectController.h b/src/bin/calaos_home/controllers/ActivityCameraSelectController.h new file mode 100644 index 00000000..a4f23fb7 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityCameraSelectController.h @@ -0,0 +1,48 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCAMERASELECTCONTROLLER_H +#define ACTIVITYCAMERASELECTCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityCameraSelectView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityCameraSelectController: public ActivityController +{ + private: + Camera *camera; + + void createView(); + + void updateView(); + + void load_done(); + + public: + ActivityCameraSelectController(Camera *cam, Evas *evas, Evas_Object *parent); + ~ActivityCameraSelectController(); +}; + +#endif // ACTIVITYCAMERASELECTCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityConfigController.cpp b/src/bin/calaos_home/controllers/ActivityConfigController.cpp new file mode 100644 index 00000000..7330d44a --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityConfigController.cpp @@ -0,0 +1,31 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityConfigController.h" + +ActivityConfigController::ActivityConfigController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_CONFIG) +{ + CalaosModel::Instance(); +} + +ActivityConfigController::~ActivityConfigController() +{ +} diff --git a/src/bin/calaos_home/controllers/ActivityConfigController.h b/src/bin/calaos_home/controllers/ActivityConfigController.h new file mode 100644 index 00000000..d0a344a1 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityConfigController.h @@ -0,0 +1,39 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCONFIGCONTROLLER_H +#define ACTIVITYCONFIGCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityConfigView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityConfigController: public ActivityController +{ + public: + ActivityConfigController(Evas *evas, Evas_Object *parent); + ~ActivityConfigController(); +}; + +#endif // ACTIVITYCONFIGCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityController.cpp b/src/bin/calaos_home/controllers/ActivityController.cpp new file mode 100644 index 00000000..da98044c --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityController.cpp @@ -0,0 +1,74 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityController.h" + +ActivityController::ActivityController(Evas *e, Evas_Object *p, int v): + evas(e), + parent(p), + viewType(v), + view(NULL) +{ +} + +ActivityController::~ActivityController() +{ + DELETE_NULL(view); +} + +BaseView *ActivityController::getView() +{ + createView(); + + return dynamic_cast(view); +} + +void ActivityController::createView() +{ + if (view) return; + + try + { + view = ActivityViewFactory::CreateView(evas, parent, viewType); + } + catch (exception const& e) + { + Utils::logger("root") << Priority::CRIT << "ActivityController: Can't create view !" << log4cpp::eol; + throw; + } + + view->activity_quit.connect(sigc::mem_fun(wants_quit, &sigc::signal::emit)); + view->view_deleted.connect(sigc::mem_fun(*this, &ActivityController::viewDeleted)); + + view->controller = this; +} + +void ActivityController::viewDeleted() +{ + view = NULL; + view_deleted.emit(this); + Utils::logger("root") << Priority::DEBUG << "ActivityController: view deleted" << log4cpp::eol; +} + +void ActivityController::resetView() +{ + if (view) + view->resetView(); +} diff --git a/src/bin/calaos_home/controllers/ActivityController.h b/src/bin/calaos_home/controllers/ActivityController.h new file mode 100644 index 00000000..fa085be8 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityController.h @@ -0,0 +1,66 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCONTROLLER_H +#define ACTIVITYCONTROLLER_H + +#include "config.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "ActivityView.h" + +using namespace Utils; + +class ActivityController: public sigc::trackable +{ + protected: + Evas *evas; + Evas_Object *parent; + int viewType; + + ActivityView *view; + + virtual void createView(); + void viewDeleted(); + + public: + ActivityController(Evas *evas, Evas_Object *parent, int viewType); + virtual ~ActivityController(); + + BaseView *getView(); + virtual void resetView(); + + sigc::signal wants_quit; + sigc::signal view_deleted; + + virtual bool handleButtonClick(string button) { return false; } + +}; + +#endif // ACTIVITYCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityEditScenarioController.cpp b/src/bin/calaos_home/controllers/ActivityEditScenarioController.cpp new file mode 100644 index 00000000..d0d8589c --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityEditScenarioController.cpp @@ -0,0 +1,67 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityEditScenarioController.h" + +ActivityEditScenarioController::ActivityEditScenarioController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_EDIT_SCENARIO) +{ + CalaosModel::Instance(); +} + +ActivityEditScenarioController::~ActivityEditScenarioController() +{ +} + +void ActivityEditScenarioController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityEditScenarioView *scView = dynamic_cast(view); + scView->buttonValidPressed.connect(sigc::mem_fun(*this, &ActivityEditScenarioController::createScenario)); + if (scenario) + { + scView->setScenarioData(scenario->scenario_data); + } + else + { + ScenarioData sd; + scView->setScenarioData(sd); + } +} + +void ActivityEditScenarioController::createScenario() +{ + ActivityEditScenarioView *scView = dynamic_cast(view); + + if (scenario) + { + scenario->scenario_data = scView->getScenarioData(); + CalaosModel::Instance().getScenario()->modifyScenario(scenario); + } + else + { + CalaosModel::Instance().getScenario()->createScenario(scView->getScenarioData()); + } + + wants_quit.emit(); +} diff --git a/src/bin/calaos_home/controllers/ActivityEditScenarioController.h b/src/bin/calaos_home/controllers/ActivityEditScenarioController.h new file mode 100644 index 00000000..dcf9fda9 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityEditScenarioController.h @@ -0,0 +1,48 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityEditScenarioController_H +#define ActivityEditScenarioController_H + +#include + +#include "ActivityController.h" +#include "ActivityEditScenarioView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityEditScenarioController: public ActivityController +{ + private: + Scenario *scenario; + + void createScenario(); + + virtual void createView(); + + public: + ActivityEditScenarioController(Evas *evas, Evas_Object *parent); + ~ActivityEditScenarioController(); + + void setScenario(Scenario *sc) { scenario = sc; } +}; + +#endif // ActivityEditScenarioController_H diff --git a/src/bin/calaos_home/controllers/ActivityHomeController.cpp b/src/bin/calaos_home/controllers/ActivityHomeController.cpp new file mode 100644 index 00000000..7e5bf948 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityHomeController.cpp @@ -0,0 +1,269 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityHomeController.h" + +ActivityHomeController::ActivityHomeController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_HOME) +{ + CalaosModel::Instance(); +} + +ActivityHomeController::~ActivityHomeController() +{ +} + +void ActivityHomeController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityHomeView *homeView = dynamic_cast(view); + + homeView->room_left_click.connect(sigc::mem_fun(*this, &ActivityHomeController::clickRoomLeft)); + homeView->room_right_click.connect(sigc::mem_fun(*this, &ActivityHomeController::clickRoomRight)); + homeView->room_click.connect(sigc::mem_fun(*this, &ActivityHomeController::clickRoom)); + + if (!CalaosModel::Instance().isLoaded()) + { + homeView->ShowLoading(); + + CalaosModel::Instance().home_loaded.connect(sigc::mem_fun(*this, &ActivityHomeController::load_done)); + + return; + } + + CalaosModel::Instance().getHome()->lights_on_changed.connect(sigc::mem_fun(*this, &ActivityHomeController::lights_changed)); + CalaosModel::Instance().getHome()->shutters_up_changed.connect(sigc::mem_fun(*this, &ActivityHomeController::shutter_changed)); + + CalaosModel::Instance().getScenario()->scenario_new.connect(sigc::mem_fun(*this, &ActivityHomeController::scenarioReload)); + CalaosModel::Instance().getScenario()->scenario_change.connect(sigc::mem_fun(*this, &ActivityHomeController::scenarioReload)); + CalaosModel::Instance().getScenario()->scenario_del.connect(sigc::mem_fun(*this, &ActivityHomeController::scenarioReload)); + + page = 0; + updatePageView(); + updateScenarios(); + + lights_changed(CalaosModel::Instance().getHome()->getCacheLightsOn().size()); + shutter_changed(CalaosModel::Instance().getHome()->getCacheShuttersUp().size()); +} + +void ActivityHomeController::clickRoomLeft() +{ + page--; + if (page < 0) page = 0; + + updatePageView(); +} + +void ActivityHomeController::clickRoomRight() +{ + page++; + if (page > (int)(CalaosModel::Instance().getHome()->rooms_type.size() / 6)) + page = (CalaosModel::Instance().getHome()->rooms_type.size() / 6); + + updatePageView(); +} + +void ActivityHomeController::updatePageView() +{ + ActivityHomeView *homeView = dynamic_cast(view); + list::iterator it = CalaosModel::Instance().getHome()->rooms_type.begin(); + int i = 0; + + for (int j = 0;j < page * 6;j++) + it++; + + for (;it != CalaosModel::Instance().getHome()->rooms_type.end() && i < 6; + it++, i++) + { + Room *room = *it; + + IOBase *chauffage = CalaosModel::Instance().getHome()->getChauffageForType(room->type); + + homeView->setRoom(room->type, i, chauffage); + } + + for (;i < 6;i++) + { + //hide unused rooms + homeView->hideRoom(i); + } + + if (page == 0) + homeView->DisableLeftButton(); + else + homeView->EnableLeftButton(); + + int page_count = (CalaosModel::Instance().getHome()->rooms_type.size() / 6) - 1; + if (CalaosModel::Instance().getHome()->rooms_type.size() % 6 > 0) + page_count++; + + if (page < page_count && + (CalaosModel::Instance().getHome()->rooms_type.size() > 6)) + homeView->EnableRightButton(); + else + homeView->DisableRightButton(); +} + +void ActivityHomeController::load_done() +{ + ActivityHomeView *homeView = dynamic_cast(view); + homeView->HideLoading(); + + CalaosModel::Instance().getHome()->lights_on_changed.connect(sigc::mem_fun(*this, &ActivityHomeController::lights_changed)); + CalaosModel::Instance().getHome()->shutters_up_changed.connect(sigc::mem_fun(*this, &ActivityHomeController::shutter_changed)); + + page = 0; + updatePageView(); + updateScenarios(); + + lights_changed(CalaosModel::Instance().getHome()->getCacheLightsOn().size()); + shutter_changed(CalaosModel::Instance().getHome()->getCacheShuttersUp().size()); +} + +void ActivityHomeController::updateScenarios() +{ + ActivityHomeView *homeView = dynamic_cast(view); + + const list &scenarios = CalaosModel::Instance().getHome()->getCacheScenariosPref(); + list page; + + //Add the status page first + homeView->addStatusPage(); + + list::const_iterator it = scenarios.begin(); + for (int i = 0;it != scenarios.end();it++, i++) + { + IOBase *io = *it; + page.push_back(io); + + if (page.size() >= 6) + { + homeView->addScenarioPage(page); + page.clear(); + } + } + + if (page.size() > 0) + { + while (page.size() < 6) page.push_back(NULL); + homeView->addScenarioPage(page); + } + + homeView->selectPage(1, 0.35); + + cout << "PageView count: " << homeView->getCurrentPage() << endl; +} + +void ActivityHomeController::scenarioReload(Scenario *sc) +{ + ActivityHomeView *homeView = dynamic_cast(view); + if (!homeView) return; + + const list &scenarios = CalaosModel::Instance().getHome()->getCacheScenariosPref(); + list page; + + int currentpage = homeView->getCurrentPage(); + + int count = homeView->getPageCount(); + cout << "PageView count: " << count << endl; + for (int i = 1;i < count;i++) + { + cout << "PageView i: " << i << endl; + homeView->removePage(1); + } + + list::const_iterator it = scenarios.begin(); + for (int i = 0;it != scenarios.end();it++, i++) + { + IOBase *io = *it; + page.push_back(io); + + if (page.size() >= 6) + { + homeView->addScenarioPage(page); + page.clear(); + } + } + + if (page.size() > 0) + { + while (page.size() < 6) page.push_back(NULL); + homeView->addScenarioPage(page); + } + + if (currentpage >= homeView->getPageCount()) + currentpage = homeView->getPageCount(); + + homeView->selectPage(currentpage); +} + +void ActivityHomeController::clickRoom(int selected_room) +{ + ActivityHomeView *homeView = dynamic_cast(view); + + list::iterator it = CalaosModel::Instance().getHome()->rooms_type.begin(); + + for (int j = 0;j < page * 6 + selected_room && + it != CalaosModel::Instance().getHome()->rooms_type.end();j++) + it++; + + if (it == CalaosModel::Instance().getHome()->rooms_type.end()) + { + Utils::logger("home") << Priority::ERROR << "ActivityHomeController::clickRoom(): Can't get room !" << log4cpp::eol; + + return; + } + + homeView->clearLists(); + homeView->setCurrentRoomDetail(*it); +} + +void ActivityHomeController::lights_changed(int count) +{ + ActivityHomeView *homeView = dynamic_cast(view); + string t; + + if (count <= 0) + t = "Aucune lumière allumée"; + else if (count == 1) + t = "1 lumière est allumée"; + else + t = to_string(count) + " lumières sont allumées"; + + homeView->setLightsOnText(t); +} + +void ActivityHomeController::shutter_changed(int count) +{ + ActivityHomeView *homeView = dynamic_cast(view); + string t; + + if (count <= 0) + t = "Aucune volet ouvert"; + else if (count == 1) + t = "1 volet est ouvert"; + else + t = to_string(count) + " volets sont ouverts"; + + homeView->setShuttersUpText(t); +} diff --git a/src/bin/calaos_home/controllers/ActivityHomeController.h b/src/bin/calaos_home/controllers/ActivityHomeController.h new file mode 100644 index 00000000..415f0008 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityHomeController.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYHOMECONTROLLER_H +#define ACTIVITYHOMECONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityHomeView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityHomeController: public ActivityController +{ + protected: + void createView(); + + int page; + + void clickRoomLeft(); + void clickRoomRight(); + + void updatePageView(); + void updateScenarios(); + + void clickRoom(int room); + + void load_done(); + + void lights_changed(int count); + void shutter_changed(int count); + + void scenarioReload(Scenario *sc); + + public: + ActivityHomeController(Evas *evas, Evas_Object *parent); + ~ActivityHomeController(); +}; + +#endif // ACTIVITYHOMECONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityKeyboardController.cpp b/src/bin/calaos_home/controllers/ActivityKeyboardController.cpp new file mode 100644 index 00000000..2d5b2c12 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityKeyboardController.cpp @@ -0,0 +1,71 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityKeyboardController.h" + +ActivityKeyboardController::ActivityKeyboardController(Evas *e, Evas_Object *p, string _subtitle, ActivityKeyboardCb _cb, bool _multiline, int t): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_KEYBOARD), + multiline(_multiline), + subtitle(_subtitle), + callback(_cb), + type(t) +{ +} + +ActivityKeyboardController::~ActivityKeyboardController() +{ +} + +void ActivityKeyboardController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityKeyboardView *keyboardView = dynamic_cast(view); + keyboardView->setMultiline(multiline); + keyboardView->setSubtitle(subtitle); + keyboardView->validPressed.connect(sigc::mem_fun(*this, &ActivityKeyboardController::validButtonPressed)); +} + +void ActivityKeyboardController::validButtonPressed(string text) +{ + ActivityKeyboardSig sig; + sig.connect(callback); + + if (type == 0) + { + char *s = elm_entry_markup_to_utf8(text.c_str()); + text = s; + free(s); + } + sig.emit(text); + + //Closes the keyboard + wants_quit.emit(); +} + +void ActivityKeyboardController::setText(string t) +{ + if (!view) return; + + ActivityKeyboardView *keyboardView = dynamic_cast(view); + keyboardView->setText(t); +} diff --git a/src/bin/calaos_home/controllers/ActivityKeyboardController.h b/src/bin/calaos_home/controllers/ActivityKeyboardController.h new file mode 100644 index 00000000..cd7266d6 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityKeyboardController.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityKeyboardController_H +#define ActivityKeyboardController_H + +#include + +#include "ActivityController.h" +#include "ActivityKeyboardView.h" +#include "CalaosModel.h" + +using namespace Utils; + +typedef sigc::slot ActivityKeyboardCb; +typedef sigc::signal ActivityKeyboardSig; + +class ActivityKeyboardController: public ActivityController +{ + private: + bool multiline; + string subtitle; + ActivityKeyboardCb callback; + int type; //0 to get a UTF-8 string and 1 to keep evas textblock markup instead + + virtual void createView(); + + void validButtonPressed(string text); + + public: + ActivityKeyboardController(Evas *evas, Evas_Object *parent, string subtitle, ActivityKeyboardCb callback, bool multiline, int type); + ~ActivityKeyboardController(); + + void setText(string t); +}; + +#endif // ActivityKeyboardController_H diff --git a/src/bin/calaos_home/controllers/ActivityMediaController.cpp b/src/bin/calaos_home/controllers/ActivityMediaController.cpp new file mode 100644 index 00000000..cd55cc7a --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityMediaController.cpp @@ -0,0 +1,124 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityMediaController.h" + +#include "ActivityCameraListController.h" +#include "ActivityAudioListController.h" + +#include "ApplicationMain.h" + +ActivityMediaController::ActivityMediaController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_MEDIA) +{ + CalaosModel::Instance(); +} + +ActivityMediaController::~ActivityMediaController() +{ + DELETE_NULL(mainMenuController); +} + +void ActivityMediaController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityMediaView *mediaView = dynamic_cast(view); + mediaView->button_clicked.connect(sigc::mem_fun(*this, &ActivityMediaController::buttonClick)); + + mainMenuController = new ActivityMediaMenuController(evas, parent); + mainMenuController->menu_icon_click.connect(sigc::mem_fun(*this, &ActivityMediaController::menuIconClick)); + mediaView->addView(mainMenuController->getView()); +} + +void ActivityMediaController::menuIconClick(string icon) +{ + if (icon == "eskiss") + { + ecore_exe_run("eskiss -c=FALSE", NULL); + } + else if (icon == "camera") + { + ActivityCameraListController *controller = new ActivityCameraListController(evas, parent, this); + addSubController(controller); + setButtonMode("mode,back"); + } + else if (icon == "music") + { + ActivityAudioListController *controller = new ActivityAudioListController(evas, parent, this); + addSubController(controller); + setButtonMode("mode,back"); + } + else if (icon == "web") + { + ApplicationMain::Instance().ShowWebBrowser(); + } +} + +void ActivityMediaController::buttonClick(string button) +{ + ActivityMediaView *mediaView = dynamic_cast(view); + + if (mediaView->getTopView()->controller) + { + if (mediaView->getTopView()->controller->handleButtonClick(button)) + return; + } + + if (button != "button.back") return; + + mediaView->EmitSignal("mode,menu", "calaos"); + + if (mediaView->getTopView() != mainMenuController->getView()) + { + mediaView->removeTopView(); + mediaView->setPartText("header.label", mediaView->getTopView()->getTitle()); + + //Enable view reactivates view elements (camera video streams, ...) + ActivityView *view = reinterpret_cast(mediaView->getTopView()); + if (view) view->EnableView(); + } +} + +void ActivityMediaController::addSubController(ActivityController *controller) +{ + ActivityMediaView *mediaView = dynamic_cast(view); + controller->view_deleted.connect(sigc::mem_fun(*this, &ActivityMediaController::controllerFinished)); + + //Disable view disactivates view elements (camera video streams, ...) + ActivityView *view = reinterpret_cast(mediaView->getTopView()); + if (view) view->DisableView(); + + mediaView->addView(controller->getView()); + mediaView->setPartText("header.label", controller->getView()->getTitle()); +} + +void ActivityMediaController::controllerFinished(ActivityController *controller) +{ + DELETE_NULL(controller); +} + +void ActivityMediaController::setButtonMode(string mode) +{ + ActivityMediaView *mediaView = dynamic_cast(view); + mediaView->EmitSignal(mode, "calaos"); +} diff --git a/src/bin/calaos_home/controllers/ActivityMediaController.h b/src/bin/calaos_home/controllers/ActivityMediaController.h new file mode 100644 index 00000000..29d116ea --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityMediaController.h @@ -0,0 +1,55 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYMEDIACONTROLLER_H +#define ACTIVITYMEDIACONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityMediaView.h" +#include "CalaosModel.h" + +#include "ActivityMediaMenuController.h" + +using namespace Utils; + +class ActivityMediaController: public ActivityController +{ + private: + ActivityMediaMenuController *mainMenuController; + + virtual void createView(); + + void menuIconClick(string icon); + void buttonClick(string button); + + void controllerFinished(ActivityController *controller); + + public: + ActivityMediaController(Evas *evas, Evas_Object *parent); + ~ActivityMediaController(); + + void addSubController(ActivityController *controller); + + void setButtonMode(string mode); +}; + +#endif // ACTIVITYMEDIACONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityMediaMenuController.cpp b/src/bin/calaos_home/controllers/ActivityMediaMenuController.cpp new file mode 100644 index 00000000..a0e883f9 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityMediaMenuController.cpp @@ -0,0 +1,40 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityMediaMenuController.h" + +ActivityMediaMenuController::ActivityMediaMenuController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_MEDIA_MENU) +{ +} + +ActivityMediaMenuController::~ActivityMediaMenuController() +{ +} + +void ActivityMediaMenuController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityMediaMenuView *mediaMenuView = dynamic_cast(view); + mediaMenuView->menu_item_clicked.connect(sigc::mem_fun(menu_icon_click, &sigc::signal::emit)); +} diff --git a/src/bin/calaos_home/controllers/ActivityMediaMenuController.h b/src/bin/calaos_home/controllers/ActivityMediaMenuController.h new file mode 100644 index 00000000..e64a786a --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityMediaMenuController.h @@ -0,0 +1,44 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYMEDIAMENUCONTROLLER_H +#define ACTIVITYMEDIAMENUCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityMediaMenuView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityMediaMenuController: public ActivityController +{ + private: + void createView(); + + public: + ActivityMediaMenuController(Evas *evas, Evas_Object *parent); + ~ActivityMediaMenuController(); + + sigc::signal menu_icon_click; +}; + +#endif // ACTIVITYMEDIAMENUCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityScenariosController.cpp b/src/bin/calaos_home/controllers/ActivityScenariosController.cpp new file mode 100644 index 00000000..3858f3c2 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityScenariosController.cpp @@ -0,0 +1,101 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityScenariosController.h" +#include "ApplicationMain.h" + +ActivityScenariosController::ActivityScenariosController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_SCENARIOS) +{ + CalaosModel::Instance(); +} + +ActivityScenariosController::~ActivityScenariosController() +{ +} + +void ActivityScenariosController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityScenariosView *scView = dynamic_cast(view); + scView->buttonCreatePressed.connect(sigc::mem_fun(*this, &ActivityScenariosController::createScenario)); + scView->schedule_add_click.connect(sigc::mem_fun(*this, &ActivityScenariosController::scheduleAdd)); + scView->schedule_modify_click.connect(sigc::mem_fun(*this, &ActivityScenariosController::scheduleModify)); + scView->schedule_del_click.connect(sigc::mem_fun(*this, &ActivityScenariosController::scheduleDel)); + + if (!CalaosModel::Instance().isLoaded()) + { + scView->ShowLoading(); + + CalaosModel::Instance().home_loaded.connect(sigc::mem_fun(*this, &ActivityScenariosController::load_done)); + + return; + } + + updateView(); + + CalaosModel::Instance().getScenario()->scenario_new.connect(sigc::mem_fun(*this, &ActivityScenariosController::reloadView)); + CalaosModel::Instance().getScenario()->scenario_change.connect(sigc::mem_fun(*this, &ActivityScenariosController::reloadView)); +} + +void ActivityScenariosController::load_done() +{ + ActivityScenariosView *scView = dynamic_cast(view); + scView->HideLoading(); + + updateView(); + + CalaosModel::Instance().getScenario()->scenario_new.connect(sigc::mem_fun(*this, &ActivityScenariosController::reloadView)); + CalaosModel::Instance().getScenario()->scenario_change.connect(sigc::mem_fun(*this, &ActivityScenariosController::reloadView)); +} + +void ActivityScenariosController::createScenario() +{ + ApplicationMain::Instance().ShowScenarioEditor(); +} + +void ActivityScenariosController::updateView() +{ + ActivityScenariosView *scView = dynamic_cast(view); + scView->loadScenarios(); +} + +void ActivityScenariosController::reloadView(Scenario *sc) +{ + updateView(); +} + +void ActivityScenariosController::scheduleAdd(Scenario *sc) +{ + ApplicationMain::Instance().ShowScenarioSchedule(sc); +} + +void ActivityScenariosController::scheduleModify(Scenario *sc) +{ + ApplicationMain::Instance().ShowScenarioSchedule(sc); +} + +void ActivityScenariosController::scheduleDel(Scenario *sc) +{ + ApplicationMain::Instance().ShowScenarioSchedule(sc); +} diff --git a/src/bin/calaos_home/controllers/ActivityScenariosController.h b/src/bin/calaos_home/controllers/ActivityScenariosController.h new file mode 100644 index 00000000..e20f3cb0 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityScenariosController.h @@ -0,0 +1,53 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYSCENARIOSCONTROLLER_H +#define ACTIVITYSCENARIOSCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityScenariosView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityScenariosController: public ActivityController +{ + private: + void createScenario(); + + void scheduleAdd(Scenario *sc); + void scheduleModify(Scenario *sc); + void scheduleDel(Scenario *sc); + + void load_done(); + void updateView(); + + virtual void createView(); + + void reloadView(Scenario *sc); + + public: + ActivityScenariosController(Evas *evas, Evas_Object *parent); + ~ActivityScenariosController(); +}; + +#endif // ACTIVITYSCENARIOSCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ActivityScheduleScenarioController.cpp b/src/bin/calaos_home/controllers/ActivityScheduleScenarioController.cpp new file mode 100644 index 00000000..4e05a938 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityScheduleScenarioController.cpp @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityScheduleScenarioController.h" + +ActivityScheduleScenarioController::ActivityScheduleScenarioController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_SCHEDULE_SCENARIO) +{ + CalaosModel::Instance(); +} + +ActivityScheduleScenarioController::~ActivityScheduleScenarioController() +{ +} + +void ActivityScheduleScenarioController::createView() +{ + if (view) return; + + ActivityController::createView(); + + ActivityScheduleScenarioView *scView = dynamic_cast(view); + if (scenario->isScheduled()) + { + scView->setTimeRangeInfos(scenario->ioScenario->range_infos); + scView->buttonValidPressed.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioController::validModifySchedule)); + } + else + { + scView->buttonValidPressed.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioController::validAddSchedule)); + } +} + +void ActivityScheduleScenarioController::validAddSchedule(TimeRangeInfos &tr) +{ + +} + +void ActivityScheduleScenarioController::validModifySchedule(TimeRangeInfos &tr) +{ + +} diff --git a/src/bin/calaos_home/controllers/ActivityScheduleScenarioController.h b/src/bin/calaos_home/controllers/ActivityScheduleScenarioController.h new file mode 100644 index 00000000..a05b5390 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityScheduleScenarioController.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityScheduleScenarioController_H +#define ActivityScheduleScenarioController_H + +#include + +#include "ActivityController.h" +#include "ActivityScheduleScenarioView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityScheduleScenarioController: public ActivityController +{ + private: + Scenario *scenario; + + void validAddSchedule(TimeRangeInfos &tr); + void validModifySchedule(TimeRangeInfos &tr); + + virtual void createView(); + + public: + ActivityScheduleScenarioController(Evas *evas, Evas_Object *parent); + ~ActivityScheduleScenarioController(); + + void setScenario(Scenario *sc) { scenario = sc; } +}; + +#endif // ActivityScheduleScenarioController_H diff --git a/src/bin/calaos_home/controllers/ActivityWebController.cpp b/src/bin/calaos_home/controllers/ActivityWebController.cpp new file mode 100644 index 00000000..8252f25e --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityWebController.cpp @@ -0,0 +1,40 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityWebController.h" + +ActivityWebController::ActivityWebController(Evas *e, Evas_Object *p, string _url): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_WEB) +{ +} + +ActivityWebController::~ActivityWebController() +{ +} + +void ActivityWebController::createView() +{ + if (view) return; + + ActivityController::createView(); + + //ActivityWebView *webView = dynamic_cast(view); + //keyboardView->validPressed.connect(sigc::mem_fun(*this, &ActivityWebController::validButtonPressed)); +} diff --git a/src/bin/calaos_home/controllers/ActivityWebController.h b/src/bin/calaos_home/controllers/ActivityWebController.h new file mode 100644 index 00000000..2eab7fe1 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityWebController.h @@ -0,0 +1,42 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityWebController_H +#define ActivityWebController_H + +#include + +#include "ActivityController.h" +#include "ActivityWebView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityWebController: public ActivityController +{ + private: + virtual void createView(); + + public: + ActivityWebController(Evas *evas, Evas_Object *parent, string url = ""); + ~ActivityWebController(); +}; + +#endif // ActivityWebController_H diff --git a/src/bin/calaos_home/controllers/ActivityWidgetsController.cpp b/src/bin/calaos_home/controllers/ActivityWidgetsController.cpp new file mode 100644 index 00000000..8526d894 --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityWidgetsController.cpp @@ -0,0 +1,65 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityWidgetsController.h" + +ActivityWidgetsController::ActivityWidgetsController(Evas *e, Evas_Object *p): + ActivityController(e, p, ActivityViewFactory::ACTIVITY_VIEW_WIDGETS) +{ + CalaosModel::Instance(); +} + +ActivityWidgetsController::~ActivityWidgetsController() +{ +} + +void ActivityWidgetsController::dimView() +{ + ActivityWidgetsView *wview = dynamic_cast(view); + if (!wview) return; + + wview->dimView(); +} + +void ActivityWidgetsController::setEditMode() +{ + ActivityWidgetsView *wview = dynamic_cast(view); + if (!wview) return; + + wview->EditMode(); +} + +void ActivityWidgetsController::validEdit() +{ + ActivityWidgetsView *wview = dynamic_cast(view); + if (!wview) return; + + wview->SaveWidgets(); + wview->NormalMode(); +} + +void ActivityWidgetsController::cancelEdit() +{ + ActivityWidgetsView *wview = dynamic_cast(view); + if (!wview) return; + + wview->ResetPosition(); + wview->NormalMode(); +} diff --git a/src/bin/calaos_home/controllers/ActivityWidgetsController.h b/src/bin/calaos_home/controllers/ActivityWidgetsController.h new file mode 100644 index 00000000..12a83b7f --- /dev/null +++ b/src/bin/calaos_home/controllers/ActivityWidgetsController.h @@ -0,0 +1,45 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYWIDGETSCONTROLLER_H +#define ACTIVITYWIDGETSCONTROLLER_H + +#include + +#include "ActivityController.h" +#include "ActivityWidgetsView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityWidgetsController: public ActivityController +{ + public: + ActivityWidgetsController(Evas *evas, Evas_Object *parent); + ~ActivityWidgetsController(); + + void dimView(); + void setEditMode(); + + void validEdit(); + void cancelEdit(); +}; + +#endif // ACTIVITYWIDGETSCONTROLLER_H diff --git a/src/bin/calaos_home/controllers/ApplicationController.cpp b/src/bin/calaos_home/controllers/ApplicationController.cpp new file mode 100644 index 00000000..ec973c02 --- /dev/null +++ b/src/bin/calaos_home/controllers/ApplicationController.cpp @@ -0,0 +1,345 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ApplicationController.h" +#include "ApplicationMain.h" + +ApplicationController::ApplicationController(Evas *e, Evas_Object *l): + evas(e), + layout(l), + mouseCursor(NULL), + menu_hidden(false), + homeController(NULL), + mediaController(NULL), + scenariosController(NULL), + configController(NULL), + keyboardController(NULL), + webController(NULL), + editScController(NULL), + scheduleScController(NULL) +{ + if (Utils::get_config_option("show_cursor") == "true") + { + mouseCursor = new EdjeObject(ApplicationMain::getTheme(), evas); + + try + { + mouseCursor->LoadEdje("calaos/cursor"); + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "ApplicationController: Can't load mouse cursor" << log4cpp::eol; + throw; + } + + int w, h; + edje_object_size_min_get(mouseCursor->getEvasObject(), &w, &h); + mouseCursor->Resize(w, h); + mouseCursor->Show(); + + ecore_evas_object_cursor_set(ecore_evas_ecore_evas_get(evas), mouseCursor->getEvasObject(), EVAS_LAYER_MAX - 32, w / 2, h / 2); + } + else + { + Evas_Object *cursor = evas_object_rectangle_add(evas); + evas_object_color_set(cursor, 0, 0, 0, 0); + evas_object_resize(cursor, 1, 1); + evas_object_show(cursor); + + ecore_evas_object_cursor_set(ecore_evas_ecore_evas_get(evas), cursor, EVAS_LAYER_MAX - 32, 0, 0); + } + + menuView = new MainMenuView(evas, layout); + + menuView->setVersionString(get_config_option("fw_version")); + + menuView->on_home_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuHomeClick)); + menuView->on_media_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuMediaClick)); + menuView->on_scenario_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuScenarioClick)); + menuView->on_config_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuConfigClick)); + + menuView->on_reboot_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuRebootClick)); + menuView->on_suspend_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuSuspendClick)); + menuView->on_widget_click.connect(sigc::mem_fun(*this, &ApplicationController::onMenuWidgetClick)); + + //Start the model instance + CalaosModel::Instance().home_loaded.connect(sigc::mem_fun(*this, &ApplicationController::home_loaded)); + CalaosModel::Instance().login_failed.connect(sigc::mem_fun(*this, &ApplicationController::login_failed)); + + contentView = new MainContentView(evas, layout); + elm_object_part_content_set(layout, "calaos.main.content", contentView->getSmartObject()); + + widgetsController = new ActivityWidgetsController(evas, layout); + + contentView->addView(widgetsController->getView()); + + menuView->on_menu_open.connect(sigc::mem_fun(*widgetsController, &ActivityWidgetsController::dimView)); + menuView->on_menu_close.connect(sigc::mem_fun(*widgetsController, &ActivityWidgetsController::resetView)); + menuView->on_widget_valid_click.connect(sigc::mem_fun(*widgetsController, &ActivityWidgetsController::validEdit)); + menuView->on_widget_cancel_click.connect(sigc::mem_fun(*widgetsController, &ActivityWidgetsController::cancelEdit)); +} + +ApplicationController::~ApplicationController() +{ + DELETE_NULL(mouseCursor); + DELETE_NULL(menuView); + DELETE_NULL(contentView); + + DELETE_NULL(widgetsController); + DELETE_NULL(homeController); + DELETE_NULL(mediaController); + DELETE_NULL(scenariosController); + DELETE_NULL(configController); + + DELETE_NULL(keyboardController); + DELETE_NULL(webController); + + DELETE_NULL(editScController); + DELETE_NULL(scheduleScController); +} + +void ApplicationController::resetOtherViews() +{ + if (contentView->getTopView() != widgetsController->getView()) + { + contentView->removeTopView(); + homeController = NULL; + mediaController = NULL; + scenariosController = NULL; + configController = NULL; + } +} + +void ApplicationController::onMenuHomeClick() +{ + if (!homeController) + { + resetOtherViews(); + + homeController = new ActivityHomeController(evas, layout); + homeController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityQuit)); + homeController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + + contentView->addView(homeController->getView()); + } + else + { + homeController->resetView(); + } +} + +void ApplicationController::onMenuMediaClick() +{ + if (!mediaController) + { + resetOtherViews(); + + mediaController = new ActivityMediaController(evas, layout); + mediaController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityQuit)); + mediaController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + + contentView->addView(mediaController->getView()); + } + else + { + mediaController->resetView(); + } +} + +void ApplicationController::onMenuScenarioClick() +{ + if (!scenariosController) + { + resetOtherViews(); + + scenariosController = new ActivityScenariosController(evas, layout); + scenariosController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityQuit)); + scenariosController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + + contentView->addView(scenariosController->getView()); + } + else + { + scenariosController->resetView(); + } +} + +void ApplicationController::onMenuConfigClick() +{ + if (!configController) + { + resetOtherViews(); + + configController = new ActivityConfigController(evas, layout); + configController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityQuit)); + configController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + + contentView->addView(configController->getView()); + } + else + { + configController->resetView(); + } +} + +void ApplicationController::ShowKeyboard(string subtitle, ActivityKeyboardCb callback, bool multiline, string oldtext, int type) +{ + if (!keyboardController) + { + keyboardController = new ActivityKeyboardController(evas, layout, subtitle, callback, multiline, type); + keyboardController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityKeyboardQuit)); + keyboardController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + + contentView->addView(keyboardController->getView()); + if (menu_hidden) menuView->ShowMenu(); + menuView->DisableMenu(); + + keyboardController->setText(oldtext); + } +} + +void ApplicationController::ShowWebBrowser(string url) +{ + if (!webController) + { + webController = new ActivityWebController(evas, layout, url); + webController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityWebQuit)); + webController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + + contentView->addView(webController->getView()); + menuView->HideMenu(); + menu_hidden = true; + } +} + +void ApplicationController::ShowScenarioEditor(Scenario *scenario) +{ + if (!editScController) + { + editScController = new ActivityEditScenarioController(evas, layout); + editScController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityEditScenarioQuit)); + editScController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + editScController->setScenario(scenario); + + contentView->addView(editScController->getView()); + menuView->DisableMenu(); + } +} + +void ApplicationController::ShowScenarioSchedule(Scenario *scenario) +{ + if (!scheduleScController) + { + scheduleScController = new ActivityScheduleScenarioController(evas, layout); + scheduleScController->wants_quit.connect(sigc::mem_fun(*this, &ApplicationController::activityScheduleScenarioQuit)); + scheduleScController->view_deleted.connect(sigc::mem_fun(*this, &ApplicationController::controllerFinished)); + scheduleScController->setScenario(scenario); + + contentView->addView(scheduleScController->getView()); + menuView->DisableMenu(); + } +} + +void ApplicationController::onMenuRebootClick() +{ + cout << "onMenuRebootClick()" << endl; + menuView->CloseLinkMenu(); +} + +void ApplicationController::onMenuWidgetClick() +{ + menuView->CloseLinkMenu(); + + widgetsController->setEditMode(); +} + +void ApplicationController::onMenuSuspendClick() +{ + cout << "onMenuSuspendClick()" << endl; + menuView->CloseLinkMenu(); +} + +void ApplicationController::home_loaded() +{ + cout << CalaosModel::Instance().toString() << endl; +} + +void ApplicationController::login_failed(string host) +{ + //TODO: Do something with that information +} + +void ApplicationController::controllerFinished(ActivityController *controller) +{ + DELETE_NULL(controller); +} + +void ApplicationController::activityQuit() +{ + resetOtherViews(); + menuView->UnselectAllMenu(); +} + +void ApplicationController::activityKeyboardQuit() +{ + if (!keyboardController) return; + if (contentView->getTopView() == keyboardController->getView()) + { + contentView->removeTopView(); + menuView->EnableMenu(); + keyboardController = NULL; + + if (menu_hidden) menuView->HideMenu(); + } +} + +void ApplicationController::activityWebQuit() +{ + if (!webController) return; + if (contentView->getTopView() == webController->getView()) + { + contentView->removeTopView(); + menuView->ShowMenu(); + webController = NULL; + menu_hidden = false; + } +} + +void ApplicationController::activityEditScenarioQuit() +{ + if (!editScController) return; + if (contentView->getTopView() == editScController->getView()) + { + contentView->removeTopView(); + menuView->EnableMenu(); + editScController = NULL; + } +} + +void ApplicationController::activityScheduleScenarioQuit() +{ + if (!scheduleScController) return; + if (contentView->getTopView() == scheduleScController->getView()) + { + contentView->removeTopView(); + menuView->EnableMenu(); + scheduleScController = NULL; + } +} diff --git a/src/bin/calaos_home/controllers/ApplicationController.h b/src/bin/calaos_home/controllers/ApplicationController.h new file mode 100644 index 00000000..9f422471 --- /dev/null +++ b/src/bin/calaos_home/controllers/ApplicationController.h @@ -0,0 +1,106 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef APPLICATIONCONTROLLER_H +#define APPLICATIONCONTROLLER_H + +#include + +#include +#include +#include "EdjeObject.h" + +#include "MainMenuView.h" +#include "MainContentView.h" +#include "ActivityController.h" + +#include "CalaosModel.h" + +#include "ActivityHomeController.h" +#include "ActivityMediaController.h" +#include "ActivityScenariosController.h" +#include "ActivityConfigController.h" +#include "ActivityWidgetsController.h" +#include "ActivityKeyboardController.h" +#include "ActivityWebController.h" +#include "ActivityEditScenarioController.h" +#include "ActivityScheduleScenarioController.h" + +using namespace Utils; + +class ApplicationController: public sigc::trackable +{ + private: + Evas *evas; + Evas_Object *layout; + Evas_Object *main_pager; /* This is the main elementary pager, which is holding all "pages" (home, media, camera, ...) */ + + MainMenuView *menuView; + MainContentView *contentView; + EdjeObject *mouseCursor; + + bool menu_hidden; + + /* The main "pages" comes here */ + ActivityWidgetsController *widgetsController; + ActivityHomeController *homeController; + ActivityMediaController *mediaController; + ActivityScenariosController *scenariosController; + ActivityConfigController *configController; + ActivityKeyboardController *keyboardController; + ActivityWebController *webController; + ActivityEditScenarioController *editScController; + ActivityScheduleScenarioController *scheduleScController; + + void onMenuHomeClick(); + void onMenuMediaClick(); + void onMenuScenarioClick(); + void onMenuConfigClick(); + + void onMenuRebootClick(); + void onMenuWidgetClick(); + void onMenuSuspendClick(); + + /* CalaosModel signals */ + void home_loaded(); + void login_failed(string host); + + void activityQuit(); + void activityKeyboardQuit(); + void activityWebQuit(); + void activityEditScenarioQuit(); + void activityScheduleScenarioQuit(); + + void controllerFinished(ActivityController *controller); + void resetOtherViews(); + + public: + ApplicationController(Evas *evas, Evas_Object *layout); + ~ApplicationController(); + + void ShowKeyboard(string subtitle, ActivityKeyboardCb callback, bool multiline, string oldtext = "", int type = 0); + void ShowWebBrowser(string url); + + void ShowScenarioEditor(Scenario *scenario); + void ShowScenarioSchedule(Scenario *scenario); + +}; + +#endif // APPLICATIONCONTROLLER_H diff --git a/src/bin/calaos_home/main.cpp b/src/bin/calaos_home/main.cpp new file mode 100644 index 00000000..e58e2d45 --- /dev/null +++ b/src/bin/calaos_home/main.cpp @@ -0,0 +1,43 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ApplicationMain.h" + +using namespace Utils; + +int main(int argc, char **argv) +{ + Utils::InitLoggingSystem(string(DEFAULT_CONFIG_PATH) + "calaos_gui_log.conf"); + + try + { + ApplicationMain::Instance(argc, argv).Run(); //Start main app instance + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "An exception occured: " << e.what() << log4cpp::eol; + } + catch(...) + { + Utils::logger("root") << Priority::CRIT << "An unknown exception occured !" << log4cpp::eol; + } + + return 0; +} diff --git a/src/bin/calaos_home/main_cover.cpp b/src/bin/calaos_home/main_cover.cpp new file mode 100644 index 00000000..d16bc4fb --- /dev/null +++ b/src/bin/calaos_home/main_cover.cpp @@ -0,0 +1,243 @@ +/****************************************************************************** +** Copyright (c) 2007-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +//----------------------------------------------------------------------------- +// +// Calaos thumbnailer using Evas buffer +// +//----------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +//Usefull utility functions +template +bool is_of_type(const std::string &str) +{ + std::istringstream iss(str); + T tmp; + return (iss >> tmp) && (iss.eof()); +} +template +bool from_string(const std::string &str, T &dest) +{ + std::istringstream iss(str); + return iss >> dest != 0; +} +template +std::string to_string( const T & Value ) +{ + std::ostringstream oss; + oss << Value; + return oss.str(); +} + +typedef struct _ThumbSize +{ + int w, h; +} ThumbSize; + +struct CurlFile +{ + string filename; + FILE *stream; +}; + +static size_t thumb_fwrite(void *buffer, size_t size, size_t nmemb, void *stream) +{ + struct CurlFile *out = (struct CurlFile *)stream; + if(out && !out->stream) + { + out->stream = fopen(out->filename.c_str(), "wb"); + if(!out->stream) + return -1; /* failure, can't open file to write */ + } + return fwrite(buffer, size, nmemb, out->stream); +} + +static void split(const string &str, vector &tokens, const string &delimiters = " ", int max = 0); +static bool CreateThumb_Evas(string &input_file, string &output_file, ThumbSize &thumb_sizes); + +int main (int argc, char **argv) +{ + if (argc != 4) + { + cout << "Calaos thumbnailer" << endl << "\tUsage:" << endl; + cout << "\t\t" << argv[0] << " " << endl << endl; + cout << "\tWhere is an image file supported by Evas. can be an http link and then the file is downloaded first." << endl; + cout << "\tAnd is of the form: 123x123" << endl; + cout << endl << "Thumb is saved in in JPG format." << endl; + + return 1; + } + + //parse cmd line + string input_file = argv[1]; + string output_file = argv[2]; + bool to_del = false; + + ThumbSize size; + vector token; + + string s = argv[3]; + split(s, token, "x", 2); + if (token.size() != 2) + { + cout << "calaos_thumb: Can't parse size..." << endl; + return 1; + } + from_string(token[0], size.w); + from_string(token[1], size.h); + + //Check if it's an url and download it + if (input_file.compare(0, 7, "http://") == 0 || + input_file.compare(0, 8, "https://") == 0) + { + CURL *curl; + CURLcode res; + CurlFile cfile; + cfile.filename = output_file + "_tmp"; + cfile.stream = NULL; + + to_del = true; + + curl = curl_easy_init(); + if(curl) + { + curl_easy_setopt(curl, CURLOPT_URL, input_file.c_str()); + curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0"); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true); + curl_easy_setopt(curl, CURLOPT_NOSIGNAL, true); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, thumb_fwrite); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &cfile); + res = curl_easy_perform(curl); + + /* always cleanup */ + curl_easy_cleanup(curl); + + if(CURLE_OK != res) + { + /* we failed */ + fprintf(stderr, "curl told us %d\n", res); + return 1; + } + + if(cfile.stream) + fclose(cfile.stream); + + input_file = cfile.filename; + + curl_global_cleanup(); + } + } + + + bool ret = CreateThumb_Evas(input_file, output_file, size); + + if (to_del) + ecore_file_unlink(input_file.c_str()); + + if (ret) + return 0; + + cout << "calaos_thumb: Unable to do thumbnails..." << endl; + return 1; +} + +bool CreateThumb_Evas(string &input_file, string &output_file, ThumbSize &thumb_size) +{ + evas_init(); + ecore_init(); + + Ecore_Evas *ee = ecore_evas_buffer_new(thumb_size.w, thumb_size.h); + if (!ee) return false; + + Evas_Object *im = ecore_evas_object_image_new(ee); + if (!im) { ecore_evas_free(ee); return false; } + + evas_object_move(im, 0, 0); + evas_object_resize(im, thumb_size.w, thumb_size.h); + evas_object_image_fill_set(im, 0, 0, thumb_size.w, thumb_size.h); + evas_object_image_size_set(im, thumb_size.w, thumb_size.h); + evas_object_show(im); + Ecore_Evas *ee_im = (Ecore_Evas *)evas_object_data_get(im, "Ecore_Evas"); + Evas *evas_im = ecore_evas_get(ee_im); + + Evas_Object *image = evas_object_image_add(evas_im); + evas_object_image_file_set(image, input_file.c_str(), NULL); + evas_object_image_fill_set(image, 0, 0, thumb_size.w, thumb_size.h); + evas_object_move(image, 0, 0); + evas_object_resize(image, thumb_size.w, thumb_size.h); + evas_object_show(image); + + ecore_evas_buffer_pixels_get(ee); + if (!evas_object_image_save(im, output_file.c_str(), NULL, "quality=85 compress=9")) + cout << "evas_object_image_save() failed..." << endl; + + evas_object_del(image); + evas_object_del(im); + ecore_evas_free(ee); + + ecore_shutdown(); + evas_shutdown(); + + return true; +} + +void split(const string &str, vector &tokens, const string &delimiters, int max /* = 0 */) +{ + // Skip delimiters at beginning. + string::size_type lastPos = str.find_first_not_of(delimiters, 0); + // Find first "non-delimiter". + string::size_type pos = str.find_first_of(delimiters, lastPos); + + int counter = 0; + + while (string::npos != pos || string::npos != lastPos) + { + if (counter + 1 >= max && max > 0) + { + tokens.push_back(str.substr(lastPos, string::npos)); + break; + } + + // Found a token, add it to the vector. + tokens.push_back(str.substr(lastPos, pos - lastPos)); + // Skip delimiters. Note the "not_of" + lastPos = str.find_first_not_of(delimiters, pos); + // Find next "non-delimiter" + pos = str.find_first_of(delimiters, lastPos); + + counter++; + } + + while ((int)tokens.size() < max) tokens.push_back(""); +} diff --git a/src/bin/calaos_home/models/AudioModel.cpp b/src/bin/calaos_home/models/AudioModel.cpp new file mode 100644 index 00000000..69303903 --- /dev/null +++ b/src/bin/calaos_home/models/AudioModel.cpp @@ -0,0 +1,963 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "AudioModel.h" +#include "CalaosModel.h" +#include + +static Eina_Bool exe_callback(void *data, int type, void *event) +{ + AudioModel *model = reinterpret_cast(data); + Ecore_Exe_Event_Del *ev = reinterpret_cast(event); + + model->executableDone(ev); + + return EINA_TRUE; +} + +AudioModel::AudioModel(CalaosConnection *con): + connection(con) +{ + ecore_file_mkdir(DEFAULT_CONFIG_PATH".cover_cache"); + ecore_event_handler_add(ECORE_EXE_EVENT_DEL, exe_callback, this); +} + +AudioModel::~AudioModel() +{ + for_each(players.begin(), players.end(), Delete()); +} + +void AudioModel::load() +{ + connection->SendCommand("audio ?", sigc::mem_fun(*this, &AudioModel::audio_count_cb)); +} + +void AudioModel::audio_count_cb(bool success, vector result, void *data) +{ + if (!success) return; + + if (result.size() < 2) return; + + if (is_of_type(result[1])) + { + int count; + from_string(result[1], count); + + load_count = 0; + + if (count == 0) + { + //No audio players found. + load_done.emit(); + } + + for (int i = 0;i < count;i++) + { + AudioPlayer *player = new AudioPlayer(connection); + players.push_back(player); + + player->params.Add("num", to_string(i)); + + load_count++; + player->load_done.connect(sigc::mem_fun(*this, &AudioModel::load_audio_done)); + + string cmd = "audio get " + to_string(i); + connection->SendCommand(cmd, sigc::mem_fun(*player, &AudioPlayer::audio_get_cb)); + } + } + else + { + //Load of audio players failed because of a wrong reply + load_done.emit(); + } +} + +void AudioModel::load_audio_done(AudioPlayer *audio) +{ + load_count--; + + cout << "[AUDIO load done]" << endl; + + if (load_count <= 0) + { + cout << "[AUDIO LOAD DONE sending signal]" << endl; + load_done.emit(); + } +} + +void AudioPlayer::audio_get_cb(bool success, vector result, void *data) +{ + for (uint b = 2;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + params.Add(tmp[0], tmp[1]); + } + + string cmd; + + //Query some more infos + cmd = "audio " + params["num"] + " volume?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_volume_get_cb)); + + cmd = "audio " + params["num"] + " status?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_status_get_cb)); + + cmd = "audio " + params["num"] + " songinfo?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_songinfo_get_cb)); + + cmd = "audio " + params["num"] + " playlist size?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_playlist_size_get_cb)); + + cmd = "audio " + params["num"] + " database stats?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_db_stats_get_cb)); + + IOBase *amp = getAmplifier(); + if (amp) + { + amp->sendUserCommand("states?", sigc::mem_fun(*this, &AudioPlayer::getAmpStates_cb)); + amp->sendUserCommand("query input_sources ?", sigc::mem_fun(*this, &AudioPlayer::getInputSource_cb)); + } + + load_done.emit(this); +} + +void AudioPlayer::audio_volume_get_cb(bool success, vector result, void *data) +{ + if (result.size() != 3) return; + + vector tmp; + Utils::split(result[2], tmp, ":", 2); + + from_string(tmp[1], volume); + player_volume_changed.emit(); +} + +void AudioPlayer::audio_status_get_cb(bool success, vector result, void *data) +{ + if (result.size() != 3) return; + + vector tmp; + Utils::split(result[2], tmp, ":", 2); + + if (tmp[1] == "playing") tmp[1] = "play"; + params.Add("status", tmp[1]); + player_status_changed.emit(); +} + +void AudioPlayer::audio_songinfo_get_cb(bool success, vector result, void *data) +{ + if (result.size() < 3) return; + + for (uint i = 2;i < result.size();i++) + { + vector tmp; + Utils::split(result[i], tmp, ":", 2); + + if (tmp.size() != 2) continue; + + if (tmp[0] == "duration") + { + from_string(tmp[1], duration); + current_song_info.Add(tmp[0], Utils::time2string_digit((long)duration)); + } + else + { + current_song_info.Add(tmp[0], tmp[1]); + } + } + + player_track_changed.emit(); +} + +void AudioPlayer::notifyChange(string msg) +{ + vector notif; + split(msg, notif, " "); + + if (notif.size() < 3) return; + if (notif[1] != params["num"]) return; + + if (notif[0] == "audio") + { + if (notif[2] == "songchanged") + { + string cmd = "audio " + params["num"] + " status?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_status_get_cb)); + + cmd = "audio " + params["num"] + " songinfo?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_songinfo_get_cb)); + } + } + else if (notif[0] == "audio_playlist") + { + if (notif[2] != "playlist") return; + + if (notif[3] == "cleared") + { + playlist_size = 0; + player_playlist_changed.emit(); + } + else if (notif[3] == "tracksadded") + { + string cmd = "audio " + params["num"] + " playlist size?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_playlist_size_get_added_cb)); + } + else if (notif[3] == "reload") + { + string cmd = "audio " + params["num"] + " playlist size?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_playlist_size_get_cb)); + } + else if (notif[3] == "delete") + { + playlist_size--; + if (playlist_size < 0) playlist_size = 0; + + int del; + from_string(notif[4], del); + + player_playlist_tracks_deleted.emit(del); + } + else if (notif[3] == "move") + { + int from, to; + from_string(notif[4], from); + from_string(notif[5], to); + + player_playlist_tracks_moved.emit(from, to); + } + } + else if (notif[0] == "audio_status") + { + if (notif[2] == "play" || notif[2] == "playing") + params.Add("status", "play"); + else if (notif[2] == "pause") + params.Add("status", "pause"); + else if (notif[2] == "stop") + params.Add("status", "stop"); + else + return; + + player_status_changed.emit(); + } + else if (notif[0] == "audio_volume") + { + if (notif[2] != "change") return; + string v = Utils::url_decode(notif[3]); + + if (v[0] == '+') + { + v.erase(v.begin()); + int t; + from_string(v, t); + volume += t; + if (volume > 100) volume = 100; + } + else if (v[0] == '-') + { + v.erase(v.begin()); + int t; + from_string(v, t); + volume -= t; + if (volume < 0) volume = 0; + } + else + { + from_string(v, volume); + } + + player_volume_changed.emit(); + } +} + +void AudioPlayer::setVolume(int volume) +{ + if (volume < 0) volume = 0; + if (volume > 100) volume = 100; + + string cmd = "audio " + params["num"] + " volume " + to_string(volume); + connection->SendCommand(cmd); +} + +void AudioPlayer::play() +{ + string cmd = "audio " + params["num"] + " play"; + connection->SendCommand(cmd); +} + +void AudioPlayer::pause() +{ + string cmd = "audio " + params["num"] + " pause"; + connection->SendCommand(cmd); +} + +void AudioPlayer::stop() +{ + string cmd = "audio " + params["num"] + " stop"; + connection->SendCommand(cmd); +} + +void AudioPlayer::next() +{ + string cmd = "audio " + params["num"] + " next"; + connection->SendCommand(cmd); +} + +void AudioPlayer::previous() +{ + string cmd = "audio " + params["num"] + " previous"; + connection->SendCommand(cmd); +} + +void AudioPlayer::on() +{ + string cmd = "audio " + params["num"] + " on"; + connection->SendCommand(cmd); +} + +void AudioPlayer::off() +{ + string cmd = "audio " + params["num"] + " off"; + connection->SendCommand(cmd); +} + +string AudioPlayer::getStatus() +{ + return params["status"]; +} + +void AudioPlayer::registerChange() +{ + changeReg++; + + //Reload database stats in case of changes + string cmd = "audio " + params["num"] + " database stats?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_db_stats_get_cb)); + + if (!timer_change) + timer_change = new EcoreTimer(0.5, (sigc::slot)sigc::mem_fun(*this, &AudioPlayer::timerChangeTick)); +} + +void AudioPlayer::unregisterChange() +{ + changeReg--; + + if (changeReg < 0) + { + Utils::logger("network") << Priority::WARN << "AudioPlayer: WARNING, unregisterChange() called too many times !" << log4cpp::eol; + changeReg = 0; + } + + if (changeReg == 0) + DELETE_NULL(timer_change); +} + +void AudioPlayer::timerChangeTick() +{ + if (time_inprocess) return; + + string cmd = "audio " + params["num"] + " time?"; + time_inprocess = true; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::audio_time_get_cb)); +} + +void AudioPlayer::audio_time_get_cb(bool success, vector result, void *data) +{ + time_inprocess = false; + + if (result.size() != 3) return; + + vector tmp; + Utils::split(result[2], tmp, ":", 2); + + from_string(tmp[1], elapsed_time); + params.Add("time", Utils::time2string_digit((long)elapsed_time)); + player_time_changed.emit(); +} + +void AudioPlayer::setTime(double time) +{ + string cmd = "audio " + params["num"] + " time " + to_string(time); + connection->SendCommand(cmd); +} + +void AudioPlayer::audio_playlist_size_get_cb(bool success, vector result, void *data) +{ + if (result.size() != 4) return; + + from_string(result[3], playlist_size); + player_playlist_changed.emit(); +} + +void AudioPlayer::audio_playlist_size_get_added_cb(bool success, vector result, void *data) +{ + if (result.size() != 4) return; + + int nb_added = playlist_size; + from_string(result[3], playlist_size); + nb_added = playlist_size - nb_added; + + if (nb_added < 0) + player_playlist_changed.emit(); + else + player_playlist_tracks_added.emit(nb_added); +} + +void AudioPlayer::audio_db_stats_get_cb(bool success, vector result, void *data) +{ + if (result.size() < 4) return; + + for (uint b = 3;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + db_stats.Add(tmp[0], tmp[1]); + } +} + +void AudioPlayer::playItem(int item) +{ + string cmd = "audio " + params["num"] + " playlist " + to_string(item) + " play"; + connection->SendCommand(cmd); +} + +void AudioPlayer::getPlaylistItem(int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " playlist " + to_string(item) + " getitem?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::playlist_item_get_cb), data); +} + +void AudioPlayer::playlist_item_get_cb(bool success, vector result, void *data) +{ + PlayerInfoData *user_data = reinterpret_cast(data); + if (!user_data) return; //Probably leaking here ! + + if (result.size() < 4) return; + + Params infos; + + for (uint b = 4;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + infos.Add(tmp[0], tmp[1]); + } + + PlayerInfo_signal sig; + sig.connect(user_data->callback); + sig.emit(infos); + + delete user_data; +} + +void AudioPlayer::removePlaylistItem(int item) +{ + string cmd = "audio " + params["num"] + " playlist " + to_string(item) + " delete"; + connection->SendCommand(cmd); +} + +void AudioPlayer::getCurrentCover(PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " cover?"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::cover_cb), data); +} + +void AudioPlayer::cover_cb(bool success, vector result, void *data) +{ + PlayerInfoData *user_data = reinterpret_cast(data); + if (!user_data) return; //Probably leaking here ! + + if (result.size() < 3) return; + + Params infos; + + vector tmp; + Utils::split(result[2], tmp, ":", 2); + if (tmp.size() < 2) return; + + infos.Add("cover", tmp[1]); + + PlayerInfo_signal sig; + sig.connect(user_data->callback); + sig.emit(infos); + + delete user_data; +} + +bool AudioPlayer::hasCover() +{ + if (current_song_info["coverart"] == "1") + return true; + + return false; +} + +Params &AudioPlayer::getDBStats() +{ + return db_stats; +} + +void AudioPlayer::getDBAlbumItem(int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database albums " + to_string(item) + " 1"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBAlbumArtistItem(int item, int artist_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database artist_albums " + to_string(item) + " 1 artist_id:" + to_string(artist_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBAlbumYearItem(int item, int year_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database year_albums " + to_string(item) + " 1 year:" + to_string(year_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBArtistGenreItem(int item, int genre_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database genre_artists " + to_string(item) + " 1 genre_id:" + to_string(genre_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::db_default_item_get_cb(bool success, vector result, void *data) +{ + PlayerInfoData *user_data = reinterpret_cast(data); + if (!user_data) return; //Probably leaking here ! + + if (result.size() < 4) return; + + Params infos; + + for (uint b = 4;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + infos.Add(tmp[0], tmp[1]); + } + + PlayerInfo_signal sig; + sig.connect(user_data->callback); + sig.emit(infos); + + delete user_data; +} + +void AudioPlayer::db_default_item_list_get_cb(bool success, vector result, void *data) +{ + PlayerInfoData *user_data = reinterpret_cast(data); + if (!user_data) return; //Probably leaking here ! + + if (result.size() < 4) return; + + list infos; + Params item; + int cpt = 0; + + for (uint b = 4;b < result.size();b++) + { + string tmp = result[b]; + vector tk; + split(tmp, tk, ":", 2); + if (tk.size() != 2) continue; + + if (tk[0] == "id") + { + if (cpt > 0) infos.push_back(item); + item.clear(); + cpt++; + } + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (item.size() > 0) infos.push_back(item); + + PlayerInfoList_signal sig; + sig.connect(user_data->callback_list); + sig.emit(infos); + + delete user_data; +} + +void AudioPlayer::getDBAlbumTrackCount(int album_item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database album_titles 0 1 album_id:" + to_string(album_item); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_album_track_count_get_cb), data); +} + +void AudioPlayer::getDBArtistAlbumCount(int artist_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database artist_albums 0 1 artist_id:" + to_string(artist_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_album_track_count_get_cb), data); +} + +void AudioPlayer::getDBYearAlbumCount(int year_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database year_albums 0 1 year:" + to_string(year_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_album_track_count_get_cb), data); +} + +void AudioPlayer::getDBGenreArtistCount(int genre_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database genre_artists 0 1 genre_id:" + to_string(genre_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_album_track_count_get_cb), data); +} + +void AudioPlayer::getDBPlaylistTrackCount(int playlist_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database playlist_titles 0 1 playlist_id:" + to_string(playlist_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_album_track_count_get_cb), data); +} + +void AudioPlayer::playlistDelete(string id) +{ + string cmd = "audio " + params["num"] + " database playlist delete playlist_id:" + to_string(id); + connection->SendCommand(cmd); +} + +void AudioPlayer::db_album_track_count_get_cb(bool success, vector result, void *data) +{ + PlayerInfoData *user_data = reinterpret_cast(data); + if (!user_data) return; //Probably leaking here ! + + if (result.size() < 5) return; + + Params infos; + + for (uint b = 4;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + if (tmp[0] == "count") + { + infos.Add(tmp[0], tmp[1]); + break; + } + } + + PlayerInfo_signal sig; + sig.connect(user_data->callback); + sig.emit(infos); + + delete user_data; +} + +void AudioPlayer::getDBAlbumTrackItem(int album_id, int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database album_titles " + to_string(item) + " 1 album_id:" + to_string(album_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBPlaylistTrackItem(int playlist_id, int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database playlist_titles " + to_string(item) + " 1 playlist_id:" + to_string(playlist_id); + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBAlbumCoverItem(Params &item, PlayerInfo_cb callback, int size) +{ + if (!item.Exists("cover_url")) return; + + string fname = to_string(DEFAULT_CONFIG_PATH) + ".cover_cache/album_" + item["cover_id"]; + + string cmdsize; + switch (size) + { + default: + case AUDIO_COVER_SIZE_SMALL: cmdsize = "40x40"; fname += "_small.jpg"; break; + case AUDIO_COVER_SIZE_MEDIUM: cmdsize = "100x100"; fname += "_medium.jpg"; break; + case AUDIO_COVER_SIZE_BIG: cmdsize = "250x250"; fname += "_big.jpg"; break; + } + + if (ecore_file_exists(fname.c_str())) + { + PlayerInfo_signal sig; + sig.connect(callback); + Params p; + p.Add("filename", fname); + sig.emit(p); + + return; + } + + PlayerInfoData *data = new PlayerInfoData(); + data->cover_fname = fname; + data->callback = callback; + data->item = item; + + string cmd = "calaos_thumb " + item["cover_url"] + " " + fname + " " + cmdsize; + data->thumb_exe = ecore_exe_run(cmd.c_str(), data); + if (!data->thumb_exe) + { + PlayerInfo_signal sig; + sig.connect(callback); + Params p; + sig.emit(p); + + delete data; + } +} + +void AudioModel::executableDone(Ecore_Exe_Event_Del *event) +{ + if (!event) return; + PlayerInfoData *data = reinterpret_cast(ecore_exe_data_get(event->exe)); + if (!data) return; + if (data->thumb_exe != event->exe) return; + + PlayerInfo_signal sig; + sig.connect(data->callback); + Params p; + p.Add("filename", data->cover_fname); + sig.emit(p); + + delete data; +} + +IOBase *AudioPlayer::getAmplifier() +{ + if (!params.Exists("amp_id")) return NULL; + + map::const_iterator it = CalaosModel::Instance().getHome()->getCacheOutputs().find(params["amp_id"]); + if (it == CalaosModel::Instance().getHome()->getCacheOutputs().end()) + return NULL; + + return (*it).second; +} + +void AudioPlayer::getInputSource_cb(bool success, vector result, void *data) +{ + if (!success) return; + + amplifier_inputs.clear(); + for (unsigned int i = 4;i < result.size();i++) + { + vector tok; + int num; + split(result[i], tok, ":", 2); + from_string(tok[0], num); + + amplifier_inputs[num] = tok[1]; + } +} + +void AudioPlayer::getAmpStates_cb(bool success, vector result, void *data) +{ + if (!success) return; + + IOBase *amp = getAmplifier(); + if (!amp) return; + + for (unsigned int i = 2;i < result.size();i++) + { + vector tok; + split(result[i], tok, ":", 2); + + amp->params.Add(tok[0], tok[1]); + } +} + +string AudioPlayer::getAmplifierStatus(string key) +{ + IOBase *amp = getAmplifier(); + if (!amp) return ""; + + return amp->params[key]; +} + +string AudioPlayer::itemTypeToString(int type) +{ + switch (type) + { + case DB_ITEM_TRACK: return "track_id"; + case DB_ITEM_ALBUM: return "album_id"; + case DB_ITEM_ARTIST: return "artist_id"; + case DB_ITEM_GENRE: return "genre_id"; + case DB_ITEM_YEAR: return "year"; + case DB_ITEM_PLAYLIST: return "playlist_id"; + case DB_ITEM_FOLDER: return "folder_id"; + case DB_ITEM_RADIO: return "radio_id"; + default: + return ""; + } +} + +int AudioPlayer::itemStringToType(string type) +{ + if (type == "track_id") return DB_ITEM_TRACK; + else if (type == "album_id") return DB_ITEM_ALBUM; + else if (type == "artist_id") return DB_ITEM_ARTIST; + else if (type == "genre_id") return DB_ITEM_GENRE; + else if (type == "year") return DB_ITEM_YEAR; + else if (type == "playlist_id") return DB_ITEM_PLAYLIST; + else if (type == "folder_id") return DB_ITEM_FOLDER; + else if (type == "radio_id") return DB_ITEM_RADIO; + else return DB_ITEM_NONE; +} + +void AudioPlayer::addItem(int type, string id) +{ + string cmd = "audio " + params["num"] + " playlist add "; + if (type == DB_ITEM_DIRECTURL) + cmd += id; + else + cmd += itemTypeToString(type) + ":" + id; + + connection->SendCommand(cmd); +} + +void AudioPlayer::playItem(int type, string id) +{ + string cmd = "audio " + params["num"] + " playlist play "; + if (type == DB_ITEM_DIRECTURL) + cmd += id; + else + cmd += itemTypeToString(type) + ":" + id; + + connection->SendCommand(cmd); +} + +void AudioPlayer::getDBArtistItem(int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database artists " + to_string(item) + " 1"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBYearItem(int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database years " + to_string(item) + " 1"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBGenreItem(int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database genres " + to_string(item) + " 1"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBPlaylistItem(int item, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database playlists " + to_string(item) + " 1"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBFolder(string folder_id, PlayerInfoList_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback_list = callback; + string cmd = "audio " + params["num"] + " database music_folder 0 999999"; + if (folder_id != "") cmd += " folder_id:" + folder_id; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_list_get_cb), data); +} + +void AudioPlayer::getDBSearch(string search, PlayerInfoList_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback_list = callback; + string cmd = "audio " + params["num"] + " database search 0 999999"; + cmd += " search_terms:" + search; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_list_get_cb), data); +} + +void AudioPlayer::getDBTrackInfos(string track_id, PlayerInfo_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback = callback; + string cmd = "audio " + params["num"] + " database track_infos track_id:" + track_id; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_get_cb), data); +} + +void AudioPlayer::getDBAllRadio(PlayerInfoList_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback_list = callback; + string cmd = "audio " + params["num"] + " database radios 0 999999"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_list_get_cb), data); +} + +void AudioPlayer::getDBRadio(string radio_id, string subitem_id, PlayerInfoList_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback_list = callback; + string cmd = "audio " + params["num"] + " database radio_items 0 999999 radio_id:" + radio_id; + if (subitem_id != "") cmd += " item_id:" + subitem_id; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_list_get_cb), data); +} + +void AudioPlayer::getDBRadioSearch(string radio_id, string subitem_id, string search, PlayerInfoList_cb callback) +{ + PlayerInfoData *data = new PlayerInfoData(); + data->callback_list = callback; + string cmd = "audio " + params["num"] + " database radio_items 0 999999 radio_id:" + radio_id; + cmd += " item_id:" + subitem_id; + cmd += " search:" + search; + connection->SendCommand(cmd, sigc::mem_fun(*this, &AudioPlayer::db_default_item_list_get_cb), data); +} diff --git a/src/bin/calaos_home/models/AudioModel.h b/src/bin/calaos_home/models/AudioModel.h new file mode 100644 index 00000000..3a085bb7 --- /dev/null +++ b/src/bin/calaos_home/models/AudioModel.h @@ -0,0 +1,222 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef AUDIOMODEL_H +#define AUDIOMODEL_H + +#include + +#include "CalaosConnection.h" + +using namespace Utils; + +typedef sigc::slot PlayerInfo_cb; +typedef sigc::signal PlayerInfo_signal; +typedef sigc::slot &> PlayerInfoList_cb; +typedef sigc::signal &> PlayerInfoList_signal; + +class IOBase; + +class PlayerInfoData +{ + public: + PlayerInfo_cb callback; + PlayerInfoList_cb callback_list; + + Params item; + string cover_fname; + Ecore_Exe *thumb_exe; +}; + +class AudioPlayer: public sigc::trackable +{ + private: + CalaosConnection *connection; + + int volume; + int changeReg; + int playlist_size; + + EcoreTimer *timer_change; + bool time_inprocess; + + double duration; + double elapsed_time; + + Params db_stats; + + map amplifier_inputs; + + string itemTypeToString(int type); + int itemStringToType(string type); + + void timerChangeTick(); + + void notifyChange(string notif); + + void audio_volume_get_cb(bool success, vector result, void *data); + void audio_status_get_cb(bool success, vector result, void *data); + void audio_songinfo_get_cb(bool success, vector result, void *data); + void audio_time_get_cb(bool success, vector result, void *data); + void audio_playlist_size_get_cb(bool success, vector result, void *data); + void audio_playlist_size_get_added_cb(bool success, vector result, void *data); + void playlist_item_get_cb(bool success, vector result, void *data); + void cover_cb(bool success, vector result, void *data); + void audio_db_stats_get_cb(bool success, vector result, void *data); + + void db_default_item_get_cb(bool success, vector result, void *data); + void db_default_item_list_get_cb(bool success, vector result, void *data); + + void db_album_track_count_get_cb(bool success, vector result, void *data); + + void getInputSource_cb(bool success, vector result, void *data); + void getAmpStates_cb(bool success, vector result, void *data); + + public: + AudioPlayer(CalaosConnection *c): + connection(c), + changeReg(0), + timer_change(NULL), + time_inprocess(false) + { + connection->getListener()->notify_audio_change.connect( + sigc::mem_fun(*this, &AudioPlayer::notifyChange)); + } + + void audio_get_cb(bool success, vector result, void *data); + + Params params; + + int getVolume() { return volume; } + void setVolume(int volume); + double getDuration() { return duration; } + double getTimeElapsed() { return elapsed_time; } + void setTime(double t); + + string getStatus(); + + int getPlaylistSize() { return playlist_size; } + + void play(); + void pause(); + void stop(); + void next(); + void previous(); + void on(); + void off(); + + //each view wanting player updates need to register/unregister, so that + //the model can optimize network queries. + void registerChange(); + void unregisterChange(); + + void playItem(int item); + void getPlaylistItem(int item, PlayerInfo_cb callback); + void removePlaylistItem(int item); + + //Add or play an item from the database + enum { DB_ITEM_NONE = 0, DB_ITEM_TRACK, DB_ITEM_ALBUM, DB_ITEM_ARTIST, + DB_ITEM_GENRE, DB_ITEM_YEAR, DB_ITEM_PLAYLIST, DB_ITEM_FOLDER, + DB_ITEM_RADIO, DB_ITEM_DIRECTURL }; + void playItem(int type, string id); + void addItem(int type, string id); + + bool hasCover(); + void getCurrentCover(PlayerInfo_cb callback); + + //Amplifier + IOBase *getAmplifier(); + map getInputSources() { return amplifier_inputs; } + string getAmplifierStatus(string key); + + //Database queries + Params &getDBStats(); + + void playlistDelete(string id); + + void getDBAlbumItem(int item, PlayerInfo_cb callback); + void getDBArtistItem(int item, PlayerInfo_cb callback); + void getDBYearItem(int item, PlayerInfo_cb callback); + void getDBGenreItem(int item, PlayerInfo_cb callback); + void getDBPlaylistItem(int item, PlayerInfo_cb callback); + + void getDBAlbumTrackCount(int album_id, PlayerInfo_cb callback); + void getDBArtistAlbumCount(int artist_id, PlayerInfo_cb callback); + void getDBYearAlbumCount(int year_id, PlayerInfo_cb callback); + void getDBGenreArtistCount(int genre_id, PlayerInfo_cb callback); + void getDBPlaylistTrackCount(int playlist_id, PlayerInfo_cb callback); + + void getDBAlbumTrackItem(int album_id, int item, PlayerInfo_cb callback); + void getDBAlbumArtistItem(int item, int artist_id, PlayerInfo_cb callback); + void getDBAlbumYearItem(int item, int year_id, PlayerInfo_cb callback); + void getDBArtistGenreItem(int item, int genre_id, PlayerInfo_cb callback); + void getDBPlaylistTrackItem(int playlist_id, int item, PlayerInfo_cb callback); + + void getDBFolder(string folder_id, PlayerInfoList_cb callback); + void getDBTrackInfos(string track_id, PlayerInfo_cb callback); + void getDBAllRadio(PlayerInfoList_cb callback); + void getDBRadio(string radio_id, string subitem_id, PlayerInfoList_cb callback); + void getDBRadioSearch(string radio_id, string subitem_id, string search, PlayerInfoList_cb callback); + void getDBSearch(string search, PlayerInfoList_cb callback); + + enum { AUDIO_COVER_SIZE_NONE = 0, AUDIO_COVER_SIZE_SMALL, AUDIO_COVER_SIZE_MEDIUM, AUDIO_COVER_SIZE_BIG }; + void getDBAlbumCoverItem(Params &item, PlayerInfo_cb callback, int size = AUDIO_COVER_SIZE_NONE); + + Params current_song_info; + + sigc::signal load_done; + + //Public notification of player changes + sigc::signal player_status_changed; + sigc::signal player_track_changed; + sigc::signal player_volume_changed; + sigc::signal player_time_changed; + + //Playlist notification + sigc::signal player_playlist_changed; + sigc::signal player_playlist_tracks_added; + sigc::signal player_playlist_tracks_deleted; + sigc::signal player_playlist_tracks_moved; +}; + +class AudioModel: public sigc::trackable +{ + private: + CalaosConnection *connection; + + int load_count; + void load_audio_done(AudioPlayer *audio); + + void audio_count_cb(bool success, vector result, void *data); + + public: + AudioModel(CalaosConnection *connection); + ~AudioModel(); + + void load(); + + list players; + + sigc::signal load_done; + + void executableDone(Ecore_Exe_Event_Del *event); +}; + +#endif // AUDIOMODEL_H diff --git a/src/bin/calaos_home/models/CalaosModel.cpp b/src/bin/calaos_home/models/CalaosModel.cpp new file mode 100644 index 00000000..7933ea47 --- /dev/null +++ b/src/bin/calaos_home/models/CalaosModel.cpp @@ -0,0 +1,188 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "CalaosModel.h" + +CalaosModel::CalaosModel(): + discover(NULL), + connection(NULL), + room_model(NULL), + camera_model(NULL), + audio_model(NULL), + scenario_model(NULL), + loaded(false) +{ + discover = new CalaosDiscover(); + discover->server_found.connect(sigc::mem_fun(*this, &CalaosModel::discover_found)); + discover->login_error.connect(sigc::mem_fun(*this, &CalaosModel::discover_error_login)); +} + +CalaosModel::~CalaosModel() +{ + DELETE_NULL(room_model); + DELETE_NULL(camera_model); + DELETE_NULL(audio_model); + DELETE_NULL(scenario_model); + + DELETE_NULL(discover); + DELETE_NULL(connection); +} + +void CalaosModel::discover_found(string address) +{ + server_address = address; + + DELETE_NULL(discover) + + Utils::logger("network") << Priority::INFO << "CalaosModel: found server: " << server_address << log4cpp::eol; + + connection = new CalaosConnection(server_address); + connection->connection_ok.connect(sigc::mem_fun(*this, &CalaosModel::connection_ok)); + connection->lost_connection.connect(sigc::mem_fun(*this, &CalaosModel::lost_connection)); + + load_count = 0; + + DELETE_NULL(room_model) + room_model = new RoomModel(connection); + room_model->load_done.connect(sigc::mem_fun(*this, &CalaosModel::load_home_done)); + + DELETE_NULL(camera_model) + camera_model = new CameraModel(connection); + camera_model->load_done.connect(sigc::mem_fun(*this, &CalaosModel::load_done)); + + DELETE_NULL(audio_model) + audio_model = new AudioModel(connection); + audio_model->load_done.connect(sigc::mem_fun(*this, &CalaosModel::load_done)); + + DELETE_NULL(scenario_model) + scenario_model = new ScenarioModel(connection); + scenario_model->load_done.connect(sigc::mem_fun(*this, &CalaosModel::load_done)); +} + +void CalaosModel::discover_error_login(string address) +{ + /* this has to be redispatched to the gui and ask user for username/password */ + server_address = address; + + DELETE_NULL(discover) + + Utils::logger("network") << Priority::ERROR << "CalaosModel: Failed to login to server: " << server_address << log4cpp::eol; + + login_failed.emit(server_address); +} + +void CalaosModel::connection_ok() +{ + Utils::logger("network") << Priority::INFO << "CalaosModel: Connection success, loading home" << log4cpp::eol; + + //First load home and wait it finishes loading all IO (they are needed by AudioModel/CameraModel) + room_model->load(); +} + +void CalaosModel::lost_connection() +{ + Utils::logger("network") << Priority::ERROR << "CalaosModel: Lost Connection !" << log4cpp::eol; + + DELETE_NULL(room_model) + DELETE_NULL(camera_model) + DELETE_NULL(audio_model) + + loaded = false; +} + +void CalaosModel::load_done() +{ + load_count--; + + if (load_count <= 0) + { + Utils::logger("network") << Priority::INFO << "CalaosModel: Home loaded" << log4cpp::eol; + + home_loaded.emit(); + + loaded = true; + } +} + +void CalaosModel::load_home_done() +{ + camera_model->load(); + load_count++; + audio_model->load(); + load_count++; + scenario_model->load(); + load_count++; +} + +string CalaosModel::toString() +{ + stringstream s; + + if (room_model) + { + for (list::iterator i = room_model->rooms.begin();i != room_model->rooms.end();i++) + { + Room *room = *i; + s << "[" << room->type << " - " << room->name << "] - " << room->hits << endl; + + for (list::iterator j = room->ios.begin();j != room->ios.end();j++) + { + IOBase *io = *j; + + s << "\t" << io->params["type"] << " - " << io->params["id"] << " - " << io->params["name"] << " - " << io->params["hits"] << endl; + } + } + } + + if (camera_model) + { + for (list::iterator i = camera_model->cameras.begin();i != camera_model->cameras.end();i++) + { + Camera *camera = *i; + + s << "[Camera]" << endl << "\t"; + s << camera->params["name"] << " - " << camera->params["jpeg_url"] << endl; + } + } + + if (audio_model) + { + for (list::iterator i = audio_model->players.begin();i != audio_model->players.end();i++) + { + AudioPlayer *audio = *i; + + s << "[Audio]" << endl << "\t"; + s << audio->params["name"] << " - " << audio->params["id"] << endl; + } + } + + if (scenario_model) + { + for (list::iterator i = scenario_model->scenarios.begin();i != scenario_model->scenarios.end();i++) + { + Scenario *sc = *i; + + s << "[Scenario]" << endl << "\t"; + s << sc->ioScenario->params["name"] << " - " << sc->ioScenario->params["id"] << endl; + } + } + + return s.str(); +} diff --git a/src/bin/calaos_home/models/CalaosModel.h b/src/bin/calaos_home/models/CalaosModel.h new file mode 100644 index 00000000..a3349a9a --- /dev/null +++ b/src/bin/calaos_home/models/CalaosModel.h @@ -0,0 +1,84 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef CALAOSMODEL_H +#define CALAOSMODEL_H + +#include + +#include "CalaosDiscover.h" +#include "CalaosConnection.h" + +#include "RoomModel.h" +#include "CameraModel.h" +#include "AudioModel.h" +#include "ScenarioModel.h" + +using namespace Utils; + +class CalaosModel +{ + private: + CalaosModel(); + + CalaosDiscover *discover; + CalaosConnection *connection; + string server_address; + + RoomModel *room_model; + CameraModel *camera_model; + AudioModel *audio_model; + ScenarioModel *scenario_model; + + void discover_found(string address); + void discover_error_login(string address); + void connection_ok(); + void lost_connection(); + + int load_count; + void load_home_done(); + void load_done(); + bool loaded; + + void StartDiscover(); + + public: + static CalaosModel &Instance() + { + static CalaosModel inst; + return inst; + } + + ~CalaosModel(); + + string toString(); + + RoomModel *getHome() { return room_model; } + CameraModel *getCamera() { return camera_model; } + AudioModel *getAudio() { return audio_model; } + ScenarioModel *getScenario() { return scenario_model; } + + bool isLoaded() { return loaded; } + + sigc::signal login_failed; + sigc::signal home_loaded; +}; + +#endif // CALAOSMODEL_H diff --git a/src/bin/calaos_home/models/CameraModel.cpp b/src/bin/calaos_home/models/CameraModel.cpp new file mode 100644 index 00000000..a3d069e5 --- /dev/null +++ b/src/bin/calaos_home/models/CameraModel.cpp @@ -0,0 +1,176 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "CameraModel.h" +#include "CalaosModel.h" + +CameraModel::CameraModel(CalaosConnection *con): + connection(con) +{ +} + +CameraModel::~CameraModel() +{ + for_each(cameras.begin(), cameras.end(), Delete()); +} + +void CameraModel::load() +{ + connection->SendCommand("camera ?", sigc::mem_fun(*this, &CameraModel::camera_count_cb)); +} + +void CameraModel::camera_count_cb(bool success, vector result, void *data) +{ + if (!success) return; + + if (result.size() < 2) return; + + if (is_of_type(result[1])) + { + int count; + from_string(result[1], count); + + load_count = 0; + + if (count == 0) + { + //No camera found + load_done.emit(); + } + + for (int i = 0;i < count;i++) + { + Camera *cam = new Camera(connection); + cameras.push_back(cam); + + cam->params.Add("num", to_string(cameras.size() - 1)); + + load_count++; + cam->load_done.connect(sigc::mem_fun(*this, &CameraModel::load_camera_done)); + + string cmd = "camera get " + to_string(i); + connection->SendCommand(cmd, sigc::mem_fun(*cam, &Camera::camera_get_cb)); + } + } + else + { + //Load of camera failed because of a wrong reply + load_done.emit(); + } +} + +void CameraModel::load_camera_done(Camera *camera) +{ + load_count--; + + cout << "[CAMERA load done]" << endl; + + if (load_count <= 0) + { + cout << "[CAMERA LOAD DONE sending signal]" << endl; + load_done.emit(); + } +} + +void Camera::camera_get_cb(bool success, vector result, void *data) +{ + for (uint b = 2;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + params.Add(tmp[0], tmp[1]); + } + + load_done.emit(this); +} + +Room *Camera::getRoom() +{ + if (room) return room; + + map::const_iterator it = CalaosModel::Instance().getHome()->getCacheOutputs().find(params["oid"]); + if (it == CalaosModel::Instance().getHome()->getCacheOutputs().end()) + return NULL; + + IOBase *output = (*it).second; + return output->getRoom(); +} + +void Camera::sendAction_cb(bool success, vector result, void *data) +{ + //do nothing... +} + +void Camera::MoveCenter() +{ + string cmd = "camera move " + params["num"] + " home"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::MoveUp() +{ + string cmd = "camera move " + params["num"] + " up"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::MoveDown() +{ + string cmd = "camera move " + params["num"] + " down"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::MoveLeft() +{ + string cmd = "camera move " + params["num"] + " left"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::MoveRight() +{ + string cmd = "camera move " + params["num"] + " right"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::ZoomIn() +{ + string cmd = "camera move " + params["num"] + " zoomin"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::ZoomOut() +{ + string cmd = "camera move " + params["num"] + " zoomout"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::Recall(int position) +{ + string cmd = "camera move " + params["num"] + " " + to_string(position); + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} + +void Camera::Save(int position) +{ + string cmd = "camera save " + params["num"] + " " + to_string(position); + connection->SendCommand(cmd, sigc::mem_fun(*this, &Camera::sendAction_cb)); +} diff --git a/src/bin/calaos_home/models/CameraModel.h b/src/bin/calaos_home/models/CameraModel.h new file mode 100644 index 00000000..7fedc5b7 --- /dev/null +++ b/src/bin/calaos_home/models/CameraModel.h @@ -0,0 +1,87 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef CAMERAMODEL_H +#define CAMERAMODEL_H + +#include + +#include "CalaosConnection.h" +#include "RoomModel.h" + +using namespace Utils; + +class Camera: public sigc::trackable +{ + private: + CalaosConnection *connection; + + Room *room; + + void sendAction_cb(bool success, vector result, void *data); + + public: + Camera(CalaosConnection *c): + connection(c), + room(NULL) + {} + + void camera_get_cb(bool success, vector result, void *data); + + Params params; + + //Return the room where the camera is + Room *getRoom(); + + void MoveCenter(); + void MoveUp(); + void MoveDown(); + void MoveLeft(); + void MoveRight(); + void ZoomIn(); + void ZoomOut(); + void Recall(int position); + void Save(int position); + + sigc::signal load_done; +}; + +class CameraModel: public sigc::trackable +{ + private: + CalaosConnection *connection; + + int load_count; + void load_camera_done(Camera *camera); + + void camera_count_cb(bool success, vector result, void *data); + + public: + CameraModel(CalaosConnection *connection); + ~CameraModel(); + + void load(); + + list cameras; + + sigc::signal load_done; +}; + +#endif // CAMERAMODEL_H diff --git a/src/bin/calaos_home/models/RoomModel.cpp b/src/bin/calaos_home/models/RoomModel.cpp new file mode 100644 index 00000000..37ac80fa --- /dev/null +++ b/src/bin/calaos_home/models/RoomModel.cpp @@ -0,0 +1,1577 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "RoomModel.h" + +bool IOHitsCompare(const IOBase *lhs, const IOBase *rhs) +{ + return ((IOBase *)lhs)->params["hits"] > ((IOBase *)rhs)->params["hits"]; +} + +bool IOScenarioCompare(const IOBase *lhs, const IOBase *rhs) +{ + return ((IOBase *)lhs)->params["scenarioPref"] > ((IOBase *)rhs)->params["scenarioPref"]; +} + +bool RoomHitsCompare(const Room *lhs, const Room *rhs) +{ + return lhs->hits > rhs->hits; +} + +RoomModel::RoomModel(CalaosConnection *con): + connection(con) +{ + connection->getListener()->notify_room_delete.connect( + sigc::mem_fun(*this, &RoomModel::notifyRoomDel)); + connection->getListener()->notify_room_new.connect( + sigc::mem_fun(*this, &RoomModel::notifyRoomAdd)); +} + +RoomModel::~RoomModel() +{ + for_each(rooms.begin(), rooms.end(), Delete()); +} + +void RoomModel::load() +{ + room_loaded = 0; + connection->SendCommand("home ?", sigc::mem_fun(*this, &RoomModel::home_get_cb)); +} + +void RoomModel::home_get_cb(bool success, vector result, void *data) +{ + if (!success) return; + + for (uint i = 1;i < result.size();i++) + { + vector tmp; + split(result[i], tmp, ":", 2); + int nb; + if (tmp.size() < 2) continue; + from_string(tmp[1], nb); + + for(int j = 0;j < nb;j++) + { + Room *room = new Room(connection, this); + room->type = tmp[0]; + + rooms.push_back(room); + + room_loaded++; + room->load_done.connect(sigc::mem_fun(*this, &RoomModel::load_room_done)); + + string cmd = "room " + room->type + " get " + to_string(j); + connection->SendCommand(cmd, sigc::mem_fun(*room, &Room::new_room_cb)); + } + } + + if (room_loaded <= 0) + load_done.emit(); +} + +void RoomModel::load_room_done(Room *room) +{ + room_loaded--; + + cout << "[ROOM load done]" << endl; + + if (room_loaded <= 0) + { + rooms.sort(RoomHitsCompare); + cacheScenarios.sort(IOHitsCompare); + cacheScenariosPref = cacheScenarios; + cacheScenariosPref.sort(IOScenarioCompare); + + updateRoomType(); + + cout << "[ROOM LOAD DONE sending signal]" << endl; + + load_done.emit(); + } +} + +void Room::new_room_cb(bool success, vector result, void *data) +{ + if (!success) return; + + io_loaded = 0; + for (uint b = 2;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + if (tmp[0] == "input") + loadNewIO(tmp[1], IOBase::IO_INPUT); + else if (tmp[0] == "output") + loadNewIO(tmp[1], IOBase::IO_OUTPUT); + else if(tmp[0] == "name") + name = tmp[1]; + else if(tmp[0] == "hits") + Utils::from_string(tmp[1], hits); + } + + if (io_loaded <= 0) + load_done.emit(this); +} + +void Room::loadNewIO(string id, int io_type) +{ + IOBase *io = new IOBase(connection, this, io_type); + ios.push_back(io); + + io->params.Add("id", id); + + string cmd; + if (io_type == IOBase::IO_INPUT) + cmd = "input "; + else + cmd = "output "; + cmd += id + " get"; + + io->load_done.connect(sigc::mem_fun(*this, &Room::load_io_done)); + io_loaded++; + + connection->SendCommand(cmd, sigc::mem_fun(*io, &IOBase::new_io_cb)); +} + +void Room::load_io_done(IOBase *io) +{ + io_loaded--; + + //Put everything in cache so we can use it easily later + if (io->io_type == IOBase::IO_INPUT) + model->cacheInputs[io->params["id"]] = io; + else + model->cacheOutputs[io->params["id"]] = io; + + if (io->params["chauffage_id"] != "") + model->chauffageList.push_back(io); + + string type = io->params["type"]; + if ((type == "scenario" || + type == "Scenario") && io->io_type == IOBase::IO_OUTPUT) + { + model->cacheScenarios.push_back(io); + } + + if ((type == "WODigital" && io->params["gtype"] == "light") || + type == "WODali" || + type == "WODaliRVB") + { + int value; + from_string(io->params["state"], value); + + if (io->params["state"] == "true" || value > 0) + { + RoomIO roomIO; + roomIO.io = io; + roomIO.room = this; + + model->cacheLightsOn[io] = roomIO; + } + } + + if (type == "WOVolet" || + type == "WOVoletSmart") + { + int value = 100; + + vector tokens; + split(io->params["state"], tokens); + if (tokens.size() > 1) + from_string(tokens[1], value); + + if (io->params["state"] == "false" || value < 100 || io->params["state"] == "down") + { + RoomIO roomIO; + roomIO.io = io; + roomIO.room = this; + + model->cacheShuttersUp[io] = roomIO; + } + } + + if (io_loaded <= 0) + { + ios.sort(IOHitsCompare); + + updateVisibleIO(); + + load_done.emit(this); + } +} + +void Room::updateVisibleIO() +{ + visible_ios.clear(); + scenario_ios.clear(); + + list::iterator it = ios.begin(); + for (;it != ios.end();it++) + { + IOBase *io = *it; + + if (io->params["type"] != "scenario" && + io->params.Exists("auto_scenario")) + continue; + + if (io->params["type"] == "WODigital" || + (io->params["type"] == "InternalBool" && io->io_type == IOBase::IO_OUTPUT) || + (io->params["type"] == "InternalInt" && io->io_type == IOBase::IO_OUTPUT) || + (io->params["type"] == "InternalString" && io->io_type == IOBase::IO_OUTPUT) || + io->params["type"] == "OWTemp" || + (io->params["type"] == "scenario" && io->io_type == IOBase::IO_OUTPUT) || + io->params["type"] == "WIAnalog" || + io->params["type"] == "WITemp" || + io->params["type"] == "WODali" || + io->params["type"] == "WODaliRVB" || + io->params["type"] == "WOVolet" || + io->params["type"] == "WOVoletSmart" || + io->params["type"] == "X10Output" || + io->params["type"] == "WOAnalog") + { + if (io->params["visible"] == "true") + visible_ios.push_back(io); + + scenario_ios.push_back(io); + } + + if (io->params["type"] == "CamOutput" || + io->params["type"] == "AudioOutput") + { + scenario_ios.push_back(io); + } + } + + visible_ios.sort(IOHitsCompare); + scenario_ios.sort(IOHitsCompare); +} + +IOBase *RoomModel::getChauffageForType(string type) +{ + list l; + list::iterator it = rooms_type.begin(); + + for (;it != rooms_type.end();it++) + { + if ((*it)->type == type) + l.push_back((*it)); + } + + it = l.begin(); + l.sort(RoomHitsCompare); + + for (;it != l.end();it++) + { + IOBase *io = (*it)->getChauffage(); + + if (io) + return io; + } + + return NULL; +} + +IOBase *Room::getChauffage() +{ + list::iterator it = visible_ios.begin(); + for (;it != visible_ios.end();it++) + { + IOBase *io = (*it); + if (io->params["type"] == "WITemp" || + io->params["type"] == "OWTemp") + return io; + } + + return NULL; +} + +void IOBase::new_io_cb(bool success, vector result, void *data) +{ + if (!success) return; + + for (uint b = 1;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + params.Add(tmp[0], tmp[1]); + } + + load_done.emit(this); +} + +void RoomModel::updateRoomType() +{ + rooms_type.clear(); + + list::iterator it, itr; + for (it = rooms.begin(); it != rooms.end();it++) + { + Room *room = *it; + + if (room->type == "Internal") + continue; + + bool found = false; + for (itr = rooms_type.begin(); itr != rooms_type.end();itr++) + { + if ((*itr)->type == room->type) + found = true; + } + if (found) + continue; + + rooms_type.push_back(room); + } +} + +void IOBase::sendAction(string command) +{ + string cmd; + + if (io_type == IO_INPUT) + cmd = "input "; + else + cmd = "output "; + + cmd += params["id"] + " set " + url_encode(command); + + connection->SendCommand(cmd, sigc::mem_fun(*this, &IOBase::sendAction_cb)); +} + +void IOBase::sendUserCommand(string command, CommandDone_cb callback, void *data) +{ + string cmd; + + if (io_type == IO_INPUT) + cmd = "input "; + else + cmd = "output "; + + cmd += params["id"] + " " + command; + + connection->SendCommand(cmd, callback, data); +} + +void IOBase::sendAction_cb(bool success, vector result, void *data) +{ + //do nothing... +} + +void IOBase::notifyChange(string notif) +{ + vector tok; + split(notif, tok); + + if (tok.size() < 3) return; + + if (io_type == IO_INPUT && params["type"] == "InPlageHoraire" && + tok[0] == "input_range_change") + { + //Reload InPlageHoraire + loadPlage(); + + return; + } + + if ((io_type == IO_INPUT && tok[0] != "input") || + (io_type == IO_OUTPUT && tok[0] != "output")) + return; + + for_each(tok.begin(), tok.end(), UrlDecode()); + vector p; + split(tok[2], p, ":", 2); + + if (params["type"] == "scenario" || params["type"] == "Scenario") + { + if (params["ioBoolState"] == tok[1] && p[0] == "state") + { + params.Add("state", p[1]); + io_changed.emit(); + + return; + } + } + + if (tok[1] == params["id"]) + { + params.Add(p[0], p[1]); + io_changed.emit(); + + if (p[0] == "visible") + room->updateVisibleIO(); //update visibility + + checkCacheChange(); + + //Also update WITemp if we change consigne + if (params["chauffage_id"] != "" && params["type"] == "InternalInt") + { + IOBase *temp = room->model->getTempFromConsigne(this); + if (temp) + temp->io_changed.emit(); + } + } +} + +void IOBase::checkCacheChange() +{ + string type = params["type"]; + + if ((type == "WODigital" && params["gtype"] == "light") || + type == "WODali" || + type == "WODaliRVB") + { + int value; + from_string(params["state"], value); + + RoomIOCache::iterator it = room->model->cacheLightsOn.find(this); + + if (params["state"] == "true" || value > 0) + { + if (it == room->model->cacheLightsOn.end()) + { + RoomIO roomIO; + roomIO.io = this; + roomIO.room = room; + + room->model->cacheLightsOn[this] = roomIO; + room->model->lights_on_changed.emit(room->model->cacheLightsOn.size()); + } + } + else + { + if (it != room->model->cacheLightsOn.end()) + { + room->model->cacheLightsOn.erase(it); + room->model->lights_on_changed.emit(room->model->cacheLightsOn.size()); + } + } + } + + if (type == "WOVolet" || + type == "WOVoletSmart") + { + int value = 100; + + vector tokens; + split(params["state"], tokens); + if (tokens.size() > 1) + from_string(tokens[1], value); + + RoomIOCache::iterator it = room->model->cacheShuttersUp.find(this); + + if (params["state"] == "false" || value < 100 || params["state"] == "down") + { + if (it == room->model->cacheShuttersUp.end()) + { + RoomIO roomIO; + roomIO.io = this; + roomIO.room = room; + + room->model->cacheShuttersUp[this] = roomIO; + room->model->shutters_up_changed.emit(room->model->cacheShuttersUp.size()); + } + } + else + { + if (it != room->model->cacheShuttersUp.end()) + { + room->model->cacheShuttersUp.erase(it); + room->model->shutters_up_changed.emit(room->model->cacheShuttersUp.size()); + } + } + } +} + +void Room::notifyChange(string notif) +{ + vector tok; + split(notif, tok); + Params p; + + for (unsigned int i = 0;i < tok.size();i++) + { + vector t; + split(url_decode(tok[i]), t, ":", 2); + + for_each(t.begin(), t.end(), UrlDecode()); + + p.Add(t[0], t[1]); + } + + if (p.Exists("input_del") && + p["room_name"] == name && + p["room_type"] == type) + { + //an input is deleted from this room + map::const_iterator it = model->getCacheInputs().find(p["input_del"]); + if (it != model->getCacheInputs().end()) + { + IOBase *io = it->second; + io->room = NULL; + ios.erase(find(ios.begin(), ios.end(), io)); + ios.sort(IOHitsCompare); + updateVisibleIO(); + } + } + + if (p.Exists("output_del") && + p["room_name"] == name && + p["room_type"] == type) + { + //an output is deleted from this room + map::const_iterator it = model->getCacheOutputs().find(p["output_del"]); + if (it != model->getCacheOutputs().end()) + { + IOBase *io = it->second; + io->room = NULL; + ios.erase(find(ios.begin(), ios.end(), io)); + ios.sort(IOHitsCompare); + updateVisibleIO(); + } + } + + if (p.Exists("input_add") && + p["room_name"] == name && + p["room_type"] == type) + { + //an input is deleted from this room + map::const_iterator it = model->getCacheInputs().find(p["input_add"]); + if (it != model->getCacheInputs().end()) + { + IOBase *io = it->second; + io->room = this; + ios.push_back(io); + ios.sort(IOHitsCompare); + updateVisibleIO(); + } + } + + if (p.Exists("output_add") && + p["room_name"] == name && + p["room_type"] == type) + { + //an output is deleted from this room + map::const_iterator it = model->getCacheOutputs().find(p["output_add"]); + if (it != model->getCacheOutputs().end()) + { + IOBase *io = it->second; + io->room = this; + ios.push_back(it->second); + ios.sort(IOHitsCompare); + updateVisibleIO(); + } + } + + if (p["old_room_name"] == name && p["room_type"] == type) + { + name = p["new_room_name"]; + room_changed.emit(); + } + else if (p["old_room_type"] == type && p["room_name"] == name) + { + type = p["new_room_type"]; + room_changed.emit(); + } + else if (p["room_type"] == type && p["room_name"] == name) + { + from_string(p["new_room_hits"], hits); + + room_changed.emit(); + } +} + +void RoomModel::notifyRoomChange(string notif) +{ + vector tok; + split(notif, tok); + Params p; + + for (unsigned int i = 0;i < tok.size();i++) + { + vector t; + split(tok[i], t, ":", 2); + + for_each(t.begin(), t.end(), UrlDecode()); + + p.Add(t[0], t[1]); + } + + list::iterator it, itr; + for (it = rooms.begin(); it != rooms.end();it++) + { + Room *room = *it; + + if (p["room_type"] == room->type && p["room_name"] == room->name) + { + from_string(p["new_room_hits"], room->hits); + + rooms.sort(RoomHitsCompare); + updateRoomType(); + } + } +} + +void Room::notifyIOAdd(string notif) +{ + vector tok, split_id, split_room_name, split_room_type; + split(notif, tok); + + if (tok.size() < 4) return; + + split(url_decode(tok[1]), split_id, ":", 2); + split(url_decode(tok[2]), split_room_name, ":", 2); + split(url_decode(tok[3]), split_room_type, ":", 2); + + if (split_id.size() < 2 || + split_room_name.size() < 2 || + split_room_type.size() < 2) + return; + + if (name != split_room_name[1] || type != split_room_type[1]) + return; + + if (tok[0] == "new_input") + loadNewIOFromNotif(split_id[1], IOBase::IO_INPUT); + else if (tok[0] == "new_output") + loadNewIOFromNotif(split_id[1], IOBase::IO_OUTPUT); +} + +void Room::loadNewIOFromNotif(string id, int io_type) +{ + IOBase *io = new IOBase(connection, this, io_type); + ios.push_back(io); + + io->params.Add("id", id); + + string cmd; + if (io_type == IOBase::IO_INPUT) + cmd = "input "; + else + cmd = "output "; + cmd += id + " get"; + + io->load_done.connect(sigc::mem_fun(*this, &Room::load_io_notif_done)); + + connection->SendCommand(cmd, sigc::mem_fun(*io, &IOBase::new_io_cb)); +} + +void Room::load_io_notif_done(IOBase *io) +{ + //Put everything in cache so we can use it easily later + if (io->io_type == IOBase::IO_INPUT) + model->cacheInputs[io->params["id"]] = io; + else + model->cacheOutputs[io->params["id"]] = io; + + if (io->params["chauffage_id"] != "") + model->chauffageList.push_back(io); + + string type = io->params["type"]; + if ((type == "scenario" || + type == "Scenario") && io->io_type == IOBase::IO_OUTPUT) + { + model->cacheScenarios.push_back(io); + //Sort cached scenarios again + model->cacheScenariosPref = model->cacheScenarios; + model->cacheScenariosPref.sort(IOScenarioCompare); + } + + if ((type == "WODigital" && io->params["gtype"] == "light") || + type == "WODali" || + type == "WODaliRVB") + { + int value; + from_string(io->params["state"], value); + + if (io->params["state"] == "true" || value > 0) + { + RoomIO roomIO; + roomIO.io = io; + roomIO.room = this; + + model->cacheLightsOn[io] = roomIO; + } + } + + if (type == "WOVolet" || + type == "WOVoletSmart") + { + int value = 100; + + vector tokens; + split(io->params["state"], tokens); + if (tokens.size() > 1) + from_string(tokens[1], value); + + if (io->params["state"] == "false" || value < 100 || io->params["state"] == "down") + { + RoomIO roomIO; + roomIO.io = io; + roomIO.room = this; + + model->cacheShuttersUp[io] = roomIO; + } + } + + ios.sort(IOHitsCompare); + + updateVisibleIO(); + + io_added.emit(io); +} + +void Room::notifyIODel(string notif) +{ + vector tok, split_room_name, split_room_type; + split(notif, tok); + + if (tok.size() < 4) return; + + split(url_decode(tok[2]), split_room_name, ":", 2); + split(url_decode(tok[3]), split_room_type, ":", 2); + + if (split_room_name.size() < 2 || + split_room_type.size() < 2) + return; + + if (name != split_room_name[1] || type != split_room_type[1]) + return; + + list::iterator it; + for (it = ios.begin(); it != ios.end();it++) + { + IOBase *io = (*it); + + if (io->params["id"] == tok[1]) + { + //Remove from cache + if (tok[0] == "delete_input" && io->io_type == IOBase::IO_INPUT) + { + model->cacheInputs.erase(model->cacheInputs.find(io->params["id"])); + } + else if (tok[0] == "delete_output" && io->io_type == IOBase::IO_OUTPUT) + { + model->cacheOutputs.erase(model->cacheOutputs.find(io->params["id"])); + if (io->params["type"] == "scenario" || io->params["type"] == "Scenario") + { + model->cacheScenarios.erase(find(model->cacheScenarios.begin(), model->cacheScenarios.end(), io)); + //Sort cached scenarios again + model->cacheScenariosPref = model->cacheScenarios; + model->cacheScenariosPref.sort(IOScenarioCompare); + } + } + else + { + continue; + } + + list::iterator cit; + for (cit = model->chauffageList.begin();cit != model->chauffageList.end();cit++) + { + if (*cit == io) + { + model->chauffageList.erase(cit); + break; + } + } + + if (io->params["type"] == "WOVolet" || + io->params["type"] == "WOVoletSmart") + { + RoomIOCache::iterator sit = model->cacheShuttersUp.find(io); + if (sit != model->cacheShuttersUp.end()) + model->cacheShuttersUp.erase(sit); + } + + if (io->params["type"] == "WODali" || + io->params["type"] == "WODaliRVB" || + io->params["type"] == "WODigital") + { + RoomIOCache::iterator sit = model->cacheShuttersUp.find(io); + if (sit != model->cacheShuttersUp.end()) + model->cacheShuttersUp.erase(sit); + } + + io_deleted.emit(io); + + delete io; + ios.erase(it); + + updateVisibleIO(); + + break; + } + } +} + +void RoomModel::notifyRoomAdd(string notif) +{ + vector tok; + split(notif, tok); + Params p; + + for (unsigned int i = 0;i < tok.size();i++) + { + vector t; + split(tok[i], t, ":", 2); + + for_each(t.begin(), t.end(), UrlDecode()); + + p.Add(t[0], t[1]); + } + + Room *room = new Room(connection, this); + room->type = p["type"]; + room->name = p["name"]; + room->hits = 0; + + rooms.push_back(room); + rooms.sort(RoomHitsCompare); + updateRoomType(); + + room_added.emit(room); +} + +void RoomModel::notifyRoomDel(string notif) +{ + vector tok; + split(notif, tok); + Params p; + + for (unsigned int i = 0;i < tok.size();i++) + { + vector t; + split(tok[i], t, ":", 2); + + for_each(t.begin(), t.end(), UrlDecode()); + + p.Add(t[0], t[1]); + } + + list::iterator it, itr; + for (it = rooms.begin(); it != rooms.end();it++) + { + Room *room = *it; + + if (p["type"] == room->type && p["name"] == room->name) + { + room_deleted.emit(room); + rooms.erase(it); + + delete room; + + break; + } + } +} + +list RoomModel::getRoomsForType(string type) +{ + list rtypes; + + list::iterator it, itr; + for (it = rooms.begin(); it != rooms.end();it++) + { + Room *room = *it; + + if (room->type != type) + continue; + + rtypes.push_back(room); + } + + rtypes.sort(RoomHitsCompare); + + return rtypes; +} + +IOBase *RoomModel::getConsigneFromTemp(IOBase *temp) +{ + if (!temp || temp->params["type"] != "WITemp" || temp->params["chauffage_id"] == "") + return NULL; + + list::iterator it; + for (it = chauffageList.begin();it != chauffageList.end();it++) + { + IOBase *io = (*it); + + if (io->params["type"] == "InternalInt" && + io->params["chauffage_id"] == temp->params["chauffage_id"]) + return io; + } + + return NULL; +} + +IOBase *RoomModel::getTempFromConsigne(IOBase *consigne) +{ + if (!consigne || consigne->params["type"] != "InternalInt" || consigne->params["chauffage_id"] == "") + return NULL; + + list::iterator it; + for (it = chauffageList.begin();it != chauffageList.end();it++) + { + IOBase *io = (*it); + + if (io->params["type"] == "WITemp" && + io->params["chauffage_id"] == consigne->params["chauffage_id"]) + return io; + } + + return NULL; +} + +map > RoomModel::getLightsOnForRooms() +{ + map > lmap; + + RoomIOCache::iterator it = cacheLightsOn.begin(); + for (;it != cacheLightsOn.end();it++) + { + RoomIO &rio = (*it).second; + + if (lmap.find(rio.room) == lmap.end()) + { + list l; + l.push_back(rio.io); + lmap[rio.room] = l; + } + else + { + list &l = lmap[rio.room]; + l.push_back(rio.io); + } + } + + return lmap; +} + +map > RoomModel::getShuttersUpForRooms() +{ + map > lmap; + + RoomIOCache::iterator it = cacheShuttersUp.begin(); + for (;it != cacheShuttersUp.end();it++) + { + RoomIO &rio = (*it).second; + + if (lmap.find(rio.room) == lmap.end()) + { + list l; + l.push_back(rio.io); + lmap[rio.room] = l; + } + else + { + list &l = lmap[rio.room]; + l.push_back(rio.io); + } + } + + return lmap; +} + +string IOBase::getIconForIO() +{ + if (params["type"] == "WODigital" || + params["type"] == "WODali" || + params["type"] == "WODaliRVB" || + params["type"] == "X10Output") + return "calaos/icons/element/simple/light"; + else if (params["type"] == "scenario") + return "calaos/icons/element/simple/scenario"; + else if (params["type"] == "InternalBool") + return "calaos/icons/element/simple/internal_bool"; + else if (params["type"] == "InternalInt") + return "calaos/icons/element/simple/internal_int"; + else if (params["type"] == "InternalString") + return "calaos/icons/element/simple/internal_string"; + else if (params["type"] == "WOVolet" || + params["type"] == "WOVoletSmart") + return "calaos/icons/element/simple/volet"; + else if (params["type"] == "WIAnalog" || + params["type"] == "WOAnalog") + return "calaos/icons/element/simple/analog"; + else if (params["type"] == "WITemp" || + params["type"] == "OWTemp") + return "calaos/icons/element/simple/temp"; + else if (params["type"] == "CamOutput") + return "calaos/icons/element/simple/camera"; + else if (params["type"] == "AudioOutput") + return "calaos/icons/element/simple/music"; + + return ""; +} + +void IOBase::getRGBValueFromState(int &r, int &g, int &b) +{ + int val = 0; + string state = params["state"]; + + if (Utils::is_of_type(state)) + { + from_string(state, val); + } + + r = ((val >> 16) * 100) / 255; + g = (((val >> 8) & 0x0000FF) * 100) / 255; + b = ((val & 0x0000FF) * 100) / 255; +} + +int IOBase::computeStateFromRGBValue(int r, int g, int b) +{ + int val = (((int)(r * 255 / 100)) << 16) + + (((int)(g * 255 / 100)) << 8) + + ((int)(b * 255 / 100)); + + return val; +} + +double IOBase::getDaliValueFromState() +{ + double val = 0.0; + string state = params["state"]; + + if (Utils::is_of_type(state)) + { + from_string(state, val); + } + else if (state.compare(0, 4, "set ") == 0) + { + string s = state; + s.erase(0, 4); + from_string(s, val); + } + else if (state == "true") + { + val = 100.0; + } + else if (state == "false") + { + val = 0.0; + } + + return val; +} + +int IOBase::getPercentVoletSmart() +{ + vector tokens; + int percent; + + Utils::split(params["state"], tokens); + + if (tokens.size() == 2) + from_string(tokens[1], percent); + else + percent = 0; + + return percent; +} + +string IOBase::getStatusVoletSmart() +{ + vector tokens; + Utils::split(params["state"], tokens); + + if (tokens.size() > 0) + return tokens[0]; + + return ""; +} + +vector IOBase::getActionList() +{ + vector v; + + if (params["type"] == "WODigital") + { + v.push_back(IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("toggle", "Inverser l'état de la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("impulse loop %1 %1 %1 %1", "Faire clignoter la lumière", IOActionList::ACTION_TIME_MS)); + v.push_back(IOActionList("impulse %1", "Allumer la lumière pendant X secondes", "Allumer la lumière pendant %1", IOActionList::ACTION_TIME_MS)); + } + else if (params["type"] == "WODali") + { + v.push_back(IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("toggle", "Inverser l'état de la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("set %1", "Mettre la lumière à X pourcent", "Mettre la lumière à %1%", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("set off %1", "Mettre la lumière sans allumer à X pourcent", "Mettre la lumière à %1% sans allumer", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("up %1", "Augmenter l'intensité de X pourcent", "Augmenter l'intensité de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("down %1", "Baisser l'intensité de X pourcent", "Baisser l'intensité de %1%", IOActionList::ACTION_NUMBER)); + } + else if (params["type"] == "WODaliRVB") + { + v.push_back(IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("toggle", "Inverser l'état de la lumière", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("set %1", "Choisir une couleur", "Mettre la couleur", IOActionList::ACTION_COLOR)); + v.push_back(IOActionList("set_red %1", "Choisir l'intensité du rouge", "Mettre le rouge à %1%", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("up_red %1", "Augmenter le rouge de X pourcent", "Augmenter le rouge de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("down_red %1", "Baisser le rouge de X pourcent", "Baisser le rouge de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("set_green %1", "Choisir l'intensité du vert", "Mettre le vert à %1%", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("up_green %1", "Augmenter le vert", "Augmenter le vert de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("down_green %1", "Baisser le vert", "Baisser le vert de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("set_blue %1", "Choisir l'intensité du bleu", "Mettre le bleu à %1%", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("up_blue %1", "Augmenter le blue", "Augmenter le bleu de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("down_blue %1", "Baisser le blue", "Baisser le bleu de %1%", IOActionList::ACTION_NUMBER)); + } + else if (params["type"] == "WOVolet") + { + v.push_back(IOActionList("up", "Monter le volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("down", "Descendre le volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("stop", "Arrêter le volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("toggle", "Inverser l'état du volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("impulse up %1", "Impulsion sur la montée", "Monter le volet de %1", IOActionList::ACTION_TIME_MS)); + v.push_back(IOActionList("impulse down %1", "Impulsion sur la descente", "Descendre le volet de %1", IOActionList::ACTION_TIME_MS)); + } + else if (params["type"] == "WOVoletSmart") + { + v.push_back(IOActionList("up", "Monter le volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("down", "Descendre le volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("stop", "Arrêter le volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("toggle", "Inverser l'état du volet", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("set %1", "Mettre le volet à une position", "Mettre le volet à %1%", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("up %1", "Monter le volet de X pourcent", "Monter le volet de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("down %1", "Descendre le volet de X pourcent", "Descendre le volet de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("calibrate", "Lancer la calibration", IOActionList::ACTION_SIMPLE)); + } + else if (params["type"] == "WOAnalog") + { + v.push_back(IOActionList("%1", "Mettre une valeur", "Mettre la valeur %1", IOActionList::ACTION_NUMBER)); + } + else if (params["type"] == "scenario") + { + v.push_back(IOActionList("true", "Lancer le scénario", IOActionList::ACTION_SIMPLE)); + if (params["auto_scenario"] != "") + v.push_back(IOActionList("false", "Arrêter le scénario", IOActionList::ACTION_SIMPLE)); + } + else if (params["type"] == "InternalString") + { + v.push_back(IOActionList("%1", "Mettre une texte", "Mettre le texte '%1'", IOActionList::ACTION_TEXT)); + } + else if (params["type"] == "InternalInt") + { + v.push_back(IOActionList("%1", "Mettre une valeur", "Mettre la valeur %1", IOActionList::ACTION_NUMBER)); + } + else if (params["type"] == "InternalBool") + { + v.push_back(IOActionList("true", "Activer", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("false", "Désactiver", IOActionList::ACTION_SIMPLE)); + } + else if (params["type"] == "CamOutput") + { + v.push_back(IOActionList("recall %1", "Déplacer à la position mémorisée", "Déplacer à la position %1", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("save %1", "Mémoriser la position", "Sauvegarder à la position %1", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("move up", "Déplacer vers le haut", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("move down", "Déplacer vers le bas", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("move left", "Déplacer vers la gauche", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("move right", "Déplacer vers la droite", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("move home", "Déplacer à la position initiale", IOActionList::ACTION_SIMPLE)); + } + else if (params["type"] == "AudioOutput") + { + v.push_back(IOActionList("play", "Mettre en lecture", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("pause", "Mettre en pause", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("stop", "Arrêter la lecture", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("next", "Piste suivante", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("previous", "Piste précédente", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("volume set %1", "Changer le volume", "Changer le volume à %1%", IOActionList::ACTION_SLIDER)); + v.push_back(IOActionList("volume up %1", "Monter le volume de X pourcent", "Monter le volume de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("volume down %1", "Baisser le volume de X pourcent", "Descendre le volume de %1%", IOActionList::ACTION_NUMBER)); + v.push_back(IOActionList("power on", "Allumer la zone de musique", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("power off", "Eteindre la zone de musique", IOActionList::ACTION_SIMPLE)); + v.push_back(IOActionList("sleep %1", "Eteindre la zone dans X secondes (sleep mode)", "Eteindre la zone dans %1% secondes (sleep mode)", IOActionList::ACTION_NUMBER)); + //TODO: playlist/song selection and playing here + } + + return v; +} + +IOActionList IOBase::getActionFromState() +{ + IOActionList ac; + + if (params["type"] == "WODigital") + { + if (params["state"] == "true") + ac = IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE); + else + ac = IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "WODali") + { + if (params["state"] == "true") + ac = IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE); + else if (params["state"] == "false") + ac = IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE); + else + ac = IOActionList("set %1", "Mettre la lumière à X pourcent", "Mettre la lumière à %1%", IOActionList::ACTION_SLIDER); + + ac.dvalue = getDaliValueFromState(); + } + else if (params["type"] == "WODaliRVB") + { + if (params["state"] == "true") + ac = IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE); + else if (params["state"] == "false") + ac = IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE); + else + ac = IOActionList("set %1", "Choisir une couleur", "Mettre la couleur", IOActionList::ACTION_COLOR); + + getRGBValueFromState(ac.red, ac.green, ac.blue); + } + else if (params["type"] == "WOVolet") + { + ac = IOActionList("up", "Monter le volet", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "WOVoletSmart") + { + ac = IOActionList("up", "Monter le volet", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "WOAnalog") + { + ac = IOActionList("%1", "Mettre une valeur", "Mettre la valeur %1", IOActionList::ACTION_NUMBER); + ac.dvalue = 0.0; + } + else if (params["type"] == "scenario") + { + ac = IOActionList("true", "Lancer le scénario", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "InternalString") + { + ac = IOActionList("%1", "Mettre une texte", "Mettre le texte '%1'", IOActionList::ACTION_TEXT); + ac.svalue = "Un Texte"; + } + else if (params["type"] == "InternalInt") + { + ac = IOActionList("%1", "Mettre une valeur", "Mettre la valeur %1", IOActionList::ACTION_NUMBER); + ac.dvalue = 0.0; + } + else if (params["type"] == "InternalBool") + { + ac = IOActionList("true", "Activer", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "CamOutput") + { + ac = IOActionList("recall %1", "Déplacer à la position mémorisée", "Déplacer à la position %1", IOActionList::ACTION_NUMBER); + ac.dvalue = 0.0; + } + else if (params["type"] == "AudioOutput") + { + ac = IOActionList("play", "Mettre en lecture", IOActionList::ACTION_SIMPLE); + } + + return ac; +} + +IOActionList IOBase::getActionListFromAction(string action) +{ + IOActionList ac; + vector tokens; + + split(action, tokens); + if (tokens.size() < 1) return ac; + + if (params["type"] == "WODigital") + { + if (tokens[0] == "true") ac = IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "false") ac = IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "toggle") ac = IOActionList("toggle", "Inverser l'état de la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "impulse" && tokens[1] == "loop") ac = IOActionList("impulse loop %1 %1 %1 %1", "Faire clignoter la lumière", IOActionList::ACTION_TIME_MS); + else if (tokens[0] == "impulse") ac = IOActionList("impulse %1", "Allumer la lumière pendant X secondes", "Allumer la lumière pendant %1", IOActionList::ACTION_TIME_MS); + + if (tokens.size() > 1) + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (params["type"] == "WODali") + { + if (tokens[0] == "true") ac = IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "false") ac = IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "toggle") ac = IOActionList("toggle", "Inverser l'état de la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "set" && tokens[1] == "off") ac = IOActionList("set off %1", "Mettre la lumière sans allumer à X pourcent", "Mettre la lumière à %1% sans allumer", IOActionList::ACTION_SLIDER); + else if (tokens[0] == "set") ac = IOActionList("set %1", "Mettre la lumière à X pourcent", "Mettre la lumière à %1%", IOActionList::ACTION_SLIDER); + else if (tokens[0] == "up") ac = IOActionList("up %1", "Augmenter l'intensité de X pourcent", "Augmenter l'intensité de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "down") ac = IOActionList("down %1", "Baisser l'intensité de X pourcent", "Baisser l'intensité de %1%", IOActionList::ACTION_NUMBER); + + if (tokens.size() > 1) + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (params["type"] == "WODaliRVB") + { + if (tokens[0] == "true") ac = IOActionList("true", "Allumer la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "false") ac = IOActionList("false", "Eteindre la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "toggle") ac = IOActionList("toggle", "Inverser l'état de la lumière", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "set") ac = IOActionList("set %1", "Choisir une couleur", "Mettre la couleur", IOActionList::ACTION_COLOR); + else if (tokens[0] == "set_red") ac = IOActionList("set_red %1", "Choisir l'intensité du rouge", "Mettre le rouge à %1%", IOActionList::ACTION_SLIDER); + else if (tokens[0] == "up_red") ac = IOActionList("up_red %1", "Augmenter le rouge de X pourcent", "Augmenter le rouge de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "down_red") ac = IOActionList("down_red %1", "Baisser le rouge de X pourcent", "Baisser le rouge de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "set_green") ac = IOActionList("set_green %1", "Choisir l'intensité du vert", "Mettre le vert à %1%", IOActionList::ACTION_SLIDER); + else if (tokens[0] == "up_green") ac = IOActionList("up_green %1", "Augmenter le vert", "Augmenter le vert de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "down_green") ac = IOActionList("down_green %1", "Baisser le vert", "Baisser le vert de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "set_blue") ac = IOActionList("set_blue %1", "Choisir l'intensité du bleu", "Mettre le bleu à %1%", IOActionList::ACTION_SLIDER); + else if (tokens[0] == "up_blue") ac = IOActionList("up_blue %1", "Augmenter le blue", "Augmenter le bleu de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "down_blue") ac = IOActionList("down_blue %1", "Baisser le blue", "Baisser le bleu de %1%", IOActionList::ACTION_NUMBER); + + if (tokens.size() > 1) + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (params["type"] == "WOVolet") + { + if (tokens[0] == "up") ac = IOActionList("up", "Monter le volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "down") ac = IOActionList("down", "Descendre le volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "stop") ac = IOActionList("stop", "Arrêter le volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "toggle") ac = IOActionList("toggle", "Inverser l'état du volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "impulse" && tokens[1] == "up") ac = IOActionList("impulse up %1", "Impulsion sur la montée", "Monter le volet de %1", IOActionList::ACTION_TIME_MS); + else if (tokens[0] == "impulse" && tokens[1] == "down") ac = IOActionList("impulse down %1", "Impulsion sur la descente", "Descendre le volet de %1", IOActionList::ACTION_TIME_MS); + + if (tokens.size() > 1) + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (params["type"] == "WOVoletSmart") + { + if (tokens[0] == "up") ac = IOActionList("up", "Monter le volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "down") ac = IOActionList("down", "Descendre le volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "stop") ac = IOActionList("stop", "Arrêter le volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "toggle") ac = IOActionList("toggle", "Inverser l'état du volet", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "set") ac = IOActionList("set %1", "Mettre le volet à une position", "Mettre le volet à %1%", IOActionList::ACTION_SLIDER); + else if (tokens[0] == "up") ac = IOActionList("up %1", "Monter le volet de X pourcent", "Monter le volet de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "down") ac = IOActionList("down %1", "Descendre le volet de X pourcent", "Descendre le volet de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "calibrate") ac = IOActionList("calibrate", "Lancer la calibration", IOActionList::ACTION_SIMPLE); + + if (tokens.size() > 1) + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (params["type"] == "WOAnalog") + { + ac = IOActionList("%1", "Mettre une valeur", "Mettre la valeur %1", IOActionList::ACTION_NUMBER); + from_string(tokens[0], ac.dvalue); + } + else if (params["type"] == "scenario") + { + if (tokens[0] == "true") ac = IOActionList("true", "Lancer le scénario", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "false") ac = IOActionList("false", "Arrêter le scénario", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "InternalString") + { + ac = IOActionList("%1", "Mettre une texte", "Mettre le texte '%1'", IOActionList::ACTION_TEXT); + ac.svalue = action; + } + else if (params["type"] == "InternalInt") + { + ac = IOActionList("%1", "Mettre une valeur", "Mettre la valeur %1", IOActionList::ACTION_NUMBER); + from_string(tokens[0], ac.dvalue); + } + else if (params["type"] == "InternalBool") + { + if (tokens[0] == "true") ac = IOActionList("true", "Activer", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "false") ac = IOActionList("false", "Désactiver", IOActionList::ACTION_SIMPLE); + } + else if (params["type"] == "CamOutput") + { + if (tokens[0] == "recall") + { + ac = IOActionList("recall %1", "Déplacer à la position mémorisée", "Déplacer à la position %1", IOActionList::ACTION_NUMBER); + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (tokens[0] == "save") ac = IOActionList("save %1", "Mémoriser la position", "Sauvegarder à la position %1", IOActionList::ACTION_NUMBER); + else if (tokens[0] == "move") + { + if (tokens[1] == "up") ac = IOActionList("move up", "Déplacer vers le haut", IOActionList::ACTION_SIMPLE); + else if (tokens[1] == "down") ac = IOActionList("move up", "Déplacer vers le bas", IOActionList::ACTION_SIMPLE); + else if (tokens[1] == "left") ac = IOActionList("move left", "Déplacer vers la gauche", IOActionList::ACTION_SIMPLE); + else if (tokens[1] == "right") ac = IOActionList("move right", "Déplacer vers la droite", IOActionList::ACTION_SIMPLE); + else if (tokens[1] == "home") ac = IOActionList("move home", "Déplacer à la position initiale", IOActionList::ACTION_SIMPLE); + } + } + else if (params["type"] == "AudioOutput") + { + if (tokens[0] == "play") ac = IOActionList("play", "Mettre en lecture", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "pause") ac = IOActionList("pause", "Mettre en pause", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "stop") ac = IOActionList("stop", "Arrêter la lecture", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "next") ac = IOActionList("next", "Piste suivante", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "previous") ac = IOActionList("previous", "Piste précédente", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "volume") + { + if (tokens[1] == "set") ac = IOActionList("volume set %1", "Changer le volume", "Changer le volume à %1%", IOActionList::ACTION_SLIDER); + else if (tokens[1] == "up") ac = IOActionList("volume up %1", "Monter le volume de X pourcent", "Monter le volume de %1%", IOActionList::ACTION_NUMBER); + else if (tokens[1] == "down") ac = IOActionList("volume down %1", "Baisser le volume de X pourcent", "Descendre le volume de %1%", IOActionList::ACTION_NUMBER); + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + else if (tokens[0] == "power" && tokens[1] == "on") ac = IOActionList("power on", "Allumer la zone de musique", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "power" && tokens[1] == "off") ac = IOActionList("power off", "Eteindre la zone de musique", IOActionList::ACTION_SIMPLE); + else if (tokens[0] == "sleep") + { + ac = IOActionList("sleep %1", "Eteindre la zone dans X secondes (sleep mode)", "Eteindre la zone dans %1% secondes (sleep mode)", IOActionList::ACTION_NUMBER); + from_string(tokens[tokens.size() - 1], ac.dvalue); + } + //TODO: playlist/song selection and playing here + } + + return ac; +} + +string IOActionList::getComputedTitle(IOBase *io) +{ + string t = title_computed; + + if (type == ACTION_SLIDER || + type == ACTION_NUMBER) + Utils::replace_str(t, "%1", to_string(dvalue)); + + if (type == ACTION_TEXT) + Utils::replace_str(t, "%1", to_string(svalue)); + + if (type == ACTION_TIME_MS) + Utils::replace_str(t, "%1", Utils::time2string(dvalue / 1000, (long)dvalue % 1000)); + + return t; +} + +string IOActionList::getComputedAction(IOBase *io) +{ + string ac = action; + + if (type == ACTION_SIMPLE) + return ac; + + if (type == ACTION_SLIDER || + type == ACTION_NUMBER) + Utils::replace_str(ac, "%1", to_string(dvalue)); + + if (type == ACTION_TEXT) + Utils::replace_str(ac, "%1", to_string(svalue)); + + if (type == ACTION_TIME_MS) + Utils::replace_str(ac, "%1", Utils::time2string(dvalue / 1000, (long)dvalue % 1000)); + + if (type == ACTION_COLOR) + Utils::replace_str(ac, "%1", to_string(io->computeStateFromRGBValue(red, green, blue))); + + return ac; +} + +void IOBase::loadPlage() +{ + range_infos.range_monday.clear(); + range_infos.range_tuesday.clear(); + range_infos.range_wednesday.clear(); + range_infos.range_thursday.clear(); + range_infos.range_friday.clear(); + range_infos.range_saturday.clear(); + range_infos.range_sunday.clear(); + + if (params["type"] != "InPlageHoraire") + { + Utils::logger("network") << Priority::ERROR << "IOBase:loadPlage(): " << params["id"] + << " is not of type InPlageHoraire, but " << params["type"] + << " instead." << log4cpp::eol; + return; + } + + string cmd = "input " + params["id"] + " plage get"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &IOBase::loadPlage_cb)); +} + +void IOBase::loadPlage_cb(bool success, vector result, void *data) +{ + if (!success) return; + + for (uint i = 3;i < result.size();i++) + { + vector splitter; + split(result[i], splitter, ":", 11); + + TimeRange tr; + + tr.shour = splitter[1]; + tr.smin = splitter[2]; + tr.ssec = splitter[3]; + from_string(splitter[4], tr.start_type); + from_string(splitter[5], tr.start_offset); + if (tr.start_offset < 0) tr.start_offset = -1; + if (tr.start_offset >= 0) tr.start_offset = 1; + + tr.ehour = splitter[6]; + tr.emin = splitter[7]; + tr.esec = splitter[8]; + from_string(splitter[9], tr.end_type); + from_string(splitter[10], tr.end_offset); + if (tr.end_offset < 0) tr.end_offset = -1; + if (tr.end_offset >= 0) tr.end_offset = 1; + + int day; + from_string(splitter[0], day); + switch(day) + { + case 1: range_infos.range_monday.push_back(tr); break; + case 2: range_infos.range_tuesday.push_back(tr); break; + case 3: range_infos.range_wednesday.push_back(tr); break; + case 4: range_infos.range_thursday.push_back(tr); break; + case 5: range_infos.range_friday.push_back(tr); break; + case 6: range_infos.range_saturday.push_back(tr); break; + case 7: range_infos.range_sunday.push_back(tr); break; + default: + Utils::logger("network") << Priority::ERROR << "IOBase:loadPlage(): " << params["id"] + << " unknown range day. Debug infos: " << result[i] << log4cpp::eol; + break; + } + } + + //Load months info + string cmd = "input " + params["id"] + " plage months get"; + connection->SendCommand(cmd, sigc::mem_fun(*this, &IOBase::loadPlageMonths_cb)); +} + +void IOBase::loadPlageMonths_cb(bool success, vector result, void *data) +{ + if (!success) return; + + if (result.size() < 5) + { + Utils::logger("network") << Priority::ERROR << "IOBase:loadPlage(): " << params["id"] + << "error reading months!" << log4cpp::eol; + io_changed.emit(); //io has changed + + return; + } + + string m = result[4]; + //reverse to have a left to right months representation + std::reverse(m.begin(), m.end()); + + try + { + bitset<12> mset(m); + range_infos.range_months = mset; + } + catch(...) + { + Utils::logger("network") << Priority::ERROR << "IOBase:loadPlage(): " << params["id"] + << " wrong parameters for months: " << m << log4cpp::eol; + } + + io_changed.emit(); //io has changed +} diff --git a/src/bin/calaos_home/models/RoomModel.h b/src/bin/calaos_home/models/RoomModel.h new file mode 100644 index 00000000..d2d35969 --- /dev/null +++ b/src/bin/calaos_home/models/RoomModel.h @@ -0,0 +1,289 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ROOMMODEL_H +#define ROOMMODEL_H + +#include +#include "CalaosConnection.h" +#include + +using namespace Utils; + +class IOBase; +class Room; + +bool IOHitsCompare(const IOBase *lhs, const IOBase *rhs); +bool RoomHitsCompare(const Room *lhs, const Room *rhs); + +class IOBase; +class IOActionList +{ + public: + IOActionList(string a, string t, string t2, int ty): //title_computed must be computed with value first + action(a), title(t), title_computed(t2), dvalue(0.0), red(0), green(0), blue(0), type(ty) + {} + IOActionList(string a, string t, int ty): //same title and title_computed + action(a), title(t), title_computed(t), dvalue(0.0), red(0), green(0), blue(0), type(ty) + {} + IOActionList(): + dvalue(0.0), red(0), green(0), blue(0), type(ACTION_NONE) + {} + + string action; + string title; + string title_computed; + + double dvalue; + string svalue; + + //for color type + int red, green, blue; + + enum { ACTION_NONE = 0, ACTION_SIMPLE, ACTION_SLIDER, ACTION_COLOR, ACTION_TEXT, ACTION_NUMBER, ACTION_TIME_MS }; + int type; + + string getComputedAction(IOBase *io); + string getComputedTitle(IOBase *io); + + void copyValueFrom(IOActionList &ac) + { dvalue = ac.dvalue; svalue = ac.svalue; red = ac.red; green = ac.green; blue = ac.blue; } +}; + +class TimeRangeInfos +{ + public: + TimeRangeInfos() + {} + + vector range_monday; + vector range_tuesday; + vector range_wednesday; + vector range_thursday; + vector range_friday; + vector range_saturday; + vector range_sunday; + + //months where InPlageHoraire is activated + enum { JANUARY = 0, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER }; + bitset<12> range_months; +}; + +class Room; +class IOBase: public sigc::trackable +{ + private: + friend class Room; + CalaosConnection* connection; + + Room *room; + + void sendAction_cb(bool success, vector result, void *data); + void notifyChange(string notif); + + void checkCacheChange(); + + void loadPlage_cb(bool success, vector result, void *data); + void loadPlageMonths_cb(bool success, vector result, void *data); + + public: + IOBase(CalaosConnection* con, Room *r, int iotype): + connection(con), + room(r), + io_type(iotype) + { + connection->getListener()->notify_io_change.connect( + sigc::mem_fun(*this, &IOBase::notifyChange)); + } + ~IOBase() + { + io_deleted.emit(); + } + + Params params; + + enum { IO_INPUT, IO_OUTPUT }; + int io_type; + + void new_io_cb(bool success, vector result, void *data); + + void sendAction(string command); + void sendUserCommand(string command, CommandDone_cb callback, void *data = NULL); + Room *getRoom() { return room; } + + //Some utility functions + void getRGBValueFromState(int &r, int &g, int &b); + int computeStateFromRGBValue(int r, int g, int b); + double getDaliValueFromState(); + int getPercentVoletSmart(); + string getStatusVoletSmart(); + + string getIconForIO(); + vector getActionList(); + IOActionList getActionFromState(); + IOActionList getActionListFromAction(string action); //action is from the scenario action + + //InPlageHoraire functions + void loadPlage(); //force a reload of the plage data + + TimeRangeInfos range_infos; + + //signals + sigc::signal load_done; + sigc::signal io_changed; + sigc::signal io_deleted; +}; + +class RoomModel; +class Room: public sigc::trackable +{ + private: + friend class IOBase; + + CalaosConnection* connection; + RoomModel *model; + + int io_loaded; + + void notifyChange(string notif); + void notifyIOAdd(string notif); + void notifyIODel(string notif); + + void updateVisibleIO(); + + public: + Room(CalaosConnection* con, RoomModel *_model): + connection(con), + model(_model) + { + connection->getListener()->notify_io_delete.connect( + sigc::mem_fun(*this, &Room::notifyIODel)); + connection->getListener()->notify_io_new.connect( + sigc::mem_fun(*this, &Room::notifyIOAdd)); + connection->getListener()->notify_room_change.connect( + sigc::mem_fun(*this, &Room::notifyChange)); + } + ~Room() + { + room_deleted.emit(); + for_each(ios.begin(), ios.end(), Delete()); + } + + string name; + string type; + int hits; + + list ios; + list visible_ios; //Contains only visible IO for a GUI + list scenario_ios; //Contains all IO controlable in a scenario + + void new_room_cb(bool success, vector result, void *data); + void load_io_done(IOBase *io); + void load_io_notif_done(IOBase *io); + + void loadNewIO(string id, int io_type); + void loadNewIOFromNotif(string id, int io_type); + + IOBase *getChauffage(); + + sigc::signal load_done; + sigc::signal io_deleted; + sigc::signal io_added; + sigc::signal room_changed; + sigc::signal room_deleted; +}; + +typedef struct _RoomLightsOn +{ + Room *room; + IOBase *io; +} RoomIO; +typedef map RoomIOCache; + +class RoomModel: public sigc::trackable +{ + private: + CalaosConnection *connection; + + int room_loaded; + + void home_get_cb(bool success, vector result, void *data); + + void load_room_done(Room *room); + + void updateRoomType(); + + void updateChauffageIO(); //update association of chauffage IO + + void notifyRoomAdd(string notif); + void notifyRoomDel(string notif); + void notifyRoomChange(string notif); //monitor hits change and sort rooms again if change happens + + /* Caches */ + friend class Room; + friend class IOBase; + + list cacheScenarios; + list cacheScenariosPref; + + RoomIOCache cacheLightsOn; + RoomIOCache cacheShuttersUp; + + map cacheInputs; + map cacheOutputs; + + list chauffageList; + + public: + RoomModel(CalaosConnection *connection); + ~RoomModel(); + + list rooms; //All rooms sorted + list rooms_type; //Only types sorted by hits + + void load(); + + const list &getCacheScenarios() { return cacheScenarios; } + const list &getCacheScenariosPref() { return cacheScenariosPref; } + const RoomIOCache &getCacheLightsOn() { return cacheLightsOn; } + const RoomIOCache &getCacheShuttersUp() { return cacheShuttersUp; } + const map &getCacheInputs() { return cacheInputs; } + const map &getCacheOutputs() { return cacheOutputs; } + + map > getLightsOnForRooms(); + map > getShuttersUpForRooms(); + + list getRoomsForType(string type); + + IOBase *getConsigneFromTemp(IOBase *temp); + IOBase *getTempFromConsigne(IOBase *temp); + + IOBase *getChauffageForType(string type); + + sigc::signal load_done; + + sigc::signal room_deleted; + sigc::signal room_added; + + sigc::signal lights_on_changed; + sigc::signal shutters_up_changed; +}; + +#endif // ROOMMODEL_H diff --git a/src/bin/calaos_home/models/ScenarioModel.cpp b/src/bin/calaos_home/models/ScenarioModel.cpp new file mode 100644 index 00000000..bbaa6d46 --- /dev/null +++ b/src/bin/calaos_home/models/ScenarioModel.cpp @@ -0,0 +1,392 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ScenarioModel.h" +#include "CalaosModel.h" + +ScenarioModel::ScenarioModel(CalaosConnection *con): + connection(con) +{ + connection->getListener()->notify_scenario_add.connect( + sigc::mem_fun(*this, &ScenarioModel::notifyScenarioAdd)); + connection->getListener()->notify_scenario_change.connect( + sigc::mem_fun(*this, &ScenarioModel::notifyScenarioChange)); +} + +ScenarioModel::~ScenarioModel() +{ + for_each(scenarios.begin(), scenarios.end(), Delete()); +} + +void ScenarioModel::load() +{ + connection->SendCommand("scenario list", sigc::mem_fun(*this, &ScenarioModel::scenario_list_cb)); +} + +void ScenarioModel::scenario_list_cb(bool success, vector result, void *data) +{ + if (!success) return; + + if (result.size() == 2) + load_done.emit(); //no scenarios found + + if (result.size() < 3) return; + + load_count = 0; + for (uint i = 2;i < result.size();i++) + { + map::const_iterator it = CalaosModel::Instance().getHome()->getCacheInputs().find(result[i]); + + if (it == CalaosModel::Instance().getHome()->getCacheInputs().end()) + { + Utils::logger("scenario") << Priority::ERROR << "ScenarioModel: Unknown Input \'" << result[i] << "\' !" << log4cpp::eol; + continue; + } + + Scenario *sc = new Scenario(connection); + sc->ioScenario = it->second; + sc->scenario_data.empty = false; + sc->scenario_data.params.Add("id", result[i]); + sc->ioScenario->io_deleted.connect(sigc::bind(sigc::mem_fun(*this, &ScenarioModel::notifyScenarioDel), sc)); + scenarios.push_back(sc); + + load_count++; + sc->load_done.connect(sigc::mem_fun(*this, &ScenarioModel::load_scenario_done)); + + string cmd = "scenario get " + result[i]; + connection->SendCommand(cmd, sigc::mem_fun(*sc, &Scenario::scenario_get_cb)); + } +} + +void ScenarioModel::load_scenario_done(Scenario *sc) +{ + load_count--; + + cout << "[SCENARIO load done] load_count:" << load_count << endl; + + if (load_count <= 0) + { + load_done.emit(); + + cout << "[SCENARIO LOAD DONE sending signal]" << endl; + } +} + +void Scenario::scenario_get_cb(bool success, vector result, void *data) +{ + scenario_data.name = ioScenario->params["name"]; + if (ioScenario->params["visible"] == "true") + { + scenario_data.visible = true; + scenario_data.room = ioScenario->getRoom(); + } + + int step = -1; + for (uint b = 3;b < result.size();b++) + { + vector tmp; + Utils::split(result[b], tmp, ":", 2); + + if (tmp.size() < 2) continue; + + if (tmp[0] == "step") + { + step++; + + ScenarioStep step; + from_string(tmp[1], step.pause); + scenario_data.steps.push_back(step); + + continue; + } + + if (tmp[0] == "step_end") + { + step = ScenarioData::END_STEP; + + continue; + } + + if (step == -1) + { + scenario_data.params.Add(tmp[0], tmp[1]); + + if (tmp[0] != "schedule" && tmp[1] != "false") + { + map::const_iterator it = CalaosModel::Instance().getHome()->getCacheOutputs().find(tmp[1]); + if (it != CalaosModel::Instance().getHome()->getCacheOutputs().end()) + { + ioPlage = (*it).second; + } + } + } + else + { + map::const_iterator it = CalaosModel::Instance().getHome()->getCacheOutputs().find(tmp[0]); + if (it == CalaosModel::Instance().getHome()->getCacheOutputs().end()) + { + Utils::logger("scenario") << Priority::ERROR << "ScenarioModel::scenario_get Unknown action id \'" << tmp[0] << "\' with action \'" << tmp[1] << "\' !" << log4cpp::eol; + continue; + } + IOBase *io = (*it).second; + + IOActionList ac = io->getActionListFromAction(tmp[1]); + ScenarioAction sa; + sa.io = io; + sa.action = ac.getComputedAction(io); + + if (step == ScenarioData::END_STEP) + scenario_data.step_end.actions.push_back(sa); + else + scenario_data.steps[step].actions.push_back(sa); + } + } + + load_done.emit(this); +} + +Room *Scenario::getRoom() +{ + if (!room && ioScenario && ioScenario->getRoom()) + room = ioScenario->getRoom(); + + return room; +} + +string Scenario::getFirstCategory() +{ + vector tok; + split(scenario_data.params["category"], tok, "-"); + if (tok.size() > 0) + return tok[0]; + + return "other"; +} + +string ScenarioData::createRequest() +{ + //request: + // scenario create name:bla visible:true room_name:bla room_type:bla cycle:true step:61000 output_0:actionbla output_1:actionbla step_end output_0:actionbla + + string req = "scenario create name:" + url_encode(name) + " "; + + if (visible && room) + { + req += "visible:true room_name:" + url_encode(room->name) + " "; + req += "room_type:" + url_encode(room->type) + " "; + } + else + { + req += "visible:false "; + } + + if (params["cycle"] == "true") + req += "cycle:true "; + else + req += "cycle:false "; + + //Add each steps + for (uint i = 0;i < steps.size();i++) + { + ScenarioStep &step = steps[i]; + + req += "step:" + to_string(step.pause) + " "; + + for (uint j = 0;j < step.actions.size();j++) + { + ScenarioAction &sa = step.actions[j]; + + req += url_encode(sa.io->params["id"]) + ":" + url_encode(sa.action) + " "; + } + } + + //End step + req += "step_end "; + for (uint j = 0;j < step_end.actions.size();j++) + { + ScenarioAction &sa = step_end.actions[j]; + + req += url_encode(sa.io->params["id"]) + ":" + url_encode(sa.action) + " "; + } + + return req; +} + +string ScenarioData::modifyRequest(IOBase *io) +{ + //request: + // scenario modify input_123 name:bla visible:true room_name:bla room_type:bla cycle:true step:61000 output_0:actionbla output_1:actionbla step_end output_0:actionbla + + string req = "scenario modify " + io->params["id"] + " name:" + url_encode(name) + " "; + + if (visible && room) + { + req += "visible:true room_name:" + url_encode(room->name) + " "; + req += "room_type:" + url_encode(room->type) + " "; + } + else + { + req += "visible:false "; + } + + if (params["cycle"] == "true") + req += "cycle:true "; + else + req += "cycle:false "; + + //Add each steps + for (uint i = 0;i < steps.size();i++) + { + ScenarioStep &step = steps[i]; + + req += "step:" + to_string(step.pause) + " "; + + for (uint j = 0;j < step.actions.size();j++) + { + ScenarioAction &sa = step.actions[j]; + + req += url_encode(sa.io->params["id"]) + ":" + url_encode(sa.action) + " "; + } + } + + //End step + req += "step_end "; + for (uint j = 0;j < step_end.actions.size();j++) + { + ScenarioAction &sa = step_end.actions[j]; + + req += url_encode(sa.io->params["id"]) + ":" + url_encode(sa.action) + " "; + } + + return req; +} + +void ScenarioModel::createScenario(ScenarioData &data) +{ + string cmd = data.createRequest(); + connection->SendCommand(cmd); +} + +void ScenarioModel::modifyScenario(Scenario *sc) +{ + if (!sc || !sc->ioScenario) return; + + string cmd = sc->scenario_data.modifyRequest(sc->ioScenario); + connection->SendCommand(cmd); +} + +void ScenarioModel::deleteScenario(Scenario *sc) +{ + if (!sc || !sc->ioScenario) return; + + string cmd = "scenario delete " + sc->ioScenario->params["id"]; + connection->SendCommand(cmd); +} + +void ScenarioModel::notifyScenarioAdd(string notif) +{ + //We need to delay the load of the scenario because we have to wait for RoomModel to load the scenario id first + EcoreTimer::singleShot(0.5, sigc::bind(sigc::mem_fun(*this, &ScenarioModel::notifyScenarioAddDelayed), notif)); +} + +void ScenarioModel::notifyScenarioAddDelayed(string notif) +{ + vector tok, split_id; + split(notif, tok); + + if (tok.size() < 2) return; + + split(tok[1], split_id, ":", 2); + + if (split_id.size() < 2) + return; + + map::const_iterator it = CalaosModel::Instance().getHome()->getCacheInputs().find(split_id[1]); + + if (it == CalaosModel::Instance().getHome()->getCacheInputs().end()) + { + Utils::logger("scenario") << Priority::ERROR << "ScenarioModel: Unknown Input \'" << split_id[1] << "\' !" << log4cpp::eol; + return; + } + + Scenario *sc = new Scenario(connection); + sc->ioScenario = it->second; + sc->scenario_data.empty = false; + sc->ioScenario->io_deleted.connect(sigc::bind(sigc::mem_fun(*this, &ScenarioModel::notifyScenarioDel), sc)); + sc->scenario_data.params.Add("id", split_id[1]); + scenarios.push_back(sc); + + sc->load_done.connect(sigc::mem_fun(*this, &ScenarioModel::load_new_scenario_done)); + + string cmd = "scenario get " + split_id[1]; + connection->SendCommand(cmd, sigc::mem_fun(*sc, &Scenario::scenario_get_cb)); +} + +void ScenarioModel::load_new_scenario_done(Scenario *sc) +{ + scenario_new.emit(sc); +} + +void ScenarioModel::notifyScenarioDel(Scenario *sc) +{ + if (!sc) + { + Utils::logger("scenario") << Priority::ERROR << "ScenarioModel::notifyScenarioDel sc is NULL!" << log4cpp::eol; + return; + } + + list::iterator it; + it = find(scenarios.begin(), scenarios.end(), sc); + + if (it == scenarios.end()) + { + Utils::logger("scenario") << Priority::ERROR << "ScenarioModel: Unknown scenario \'" << sc->ioScenario->params["id"] << "\' !" << log4cpp::eol; + return; + } + + scenario_del.emit(*it); + + delete *it; + scenarios.erase(it); +} + +void ScenarioModel::notifyScenarioChange(string notif) +{ + vector tok, split_id; + split(notif, tok); + + if (tok.size() < 2) return; + + split(tok[1], split_id, ":", 2); + + if (split_id.size() < 2) + return; + + list::iterator it = scenarios.begin(); + for (;it != scenarios.end();it++) + { + Scenario *sc = *it; + if (sc->ioScenario && sc->ioScenario->params["id"] == split_id[1]) + { + scenario_change.emit(sc); + break; + } + } +} diff --git a/src/bin/calaos_home/models/ScenarioModel.h b/src/bin/calaos_home/models/ScenarioModel.h new file mode 100644 index 00000000..0e261981 --- /dev/null +++ b/src/bin/calaos_home/models/ScenarioModel.h @@ -0,0 +1,171 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef SCENARIOMODEL_H +#define SCENARIOMODEL_H + +#include + +#include "CalaosConnection.h" +#include "RoomModel.h" + +using namespace Utils; + +class ScenarioAction +{ + public: + ScenarioAction() + {} + + IOBase *io; + string action; + + string toString() + { + if (!io) return "Empty action !"; + return io->params["id"] + " : " + action; + } + +}; + +class ScenarioStep +{ + public: + ScenarioStep(): + pause(1000) + {} + + vector actions; + long int pause; //msec + + string toString() + { + string t = "\t\t[STEP] - pause:" + to_string(pause); + for (uint i = 0;i < actions.size();i++) + t += "\n\t\t\t" + actions[i].toString(); + return t; + } +}; + +class ScenarioData +{ + public: + ScenarioData(): + room(NULL), + visible(false), + empty(true) + { + params.Add("cycle", "false"); + params.Add("enabled", "true"); + } + + string name; + Room *room; + bool visible; + + Params params; + + static const int END_STEP = 0xFEDC1234; + + vector steps; + ScenarioStep step_end; + + bool empty; + + string createRequest(); + string modifyRequest(IOBase *io); + + string toString() + { + string t = "[SCENARIO DATA] - name:" + name + " visible:" + to_string(visible) + + "\n" + params.toString(); + for (uint i = 0;i < steps.size();i++) + t += "\n\t[Step " + to_string(i) + "]\n" + steps[i].toString(); + t += "\n\t[Step End]\n" + step_end.toString(); + return t; + } +}; + +class Scenario: public sigc::trackable +{ + private: + CalaosConnection *connection; + + Room *room; + + public: + Scenario(CalaosConnection *c): + connection(c), + room(NULL), + ioScenario(NULL), + ioPlage(NULL) + {} + + void scenario_get_cb(bool success, vector result, void *data); + + IOBase *ioScenario; + IOBase *ioPlage; + + ScenarioData scenario_data; + + string getFirstCategory(); + + bool isScheduled() { if (ioPlage) return true; return false; } + + //Return the room where the scenario is + Room *getRoom(); + + sigc::signal load_done; +}; + +class ScenarioModel: public sigc::trackable +{ + private: + CalaosConnection *connection; + + int load_count; + void load_scenario_done(Scenario *sc); + void load_new_scenario_done(Scenario *sc); + + void scenario_list_cb(bool success, vector result, void *data); + + void notifyScenarioAdd(string notif); + void notifyScenarioAddDelayed(string notif); + void notifyScenarioDel(Scenario *sc); + void notifyScenarioChange(string notif); + + public: + ScenarioModel(CalaosConnection *connection); + ~ScenarioModel(); + + void load(); + void createScenario(ScenarioData &data); + void modifyScenario(Scenario *sc); + void deleteScenario(Scenario *sc); + + list scenarios; + + sigc::signal load_done; + sigc::signal scenario_new; + sigc::signal scenario_del; + sigc::signal scenario_change; +}; + +#endif // SCENARIOMODEL_H diff --git a/src/bin/calaos_home/views/ActivityAudioListView.cpp b/src/bin/calaos_home/views/ActivityAudioListView.cpp new file mode 100644 index 00000000..9f11fc41 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityAudioListView.cpp @@ -0,0 +1,801 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ApplicationMain.h" +#include "ActivityAudioListView.h" +#include "GenlistItems/GenlistItemSimple.h" +#include "GenlistItems/GenlistItemAlbum.h" +#include "GenlistItems/GenlistItemAlbumHeader.h" +#include "GenlistItems/GenlistItemTrack.h" +#include "GenlistItems/GenlistItemArtist.h" +#include "GenlistItems/GenlistItemYear.h" +#include "GenlistItems/GenlistItemGenre.h" +#include "GenlistItems/GenlistItemBrowserPlaylist.h" +#include "GenlistItems/GenlistItemPlaylistHeader.h" +#include "GenlistItems/GenlistItemRadio.h" +#include + +ActivityAudioListView::ActivityAudioListView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/media/audio_list"), + player_current(NULL), + in_edit_mode(false) +{ + players.reserve(3); + for (int i = 0;i < 3;i++) + { + ActivityPlayerObject ac(evas, parent); + players.push_back(ac); + players[players.size() - 1].createEdjeObject(theme, evas); + Swallow(players[players.size() - 1].object, "player.swallow." + to_string(i + 1)); + players[players.size() - 1].player_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::playerSelected)); + } + + addCallback("button.browser.back", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserButtonBack)); + addCallback("button.browser.root", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserButtonRoot)); + + gplaylist = elm_genlist_add(parent); + Swallow(gplaylist, "playlist.swallow"); + elm_object_style_set(gplaylist, "calaos"); + elm_genlist_homogeneous_set(gplaylist, true); + evas_object_show(gplaylist); + + pager_browser = elm_naviframe_add(parent); + evas_object_show(pager_browser); + Swallow(pager_browser, "browser.swallow"); + + addCallback("audio", "*", sigc::mem_fun(*this, &ActivityAudioListView::EdjeCallback)); +} + +ActivityAudioListView::~ActivityAudioListView() +{ + for (unsigned int i = 0;i < players.size();i++) + { + players[i].unsetPlayer(); + DELETE_NULL(players[i].object); + } + + elm_genlist_clear(gplaylist); + DELETE_NULL_FUNC(evas_object_del, gplaylist); + + DELETE_NULL_FUNC(evas_object_del, pager_browser); + + for_each(browser_root_buttons.begin(), browser_root_buttons.end(), Delete()); +} + +void ActivityAudioListView::createRootBrowserPage() +{ + browser_root = new EdjeObject(theme, evas); + browser_root->LoadEdje("calaos/audio/browser/root"); + browser_root->setAutoDelete(true); + + EdjeObject *obj; + Params &stats = player_current->getPlayer()->getDBStats(); + + obj = createRootButton("Mes Albums", "Accédez à tous vos albums.", stats["albums"], 0, 0); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowAlbums)); + + obj = createRootButton("Artistes", "Afficher par artistes.", stats["artists"], 0, 1); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowArtists)); + + obj = createRootButton("Années", "Pistes triées par années.", stats["years"], 1, 0); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowYears)); + + obj = createRootButton("Genres", "Afficher les titres par genres.", stats["genres"], 1, 1); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowGenres)); + + obj = createRootButton("Dossier de musique", "Parcourir la musique par dossier.", "", 2, 0); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowFolders)); + + obj = createRootButton("Playlists", "Vos playlists sauvegardées.", stats["playlists"], 2, 1); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowPlaylists)); + + obj = createRootButton("Radios", "Radios web et services en ligne.", "", 3, 0); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowRadios)); + + obj = createRootButton("Rechercher...", "Chercher dans votre collection.", "", 3, 1); + obj->addCallback("button", "pressed", sigc::mem_fun(*this, &ActivityAudioListView::browserShowSearch)); + + it_browser_root = elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, browser_root->getEvasObject(), "calaos"); +} + +EdjeObject *ActivityAudioListView::createRootButton(string title, string subtitle, string total, int row, int col) +{ + EdjeObject *obj = new EdjeObject(theme, evas); + obj->LoadEdje("calaos/audio/browser/button"); + obj->setPartText("title", title); + obj->setPartText("subtitle", subtitle); + obj->setPartText("total", total); + obj->Show(); + + int w, h; + edje_object_size_min_get(obj->getEvasObject(), &w, &h); + obj->Resize(w, h); + evas_object_size_hint_min_set(obj->getEvasObject(), w, h); + + browser_root_buttons.push_back(obj); + + if (!edje_object_part_table_pack(browser_root->getEvasObject(), "table", obj->getEvasObject(), + col, row, 1, 1)) + Utils::logger("root") << Priority::CRIT << "ActivityAudioListView::createRootButton(), failed to pack object into table !" << log4cpp::eol; + + return obj; +} + +void ActivityAudioListView::resetView() +{ +} + +void ActivityAudioListView::setPlayer(AudioPlayer *player, int position) +{ + players[position].object->setPartText("player.name", player->params["name"]); + players[position].object->EmitSignal("player,active", "calaos"); + players[position].setPlayer(player); +} + +void ActivityAudioListView::disablePlayer(int position) +{ + players[position].unsetPlayer(); + players[position].object->EmitSignal("player,inactive", "calaos"); + players[position].resetPlayer(); +} + +void ActivityAudioListView::EnableLeftButton() +{ + EmitSignal("enable,left", "calaos"); +} + +void ActivityAudioListView::DisableLeftButton() +{ + EmitSignal("disable,left", "calaos"); +} + +void ActivityAudioListView::EnableRightButton() +{ + EmitSignal("enable,right", "calaos"); +} + +void ActivityAudioListView::DisableRightButton() +{ + EmitSignal("disable,right", "calaos"); +} + +void ActivityAudioListView::ShowLoading() +{ + EmitSignal("show,loading", "calaos"); +} + +void ActivityAudioListView::HideLoading() +{ + EmitSignal("hide,loading", "calaos"); +} + +void ActivityAudioListView::EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (emission == "page,right") + { + button_right_click.emit(); + } + else if (emission == "page,left") + { + button_left_click.emit(); + } +} + +void ActivityAudioListView::playerSelected(ActivityPlayerObject *obj) +{ + if (obj == &players[0]) EmitSignal("select,player,1", "calaos"); + if (obj == &players[1]) EmitSignal("select,player,2", "calaos"); + if (obj == &players[2]) EmitSignal("select,player,3", "calaos"); + + player_current = obj; + + obj->handlePlaylist(parent, gplaylist, this); + obj->object->EmitSignal("player,select", "calaos"); + + player_selected.emit(obj->getPlayer()); +} + +void ActivityAudioListView::unselectPlayers() +{ + EmitSignal("unselect,players", "calaos"); + + for (uint i = 0;i < players.size();i++) + { + players[i].object->EmitSignal("player,unselect", "calaos"); + players[i].unsetPlaylist(); + } + + player_current = NULL; +} + +void ActivityAudioListView::setEditMode() +{ + EmitSignal("open,edit,playlist", "calaos"); + in_edit_mode = true; + + Params &stats = player_current->getPlayer()->getDBStats(); + + string s = "Discothèque : " + + stats["albums"] + " albums avec " + + stats["tracks"] + " pistes par " + + stats["artists"] + " artistes."; + setPartText("browser.message", s); + + createRootBrowserPage(); +} + +void ActivityAudioListView::unsetEditMode() +{ + EmitSignal("close,edit,playlist", "calaos"); + in_edit_mode = false; + + for_each(browser_root_buttons.begin(), browser_root_buttons.end(), Delete()); + browser_root_buttons.clear(); + + elm_naviframe_item_pop(pager_browser); +} + +void ActivityAudioListView::browserButtonBack(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + EmitSignal("browser,loading,stop", "calaos"); + if (elm_naviframe_top_item_get(pager_browser) == it_browser_root) return; + + elm_naviframe_item_pop(pager_browser); +} + +void ActivityAudioListView::browserButtonRoot(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + EmitSignal("browser,loading,stop", "calaos"); + + while (elm_naviframe_top_item_get(pager_browser) != it_browser_root) + elm_naviframe_item_pop(pager_browser); +} + +void ActivityAudioListView::browserShowAlbums(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + Params &p = player_current->getPlayer()->getDBStats(); + int count; + from_string(p["albums"], count); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemAlbum *item = new GenlistItemAlbum(evas, parent, player_current->getPlayer(), i, GenlistItemAlbum::ALBUM_LIST); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::albumSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::albumSelected(void *data) +{ + GenlistItemAlbum *item_album = reinterpret_cast(data); + if (!data) return; + + cout << "Click on Item #" << item_album->getItemId() << endl; + cout << "Item infos: " << item_album->getItemInfos().toString() << endl; + + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + int album_id; + from_string(item_album->getItemInfos().get_param("id"), album_id); + + player_current->getPlayer()->getDBAlbumTrackCount(album_id, + sigc::bind(sigc::mem_fun(*this, &ActivityAudioListView::browserShowAlbumTracks), + album_id, + item_album->getItemInfos())); +} + +void ActivityAudioListView::browserShowAlbumTracks(Params &infos, int album_id, Params album_infos) +{ + if (!infos.Exists("count")) return; + + EmitSignal("browser,loading,stop", "calaos"); + + album_infos.Add("count", infos["count"]); + int count; + from_string(infos["count"], count); + + CREATE_GENLIST_HELPER(glist); + + GenlistItemAlbumHeader *header = new GenlistItemAlbumHeader(evas, parent, player_current->getPlayer(), album_infos, album_id); + header->Append(glist); + for (int i = 0;i < count;i++) + { + GenlistItemTrack *item = new GenlistItemTrack(evas, parent, player_current->getPlayer(), i, GenlistItemTrack::TRACK_ALBUM, album_id); + item->Append(glist, NULL); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::browserShowArtists(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + Params &p = player_current->getPlayer()->getDBStats(); + int count; + from_string(p["artists"], count); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemArtist *item = new GenlistItemArtist(evas, parent, player_current->getPlayer(), i, GenlistItemArtist::ARTIST_LIST); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::artistSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::artistSelected(void *data) +{ + GenlistItemArtist *item_artist = reinterpret_cast(data); + if (!data) return; + + cout << "Click on Item #" << item_artist->getItemId() << endl; + cout << "Item infos: " << item_artist->getItemInfos().toString() << endl; + + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + int artist_id; + from_string(item_artist->getItemInfos().get_param("id"), artist_id); + + player_current->getPlayer()->getDBArtistAlbumCount(artist_id, + sigc::bind(sigc::mem_fun(*this, &ActivityAudioListView::browserShowArtistAlbum), + item_artist->getItemInfos())); +} + +void ActivityAudioListView::browserShowArtistAlbum(Params &infos, Params artist_infos) +{ + if (!infos.Exists("count")) return; + + EmitSignal("browser,loading,stop", "calaos"); + + cout << "RESULT infos: " << artist_infos.toString() << endl; + + artist_infos.Add("count", infos["count"]); + int count; + from_string(infos["count"], count); + + int artist_id; + from_string(artist_infos["id"], artist_id); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemAlbum *item = new GenlistItemAlbum(evas, parent, player_current->getPlayer(), i, GenlistItemAlbum::ALBUM_ARTIST, artist_id); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::albumSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::browserShowGenres(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + Params &p = player_current->getPlayer()->getDBStats(); + int count; + from_string(p["genres"], count); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemGenre *item = new GenlistItemGenre(evas, parent, player_current->getPlayer(), i); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::genreSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::genreSelected(void *data) +{ + GenlistItemGenre *item_genre = reinterpret_cast(data); + if (!data) return; + + cout << "Click on Item #" << item_genre->getItemId() << endl; + cout << "Item infos: " << item_genre->getItemInfos().toString() << endl; + + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + int genre_id; + from_string(item_genre->getItemInfos().get_param("id"), genre_id); + + player_current->getPlayer()->getDBGenreArtistCount(genre_id, + sigc::bind(sigc::mem_fun(*this, &ActivityAudioListView::browserShowGenreArtist), + item_genre->getItemInfos())); +} + +void ActivityAudioListView::browserShowGenreArtist(Params &infos, Params genre_infos) +{ + if (!infos.Exists("count")) return; + + EmitSignal("browser,loading,stop", "calaos"); + + cout << "RESULT infos: " << genre_infos.toString() << endl; + + genre_infos.Add("count", infos["count"]); + int count; + from_string(infos["count"], count); + + int genre_id; + from_string(genre_infos["id"], genre_id); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemArtist *item = new GenlistItemArtist(evas, parent, player_current->getPlayer(), i, GenlistItemArtist::ARTIST_GENRE, genre_id); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::artistSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::browserShowYears(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + Params &p = player_current->getPlayer()->getDBStats(); + int count; + from_string(p["years"], count); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemYear *item = new GenlistItemYear(evas, parent, player_current->getPlayer(), i); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::yearSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::yearSelected(void *data) +{ + GenlistItemYear *item_year = reinterpret_cast(data); + if (!data) return; + + cout << "Click on Item #" << item_year->getItemId() << endl; + cout << "Item infos: " << item_year->getItemInfos().toString() << endl; + + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + int year_id; + from_string(item_year->getItemInfos().get_param("year"), year_id); + + player_current->getPlayer()->getDBYearAlbumCount(year_id, + sigc::bind(sigc::mem_fun(*this, &ActivityAudioListView::browserShowYearAlbum), + item_year->getItemInfos())); +} + +void ActivityAudioListView::browserShowYearAlbum(Params &infos, Params year_infos) +{ + if (!infos.Exists("count")) return; + + EmitSignal("browser,loading,stop", "calaos"); + + cout << "RESULT infos: " << year_infos.toString() << endl; + + year_infos.Add("count", infos["count"]); + int count; + from_string(infos["count"], count); + + int year_id; + from_string(year_infos["year"], year_id); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemAlbum *item = new GenlistItemAlbum(evas, parent, player_current->getPlayer(), i, GenlistItemAlbum::ALBUM_YEAR, year_id); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::albumSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::browserShowFolders(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + //load root folder + loadFolderList(""); +} + +void ActivityAudioListView::loadFolderList(string folder_id) +{ + EmitSignal("browser,loading,start", "calaos"); + + player_current->getPlayer()->getDBFolder(folder_id, + sigc::mem_fun(*this, &ActivityAudioListView::itemListLoaded)); +} + +void ActivityAudioListView::itemListLoaded(list &infos) +{ + list::iterator it = infos.begin(); + + CREATE_GENLIST_HELPER(glist); + + for (;it != infos.end();it++) + { + Params &pitem = *it; + + if (pitem["type"] == "track") + { + int track_id; + from_string(pitem["id"], track_id); + GenlistItemTrack *item = new GenlistItemTrack(evas, parent, player_current->getPlayer(), track_id, GenlistItemTrack::TRACK_ID, 0); + item->Append(glist, NULL); + } + else if (pitem["type"] == "folder") + { + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, pitem["name"], true); + item->setIcon("calaos/icons/genlist/folder"); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityAudioListView::folderSelected), + pitem["id"])); + } + else if (pitem["type"] == "playlist") + { + GenlistItemBrowserPlaylist *item = new GenlistItemBrowserPlaylist(evas, parent, player_current->getPlayer(), pitem); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::playlistSelected)); + } + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); + + EmitSignal("browser,loading,stop", "calaos"); +} + +void ActivityAudioListView::folderSelected(void *data, string folder_id) +{ + loadFolderList(folder_id); +} + +void ActivityAudioListView::browserShowPlaylists(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + Params &p = player_current->getPlayer()->getDBStats(); + int count; + from_string(p["playlists"], count); + + CREATE_GENLIST_HELPER(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemBrowserPlaylist *item = new GenlistItemBrowserPlaylist(evas, parent, player_current->getPlayer(), i); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::playlistSelected)); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::playlistSelected(void *data) +{ + GenlistItemBrowserPlaylist *item_pl = reinterpret_cast(data); + if (!data) return; + + cout << "Click on Item #" << item_pl->getItemId() << endl; + cout << "Item infos: " << item_pl->getItemInfos().toString() << endl; + + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + int pl_id; + from_string(item_pl->getItemInfos().get_param("id"), pl_id); + + player_current->getPlayer()->getDBPlaylistTrackCount(pl_id, + sigc::bind(sigc::mem_fun(*this, &ActivityAudioListView::browserShowPlaylistTracks), + item_pl->getItemInfos())); +} + +void ActivityAudioListView::browserShowPlaylistTracks(Params &infos, Params pl_infos) +{ + if (!infos.Exists("count")) return; + + EmitSignal("browser,loading,stop", "calaos"); + + cout << "RESULT infos: " << pl_infos.toString() << endl; + + pl_infos.Add("count", infos["count"]); + int count; + from_string(infos["count"], count); + + int pl_id; + from_string(pl_infos["id"], pl_id); + + CREATE_GENLIST_HELPER(glist); + + GenlistItemPlaylistHeader *header = new GenlistItemPlaylistHeader(evas, parent, player_current->getPlayer(), pl_infos, pl_id); + header->Append(glist); + + for (int i = 0;i < count;i++) + { + GenlistItemTrack *item = new GenlistItemTrack(evas, parent, player_current->getPlayer(), i, GenlistItemTrack::TRACK_PLAYLIST, pl_id); + item->Append(glist); + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); +} + +void ActivityAudioListView::browserShowRadios(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + player_current->getPlayer()->getDBAllRadio(sigc::mem_fun(*this, &ActivityAudioListView::itemRadioLoaded)); +} + +void ActivityAudioListView::radioSelected(void *data, string rid, string subitem_id) +{ + EmitSignal("browser,loading,start", "calaos"); + + if (subitem_id == "") + radio_id = rid; + + player_current->getPlayer()->getDBRadio(rid, subitem_id, sigc::mem_fun(*this, &ActivityAudioListView::itemRadioLoaded)); +} + +void ActivityAudioListView::itemRadioLoaded(list &infos) +{ + list::iterator it = infos.begin(); + + CREATE_GENLIST_HELPER(glist); + elm_genlist_homogeneous_set(glist, false); + elm_genlist_mode_set(glist, ELM_LIST_COMPRESS); + + for (;it != infos.end();it++) + { + Params &pitem = *it; + + cout << "item type: " << pitem.toString() << endl; + + if (pitem["type"] == "xmlbrowser") + { + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, pitem["name"], true); + item->setIcon("calaos/icons/genlist/radio"); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::bind( + sigc::mem_fun(*this, &ActivityAudioListView::radioSelected), + pitem["id"], "")); + } + else + { + if (pitem["isaudio"] == "1") + { + pitem.Add("radio_id", radio_id); + GenlistItemRadio *item = new GenlistItemRadio(evas, parent, player_current->getPlayer(), pitem); + item->Append(glist); + + if (pitem["hasitems"] == "1") + { + item->setUserData(item); + item->item_selected.connect(sigc::bind( + sigc::mem_fun(*this, &ActivityAudioListView::radioSelected), + radio_id ,pitem["id"])); + } + } + else + { + if (pitem["hasitems"] == "1" && pitem["type"] != "search" && pitem["type"] != "xmlbrowser_search") + { + GenlistItemSimple *item; + if (pitem["type"] == "text" || pitem["type"] == "textarea") + item = new GenlistItemSimple(evas, parent, pitem["name"], true, true); + else + item = new GenlistItemSimple(evas, parent, pitem["name"], true); + item->setIcon("calaos/icons/genlist/folder"); + item->Append(glist); + item->setUserData(item); + item->item_selected.connect(sigc::bind( + sigc::mem_fun(*this, &ActivityAudioListView::radioSelected), + radio_id ,pitem["id"])); + } + else + { + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, pitem["name"], false, true); + item->Append(glist); + + if (pitem["type"] == "search" || pitem["type"] == "xmlbrowser_search") + { + item->setIcon("calaos/icons/genlist/search"); + item->item_selected.connect(sigc::bind( + sigc::mem_fun(*this, &ActivityAudioListView::searchRadioSelected), + radio_id ,pitem["id"])); + } + } + } + } + } + + elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos"); + + EmitSignal("browser,loading,stop", "calaos"); +} + +void ActivityAudioListView::searchRadioSelected(void *data, string radio_id, string subitem_id) +{ + ApplicationMain::Instance().ShowKeyboard("Recherche dans les radios", sigc::bind( + sigc::mem_fun(*this, &ActivityAudioListView::searchRadioKeyboard_cb), + radio_id, subitem_id), false); +} + +void ActivityAudioListView::searchRadioKeyboard_cb(string text, string radio_id, string subitem_id) +{ + EmitSignal("browser,loading,start", "calaos"); + + player_current->getPlayer()->getDBRadioSearch(radio_id, subitem_id, text, sigc::mem_fun(*this, &ActivityAudioListView::itemRadioLoaded)); +} + +void ActivityAudioListView::browserShowSearch(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + ApplicationMain::Instance().ShowKeyboard("Recherche dans la base de données de musique", + sigc::mem_fun(*this, &ActivityAudioListView::searchDBKeyboard_cb), + false); +} + +void ActivityAudioListView::searchDBKeyboard_cb(string text) +{ + if (!player_current) return; + + EmitSignal("browser,loading,start", "calaos"); + + player_current->getPlayer()->getDBSearch(text, sigc::mem_fun(*this, &ActivityAudioListView::itemListLoaded)); +} diff --git a/src/bin/calaos_home/views/ActivityAudioListView.h b/src/bin/calaos_home/views/ActivityAudioListView.h new file mode 100644 index 00000000..2d1b2efd --- /dev/null +++ b/src/bin/calaos_home/views/ActivityAudioListView.h @@ -0,0 +1,131 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYAUDIOLISTVIEW_H +#define ACTIVITYAUDIOLISTVIEW_H + +#include + +#include "CalaosModel.h" +#include "ActivityView.h" + +#include "ActivityAudioPlayerObject.h" + +using namespace Utils; + +#define CREATE_GENLIST_HELPER(glist) \ +Evas_Object *glist = elm_genlist_add(parent); \ +elm_object_style_set(glist, "calaos"); \ +elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); \ +elm_genlist_homogeneous_set(glist, true); \ +evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); \ +evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); \ +evas_object_show(glist); + +class ActivityAudioListView: public ActivityView +{ + private: + vector players; + ActivityPlayerObject *player_current; + + Evas_Object *gplaylist; + + Evas_Object *pager_browser; + EdjeObject *browser_root; + Elm_Object_Item *it_browser_root; + + vector browser_root_buttons; + + bool in_edit_mode; + + string radio_id; + + void EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void playerSelected(ActivityPlayerObject *obj); + + void createRootBrowserPage(); + EdjeObject *createRootButton(string title, string subtitle, string total, int row, int col); + + void browserShowAlbums(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowArtists(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowGenres(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowYears(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowFolders(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowPlaylists(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowRadios(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserShowSearch(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void browserButtonBack(void *data, Evas_Object *_edje, std::string emission, std::string source); + void browserButtonRoot(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void albumSelected(void *data); + void artistSelected(void *data); + void yearSelected(void *data); + void genreSelected(void *data); + void playlistSelected(void *data); + void folderSelected(void *data, string folder_id); + void radioSelected(void *data, string radio_id, string subitem_id); + void searchRadioSelected(void *data, string radio_id, string subitem_id); + void searchRadioKeyboard_cb(string text, string radio_id, string subitem_id); + void searchDBKeyboard_cb(string text); + + void browserShowAlbumTracks(Params &infos, int album_id, Params album_infos); + void browserShowArtistAlbum(Params &infos, Params artist_infos); + void browserShowYearAlbum(Params &infos, Params artist_infos); + void browserShowGenreArtist(Params &infos, Params genre_infos); + void browserShowPlaylistTracks(Params &infos, Params pl_infos); + + void loadFolderList(string folder_id); + void itemListLoaded(list &infos); + void itemRadioLoaded(list &infos); + + public: + ActivityAudioListView(Evas *evas, Evas_Object *parent); + ~ActivityAudioListView(); + + virtual void resetView(); + + void setPlayer(AudioPlayer *player, int position); + void disablePlayer(int position); + + void EnableLeftButton(); + void DisableLeftButton(); + void EnableRightButton(); + void DisableRightButton(); + + void ShowLoading(); + void HideLoading(); + + void unselectPlayers(); + + void setEditMode(); + void unsetEditMode(); + bool isEditMode() { return in_edit_mode; } // return true if in edit mode + + virtual string getTitle() { return "Musique"; } + + sigc::signal button_left_click; + sigc::signal button_right_click; + + sigc::signal player_selected; +}; + +#endif // ACTIVITYAUDIOLISTVIEW_H diff --git a/src/bin/calaos_home/views/ActivityAudioPlayerObject.cpp b/src/bin/calaos_home/views/ActivityAudioPlayerObject.cpp new file mode 100644 index 00000000..884e69fc --- /dev/null +++ b/src/bin/calaos_home/views/ActivityAudioPlayerObject.cpp @@ -0,0 +1,754 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityAudioPlayerObject.h" +#include "GenlistItems/GenlistItemPlaylist.h" +#include +#include +#include +#include + +ActivityPlayerObject::ActivityPlayerObject(Evas *e, Evas_Object *p): + evas(e), + parent(p), + player(NULL), + gplaylist(NULL), + cover(NULL), + cover_small(NULL), + items_parent(NULL), + small_player(NULL), + amp_panel(NULL), + amp_volume(false), + object(NULL) +{ +} + +ActivityPlayerObject::~ActivityPlayerObject() +{ + con_volume.disconnect(); + con_status.disconnect(); + con_track.disconnect(); + con_time.disconnect(); + + con_pl_changed.disconnect(); + con_pl_tracksadded.disconnect(); + con_pl_trackdel.disconnect(); + con_pl_trackmoved.disconnect(); + + DELETE_NULL_FUNC(evas_object_del, cover); + DELETE_NULL_FUNC(evas_object_del, cover_small); +} + +void ActivityPlayerObject::resetPlayer() +{ + if (!object) return; + + object->setPartText("player.name", "Aucune zone"); + object->setPartText("player.volume", "0%"); + object->setPartText("player.type", "Na"); + object->setPartText("player.artist", "Aucun"); + object->setPartText("player.album", "Aucun"); + object->setPartText("player.title", "Aucune"); + object->setPartText("player.year", "Na"); + object->setPartText("player.duration", "0:00"); + + object->EmitSignal("player,stop", "calaos"); + + if (small_player) + { + small_player->setPartText("player.name", "Aucune zone"); + small_player->setPartText("player.volume", "0%"); + small_player->setPartText("player.type", "Na"); + small_player->setPartText("player.artist", "Aucun"); + small_player->setPartText("player.album", "Aucun"); + small_player->setPartText("player.title", "Aucune"); + small_player->setPartText("player.year", "Na"); + small_player->setPartText("player.duration", "0:00"); + + small_player->EmitSignal("player,stop", "calaos"); + } +} + +void ActivityPlayerObject::createEdjeObject(string &theme, Evas *evas) +{ + EdjeObject *obj = new EdjeObject(theme, evas); + obj->LoadEdje("calaos/audio/player"); + obj->Show(); + obj->addCallback("player", "player,volume,*", sigc::mem_fun(*this, &ActivityPlayerObject::changeVolume_cb)); + obj->addCallback("player", "player,play", sigc::mem_fun(*this, &ActivityPlayerObject::play_cb)); + obj->addCallback("player", "player,pause", sigc::mem_fun(*this, &ActivityPlayerObject::pause_cb)); + obj->addCallback("player", "player,stop", sigc::mem_fun(*this, &ActivityPlayerObject::stop_cb)); + obj->addCallback("player", "player,previous", sigc::mem_fun(*this, &ActivityPlayerObject::previous_cb)); + obj->addCallback("player", "player,next", sigc::mem_fun(*this, &ActivityPlayerObject::next_cb)); + obj->addCallback("player", "player,off", sigc::mem_fun(*this, &ActivityPlayerObject::off_cb)); + obj->addCallback("player", "player,on", sigc::mem_fun(*this, &ActivityPlayerObject::on_cb)); + obj->addCallback("player", "player,time,change", sigc::mem_fun(*this, &ActivityPlayerObject::changeTime_cb)); + obj->addCallback("player", "player,select", sigc::mem_fun(*this, &ActivityPlayerObject::selectDetail_cb)); + obj->addCallback("player", "player,amplifier", sigc::mem_fun(*this, &ActivityPlayerObject::amplifierClick_cb)); + + object = obj; + + resetPlayer(); +} + +void ActivityPlayerObject::setPlayer(AudioPlayer *p) +{ + con_volume.disconnect(); + con_status.disconnect(); + con_track.disconnect(); + con_time.disconnect(); + con_pl_changed.disconnect(); + con_pl_tracksadded.disconnect(); + con_pl_trackdel.disconnect(); + con_pl_trackmoved.disconnect(); + player = p; + + if (!player) return; + + //There is an Amplifier linked with this Player + if (player->params.Exists("amp_id")) + object->EmitSignal("player,amplifier", "calaos"); + else + object->EmitSignal("player,no_amplifier", "calaos"); + + player->registerChange(); + cover_fname = "/tmp/calaos_cover_" + player->params["num"] + ".jpg"; + + onVolumeChange(); + onStatusChange(); + onTrackChange(); + + con_volume = player->player_volume_changed.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onVolumeChange)); + con_status = player->player_status_changed.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onStatusChange)); + con_track = player->player_track_changed.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onTrackChange)); + con_time = player->player_time_changed.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onTimeChange)); + + con_pl_changed = player->player_playlist_changed.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onPlaylistChanged)); + con_pl_tracksadded = player->player_playlist_tracks_added.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onPlaylistTracksAdded)); + con_pl_trackdel = player->player_playlist_tracks_deleted.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onPlaylistTrackDeleted)); + con_pl_trackmoved = player->player_playlist_tracks_moved.connect(sigc::mem_fun(*this, &ActivityPlayerObject::onPlaylistTrackMoved)); +} + +void ActivityPlayerObject::unsetPlayer() +{ + if (!player) return; + + player->unregisterChange(); + player = NULL; + + if (gplaylist) + { + elm_genlist_clear(gplaylist); + gplaylist = NULL; + } +} + +void ActivityPlayerObject::handlePlaylist(Evas_Object *parent, Evas_Object *playlist, EdjeObject *splayer) +{ + gplaylist = playlist; + items_parent = parent; + small_player = splayer; + + sigc::connection *con; + con = small_player->addCallback("player", "player,volume,*", sigc::mem_fun(*this, &ActivityPlayerObject::changeVolumeSmall_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,play", sigc::mem_fun(*this, &ActivityPlayerObject::play_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,pause", sigc::mem_fun(*this, &ActivityPlayerObject::pause_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,stop", sigc::mem_fun(*this, &ActivityPlayerObject::stop_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,previous", sigc::mem_fun(*this, &ActivityPlayerObject::previous_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,next", sigc::mem_fun(*this, &ActivityPlayerObject::next_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,off", sigc::mem_fun(*this, &ActivityPlayerObject::off_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,on", sigc::mem_fun(*this, &ActivityPlayerObject::on_cb)); + small_player_connections.push_back(con); + con = small_player->addCallback("player", "player,time,change", sigc::mem_fun(*this, &ActivityPlayerObject::changeTimeSmall_cb)); + small_player_connections.push_back(con); + + //Force update of the small player here. + onTrackChange(); + onVolumeChange(); + onStatusChange(); + onTimeChange(); + + onPlaylistChanged(); +} + +void ActivityPlayerObject::unsetPlaylist() +{ + for (uint i = 0;i < small_player_connections.size();i++) + small_player->delCallback(small_player_connections[i]); + small_player_connections.clear(); + + gplaylist = NULL; + small_player = NULL; + DELETE_NULL_FUNC(evas_object_del, cover_small); +} + +void ActivityPlayerObject::onVolumeChange() +{ + if (!player) return; + + object->setPartText("player.volume", to_string(player->getVolume()) + "%"); + object->setDragValue("player.volume.slider", 0.0, 1.0 - ((double)player->getVolume() / 100.)); + + if (small_player) + { + small_player->setPartText("player.volume", to_string(player->getVolume()) + "%"); + small_player->setDragValue("player.volume.slider", 0.0, 1.0 - ((double)player->getVolume() / 100.)); + } +} + +void ActivityPlayerObject::onStatusChange() +{ + if (!player) return; + + if (player->getStatus() == "play") + object->EmitSignal("player,playing", "calaos"); + else + object->EmitSignal("player,stop", "calaos"); + + if (small_player) + { + if (player->getStatus() == "play") + small_player->EmitSignal("player,playing", "calaos"); + else + small_player->EmitSignal("player,stop", "calaos"); + } +} + +void ActivityPlayerObject::onTrackChange() +{ + if (!player) return; + + string artist, album, title, year, type, duration; + artist = player->current_song_info["artist"]; + album = player->current_song_info["album"]; + title = player->current_song_info["title"]; + year = player->current_song_info["year"]; + type = player->current_song_info["type"]; + duration = player->current_song_info["duration"]; + + if (artist == "") artist = "Aucun"; + if (album == "") album = "Aucun"; + if (title == "") title = "Aucune"; + if (year == "") year = "Na"; + if (type == "") type = "Na"; + if (duration == "") duration = "0:00"; + + object->setPartText("player.type", type); + object->setPartText("player.artist", artist); + object->setPartText("player.album", album); + object->setPartText("player.title", title); + object->setPartText("player.year", year); + object->setPartText("player.duration", duration); + + if (small_player) + { + small_player->setPartText("player.type", type); + small_player->setPartText("player.artist", artist); + small_player->setPartText("player.album", album); + small_player->setPartText("player.title", title); + small_player->setPartText("player.year", year); + small_player->setPartText("player.duration", duration); + } + + if (player->hasCover()) + { + player->getCurrentCover(sigc::mem_fun(*this, &ActivityPlayerObject::coverGet_cb)); + } + else + { + object->EmitSignal("track,nocover", "calaos"); + if (small_player) small_player->EmitSignal("track,nocover", "calaos"); + } +} + +void ActivityPlayerObject::coverGet_cb(Params &infos) +{ + if (infos["cover"] == "") + { + object->EmitSignal("track,nocover", "calaos"); + if (small_player) small_player->EmitSignal("track,nocover", "calaos"); + return; + } + + FileDownloader *downloader = new FileDownloader(infos["cover"], cover_fname, true); + downloader->addCallback(sigc::mem_fun(*this, &ActivityPlayerObject::coverDownload_cb)); + downloader->Start(); +} + +void ActivityPlayerObject::coverDownload_cb(string status, void *data) +{ + if (status == "failed" || status == "aborted") + { + object->EmitSignal("track,nocover", "calaos"); + if (small_player) small_player->EmitSignal("track,nocover", "calaos"); + return; + } + + if (status != "done") + return; + + if (!ecore_file_exists(cover_fname.c_str())) + return; + + if (!cover) + { + cover = elm_icon_add(parent); + object->Swallow(cover, "player.cover"); + evas_object_show(cover); + } + + if (!cover_small && small_player) + { + cover_small = elm_icon_add(parent); + small_player->Swallow(cover_small, "player.cover"); + evas_object_show(cover_small); + } + + elm_image_file_set(cover, cover_fname.c_str(), NULL); + elm_image_preload_disabled_set(cover, false); + if (small_player) + { + elm_image_file_set(cover_small, cover_fname.c_str(), NULL); + elm_image_preload_disabled_set(cover_small, false); + } + + object->EmitSignal("track,cover", "calaos"); + if (small_player) small_player->EmitSignal("track,cover", "calaos"); +} + +void ActivityPlayerObject::onTimeChange() +{ + if (!player) return; + + object->setPartText("player.time", Utils::time2string_digit((long)player->getTimeElapsed())); + object->setDragValue("player.time.slider", player->getTimeElapsed() / player->getDuration(), 0.0); + + if (small_player) + { + small_player->setPartText("player.time", Utils::time2string_digit((long)player->getTimeElapsed())); + small_player->setDragValue("player.time.slider", player->getTimeElapsed() / player->getDuration(), 0.0); + } +} + +void ActivityPlayerObject::changeVolume_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + if (emission == "player,volume,change,move") + { + double val; + object->getDragValue("player.volume.slider", NULL, &val); + val = 1.0 - val; + + player->setVolume((int)(val * 100.0)); + } + else if (emission == "player,volume,plus") + { + player->setVolume(player->getVolume() + 1); + } + else if (emission == "player,volume,moins") + { + player->setVolume(player->getVolume() - 1); + } +} + +void ActivityPlayerObject::changeVolumeSmall_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + if (emission == "player,volume,change,move") + { + double val = 0.0; + if (small_player) small_player->getDragValue("player.volume.slider", NULL, &val); + val = 1.0 - val; + + player->setVolume((int)(val * 100.0)); + } + else if (emission == "player,volume,plus") + { + player->setVolume(player->getVolume() + 1); + } + else if (emission == "player,volume,moins") + { + player->setVolume(player->getVolume() - 1); + } +} + +void ActivityPlayerObject::changeTime_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + double val; + object->getDragValue("player.time.slider", &val, NULL); + + player->setTime(val * player->getDuration()); +} + +void ActivityPlayerObject::changeTimeSmall_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + double val = 0.0; + if (small_player) small_player->getDragValue("player.time.slider", &val, NULL); + + player->setTime(val * player->getDuration()); +} + +void ActivityPlayerObject::play_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->play(); +} + +void ActivityPlayerObject::pause_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->pause(); +} + +void ActivityPlayerObject::stop_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->stop(); +} + +void ActivityPlayerObject::next_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->next(); +} + +void ActivityPlayerObject::previous_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->previous(); +} + +void ActivityPlayerObject::on_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->on(); +} + +void ActivityPlayerObject::off_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player->off(); +} + +void ActivityPlayerObject::selectDetail_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!player) return; + + player_selected.emit(this); +} + +void ActivityPlayerObject::onPlaylistChanged() +{ + if (!gplaylist) return; + + elm_genlist_clear(gplaylist); + + for (int i = 0;i < player->getPlaylistSize();i++) + { + GenlistItemPlaylist *item = new GenlistItemPlaylist(evas, items_parent, player, i); + item->Append(gplaylist); + } +} + +void ActivityPlayerObject::onPlaylistTracksAdded(int count) +{ + if (!gplaylist) return; + + int playlist_size = player->getPlaylistSize(); + for (int i = 0;i < count;i++) + { + GenlistItemPlaylist *item = new GenlistItemPlaylist(evas, items_parent, player, playlist_size - count + i); + item->Append(gplaylist); + } +} + +void ActivityPlayerObject::onPlaylistTrackDeleted(int del_item) +{ + if (!gplaylist) return; + + int playlist_size = player->getPlaylistSize(); + if (del_item < playlist_size / 2) + { + Elm_Object_Item *item = elm_genlist_first_item_get(gplaylist); + int cpt = 0; + while (cpt < del_item) + { + item = elm_genlist_item_next_get(item); + cpt++; + } + elm_object_item_del(item); + } + else + { + Elm_Object_Item *item = elm_genlist_last_item_get(gplaylist); + int cpt = playlist_size - 1; + while (cpt > del_item) + { + item = elm_genlist_item_next_get(item); + cpt--; + } + elm_object_item_del(item); + } +} + +void ActivityPlayerObject::onPlaylistTrackMoved(int from, int to) +{ + if (!gplaylist) return; + + cout << "NOT IMPLEMENTED! Track moved ==== " << from << " --> " << to << endl; +} + +static void _elm_volume_changed(void *data, Evas_Object *obj, void *event_info) +{ + ActivityPlayerObject *o = reinterpret_cast(data); + if (!o) return; + double val = elm_slider_value_get(obj); + + o->amplifierVolumeChanged(val); +} + +static void _elm_volume_start(void *data, Evas_Object *obj, void *event_info) +{ + ActivityPlayerObject *o = reinterpret_cast(data); + if (!o) return; + + o->amplifierVolumeStartChanged(); +} + +static void _elm_volume_stop(void *data, Evas_Object *obj, void *event_info) +{ + ActivityPlayerObject *o = reinterpret_cast(data); + if (!o) return; + + o->amplifierVolumeStopChanged(); +} + +static void _elm_avpopup_dissmissed(void *data, Evas_Object *obj, void *event_info) +{ + ActivityPlayerObject *o = reinterpret_cast(data); + if (!o) return; + + o->popupAVDismissed(); +} + +static void _amp_button_poweron(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + ActivityPlayerObject *o = reinterpret_cast(data); + if (!o) return; + + o->amplifierPowerOn(); +} + +static void _amp_button_poweroff(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + ActivityPlayerObject *o = reinterpret_cast(data); + if (!o) return; + + o->amplifierPowerOff(); +} + +void ActivityPlayerObject::amplifierClick_cb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + //Evas_Object *table = createPaddingTable(evas, parent, 420, 420); + Evas_Object *table = elm_table_add(parent); + evas_object_size_hint_min_set(table, 420, 420); + evas_object_show(table); + + Evas_Object *pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, 400, 10); + elm_table_pack(table, pad, 1, 0, 1, 1); + + pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, 400, 10); + elm_table_pack(table, pad, 1, 2, 1, 1); + + pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, 10, 400); + elm_table_pack(table, pad, 0, 1, 1, 1); + + pad = evas_object_rectangle_add(evas); + evas_object_size_hint_min_set(pad, 10, 400); + elm_table_pack(table, pad, 2, 1, 1, 1); + + amp_panel = elm_layout_add(table); + elm_layout_file_set(amp_panel, ApplicationMain::getTheme(), "calaos/audio/amplifier"); + evas_object_size_hint_fill_set(amp_panel, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(amp_panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(amp_panel); + + Evas_Object *glist = elm_genlist_add(parent); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + map inputs = player->getInputSources(); + map::iterator it = inputs.begin(); + + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, "Source d'entrée"); + header->Append(glist); + for (;it != inputs.end();it++) + { + int source_id = (*it).first; + int *user_data = new int(source_id); + GenlistItemSimple *item = new GenlistItemSimple(evas, glist, (*it).second, true, false, user_data, "check"); + item->Append(glist, header); + item->setAutoDeleteUserData(new DeletorT); + if (to_string(source_id) == player->getAmplifierStatus("input_source")) + item->setSelected(true); + + item->item_selected.connect(sigc::mem_fun(*this, &ActivityPlayerObject::inputSourceSelected)); + } + + elm_object_part_text_set(amp_panel, "title", player->getAmplifier()->params["name"].c_str()); + elm_object_part_text_set(amp_panel, "display.text", player->getAmplifier()->params["display_text"].c_str()); + elm_object_part_content_set(amp_panel, "inputs.swallow", glist); + + Evas_Object *volume = NULL; + if (edje_object_part_exists(elm_layout_edje_get(amp_panel), "volume.slider")) + { + volume = edje_object_part_external_object_get(elm_layout_edje_get(amp_panel), "volume.slider"); + + //double v; + //from_string(player->getAmplifierStatus("volume"), v); + + //elm_slider_value_set(volume, v / 100.0); + amp_volume = false; + EcoreTimer::singleShot(0.1, sigc::mem_fun(*this, &ActivityPlayerObject::amplifierChanged)); + + evas_object_smart_callback_add(volume, "slider,drag,start", _elm_volume_start, this); + evas_object_smart_callback_add(volume, "slider,drag,stop", _elm_volume_stop, this); + evas_object_smart_callback_add(volume, "changed", _elm_volume_changed, this); + } + + IOBase *amp = player->getAmplifier(); + amp->io_changed.connect(sigc::mem_fun(*this, &ActivityPlayerObject::amplifierChanged)); + + edje_object_signal_callback_add(elm_layout_edje_get(amp_panel), "pressed", "button.poweron", _amp_button_poweron, this); + edje_object_signal_callback_add(elm_layout_edje_get(amp_panel), "pressed", "button.poweroff", _amp_button_poweroff, this); + + elm_table_pack(table, amp_panel, 1, 1, 1, 1); + + Evas_Object *popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, table); + elm_object_style_set(popup, "calaos"); + + evas_object_smart_callback_add(popup, "dismissed", _elm_avpopup_dissmissed, this); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); +} + +void ActivityPlayerObject::amplifierVolumeChanged(double vol) +{ + if (!player) return; + IOBase *amp = player->getAmplifier(); + if (!amp) return; + + int v = vol * 100.0; + amp->sendAction("volume " + to_string(v)); +} + +void ActivityPlayerObject::popupAVDismissed() +{ + amp_panel = NULL; +} + +void ActivityPlayerObject::amplifierChanged() +{ + if (!player) return; + if (!amp_panel) return; + if (amp_volume) return; + + Evas_Object *volume = NULL; + if (edje_object_part_exists(elm_layout_edje_get(amp_panel), "volume.slider")) + { + volume = edje_object_part_external_object_get(elm_layout_edje_get(amp_panel), "volume.slider"); + + double v; + from_string(player->getAmplifierStatus("volume"), v); + elm_slider_value_set(volume, v / 100.0); + } + + elm_object_part_text_set(amp_panel, "display.text", player->getAmplifier()->params["display_text"].c_str()); +} + +void ActivityPlayerObject::inputSourceSelected(void *data) +{ + if (!player) return; + IOBase *amp = player->getAmplifier(); + if (!amp) return; + + int *user_data = reinterpret_cast(data); + + int input = *user_data; + amp->sendAction("source " + to_string(input)); +} + +void ActivityPlayerObject::amplifierVolumeStartChanged() +{ + amp_volume = true; +} + +void ActivityPlayerObject::amplifierVolumeStopChanged() +{ + amp_volume = false; +} + +void ActivityPlayerObject::amplifierPowerOn() +{ + if (!player) return; + IOBase *amp = player->getAmplifier(); + if (!amp) return; + + amp->sendAction("power true"); +} + +void ActivityPlayerObject::amplifierPowerOff() +{ + if (!player) return; + IOBase *amp = player->getAmplifier(); + if (!amp) return; + + amp->sendAction("power false"); +} diff --git a/src/bin/calaos_home/views/ActivityAudioPlayerObject.h b/src/bin/calaos_home/views/ActivityAudioPlayerObject.h new file mode 100644 index 00000000..6c1b7af7 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityAudioPlayerObject.h @@ -0,0 +1,118 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYAUDIOPLAYEROBJECT_H +#define ACTIVITYAUDIOPLAYEROBJECT_H + +#include + +#include "ActivityView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityPlayerObject +{ + private: + Evas *evas; + Evas_Object *parent; + + AudioPlayer *player; //the Audio player Object + Evas_Object *gplaylist; + Evas_Object *cover, *cover_small; + Evas_Object *items_parent; + EdjeObject *small_player; + + //AV Amplifier + Evas_Object *amp_panel; + bool amp_volume; + + string cover_fname; + + sigc::connection con_volume; + sigc::connection con_status; + sigc::connection con_track; + sigc::connection con_time; + sigc::connection con_pl_changed; + sigc::connection con_pl_tracksadded; + sigc::connection con_pl_trackdel; + sigc::connection con_pl_trackmoved; + + vector small_player_connections; + + void onVolumeChange(); + void onStatusChange(); + void onTrackChange(); + void onTimeChange(); + + void onPlaylistChanged(); + void onPlaylistTracksAdded(int count); + void onPlaylistTrackDeleted(int del_item); + void onPlaylistTrackMoved(int from, int to); + + void changeVolume_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void changeTime_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void changeVolumeSmall_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void changeTimeSmall_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void play_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void pause_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void stop_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void previous_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void next_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void on_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void off_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void amplifierClick_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void selectDetail_cb(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void coverGet_cb(Params &infos); + void coverDownload_cb(string status, void *data); + + void amplifierChanged(); + void inputSourceSelected(void *data); + + public: + EdjeObject *object; //The elementary video object + + ActivityPlayerObject(Evas *e, Evas_Object *parent); + ~ActivityPlayerObject(); + + void createEdjeObject(string &theme, Evas *evas); + void resetPlayer(); + + void setPlayer(AudioPlayer *p); + void unsetPlayer(); + AudioPlayer *getPlayer() { return player; } + + void handlePlaylist(Evas_Object *parent, Evas_Object *playlist, EdjeObject *small_player); + void unsetPlaylist(); + + void amplifierVolumeStartChanged(); + void amplifierVolumeStopChanged(); + void amplifierVolumeChanged(double vol); + void popupAVDismissed(); + void amplifierPowerOn(); + void amplifierPowerOff(); + + sigc::signal player_selected; +}; + +#endif // ACTIVITYAUDIOPLAYEROBJECT_H diff --git a/src/bin/calaos_home/views/ActivityCameraListView.cpp b/src/bin/calaos_home/views/ActivityCameraListView.cpp new file mode 100644 index 00000000..40323f8a --- /dev/null +++ b/src/bin/calaos_home/views/ActivityCameraListView.cpp @@ -0,0 +1,198 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityCameraListView.h" + +ActivityCameraListView::ActivityCameraListView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/media/camera_list") +{ + ActivityCameraObject ac; + cameras.reserve(4); + for (int i = 0;i < 4;i++) + cameras.push_back(ac); + + addCallback("camera", "*", sigc::mem_fun(*this, &ActivityCameraListView::EdjeCallback)); + + page_view = new PagingView(evas, parent); + Swallow(page_view, "home.pager"); + + page_view->drag_start.connect(sigc::mem_fun(*this, &ActivityCameraListView::pagerDragStart)); + page_view->drag_stop.connect(sigc::mem_fun(*this, &ActivityCameraListView::pagerDragStop)); +} + +ActivityCameraListView::~ActivityCameraListView() +{ + for (int i = 0;i < 4;i++) + DELETE_NULL_FUNC(evas_object_del, cameras[i].video); + + for_each(scenarios.begin(), scenarios.end(), Delete()); + DELETE_NULL(page_view); +} + +void ActivityCameraListView::resetView() +{ +} + +static void _smart_cam_cb(void *data, Evas_Object *obj, void *event_info) +{ + ActivityCameraObject *ac = reinterpret_cast(data); + if (!ac) return; + + ac->view->EmitSignal("show,picture," + to_string(ac->position + 1), "calaos"); + evas_object_smart_callback_del(obj, "frame_decode", _smart_cam_cb); +} + +static void _smart_cam_stop_cb(void *data, Evas_Object *obj, void *event_info) +{ + ActivityCameraObject *ac = reinterpret_cast(data); + if (!ac) return; + + //Restart the playing of stream if it stops + elm_video_play(ac->video); +} + +void ActivityCameraListView::setCamera(Camera *camera, int position) +{ + if (cameras[position].video) + evas_object_del(cameras[position].video); + + Evas_Object *video = elm_video_add(parent); + + Swallow(video, "camera.swallow." + to_string(position + 1)); + elm_video_file_set(video, camera->params["mjpeg_url"].c_str()); + elm_video_play(video); + evas_object_show(video); + + setPartText("camera.title." + to_string(position + 1), camera->params["name"]); + + cameras[position].video = video; + cameras[position].camera = camera; + cameras[position].view = this; //For the C callback + cameras[position].position = position; //For the C callback + + evas_object_smart_callback_add(elm_video_emotion_get(video), "frame_decode", _smart_cam_cb, &cameras[position]); + evas_object_smart_callback_add(elm_video_emotion_get(video), "decode_stop", _smart_cam_stop_cb, &cameras[position]); + evas_object_smart_callback_add(elm_video_emotion_get(video), "playback_finished", _smart_cam_stop_cb, &cameras[position]); +} + +void ActivityCameraListView::disableCamera(int position) +{ + setPartText("camera.title." + to_string(position + 1), "Aucune caméra"); + EmitSignal("hide,picture," + to_string(position + 1), "calaos"); + + if (cameras[position].video) + evas_object_del(cameras[position].video); + + ActivityCameraObject ac; + cameras[position] = ac; +} + +void ActivityCameraListView::EnableLeftButton() +{ + EmitSignal("enable,left", "calaos"); +} + +void ActivityCameraListView::DisableLeftButton() +{ + EmitSignal("disable,left", "calaos"); +} + +void ActivityCameraListView::EnableRightButton() +{ + EmitSignal("enable,right", "calaos"); +} + +void ActivityCameraListView::DisableRightButton() +{ + EmitSignal("disable,right", "calaos"); +} + +void ActivityCameraListView::ShowLoading() +{ + EmitSignal("show,loading", "calaos"); +} + +void ActivityCameraListView::HideLoading() +{ + EmitSignal("hide,loading", "calaos"); +} + +void ActivityCameraListView::EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (emission == "page,right") + { + button_right_click.emit(); + } + else if (emission == "page,left") + { + button_left_click.emit(); + } +} + +void ActivityCameraListView::addScenarioPage(list &scenarios_io) +{ + EdjeObject *container = new EdjeObject(theme, evas); + container->LoadEdje("calaos/page/home/scenario"); + container->setAutoDelete(true); + + list::iterator it = scenarios_io.begin(); + for (int i = 0;it != scenarios_io.end() && i < 6;it++, i++) + { + IOView *ioView = IOViewFactory::CreateIOView(evas, getEvasObject(), IOView::IO_SCENARIO_HOME); + ioView->setIO(*it); + ioView->Show(); + ioView->initView(); + + scenarios.push_back(ioView); + + string _t = "element." + to_string(i + 1); + container->Swallow(ioView, _t); + } + + page_view->addPage(container->getEvasObject()); +} + +void ActivityCameraListView::EnableView() +{ + for (unsigned int i = 0;i < cameras.size();i++) + { + if (cameras[i].video) + elm_video_play(cameras[i].video); + } +} + +void ActivityCameraListView::DisableView() +{ + for (unsigned int i = 0;i < cameras.size();i++) + { + if (cameras[i].video) + elm_video_pause(cameras[i].video); + } +} + +void ActivityCameraListView::pagerDragStart() +{ + EmitSignal("show,edge", "calaos"); +} + +void ActivityCameraListView::pagerDragStop() +{ + EmitSignal("hide,edge", "calaos"); +} diff --git a/src/bin/calaos_home/views/ActivityCameraListView.h b/src/bin/calaos_home/views/ActivityCameraListView.h new file mode 100644 index 00000000..a63d0f2b --- /dev/null +++ b/src/bin/calaos_home/views/ActivityCameraListView.h @@ -0,0 +1,91 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCAMERALISTVIEW_H +#define ACTIVITYCAMERALISTVIEW_H + +#include + +#include "CalaosModel.h" +#include "ActivityView.h" +#include "IOView.h" + +#include + +using namespace Utils; + +class ActivityCameraListView; +class ActivityCameraObject +{ + public: + Camera *camera; //the Camera Object + Evas_Object *video; //The elementary video object + ActivityCameraListView *view; //the view + int position; //position in view + + ActivityCameraObject(): + camera(NULL), + video(NULL), + view(NULL) + { } +}; + +class ActivityCameraListView: public ActivityView +{ + private: + vector cameras; + + vector scenarios; + PagingView *page_view; + + void EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void pagerDragStart(); + void pagerDragStop(); + + public: + ActivityCameraListView(Evas *evas, Evas_Object *parent); + ~ActivityCameraListView(); + + virtual void resetView(); + + void setCamera(Camera *camera, int position); + void disableCamera(int position); + + void EnableLeftButton(); + void DisableLeftButton(); + void EnableRightButton(); + void DisableRightButton(); + + void ShowLoading(); + void HideLoading(); + + void addScenarioPage(list &scenarios_io); + + virtual string getTitle() { return "Vidéosurveillance"; } + + virtual void EnableView(); + virtual void DisableView(); + + sigc::signal button_left_click; + sigc::signal button_right_click; +}; + +#endif // ACTIVITYCAMERALISTVIEW_H diff --git a/src/bin/calaos_home/views/ActivityCameraSelectView.cpp b/src/bin/calaos_home/views/ActivityCameraSelectView.cpp new file mode 100644 index 00000000..5ab91978 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityCameraSelectView.cpp @@ -0,0 +1,267 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityCameraSelectView.h" +#include "GenlistItems/GenlistItemSimple.h" +#include "GenlistItems/GenlistItemSimpleHeader.h" + +ActivityCameraSelectView::ActivityCameraSelectView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/media/camera_select"), + camera_video(NULL), + camera(NULL) +{ + addCallback("camera", "*", sigc::mem_fun(*this, &ActivityCameraSelectView::EdjeCallback)); + + list_item = elm_genlist_add(parent); + Swallow(list_item, "list.swallow"); + elm_object_style_set(list_item, "calaos"); + elm_genlist_select_mode_set(list_item, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_show(list_item); + + addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityCameraSelectView::ButtonCallback)); +} + +ActivityCameraSelectView::~ActivityCameraSelectView() +{ + elm_genlist_clear(list_item); + + DELETE_NULL_FUNC(evas_object_del, camera_video); + DELETE_NULL_FUNC(evas_object_del, list_item); +} + +void ActivityCameraSelectView::resetView() +{ +} + +string ActivityCameraSelectView::getTitle() +{ + return string("Caméra: ") + camera->params["name"]; +} + +void ActivityCameraSelectView::ShowLoading() +{ + EmitSignal("show,loading", "calaos"); +} + +void ActivityCameraSelectView::HideLoading() +{ + EmitSignal("hide,loading", "calaos"); +} + +void ActivityCameraSelectView::EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + +} + +static void _smart_cam_cb(void *data, Evas_Object *obj, void *event_info) +{ + ActivityCameraSelectView *view = reinterpret_cast(data); + if (!view) return; + + view->EmitSignal("show,picture", "calaos"); + evas_object_smart_callback_del(obj, "frame_decode", _smart_cam_cb); +} + +static void _smart_cam_stop_cb(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *v = reinterpret_cast(data); + if (!v) return; + + //Restart the playing of stream if it stops + elm_video_play(v); +} + +void ActivityCameraSelectView::setCamera(Camera *cam) +{ + if (!cam) return; + camera = cam; + + if (camera_video) + evas_object_del(camera_video); + + camera_video = elm_video_add(parent); + + Swallow(camera_video, "camera.swallow"); + elm_video_file_set(camera_video, camera->params["mjpeg_url"].c_str()); + elm_video_play(camera_video); + evas_object_show(camera_video); + + evas_object_smart_callback_add(elm_video_emotion_get(camera_video), "frame_decode", _smart_cam_cb, this); + evas_object_smart_callback_add(elm_video_emotion_get(camera_video), "decode_stop", _smart_cam_stop_cb, camera_video); + evas_object_smart_callback_add(elm_video_emotion_get(camera_video), "playback_finished", _smart_cam_stop_cb, camera_video); + + if (camera->params["ptz"] == "true") + EmitSignal("ptz,true", "calaos"); + else + EmitSignal("ptz,false", "calaos"); + + if (camera->params["zoom"] == "true") + EmitSignal("zoom,true", "calaos"); + else + EmitSignal("zoom,false", "calaos"); + + Room *room = cam->getRoom(); + elm_genlist_clear(list_item); + + if (!room) return; + + setPartText("room_title.text", room->name); + + list::iterator it = room->visible_ios.begin(); + for (;it != room->visible_ios.end();it++) + { + IOViewFactory::CreateIOBaseElement(evas, list_item, *it, list_item, "left"/*, group_item*/); + } + + elm_genlist_realized_items_update(list_item); +} + +void ActivityCameraSelectView::ButtonCallback(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (source == "button.position.save") + { + buttonSavePositionClick(); + } + else if (source == "button.ptz.left") + { + camera->MoveLeft(); + } + else if (source == "button.ptz.right") + { + camera->MoveRight(); + } + else if (source == "button.ptz.up") + { + camera->MoveUp(); + } + else if (source == "button.ptz.down") + { + camera->MoveDown(); + } + else if (source == "button.ptz.center") + { + camera->MoveCenter(); + } + else if (source == "button.position.1") + { + camera->Recall(1); + } + else if (source == "button.position.2") + { + camera->Recall(2); + } + else if (source == "button.position.3") + { + camera->Recall(3); + } + else if (source == "button.position.4") + { + camera->Recall(4); + } + else if (source == "button.position.5") + { + camera->Recall(5); + } + else if (source == "button.position.6") + { + camera->Recall(6); + } + else if (source == "button.position.7") + { + camera->Recall(7); + } + else if (source == "button.position.8") + { + camera->Recall(8); + } + else if (source == "button.ptz.zoom_in") + { + camera->ZoomIn(); + } + else if (source == "button.ptz.zoom_out") + { + camera->ZoomOut(); + } +} + +void ActivityCameraSelectView::buttonSavePositionClick() +{ + Evas_Object *table = createPaddingTable(evas, parent, 260, 200); + + pager_position = elm_naviframe_add(parent); + evas_object_show(pager_position); + + Evas_Object *glist = elm_genlist_add(parent); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, "Sauver la position actuelle
      Sélectionnez une position."); + header->Append(glist); + for (int i = 0;i < 8;i++) + { + string label = "Position " + to_string(i + 1); + int *user_data = new int(i + 1); + GenlistItemSimple *item = new GenlistItemSimple(evas, glist, label, true, false, user_data); + item->Append(glist, header); + item->setAutoDeleteUserData(new DeletorT); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityCameraSelectView::positionSelected)); + } + + elm_genlist_realized_items_update(glist); + + elm_table_pack(table, glist, 1, 1, 1, 1); + + popup_position = elm_ctxpopup_add(parent); + elm_object_content_set(popup_position, pager_position); + elm_object_style_set(popup_position, "calaos"); + evas_object_size_hint_min_set(popup_position, 300, 240); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup_position, x, y); + evas_object_show(popup_position); + + elm_naviframe_item_push(pager_position, NULL, NULL, NULL, table, "calaos"); +} + +void ActivityCameraSelectView::positionSelected(void *data) +{ + int *user_data = reinterpret_cast(data); + int position = *user_data; + string text = "
      Sauvegarde à la position #" + to_string(position) + "
      "; + + camera->Save(position); + + EdjeObject *page = new EdjeObject(theme, evas); + page->LoadEdje("calaos/page/media/camera_select/position_save"); + page->setAutoDelete(true); + page->setPartText("text", text); + + elm_naviframe_item_push(pager_position, NULL, NULL, NULL, page->getEvasObject(), "calaos"); + EcoreTimer::singleShot(2.0, sigc::mem_fun(*this, &ActivityCameraSelectView::positionSaved)); +} + +void ActivityCameraSelectView::positionSaved() +{ + evas_object_hide(popup_position); +} diff --git a/src/bin/calaos_home/views/ActivityCameraSelectView.h b/src/bin/calaos_home/views/ActivityCameraSelectView.h new file mode 100644 index 00000000..038c36d0 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityCameraSelectView.h @@ -0,0 +1,64 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCAMERASELECTVIEW_H +#define ACTIVITYCAMERASELECTVIEW_H + +#include + +#include "CalaosModel.h" +#include "ActivityView.h" +#include "IOView.h" + +using namespace Utils; + +class ActivityCameraSelectView: public ActivityView +{ + private: + Evas_Object *camera_video; + Camera *camera; + + Evas_Object *list_item; + + Evas_Object *pager_position; + Evas_Object *popup_position; + + void EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + void ButtonCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void buttonSavePositionClick(); + void positionSelected(void *data); + void positionSaved(); + + public: + ActivityCameraSelectView(Evas *evas, Evas_Object *parent); + ~ActivityCameraSelectView(); + + virtual void resetView(); + + void ShowLoading(); + void HideLoading(); + + virtual string getTitle(); + + void setCamera(Camera *camera); +}; + +#endif // ACTIVITYCAMERASELECTVIEW_H diff --git a/src/bin/calaos_home/views/ActivityConfigView.cpp b/src/bin/calaos_home/views/ActivityConfigView.cpp new file mode 100644 index 00000000..28f0258c --- /dev/null +++ b/src/bin/calaos_home/views/ActivityConfigView.cpp @@ -0,0 +1,35 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityConfigView.h" + +ActivityConfigView::ActivityConfigView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/config") +{ + setPartText("header.label", "Centre de configuration"); +} + +ActivityConfigView::~ActivityConfigView() +{ +} + +void ActivityConfigView::resetView() +{ +} diff --git a/src/bin/calaos_home/views/ActivityConfigView.h b/src/bin/calaos_home/views/ActivityConfigView.h new file mode 100644 index 00000000..6fb8d3e1 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityConfigView.h @@ -0,0 +1,39 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYCONFIGVIEW_H +#define ACTIVITYCONFIGVIEW_H + +#include + +#include "ActivityView.h" + +using namespace Utils; + +class ActivityConfigView: public ActivityView +{ + public: + ActivityConfigView(Evas *evas, Evas_Object *parent); + ~ActivityConfigView(); + + virtual void resetView(); +}; + +#endif // ACTIVITYCONFIGVIEW_H diff --git a/src/bin/calaos_home/views/ActivityEditScenarioView.cpp b/src/bin/calaos_home/views/ActivityEditScenarioView.cpp new file mode 100644 index 00000000..cce4470b --- /dev/null +++ b/src/bin/calaos_home/views/ActivityEditScenarioView.cpp @@ -0,0 +1,691 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityEditScenarioView.h" +#include "ApplicationMain.h" +#include "IOGenlistRoomGroup.h" +#include "GenlistItemSimple.h" +#include "GenlistItemSimpleHeader.h" +#include "GenlistItemScenarioAction.h" + +ActivityEditScenarioView::ActivityEditScenarioView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/edit_scenario"), + pager_step(NULL), + pageName(NULL), + pageActions(NULL), + current_wizstep(1), + home_list(NULL), + actions_list(NULL), + current_step(0) +{ + setPartText("header.label", "Mon nouveau scénario"); + + addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::buttonPressed)); + + pager_step = elm_naviframe_add(parent); + evas_object_show(pager_step); + Swallow(pager_step, "step.content"); +} + +ActivityEditScenarioView::~ActivityEditScenarioView() +{ + DELETE_NULL_FUNC(evas_object_del, pager_step); +} + +void ActivityEditScenarioView::resetView() +{ +} + +void ActivityEditScenarioView::setScenarioData(ScenarioData &data) +{ + scenario_data = data; + + cout << "SCENARIO is empty? :" << scenario_data.toString() << endl; + + if (scenario_data.empty) + scenario_data.name = "Mon Nouveau Scénario"; + + if (scenario_data.steps.size() == 0) + { + //If empty, create at least one default step + ScenarioStep s; + scenario_data.steps.push_back(s); + } + + showStep(current_wizstep); + + EmitSignal("set,step1", "calaos"); +} + +void ActivityEditScenarioView::showStep(int step) +{ + if (step == 1) + { + if (!pageName) + { + pageName = new EdjeObject(ApplicationMain::getTheme(), evas); + pageName->LoadEdje("calaos/scenario/step_1"); + pageName->Show(); + pageName->setAutoDelete(true); + pageName->object_deleted.connect(sigc::mem_fun(*this, &ActivityEditScenarioView::pageNameDeleted)); + pageName->addCallback("button.name", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::pageNameEditName)); + pageName->addCallback("button.*selected", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::pageNameVisiblePressed)); + pageName->setPartText("name.text", "Nom du scénario: " + scenario_data.name + ""); + updateVisibility(); + } + elm_naviframe_item_push(pager_step, NULL, NULL, NULL, pageName->getEvasObject(), "calaos"); + } + else if (step == 2) + { + if (!pageActions) + { + pageActions = new EdjeObject(ApplicationMain::getTheme(), evas); + pageActions->LoadEdje("calaos/scenario/step_2"); + pageActions->Show(); + pageActions->setAutoDelete(true); + pageActions->object_deleted.connect(sigc::mem_fun(*this, &ActivityEditScenarioView::pageActionsDeleted)); + pageActions->addCallback("button.step", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::buttonStepPressed)); + pageActions->addCallback("button.step.add", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::buttonStepAddPressed)); + pageActions->addCallback("button.step.delete", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::buttonStepDelPressed)); + pageActions->addCallback("button.*selected", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::pageActionsCyclePressed)); + updateCycling(); + + //Load page Actions and items + loadPageActions(); + } + elm_naviframe_item_push(pager_step, NULL, NULL, NULL, pageActions->getEvasObject(), "calaos"); + } +} + +void ActivityEditScenarioView::updateVisibility() +{ + if (scenario_data.visible) + { + pageName->EmitSignal("visible.select", "calaos"); + string r = "??"; + if (scenario_data.room) r = scenario_data.room->name; + pageName->setPartText("visible.text", "Afficher dans l'interface: Activé dans \"" + r + "\""); + } + else + { + pageName->EmitSignal("visible.unselect", "calaos"); + pageName->setPartText("visible.text", "Afficher dans l'interface: Ne pas afficher."); + } +} + +void ActivityEditScenarioView::updateCycling() +{ + if (scenario_data.params["cycle"] == "true") + { + pageActions->EmitSignal("cycle.select", "calaos"); + pageActions->setPartText("cycle.text", "Execution en boucle: Activé"); + } + else + { + pageActions->EmitSignal("cycle.unselect", "calaos"); + pageActions->setPartText("cycle.text", "Execution en boucle: Désactivé"); + } +} + +void ActivityEditScenarioView::pageNameEditName(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (!pageName) return; + + ApplicationMain::Instance().ShowKeyboard("Saisir le nom du scénario", + sigc::mem_fun(*this, &ActivityEditScenarioView::pageNameEditName_cb), + false, + scenario_data.name); +} + +void ActivityEditScenarioView::pageNameEditName_cb(string text) +{ + scenario_data.name = text; + if (pageName) + pageName->setPartText("name.text", "Nom du scénario: " + scenario_data.name + ""); +} + +void ActivityEditScenarioView::pageNameVisiblePressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + Evas_Object *table = createPaddingTable(evas, parent, 280, 255); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Visibilité du scénario
      Choisissez une pièce."; + GenlistItemSimpleHeader *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *item; + + item = new GenlistItemSimple(evas, parent, "Ne pas afficher", true, false, NULL, "check"); + item->Append(glist); + if (!scenario_data.room) + item->setSelected(true); + item->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::itemRoomSelected), (Room *)NULL)); + + list::iterator it = CalaosModel::Instance().getHome()->rooms.begin(); + for (;it != CalaosModel::Instance().getHome()->rooms.end();it++) + { + Room *room = *it; + item = new GenlistItemSimple(evas, parent, room->name, true, false, NULL, "check"); + item->Append(glist); + if (scenario_data.room == room) + item->setSelected(true); + else + item->setSelected(false); + item->setIcon("calaos/icons/genlist/room"); + item->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::itemRoomSelected), room)); + } + + elm_table_pack(table, glist, 1, 1, 1, 1); + + popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, table); + elm_object_style_set(popup, "calaos"); + elm_ctxpopup_direction_priority_set(popup, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_RIGHT, + ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_DOWN); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); +} + +void ActivityEditScenarioView::itemRoomSelected(void *data, Room *room) +{ + scenario_data.room = room; + if (!room) + scenario_data.visible = false; + else + scenario_data.visible = true; + + updateVisibility(); + + elm_ctxpopup_dismiss(popup); +} + +void ActivityEditScenarioView::pageNameDeleted() +{ + pageName = NULL; +} + +void ActivityEditScenarioView::pageActionsDeleted() +{ + pageActions = NULL; + DELETE_NULL_FUNC(evas_object_del, home_list); + DELETE_NULL_FUNC(evas_object_del, actions_list); +} + +void ActivityEditScenarioView::pageActionsCyclePressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (scenario_data.params["cycle"] == "true") + scenario_data.params.Add("cycle", "false"); + else + scenario_data.params.Add("cycle", "true"); + updateCycling(); +} + +void ActivityEditScenarioView::buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (source == "button.next") + { + if (current_wizstep >= 2) return; + + current_wizstep++; + + string _t = "set,step" + to_string(current_wizstep); + EmitSignal(_t, "calaos"); + + showStep(current_wizstep); + + buttonNextPressed.emit(); + } + else if (source == "button.previous") + { + if (current_wizstep <= 1) return; + + current_wizstep--; + + string _t = "set,step" + to_string(current_wizstep); + EmitSignal(_t, "calaos"); + + elm_naviframe_item_pop(pager_step); + + buttonPreviousPressed.emit(); + } + else if (source == "button.cancel") + { + buttonCancelPressed.emit(); + } + else if (source == "button.valid") + { + buttonValidPressed.emit(); + } +} + +void ActivityEditScenarioView::loadPageActions() +{ + //Create genlists + home_list = elm_genlist_add(parent); + pageActions->Swallow(home_list, "home.list"); + elm_genlist_homogeneous_set(home_list, true); + elm_object_style_set(home_list, "calaos"); + evas_object_show(home_list); + + actions_list = elm_genlist_add(parent); + pageActions->Swallow(actions_list, "actions.list"); + elm_object_style_set(actions_list, "calaos"); + evas_object_show(actions_list); + + list::iterator it = CalaosModel::Instance().getHome()->rooms.begin(); + for (;it != CalaosModel::Instance().getHome()->rooms.end();it++) + { + Room *r = *it; + IOGenlistRoomGroupIcon *room = new IOGenlistRoomGroupIcon(evas, home_list, r, ""); + room->Append(home_list); + + list::iterator itio = r->scenario_ios.begin(); + for (;itio != r->scenario_ios.end();itio++) + { + IOBase *io = *itio; + + GenlistItemSimple *item = new GenlistItemSimple(evas, home_list, io->params["name"], false); + item->Append(home_list); + item->setIcon(io->getIconForIO()); + item->setButtonIcon("calaos/icons/action_button/more"); + item->button_pressed.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::actionAddPressed), io)); + } + } + + loadActionsStep(); +} + +void ActivityEditScenarioView::actionAddPressed(IOBase *io) +{ + map::iterator it; + it = room_table.find(io->getRoom()); + + ScenarioAction sa; + IOActionList ac = io->getActionFromState(); + sa.io = io; + sa.action = ac.getComputedAction(io); + + if (current_step == ScenarioData::END_STEP) + scenario_data.step_end.actions.push_back(sa); + else + scenario_data.steps[current_step].actions.push_back(sa); + + GenlistItemScenarioAction *item = new GenlistItemScenarioAction(evas, parent, + scenario_data, + current_step, + (current_step == ScenarioData::END_STEP)? + scenario_data.step_end.actions.size() - 1: + scenario_data.steps[current_step].actions.size() - 1); + item->setAction(ac); + item->delete_action.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::actionDelete), + (current_step == ScenarioData::END_STEP)? + scenario_data.step_end.actions.size() - 1: + scenario_data.steps[current_step].actions.size() - 1, + io->getRoom())); //click on "delete this action" + + if (it == room_table.end()) + { + IOGenlistRoomGroupIcon *groom = new IOGenlistRoomGroupIcon(evas, actions_list, io->getRoom(), ""); + groom->Append(actions_list); + + item->Append(actions_list); + room_table[io->getRoom()] = dynamic_cast(item); + } + else + { + item->InsertAfter(actions_list, it->second); + room_table[io->getRoom()] = dynamic_cast(item); + } + + item->BringInItem(ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); +} + +bool ScRoomCompare(const ScenarioAction lhs, const ScenarioAction rhs) +{ + return ((ScenarioAction)lhs).io->getRoom()->name > ((ScenarioAction)rhs).io->getRoom()->name && + ((ScenarioAction)lhs).io->getRoom()->type > ((ScenarioAction)rhs).io->getRoom()->type; +} + +void ActivityEditScenarioView::loadActionsStep() +{ + if (current_step != ScenarioData::END_STEP) + { + if (current_step >= (int)scenario_data.steps.size()) + current_step = (int)scenario_data.steps.size() - 1; + if (current_step < 0) + current_step = 0; + } + + room_table.clear(); + elm_genlist_clear(actions_list); + + if (edje_object_part_exists(pageActions->getEvasObject(), "button.step")) + { + Evas_Object *button = edje_object_part_external_object_get(pageActions->getEvasObject(), "button.step"); + string _t = (current_step == ScenarioData::END_STEP)? "Etape de fin":"Etape " + to_string(current_step + 1); + elm_object_text_set(button, _t.c_str()); + } + + ScenarioStep &step = (current_step == ScenarioData::END_STEP)? scenario_data.step_end:scenario_data.steps[current_step]; + std::sort(step.actions.begin(), step.actions.end(), ScRoomCompare); + + Room *r = NULL; + IOGenlistRoomGroupIcon *groom = NULL; + GenlistItemBase *base = NULL; + + for (uint i = 0;i < step.actions.size();i++) + { + ScenarioAction &sa = step.actions[i]; + IOBase *io = sa.io; + + if (r != io->getRoom()) + { + r = io->getRoom(); + groom = new IOGenlistRoomGroupIcon(evas, actions_list, r, ""); + groom->Append(actions_list); + } + + GenlistItemScenarioAction *item = new GenlistItemScenarioAction(evas, parent, scenario_data, current_step, i); + IOActionList ac = io->getActionListFromAction(sa.action); + item->setAction(ac); + item->Append(actions_list); + item->delete_action.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::actionDelete), i, r)); //click on "delete this action" + base = dynamic_cast(item); + room_table[r] = base; + } +} + +void ActivityEditScenarioView::actionDelete(GenlistItemScenarioAction *item, void *data, int it, Room *room) +{ + ScenarioStep &step = (current_step == ScenarioData::END_STEP)? scenario_data.step_end:scenario_data.steps[current_step]; + step.actions.erase(step.actions.begin() + it); + + GenlistItemBase *prev = item->getPreviousItem(); + GenlistItemBase *next = item->getNextItem(); + + IOGenlistRoomGroupIcon *rprev = dynamic_cast(prev); + IOGenlistRoomGroupIcon *rnext = dynamic_cast(next); + GenlistItemScenarioAction *aprev = dynamic_cast(prev); + + if ((rprev && rnext) || //previous and next item are room header, so there is no more item in this room + (rprev && !next)) + { + rprev->RemoveItem(); + //delete room cache + room_table.erase(rprev->getRoom()); + } + if (aprev && rnext) //previous is an action and next is a room, change cache to the previous item + { + room_table[room] = aprev; + } + item->RemoveItem(); +} + +void ActivityEditScenarioView::buttonStepPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + Evas_Object *table = createPaddingTable(evas, parent, 300, 260); + + pager_step_popup = elm_naviframe_add(parent); + evas_object_show(pager_step_popup); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Etapes du scénarios
      Déroulement de votre scénario"; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *item_show = NULL; + for (uint i = 0;i < scenario_data.steps.size();i++) + { + ScenarioStep &step = scenario_data.steps[i]; + + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, "Etape " + to_string(i + 1), true, false, NULL, "check"); + item->Append(glist, header); + if ((int)i == current_step) + { + item->setSelected(true); + item_show = item; + } + item->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::stepSelect), i)); + + string _t = "Pause: " + time2string(step.pause / 1000, step.pause % 1000); + GenlistItemSimple *item_pause = new GenlistItemSimple(evas, parent, _t, true, false, NULL, "disclosure"); + item_pause->Append(glist, header); + item_pause->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::stepPauseChange), i, item_pause)); + } + + GenlistItemSimple *item_end = new GenlistItemSimple(evas, parent, "Etape de fin", true, false, NULL, "check"); + item_end->Append(glist, header); + if (current_step == ScenarioData::END_STEP) + { + item_end->setSelected(true); + item_show = item_end; + } + item_end->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::stepSelect), ScenarioData::END_STEP)); + + elm_table_pack(table, glist, 1, 1, 1, 1); + + step_popup = elm_ctxpopup_add(parent); + elm_object_content_set(step_popup, pager_step_popup); + elm_object_style_set(step_popup, "calaos"); + elm_ctxpopup_direction_priority_set(step_popup, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_RIGHT); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(step_popup, x, y); + evas_object_show(step_popup); + + elm_naviframe_item_push(pager_step_popup, NULL, NULL, NULL, table, "calaos"); + + if (item_show) + item_show->BringInItem(ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); +} + +void ActivityEditScenarioView::stepSelect(void *data, int step) +{ + current_step = step; + loadActionsStep(); + elm_ctxpopup_dismiss(step_popup); +} + +void ActivityEditScenarioView::stepPauseChange(void *data, int step, GenlistItemSimple *item) +{ + EdjeObject *page = new EdjeObject(ApplicationMain::getTheme(), evas); + page->LoadEdje("calaos/popup/page/time"); + page->setAutoDelete(true); + page->addCallback("button.back", "pressed", sigc::mem_fun(*this, &ActivityEditScenarioView::buttonPauseBackClick)); + page->addCallback("button.valid", "pressed", sigc::bind(sigc::mem_fun(*this, &ActivityEditScenarioView::buttonPauseValidTimeClick), step, item)); + string t = "Choisir une durée
      Temps de pause avant la prochaine étape"; + page->setPartText("text", t); + + if (edje_object_part_exists(page->getEvasObject(), "button.back")) + { + Evas_Object *button = edje_object_part_external_object_get(page->getEvasObject(), "button.back"); + elm_object_text_set(button, "Etapes"); + } + + long pause = scenario_data.steps[step].pause; + + double sec = (double)pause / 1000.0; + long ms = pause % 1000; + int hours = (int)(sec / 3600.0); + sec -= hours * 3600; + int min = (int)(sec / 60.0); + sec -= min * 60; + + spin_hours = elm_spinner_add(parent); + elm_object_style_set(spin_hours, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_hours, "%.0f
      Heures"); + elm_spinner_min_max_set(spin_hours, 0, 99); + elm_spinner_step_set(spin_hours, 1); + elm_spinner_interval_set(spin_hours, 0.15); + elm_spinner_value_set(spin_hours, hours); + evas_object_show(spin_hours); + page->Swallow(spin_hours, "spinner.hours", true); + + spin_min = elm_spinner_add(parent); + elm_object_style_set(spin_min, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_min, "%.0f
      Min."); + elm_spinner_min_max_set(spin_min, 0, 59); + elm_spinner_step_set(spin_min, 1); + elm_spinner_interval_set(spin_min, 0.15); + elm_spinner_value_set(spin_min, min); + evas_object_show(spin_min); + page->Swallow(spin_min, "spinner.minutes", true); + + spin_sec = elm_spinner_add(parent); + elm_object_style_set(spin_sec, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_sec, "%.0f
      Sec."); + elm_spinner_min_max_set(spin_sec, 0, 59); + elm_spinner_step_set(spin_sec, 1); + elm_spinner_interval_set(spin_sec, 0.15); + elm_spinner_value_set(spin_sec, sec); + evas_object_show(spin_sec); + page->Swallow(spin_sec, "spinner.seconds", true); + + spin_ms = elm_spinner_add(parent); + elm_object_style_set(spin_ms, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_ms, "%.0f
      Ms."); + elm_spinner_min_max_set(spin_ms, 0, 999); + elm_spinner_step_set(spin_ms, 1); + elm_spinner_interval_set(spin_ms, 0.15); + elm_spinner_value_set(spin_ms, ms); + evas_object_show(spin_ms); + page->Swallow(spin_ms, "spinner.miliseconds", true); + + elm_naviframe_item_push(pager_step_popup, NULL, NULL, NULL, page->getEvasObject(), "calaos"); +} + +void ActivityEditScenarioView::buttonPauseBackClick(void *data, Evas_Object *edje_object, string emission, string source) +{ + elm_naviframe_item_pop(pager_step_popup); +} + +void ActivityEditScenarioView::buttonPauseValidTimeClick(void *data, Evas_Object *edje_object, string emission, string source, int step, GenlistItemSimple *item) +{ + scenario_data.steps[step].pause = elm_spinner_value_get(spin_hours) * 60.0 * 60.0 * 1000.0 + + elm_spinner_value_get(spin_min) * 60.0 * 1000.0 + + elm_spinner_value_get(spin_sec) * 1000.0 + + elm_spinner_value_get(spin_ms); + + string _t = "Pause: " + time2string(scenario_data.steps[step].pause / 1000, scenario_data.steps[step].pause % 1000); + item->setLabelText(_t); + elm_naviframe_item_pop(pager_step_popup); +} + +void ActivityEditScenarioView::buttonStepAddPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + ScenarioStep step; + scenario_data.steps.push_back(step); + + current_step = scenario_data.steps.size() - 1; + loadActionsStep(); +} + +void ActivityEditScenarioView::buttonStepDelPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + Evas_Object *table = createPaddingTable(evas, parent, 300, 130); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Confirmation
      Êtes-vous sûr de vouloir supprimer cette étape?"; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, "Oui, supprimer l'étape", true); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityEditScenarioView::deleteStepValid)); + + item = new GenlistItemSimple(evas, parent, "Non", true); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &ActivityEditScenarioView::deleteStepCancel)); + + elm_table_pack(table, glist, 1, 1, 1, 1); + + popup_del = elm_ctxpopup_add(parent); + elm_object_content_set(popup_del, table); + elm_object_style_set(popup_del, "calaos"); + elm_ctxpopup_direction_priority_set(popup_del, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_RIGHT); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup_del, x, y); + evas_object_show(popup_del); +} + +void ActivityEditScenarioView::deleteStepValid(void *data) +{ + if (current_step == ScenarioData::END_STEP) + { + scenario_data.step_end = ScenarioStep(); + } + else + { + if (current_step < 0 || current_step >= (int)scenario_data.steps.size()) + return; + + if (scenario_data.steps.size() > 1) + scenario_data.steps.erase(scenario_data.steps.begin() + current_step); + else + scenario_data.steps[0] = ScenarioStep(); + + if (current_step >= (int)scenario_data.steps.size()) + current_step = scenario_data.steps.size() - 1; + } + + loadActionsStep(); + elm_ctxpopup_dismiss(popup_del); +} + +void ActivityEditScenarioView::deleteStepCancel(void *data) +{ + elm_ctxpopup_dismiss(popup_del); +} + diff --git a/src/bin/calaos_home/views/ActivityEditScenarioView.h b/src/bin/calaos_home/views/ActivityEditScenarioView.h new file mode 100644 index 00000000..0625e7f4 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityEditScenarioView.h @@ -0,0 +1,109 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityEditScenarioView_H +#define ActivityEditScenarioView_H + +#include + +#include "ActivityView.h" +#include "GenlistItemBase.h" +#include "CalaosModel.h" + +using namespace Utils; + +class GenlistItemSimple; +class GenlistItemScenarioAction; + +class ActivityEditScenarioView: public ActivityView +{ + private: + Evas_Object *pager_step, *pager_step_popup, *popup_del; + EdjeObject *pageName, *pageActions; + + int current_wizstep; + + Evas_Object *home_list, *actions_list; + + int current_step; + + ScenarioData scenario_data; + + list cache_ios; //show all controlable ios + + Evas_Object *popup, *step_popup; + + Evas_Object *spin_hours; + Evas_Object *spin_min; + Evas_Object *spin_sec; + Evas_Object *spin_ms; + + map room_table; + + void buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + void showStep(int step); + void pageNameDeleted(); + void pageActionsDeleted(); + void loadPageActions(); + void loadActionsStep(); + string getIconForIO(IOBase *io); + + void pageNameEditName(void *data, Evas_Object *_edje, std::string emission, std::string source); + void pageNameEditName_cb(string text); + + void pageNameVisiblePressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + void pageActionsCyclePressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void itemRoomSelected(void *data, Room *room); + void updateVisibility(); + void updateCycling(); + + void actionAddPressed(IOBase *io); + + void buttonStepPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + void buttonStepAddPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + void buttonStepDelPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void stepSelect(void *data, int step); + void stepPauseChange(void *data, int step, GenlistItemSimple *item); + void buttonPauseBackClick(void *data, Evas_Object *edje_object, string emission, string source); + void buttonPauseValidTimeClick(void *data, Evas_Object *edje_object, string emission, string source, int step, GenlistItemSimple *item); + + void deleteStepValid(void *data); + void deleteStepCancel(void *data); + + void actionDelete(GenlistItemScenarioAction *item, void *data, int it, Room *room); + + public: + ActivityEditScenarioView(Evas *evas, Evas_Object *parent); + ~ActivityEditScenarioView(); + + virtual void resetView(); + + void setScenarioData(ScenarioData &data); + ScenarioData &getScenarioData() { return scenario_data; } + + sigc::signal buttonNextPressed; + sigc::signal buttonPreviousPressed; + sigc::signal buttonCancelPressed; + sigc::signal buttonValidPressed; +}; + +#endif // ActivityEditScenarioView_H diff --git a/src/bin/calaos_home/views/ActivityHomeView.cpp b/src/bin/calaos_home/views/ActivityHomeView.cpp new file mode 100644 index 00000000..1bda635a --- /dev/null +++ b/src/bin/calaos_home/views/ActivityHomeView.cpp @@ -0,0 +1,568 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityHomeView.h" +#include "ApplicationMain.h" + +#include "IOView.h" + +#include "IO/IOGenlistRoomGroup.h" + +ActivityHomeView::ActivityHomeView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/home"), + mode_detail(false), + pageStatus(NULL) +{ + setPartText("header.label", "Ma Maison"); + + rooms.reserve(6); + chauffages.reserve(6); + chauff_change_con.reserve(6); + chauff_del_con.reserve(6); + for (int i = 0;i < 6;i++) + { + rooms.push_back(new EdjeObject(ApplicationMain::getTheme(), evas)); + chauffages.push_back(NULL); + chauff_change_con.push_back(sigc::connection()); + chauff_del_con.push_back(sigc::connection()); + } + + list_top = elm_list_add(parent); + Swallow(list_top, "list.top"); + elm_object_style_set(list_top, "home/room_list"); + evas_object_show(list_top); + + list_left = elm_genlist_add(parent); + Swallow(list_left, "list.left"); + elm_object_style_set(list_left, "calaos"); + elm_genlist_select_mode_set(list_left, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_show(list_left); + + list_right = elm_genlist_add(parent); + Swallow(list_right, "list.right"); + elm_object_style_set(list_right, "calaos"); + elm_genlist_select_mode_set(list_right, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_show(list_right); + + page_view = new PagingView(evas, parent); + Swallow(page_view, "home.pager"); + + page_view->drag_start.connect(sigc::mem_fun(*this, &ActivityHomeView::pagerDragStart)); + page_view->drag_stop.connect(sigc::mem_fun(*this, &ActivityHomeView::pagerDragStop)); + + addCallback("home", "*", sigc::mem_fun(*this, &ActivityHomeView::EdjeCallback)); + addCallback("button.back", "pressed", sigc::mem_fun(*this, &ActivityHomeView::BackToMainViewCb)); +} + +ActivityHomeView::~ActivityHomeView() +{ + for_each(rooms.begin(), rooms.end(), Delete()); + + clearLists(); + + DELETE_NULL_FUNC(evas_object_del, list_top) + DELETE_NULL_FUNC(evas_object_del, list_left) + DELETE_NULL_FUNC(evas_object_del, list_right) + + DELETE_NULL(page_view) +} + +void ActivityHomeView::objectShown() +{ + EmitSignal("show,right", "calaos"); + EmitSignal("show,left", "calaos"); +} + +void ActivityHomeView::objectHidden() +{ + EmitSignal("hide,right", "calaos"); + EmitSignal("hide,left", "calaos"); +} + +void ActivityHomeView::setRoom(string type, int position, IOBase *chauffage) +{ + if (rooms[position]) + delete rooms[position]; + + EmitSignal("reset,rooms", "calaos"); + + string t = type; + + if (type == "salon") t = "lounge"; + if (type == "chambre") t = "bedroom"; + if (type == "cuisine") t = "kitchen"; + if (type == "bureau") t = "office"; + if (type == "sam") t = "diningroom"; + if (type == "cave") t = "cellar"; + if (type == "divers") t = "various"; + if (type == "misc") t = "various"; + if (type == "exterieur") t = "outside"; + if (type == "sdb") t = "bathroom"; + if (type == "hall") t = "corridor"; + if (type == "couloir") t = "corridor"; + + rooms[position] = new EdjeObject(ApplicationMain::getTheme(), evas); + string group = "calaos/room/"; + + if (!rooms[position]->LoadEdje(group + t)) + { + //room not found, load default + if (!rooms[position]->LoadEdje("calaos/room/various")) + { + throw(runtime_error("ActivityHomeView::setRoom(): Can't load edje !")); + } + } + + rooms[position]->Show(); + + if (position > 2) + rooms[position]->EmitSignal("size,small", "calaos"); + else + rooms[position]->EmitSignal("size,normal", "calaos"); + + Swallow(rooms[position], "room." + to_string(position + 1)); + + chauffages[position] = chauffage; + chauff_change_con[position].disconnect(); + chauff_del_con[position].disconnect(); + + if (chauffage) + { + rooms[position]->EmitSignal("chauffage,show", "calaos"); + chauff_change_con[position] = chauffage->io_changed.connect(sigc::bind(sigc::mem_fun(*this, &ActivityHomeView::updateChauffage), position)); + chauff_del_con[position] = chauffage->io_deleted.connect(sigc::bind(sigc::mem_fun(*this, &ActivityHomeView::delChauffage), position)); + + updateChauffage(position); + } + + EmitSignal(string("enable,room,") + to_string(position + 1), "calaos"); //this enable mouse click on unused rooms +} + +void ActivityHomeView::updateChauffage(int pos) +{ + if (pos < 0 || pos >= 6 || !rooms[pos]) + return; + + string t = chauffages[pos]->params["state"]; + rooms[pos]->setPartText("chauffage.temp.small", t + " °C"); + + IOBase *consigne = CalaosModel::Instance().getHome()->getConsigneFromTemp(chauffages[pos]); + if (consigne) + t += " / " + consigne->params["state"] + " °C"; + rooms[pos]->setPartText("chauffage.temp", t); +} + +void ActivityHomeView::delChauffage(int pos) +{ + if (pos < 0 || pos >= 6 || !rooms[pos]) + return; + + chauffages[pos] = NULL; + chauff_change_con[pos].disconnect(); + chauff_del_con[pos].disconnect(); +} + +void ActivityHomeView::hideRoom(int position) +{ + rooms[position]->EmitSignal("hide", "calaos"); + EmitSignal(string("disable,room,") + to_string(position + 1), "calaos"); //this disable mouse click on unused rooms +} + +void ActivityHomeView::resetRooms() +{ + rooms[0]->EmitSignal("size,normal", "calaos"); + rooms[1]->EmitSignal("size,normal", "calaos"); + rooms[2]->EmitSignal("size,normal", "calaos"); + rooms[3]->EmitSignal("size,small", "calaos"); + rooms[4]->EmitSignal("size,small", "calaos"); + rooms[5]->EmitSignal("size,small", "calaos"); + + for (int i = 0;i < 6;i++) + rooms[i]->EmitSignal("unselect", "calaos"); + + mode_detail = false; +} + +void ActivityHomeView::EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (emission.substr(0, 12) == "select,room,") + { + emission.erase(0, 12); + int pos; + from_string(emission, pos); + pos--; + + if (pos < 0 || pos >= 6) return; + + if (pos > 2) + { + rooms[0]->EmitSignal("size,small", "calaos"); + rooms[1]->EmitSignal("size,small", "calaos"); + rooms[2]->EmitSignal("size,small", "calaos"); + rooms[3]->EmitSignal("size,normal", "calaos"); + rooms[4]->EmitSignal("size,normal", "calaos"); + rooms[5]->EmitSignal("size,normal", "calaos"); + } + else + { + rooms[0]->EmitSignal("size,normal", "calaos"); + rooms[1]->EmitSignal("size,normal", "calaos"); + rooms[2]->EmitSignal("size,normal", "calaos"); + rooms[3]->EmitSignal("size,small", "calaos"); + rooms[4]->EmitSignal("size,small", "calaos"); + rooms[5]->EmitSignal("size,small", "calaos"); + } + + for (int i = 0;i < 6;i++) + rooms[i]->EmitSignal("unselect", "calaos"); + + rooms[pos]->EmitSignal("size,big", "calaos"); + + room_selected = pos; + mode_detail = true; + + room_click.emit(room_selected); + } + else if (emission == "room,right") + { + room_right_click.emit(); + } + else if (emission == "room,left") + { + room_left_click.emit(); + } + else if (emission == "mode,normal") + { + resetRooms(); + } +} + +void ActivityHomeView::BackToMainViewCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ +} + +void ActivityHomeView::EnableLeftButton() +{ + EmitSignal("enable,left", "calaos"); +} + +void ActivityHomeView::DisableLeftButton() +{ + EmitSignal("disable,left", "calaos"); +} + +void ActivityHomeView::EnableRightButton() +{ + EmitSignal("enable,right", "calaos"); +} + +void ActivityHomeView::DisableRightButton() +{ + EmitSignal("disable,right", "calaos"); +} + +void ActivityHomeView::ShowLoading() +{ + EmitSignal("show,loading", "calaos"); +} + +void ActivityHomeView::HideLoading() +{ + EmitSignal("hide,loading", "calaos"); +} + +void ActivityHomeView::selectPage_cb() +{ + page_view->bringPage(pageTimer); +} + +void ActivityHomeView::selectPage(int page, double delay) +{ + if (page < 0 || page >= page_view->getPageCount()) + return; + + if (delay > 0.0) + { + pageTimer = page; + EcoreTimer::singleShot(delay, sigc::mem_fun(*this, &ActivityHomeView::selectPage_cb)); + } + else + { + page_view->bringPage(page); + } +} + +void ActivityHomeView::ButtonLightsOffCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + const RoomIOCache &lights = CalaosModel::Instance().getHome()->getCacheLightsOn(); + RoomIOCache::const_iterator it = lights.begin(); + for (int i = 0;it != lights.end();it++, i++) + { + const RoomIO &lo = (*it).second; + + lo.io->sendAction("false"); + } +} + +void ActivityHomeView::ButtonLightsInfoCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + Evas_Object *table = createPaddingTable(evas, parent, 330, 300); + + Evas_Object *glist = elm_genlist_add(parent); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + map > lights = CalaosModel::Instance().getHome()->getLightsOnForRooms(); + map >::iterator it = lights.begin(); + for (;it != lights.end();it++) + { + Room *room = (*it).first; + list &ios = (*it).second; + list::iterator it_io; + + //Create group header + GenlistItemBase *group_item = new IOGenlistRoomGroup(evas, parent, room, ""); + group_item->Append(glist); + + for (it_io = ios.begin();it_io != ios.end();it_io++) + { + IOBase *io = (*it_io); + IOViewFactory::CreateIOBaseElement(evas, glist, io, glist, "left", group_item); + } + } + + elm_table_pack(table, glist, 1, 1, 1, 1); + + Evas_Object *popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, table); + elm_object_style_set(popup, "calaos"); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); +} + +void ActivityHomeView::ButtonShuttersDownCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + const RoomIOCache &shutters = CalaosModel::Instance().getHome()->getCacheShuttersUp(); + RoomIOCache::const_iterator it = shutters.begin(); + for (int i = 0;it != shutters.end();it++, i++) + { + const RoomIO &lo = (*it).second; + + lo.io->sendAction("down"); + } +} + +void ActivityHomeView::ButtonShuttersInfoCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + Evas_Object *table = createPaddingTable(evas, parent, 360, 300); + + Evas_Object *glist = elm_genlist_add(parent); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + map > shutters = CalaosModel::Instance().getHome()->getShuttersUpForRooms(); + map >::iterator it = shutters.begin(); + for (;it != shutters.end();it++) + { + Room *room = (*it).first; + list &ios = (*it).second; + list::iterator it_io; + + //Create group header + GenlistItemBase *group_item = new IOGenlistRoomGroup(evas, parent, room, ""); + group_item->Append(glist); + + for (it_io = ios.begin();it_io != ios.end();it_io++) + { + IOBase *io = (*it_io); + IOViewFactory::CreateIOBaseElement(evas, glist, io, glist, "left", group_item); + } + } + + elm_table_pack(table, glist, 1, 1, 1, 1); + + Evas_Object *popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, table); + elm_object_style_set(popup, "calaos"); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); +} + +void ActivityHomeView::setLightsOnText(string txt) +{ + pageStatus->setPartText("light.text", txt); +} + +void ActivityHomeView::setShuttersUpText(string txt) +{ + pageStatus->setPartText("shutter.text", txt); +} + +void ActivityHomeView::addStatusPage() +{ + pageStatus = new EdjeObject(theme, evas); + pageStatus->LoadEdje("calaos/page/home/status"); + pageStatus->setAutoDelete(true); + + pageStatus->addCallback("button.lights_off", "pressed", sigc::mem_fun(*this, &ActivityHomeView::ButtonLightsOffCb)); + pageStatus->addCallback("button.lights_info", "pressed", sigc::mem_fun(*this, &ActivityHomeView::ButtonLightsInfoCb)); + pageStatus->addCallback("button.shutters_down", "pressed", sigc::mem_fun(*this, &ActivityHomeView::ButtonShuttersDownCb)); + pageStatus->addCallback("button.shutters_info", "pressed", sigc::mem_fun(*this, &ActivityHomeView::ButtonShuttersInfoCb)); + + page_view->addPage(pageStatus->getEvasObject()); +} + +void ActivityHomeView::addScenarioPage(list &scenarios_io) +{ + EdjeObject *container = new EdjeObject(theme, evas); + container->LoadEdje("calaos/page/home/scenario"); + container->setAutoDelete(true); + + list::iterator it = scenarios_io.begin(); + for (int i = 0;it != scenarios_io.end() && i < 6;it++, i++) + { + IOView *ioView = IOViewFactory::CreateIOView(evas, getEvasObject(), IOView::IO_SCENARIO_HOME); + ioView->setIO(*it); + ioView->Show(); + ioView->initView(); + + string _t = "element." + to_string(i + 1); + container->Swallow(ioView, _t, true); + } + + page_view->addPage(container->getEvasObject()); +} + +void ActivityHomeView::removePage(int p) +{ + page_view->delPage(p); +} + +int ActivityHomeView::getPageCount() +{ + return page_view->getPageCount(); +} + +int ActivityHomeView::getCurrentPage() +{ + return page_view->getCurrentPage(); +} + +void ActivityHomeView::resetView() +{ + if (!mode_detail) return; + + //Simulate back button press to get back to initial state + EmitSignal("pressed", "button.back"); +} + +void ActivityHomeView::clearLists() +{ + elm_genlist_clear(list_left); + elm_genlist_clear(list_right); + elm_list_clear(list_top); + + for_each(dataRoomCallbacks.begin(), dataRoomCallbacks.end(), Delete()); +} + +static void _room_list_click(void *data, Evas_Object *obj, void *event_info) +{ + HomeRoomClickData *hdata = reinterpret_cast(data); + if (!hdata) return; + + hdata->view->changeCurrentRoomDetail(hdata->room); +} + +void ActivityHomeView::changeCurrentRoomDetail(Room *room) +{ + //Disable this for now. need to find a better way to go back to + //initial room title + //rooms[room_selected]->setPartText("room.title", room->name); + + elm_genlist_clear(list_left); + elm_genlist_clear(list_right); + + list::iterator it = room->visible_ios.begin(); + for (int i = 0;it != room->visible_ios.end();it++, i++) + { + if (i % 2) + IOViewFactory::CreateIOBaseElement(evas, list_left, *it, list_left, "left"); + else + IOViewFactory::CreateIOBaseElement(evas, list_right, *it, list_right, "right"); + } + + elm_genlist_realized_items_update(list_left); + elm_genlist_realized_items_update(list_right); +} + +static void _del_list_data_cb(void *data, Evas_Object *obj, void *item) +{ + HomeRoomClickData *d = reinterpret_cast(data); + DELETE_NULL(d); +} + +void ActivityHomeView::setCurrentRoomDetail(Room *room) +{ + //Update top room list from current room type + list list_room_type = CalaosModel::Instance().getHome()->getRoomsForType(room->type); + + Elm_Object_Item *item = NULL; + + list::iterator it = list_room_type.begin(); + for (;it != list_room_type.end();it++) + { + Room *r = *it; + + HomeRoomClickData *data = new HomeRoomClickData; + data->view = this; + data->room = r; + + Elm_Object_Item *_item = elm_list_item_append(list_top, r->name.c_str(), NULL, NULL, _room_list_click, data); + elm_object_item_del_cb_set(_item, _del_list_data_cb); + if (room == r) item = _item; + } + + elm_list_go(list_top); + + if (item) + elm_list_item_selected_set(item, true); +} + +void ActivityHomeView::pagerDragStart() +{ + EmitSignal("show,edge", "calaos"); +} + +void ActivityHomeView::pagerDragStop() +{ + EmitSignal("hide,edge", "calaos"); +} diff --git a/src/bin/calaos_home/views/ActivityHomeView.h b/src/bin/calaos_home/views/ActivityHomeView.h new file mode 100644 index 00000000..8ba5041b --- /dev/null +++ b/src/bin/calaos_home/views/ActivityHomeView.h @@ -0,0 +1,122 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYHOMEVIEW_H +#define ACTIVITYHOMEVIEW_H + +#include + +#include "ActivityView.h" +#include + +#include +#include + +using namespace Utils; + +class ActivityHomeView; +class HomeRoomClickData +{ + public: + ActivityHomeView *view; + Room *room; +}; + +class ActivityHomeView: public ActivityView +{ + protected: + virtual void objectShown(); + virtual void objectHidden(); + + vector dataRoomCallbacks; + + vector chauffages; + vector chauff_change_con; + vector chauff_del_con; + vector rooms; + + Evas_Object *list_top; + Evas_Object *list_left; + Evas_Object *list_right; + + PagingView *page_view; + + int room_selected; + bool mode_detail; + + int pageTimer; + + EdjeObject *pageStatus; + + void resetRooms(); + + void EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + void BackToMainViewCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void ButtonLightsOffCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void ButtonLightsInfoCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void ButtonShuttersDownCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void ButtonShuttersInfoCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void selectPage_cb(); + + void updateChauffage(int pos); + void delChauffage(int pos); + + void pagerDragStart(); + void pagerDragStop(); + + public: + ActivityHomeView(Evas *evas, Evas_Object *parent); + ~ActivityHomeView(); + + void setRoom(string type, int position, IOBase *chauffage); + void hideRoom(int position); + + void addStatusPage(); + void addScenarioPage(list &ios); + void removePage(int p); + int getPageCount(); + int getCurrentPage(); + + void selectPage(int page, double delay = 0.0); + + void EnableLeftButton(); + void DisableLeftButton(); + void EnableRightButton(); + void DisableRightButton(); + + void ShowLoading(); + void HideLoading(); + + virtual void resetView(); + + void setLightsOnText(string txt); + void setShuttersUpText(string txt); + + void clearLists(); + void setCurrentRoomDetail(Room *room); + void changeCurrentRoomDetail(Room *room); + + sigc::signal room_left_click; + sigc::signal room_right_click; + sigc::signal room_click; +}; + +#endif // ACTIVITYHOMEVIEW_H diff --git a/src/bin/calaos_home/views/ActivityKeyboardView.cpp b/src/bin/calaos_home/views/ActivityKeyboardView.cpp new file mode 100644 index 00000000..6caedf9c --- /dev/null +++ b/src/bin/calaos_home/views/ActivityKeyboardView.cpp @@ -0,0 +1,79 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityKeyboardView.h" + +ActivityKeyboardView::ActivityKeyboardView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/keyboard") +{ + setPartText("header.label", "Clavier"); + + keyboard = new KeyboardView(evas, parent); + Swallow(keyboard, "keyboard"); + + textblock = elm_entry_add(parent); + elm_entry_scrollable_set(textblock, true); + Swallow(textblock, "textblock"); + evas_object_show(textblock); + elm_object_focus_set(textblock, true); + + addCallback("button.cleartext", "pressed", sigc::mem_fun(*this, &ActivityKeyboardView::clearTextCb)); + addCallback("button.valid", "pressed", sigc::mem_fun(*this, &ActivityKeyboardView::validInputCb)); +} + +ActivityKeyboardView::~ActivityKeyboardView() +{ + DELETE_NULL(keyboard); + DELETE_NULL_FUNC(evas_object_del, textblock); +} + +void ActivityKeyboardView::resetView() +{ +} + +void ActivityKeyboardView::setMultiline(bool multiline) +{ + if (multiline) + elm_object_style_set(textblock, "calaos/multiline"); + else + elm_object_style_set(textblock, "calaos"); +} + +void ActivityKeyboardView::setSubtitle(string subtitle) +{ + setPartText("module.subtitle", subtitle); +} + +void ActivityKeyboardView::clearTextCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + clearText.emit(); + elm_entry_entry_set(textblock, ""); +} + +void ActivityKeyboardView::validInputCb(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + string val = elm_entry_entry_get(textblock); + validPressed.emit(val); +} + +void ActivityKeyboardView::setText(string t) +{ + elm_entry_entry_set(textblock, t.c_str()); +} diff --git a/src/bin/calaos_home/views/ActivityKeyboardView.h b/src/bin/calaos_home/views/ActivityKeyboardView.h new file mode 100644 index 00000000..dca56a32 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityKeyboardView.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityKeyboardView_H +#define ActivityKeyboardView_H + +#include + +#include "ActivityView.h" +#include "KeyboardView.h" + +using namespace Utils; + +class ActivityKeyboardView: public ActivityView +{ + private: + KeyboardView *keyboard; + Evas_Object *textblock; + + void clearTextCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + void validInputCb(void *data, Evas_Object *_edje, std::string emission, std::string source); + + public: + ActivityKeyboardView(Evas *evas, Evas_Object *parent); + ~ActivityKeyboardView(); + + virtual void resetView(); + + void setMultiline(bool multiline); + void setSubtitle(string subtitle); + void setText(string t); + + sigc::signal clearText; + sigc::signal validPressed; +}; + +#endif // ActivityKeyboardView_H diff --git a/src/bin/calaos_home/views/ActivityMediaMenuView.cpp b/src/bin/calaos_home/views/ActivityMediaMenuView.cpp new file mode 100644 index 00000000..2876c7ef --- /dev/null +++ b/src/bin/calaos_home/views/ActivityMediaMenuView.cpp @@ -0,0 +1,95 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityMediaMenuView.h" + +ActivityMediaMenuView::ActivityMediaMenuView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/media/menu") +{ + int pos = 1; + + if (Utils::get_config_option("enable_media_music") != "false") + addIcon(pos++, "music"); + + if (Utils::get_config_option("enable_media_camera") != "false") + addIcon(pos++, "camera"); + + if (Utils::get_config_option("enable_media_photos") != "false") + addIcon(pos++, "photos"); + +#ifdef HAVE_EWEBKIT + if (Utils::get_config_option("enable_media_web") != "false") + addIcon(pos++, "web"); +#endif + + if (Utils::get_config_option("enable_media_eskiss") != "false") + addIcon(pos++, "eskiss"); +} + +ActivityMediaMenuView::~ActivityMediaMenuView() +{ + for_each(items.begin(), items.end(), Delete()); + items.clear(); +} + +void ActivityMediaMenuView::addIcon(int position, string type) +{ + if (Utils::get_config_option("enable_media_" + type) != "false") + { + EdjeObject *obj = new EdjeObject(theme, evas); + obj->LoadEdje("calaos/icons/menu/media/" + type); + obj->addCallback("menu", "click," + type, sigc::mem_fun(*this, &ActivityMediaMenuView::ItemCallback)); + Swallow(obj, string("icon.") + to_string(position)); + obj->EmitSignal("show", "calaos"); + obj->Show(); + items.push_back(obj); + position++; + } +} + +void ActivityMediaMenuView::ItemCallback(void *data, Evas_Object *edje, string emission, string source) +{ + if (source != "menu") return; + + if (emission == "click,music") + { + menu_item_clicked.emit("music"); + } + else if (emission == "click,camera") + { + menu_item_clicked.emit("camera"); + } + else if (emission == "click,photos") + { + menu_item_clicked.emit("photos"); + } + else if (emission == "click,web") + { + menu_item_clicked.emit("web"); + } + else if (emission == "click,eskiss") + { + menu_item_clicked.emit("eskiss"); + } +} + +void ActivityMediaMenuView::resetView() +{ +} diff --git a/src/bin/calaos_home/views/ActivityMediaMenuView.h b/src/bin/calaos_home/views/ActivityMediaMenuView.h new file mode 100644 index 00000000..198fe8d7 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityMediaMenuView.h @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYMEDIAMENUVIEW_H +#define ACTIVITYMEDIAMENUVIEW_H + +#include + +#include "ActivityView.h" + +using namespace Utils; + +class ActivityMediaMenuView: public ActivityView +{ + private: + list items; + + void addIcon(int position, string type); + + void ItemCallback(void *data, Evas_Object *edje, string emission, string source); + + public: + ActivityMediaMenuView(Evas *evas, Evas_Object *parent); + ~ActivityMediaMenuView(); + + virtual void resetView(); + + virtual string getTitle() { return "Multimédia"; } + + sigc::signal menu_item_clicked; +}; + +#endif // ACTIVITYMEDIAMENUVIEW_H diff --git a/src/bin/calaos_home/views/ActivityMediaView.cpp b/src/bin/calaos_home/views/ActivityMediaView.cpp new file mode 100644 index 00000000..4405e67c --- /dev/null +++ b/src/bin/calaos_home/views/ActivityMediaView.cpp @@ -0,0 +1,46 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityMediaView.h" + +ActivityMediaView::ActivityMediaView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/media") +{ + setPartText("header.label", "Multimédia"); + + contentView = new MainContentView(evas, parent); + Swallow(contentView->getSmartObject(), "calaos.main.content"); + + addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityMediaView::buttonPressed)); +} + +ActivityMediaView::~ActivityMediaView() +{ + DELETE_NULL(contentView) +} + +void ActivityMediaView::resetView() +{ +} + +void ActivityMediaView::buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + button_clicked.emit(source); +} diff --git a/src/bin/calaos_home/views/ActivityMediaView.h b/src/bin/calaos_home/views/ActivityMediaView.h new file mode 100644 index 00000000..4ea3f726 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityMediaView.h @@ -0,0 +1,51 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYMEDIAVIEW_H +#define ACTIVITYMEDIAVIEW_H + +#include + +#include "ActivityView.h" +#include "MainContentView.h" + +using namespace Utils; + +class ActivityMediaView: public ActivityView +{ + private: + MainContentView *contentView; + + void buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + + public: + ActivityMediaView(Evas *evas, Evas_Object *parent); + ~ActivityMediaView(); + + virtual void resetView(); + + void addView(BaseView *view) { contentView->addView(view); } + BaseView *getTopView() { return contentView->getTopView(); } + void removeTopView() { contentView->removeTopView(); } + + sigc::signal button_clicked; +}; + +#endif // ACTIVITYMEDIAVIEW_H diff --git a/src/bin/calaos_home/views/ActivityScenariosView.cpp b/src/bin/calaos_home/views/ActivityScenariosView.cpp new file mode 100644 index 00000000..0af7bb39 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityScenariosView.cpp @@ -0,0 +1,233 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityScenariosView.h" +#include "GenlistItemScenarioSchedule.h" +#include "GenlistItemScenarioHeader.h" + +ActivityScenariosView::ActivityScenariosView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/scenarios"), + view_mode(VIEW_MODE_ALL) +{ + setPartText("header.label", "Gestion des scénarios"); + + addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityScenariosView::buttonPressed)); + + schedule_list = elm_genlist_add(parent); + Swallow(schedule_list, "scenario_schedule.list"); + elm_object_style_set(schedule_list, "calaos"); + elm_genlist_homogeneous_set(schedule_list, true); + evas_object_show(schedule_list); + + scenario_list = elm_genlist_add(parent); + Swallow(scenario_list, "scenario.list"); + elm_object_style_set(scenario_list, "calaos"); + elm_genlist_homogeneous_set(scenario_list, true); + evas_object_show(scenario_list); +} + +ActivityScenariosView::~ActivityScenariosView() +{ + DELETE_NULL_FUNC(evas_object_del, schedule_list); + DELETE_NULL_FUNC(evas_object_del, scenario_list); +} + +void ActivityScenariosView::resetView() +{ +} + +void ActivityScenariosView::ShowLoading() +{ + EmitSignal("show,loading", "calaos"); +} + +void ActivityScenariosView::HideLoading() +{ + EmitSignal("hide,loading", "calaos"); +} + +void ActivityScenariosView::buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (source == "button.calendar") + { + Evas_Object *table = createPaddingTable(evas, parent, 330, 300, 10, 10); + + calendar = elm_calendar_add(parent); + elm_object_style_set(calendar, "calaos"); + + elm_calendar_first_day_of_week_set(calendar, ELM_DAY_MONDAY); + + const char *weekdays[] = { "DIM", "LUN", "MAR", "MER", "JEU", "VEN", "SAM" }; + elm_calendar_weekdays_names_set(calendar, weekdays); + + //Mark sundays + struct tm sunday = { 0, 0, 12, 7, 0, 0, 6, 0, -1, 0, NULL }; + elm_calendar_mark_add(calendar, "checked", &sunday, ELM_CALENDAR_WEEKLY); + elm_calendar_marks_draw(calendar); + + evas_object_size_hint_fill_set(calendar, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(calendar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(calendar); + + elm_table_pack(table, calendar, 1, 1, 1, 1); + + Evas_Object *popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, table); + elm_object_style_set(popup, "calaos"); + elm_ctxpopup_direction_priority_set(popup, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_RIGHT, + ELM_CTXPOPUP_DIRECTION_UP); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); + } + else if (source == "button.create") + { + buttonCreatePressed.emit(); + } + else if (source == "button.list.all") + { + view_mode = VIEW_MODE_ALL; + loadScenarioList(); + } + else if (source == "button.list.light") + { + view_mode = VIEW_MODE_LIGHT; + loadScenarioList(); + } + else if (source == "button.list.volet") + { + view_mode = VIEW_MODE_SHUTTER; + loadScenarioList(); + } + else if (source == "button.list.schedule") + { + view_mode = VIEW_MODE_SCHEDULE; + loadScenarioList(); + } +} + +void ActivityScenariosView::loadScenarioList() +{ + elm_genlist_clear(scenario_list); + GenlistItemScenarioHeader *headerLight = NULL, *headerShutter = NULL, *headerOther = NULL; + + if (view_mode == VIEW_MODE_ALL || + view_mode == VIEW_MODE_SCHEDULE) + { + headerLight = new GenlistItemScenarioHeader(evas, parent, "Scénarios Lumière"); + headerLight->Append(scenario_list); + headerShutter = new GenlistItemScenarioHeader(evas, parent, "Scénarios Volets"); + headerShutter->Append(scenario_list); + headerOther = new GenlistItemScenarioHeader(evas, parent, "Scénarios autre"); + headerOther->Append(scenario_list); + } + else if (view_mode == VIEW_MODE_LIGHT) + { + headerLight = new GenlistItemScenarioHeader(evas, parent, "Scénarios Lumière"); + headerLight->Append(scenario_list); + } + else if (view_mode == VIEW_MODE_SHUTTER) + { + headerShutter = new GenlistItemScenarioHeader(evas, parent, "Scénarios Volets"); + headerShutter->Append(scenario_list); + } + + //populate the scenario list + list::iterator it = CalaosModel::Instance().getScenario()->scenarios.begin(); + for (;it != CalaosModel::Instance().getScenario()->scenarios.end();it++) + { + Scenario *sc = *it; + bool cont = true; + + if (sc->getFirstCategory() == "light" && + (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_LIGHT || view_mode == VIEW_MODE_SCHEDULE)) + { + if (view_mode == VIEW_MODE_SCHEDULE) + { + if (sc->isScheduled()) + cont = false; + } + else + cont = false; + } + + if (sc->getFirstCategory() == "shutter" && + (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SHUTTER || view_mode == VIEW_MODE_SCHEDULE)) + { + if (view_mode == VIEW_MODE_SCHEDULE) + { + if (sc->isScheduled()) + cont = false; + } + else + cont = false; + } + + if (sc->getFirstCategory() == "other" && + (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SCHEDULE)) + { + if (view_mode == VIEW_MODE_SCHEDULE) + { + if (sc->isScheduled()) + cont = false; + } + else + cont = false; + } + + if (cont) + continue; + + GenlistItemScenarioSchedule *item = new GenlistItemScenarioSchedule(evas, parent, false, sc); + item->schedule_add_click.connect(sigc::mem_fun(schedule_add_click, &sigc::signal::emit)); + item->schedule_modify_click.connect(sigc::mem_fun(schedule_modify_click, &sigc::signal::emit)); + item->schedule_del_click.connect(sigc::mem_fun(schedule_del_click, &sigc::signal::emit)); + if (sc->getFirstCategory() == "light") + item->InsertAfter(scenario_list, headerLight); + else if (sc->getFirstCategory() == "shutter") + item->InsertAfter(scenario_list, headerShutter); + else + item->InsertAfter(scenario_list, headerOther); + } +} + +void ActivityScenariosView::loadScenarios() +{ + elm_genlist_clear(schedule_list); + //------------TEST schedule list +// for (int i = 0;i < 10;i++) +// { +// GenlistItemScenarioSchedule *item = new GenlistItemScenarioSchedule(evas, parent, true); +// item->Append(schedule_list); +// } + //---------------- + if (CalaosModel::Instance().getScenario()->scenarios.size() > 0) + { + GenlistItemScenarioSchedule *item = new GenlistItemScenarioSchedule(evas, parent, true, *CalaosModel::Instance().getScenario()->scenarios.begin()); + item->Append(schedule_list); + } + + loadScenarioList(); +} diff --git a/src/bin/calaos_home/views/ActivityScenariosView.h b/src/bin/calaos_home/views/ActivityScenariosView.h new file mode 100644 index 00000000..1d9f8d8d --- /dev/null +++ b/src/bin/calaos_home/views/ActivityScenariosView.h @@ -0,0 +1,61 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYSCENARIOSVIEW_H +#define ACTIVITYSCENARIOSVIEW_H + +#include + +#include "ActivityView.h" +#include "CalaosModel.h" + +using namespace Utils; + +class ActivityScenariosView: public ActivityView +{ + private: + Evas_Object *calendar; + Evas_Object *schedule_list, *scenario_list; + + enum { VIEW_MODE_ALL, VIEW_MODE_LIGHT, VIEW_MODE_SHUTTER, VIEW_MODE_SCHEDULE }; + int view_mode; + + void buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + void loadScenarioList(); + + public: + ActivityScenariosView(Evas *evas, Evas_Object *parent); + ~ActivityScenariosView(); + + virtual void resetView(); + + void ShowLoading(); + void HideLoading(); + + void loadScenarios(); + + sigc::signal buttonCreatePressed; + + sigc::signal schedule_add_click; + sigc::signal schedule_modify_click; + sigc::signal schedule_del_click; +}; + +#endif // ACTIVITYSCENARIOSVIEW_H diff --git a/src/bin/calaos_home/views/ActivityScheduleScenarioView.cpp b/src/bin/calaos_home/views/ActivityScheduleScenarioView.cpp new file mode 100644 index 00000000..1417f771 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityScheduleScenarioView.cpp @@ -0,0 +1,189 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityScheduleScenarioView.h" +#include "ApplicationMain.h" +#include "GenlistItemScenarioHeader.h" +#include "GenlistItemScenarioScheduleTime.h" + +ActivityScheduleScenarioView::ActivityScheduleScenarioView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/schedule_scenario"), + schedule_list(NULL), + month_list(NULL) +{ + setPartText("header.label", "Planification horaire"); + + addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityScheduleScenarioView::buttonPressed)); + + schedule_list = elm_genlist_add(parent); + Swallow(schedule_list, "schedule.list"); + elm_object_style_set(schedule_list, "calaos"); + elm_genlist_homogeneous_set(schedule_list, true); + evas_object_show(schedule_list); + + month_list = elm_genlist_add(parent); + Swallow(month_list, "month.list"); + elm_object_style_set(month_list, "calaos"); + elm_genlist_homogeneous_set(month_list, true); + evas_object_show(month_list); + elm_genlist_multi_select_set(month_list, true); + + GenlistItemScenarioHeader *header; + GenlistItemSimple *item; + header = new GenlistItemScenarioHeader(evas, parent, "Mois de l'année"); + header->Append(month_list); + + item = new GenlistItemSimple(evas, parent, "Toute l'année", true, false, NULL, "check"); + item->Append(month_list); + item_all = item; + item_all->setSelected(true); + + item = new GenlistItemSimple(evas, parent, "Janvier", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Février", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Mars", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Avril", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Mai", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Juin", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Juillet", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Aout", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Septembre", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Octobre", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Novembre", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Décembre", true, false, NULL, "check"); + item->Append(month_list); + items_months.push_back(item); + + header = new GenlistItemScenarioHeader(evas, parent, "Périodes prédéfinies"); + header->Append(month_list); + + item = new GenlistItemSimple(evas, parent, "Printemps", true, false, NULL, "check"); + item->Append(month_list); + items_periods.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Eté", true, false, NULL, "check"); + item->Append(month_list); + items_periods.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Automne", true, false, NULL, "check"); + item->Append(month_list); + items_periods.push_back(item); + + item = new GenlistItemSimple(evas, parent, "Hiver", true, false, NULL, "check"); + item->Append(month_list); + items_periods.push_back(item); + + //Set up selection callback + item_all->item_selected.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::itemAllYearSelected)); + for (uint i = 0;i < items_months.size();i++) + items_months[i]->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityScheduleScenarioView::itemMonthSelected), items_months[i])); + for (uint i = 0;i < items_periods.size();i++) + items_periods[i]->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityScheduleScenarioView::itemPeriodSelected), items_periods[i])); +} + +ActivityScheduleScenarioView::~ActivityScheduleScenarioView() +{ + DELETE_NULL_FUNC(evas_object_del, schedule_list); + DELETE_NULL_FUNC(evas_object_del, month_list); +} + +void ActivityScheduleScenarioView::resetView() +{ +} + +void ActivityScheduleScenarioView::buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (source == "button.valid") + { + buttonValidPressed.emit(range_infos); + } +} + +void ActivityScheduleScenarioView::itemAllYearSelected(void *data) +{ + if (item_all->isSelected()) + { + for (uint i = 0;i < items_months.size();i++) + items_months[i]->setSelected(false); + for (uint i = 0;i < items_periods.size();i++) + items_periods[i]->setSelected(false); + } +} + +void ActivityScheduleScenarioView::itemMonthSelected(void *data, GenlistItemSimple *item) +{ + if (!elm_genlist_selected_items_get(month_list)) + { + item_all->setSelected(true); + } + else + item_all->setSelected(false); +} + +void ActivityScheduleScenarioView::itemPeriodSelected(void *data, GenlistItemSimple *item) +{ + if (!elm_genlist_selected_items_get(month_list)) + item_all->setSelected(true); + else + item_all->setSelected(false); +} + +void ActivityScheduleScenarioView::reloadTimeRanges() +{ + //------------TEST schedule list + for (int i = 0;i < 5;i++) + { + GenlistItemScenarioScheduleTime *item = new GenlistItemScenarioScheduleTime(evas, parent); + item->Append(schedule_list); + } + //---------------- +} diff --git a/src/bin/calaos_home/views/ActivityScheduleScenarioView.h b/src/bin/calaos_home/views/ActivityScheduleScenarioView.h new file mode 100644 index 00000000..282194ae --- /dev/null +++ b/src/bin/calaos_home/views/ActivityScheduleScenarioView.h @@ -0,0 +1,62 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityScheduleScenarioView_H +#define ActivityScheduleScenarioView_H + +#include + +#include "ActivityView.h" +#include "CalaosModel.h" +#include "GenlistItemSimple.h" + +using namespace Utils; + +class ActivityScheduleScenarioView: public ActivityView +{ + private: + TimeRangeInfos range_infos; + + Evas_Object *schedule_list, *month_list; + + GenlistItemSimple *item_all; + vector items_months; + vector items_periods; + + void buttonPressed(void *data, Evas_Object *_edje, std::string emission, std::string source); + + void itemAllYearSelected(void *data); + void itemMonthSelected(void *data, GenlistItemSimple *item); + void itemPeriodSelected(void *data, GenlistItemSimple *item); + + void reloadTimeRanges(); + + public: + ActivityScheduleScenarioView(Evas *evas, Evas_Object *parent); + ~ActivityScheduleScenarioView(); + + virtual void resetView(); + + void setTimeRangeInfos(TimeRangeInfos &tr) { range_infos = tr; reloadTimeRanges(); } + + sigc::signal buttonValidPressed; +}; + +#endif // ActivityScheduleScenarioView_H diff --git a/src/bin/calaos_home/views/ActivityView.cpp b/src/bin/calaos_home/views/ActivityView.cpp new file mode 100644 index 00000000..1bbf5904 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityView.cpp @@ -0,0 +1,144 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityView.h" + +#include "ActivityHomeView.h" +#include "ActivityMediaView.h" +#include "ActivityScenariosView.h" +#include "ActivityConfigView.h" +#include "ActivityWidgetsView.h" + +#include "ActivityMediaMenuView.h" +#include "ActivityCameraListView.h" +#include "ActivityCameraSelectView.h" +#include "ActivityAudioListView.h" + +#include "ActivityKeyboardView.h" +#include "ActivityWebView.h" + +#include "ActivityEditScenarioView.h" +#include "ActivityScheduleScenarioView.h" + +static void _elm_button_quit(void *data, Evas_Object *obj, void *event_info) +{ + ActivityView *ac = reinterpret_cast(data); + if (!ac) return; + + ac->_button_quit_clicked(); +} + +ActivityView::ActivityView(Evas *e, Evas_Object *parent): + BaseView(e, parent) +{ +} + +ActivityView::ActivityView(Evas *e, Evas_Object *parent, string collection): + BaseView(e, parent), + box_buttons(NULL), + button_quit(NULL) +{ + try + { + LoadEdje(collection); + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "ActivityView: Can't load edje" << log4cpp::eol; + throw; + } + + if (edje_object_part_exists(edje, "button.quit")) + { + button_quit = edje_object_part_external_object_get(edje, "button.quit"); + evas_object_smart_callback_add(button_quit, "clicked", _elm_button_quit, this); + } +} + +ActivityView::~ActivityView() +{ +} + +void ActivityView::_button_quit_clicked() +{ + activity_quit.emit(); +} + +ActivityView *ActivityViewFactory::CreateView(Evas *evas, Evas_Object *parent, int viewType) +{ + ActivityView *view = NULL; + + try + { + switch (viewType) + { + case ACTIVITY_VIEW_HOME: view = new ActivityHomeView(evas, parent); break; + case ACTIVITY_VIEW_MEDIA: view = new ActivityMediaView(evas, parent); break; + case ACTIVITY_VIEW_SCENARIOS: view = new ActivityScenariosView(evas, parent); break; + case ACTIVITY_VIEW_CONFIG: view = new ActivityConfigView(evas, parent); break; + case ACTIVITY_VIEW_MEDIA_MENU: view = new ActivityMediaMenuView(evas, parent); break; + case ACTIVITY_VIEW_CAMERA_LIST: view = new ActivityCameraListView(evas, parent); break; + case ACTIVITY_VIEW_CAMERA_SELECT: view = new ActivityCameraSelectView(evas, parent); break; + case ACTIVITY_VIEW_AUDIO_LIST: view = new ActivityAudioListView(evas, parent); break; + case ACTIVITY_VIEW_WIDGETS: view = new ActivityWidgetsView(evas, parent); break; + case ACTIVITY_VIEW_KEYBOARD: view = new ActivityKeyboardView(evas, parent); break; + case ACTIVITY_VIEW_WEB: view = new ActivityWebView(evas, parent); break; + case ACTIVITY_VIEW_EDIT_SCENARIO: view = new ActivityEditScenarioView(evas, parent); break; + case ACTIVITY_VIEW_SCHEDULE_SCENARIO: view = new ActivityScheduleScenarioView(evas, parent); break; + default: + case ACTIVITY_VIEW_NONE: break; + } + } + catch (exception const& e) + { + Utils::logger("root") << Priority::CRIT << "ActivityViewFactory: Can't create viewType:" << viewTypeString(viewType) << log4cpp::eol; + throw; + } + + if (!view) + { + Utils::logger("root") << Priority::CRIT << "ActivityViewFactory: Can't create viewType:" << viewTypeString(viewType) << log4cpp::eol; + throw; + } + + return view; +} + +string ActivityViewFactory::viewTypeString(int viewType) +{ + switch (viewType) + { + case ACTIVITY_VIEW_HOME: return "ActivityHomeView"; + case ACTIVITY_VIEW_MEDIA: return "ActivityMediaView"; + case ACTIVITY_VIEW_SCENARIOS: return "ActivityScenariosView"; + case ACTIVITY_VIEW_CONFIG: return "ActivityConfigView"; + case ACTIVITY_VIEW_CAMERA_SELECT: return "ActivityCameraSelectView"; + case ACTIVITY_VIEW_CAMERA_LIST: return "ActivityCameraListView"; + case ACTIVITY_VIEW_AUDIO_LIST: return "ActivityAudioListView"; + case ACTIVITY_VIEW_WIDGETS: return "ActivityWidgetsView"; + case ACTIVITY_VIEW_MEDIA_MENU: return "ActivityMediaMenuView"; + case ACTIVITY_VIEW_KEYBOARD: return "ActivityKeyboardView"; + case ACTIVITY_VIEW_WEB: return "ActivityWebView"; + case ACTIVITY_VIEW_EDIT_SCENARIO: return "ActivityEditScenarioView"; + case ACTIVITY_VIEW_SCHEDULE_SCENARIO: return "ActivityScheduleScenarioView"; + default: + case ACTIVITY_VIEW_NONE: return "NONE"; + } +} diff --git a/src/bin/calaos_home/views/ActivityView.h b/src/bin/calaos_home/views/ActivityView.h new file mode 100644 index 00000000..1cc3151a --- /dev/null +++ b/src/bin/calaos_home/views/ActivityView.h @@ -0,0 +1,71 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYVIEW_H +#define ACTIVITYVIEW_H + +#include + +#include "BaseView.h" + +using namespace Utils; + +class ActivityView: public BaseView +{ + public: + void _button_quit_clicked(); + + protected: + Evas_Object *box_buttons; + Evas_Object *button_quit; + + public: + ActivityView(Evas *evas, Evas_Object *parent); + ActivityView(Evas *evas, Evas_Object *parent, string collection); + virtual ~ActivityView(); + + virtual void resetView() = 0; + + virtual void DisableView() { } + virtual void EnableView() { } + + sigc::signal activity_quit; +}; + +class ActivityViewFactory +{ + private: + static string viewTypeString(int viewType); + + public: + enum { ACTIVITY_VIEW_NONE, ACTIVITY_VIEW_HOME, ACTIVITY_VIEW_MEDIA, + ACTIVITY_VIEW_SCENARIOS, ACTIVITY_VIEW_CONFIG, ACTIVITY_VIEW_WIDGETS, + ACTIVITY_VIEW_MEDIA_MENU, + ACTIVITY_VIEW_CAMERA_LIST, ACTIVITY_VIEW_CAMERA_SELECT, + ACTIVITY_VIEW_AUDIO_LIST, + ACTIVITY_VIEW_KEYBOARD, + ACTIVITY_VIEW_WEB, + ACTIVITY_VIEW_EDIT_SCENARIO, ACTIVITY_VIEW_SCHEDULE_SCENARIO + }; + + static ActivityView *CreateView(Evas *evas, Evas_Object *parent, int viewType); +}; + +#endif // ACTIVITYVIEW_H diff --git a/src/bin/calaos_home/views/ActivityWebView.cpp b/src/bin/calaos_home/views/ActivityWebView.cpp new file mode 100644 index 00000000..07a13bc1 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityWebView.cpp @@ -0,0 +1,230 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityWebView.h" +#include "WebKitError.h" + +#include +#include "ApplicationMain.h" + +#ifdef HAVE_EWEBKIT +#include +#endif + +#define USER_AGENT "Mozilla/5.0 (X11; U; Linux x86; fr) AppleWebKit/536.6 (KHTML, like Gecko, Safari/536.6) Calaos/2.0" +#define DEFAULT_BROWSER_URL "https://127.0.0.1/calaos_bookmarks/" + +static void _web_load_started(void *data, Evas_Object *obj, void *event_info) +{ + ActivityWebView *view = reinterpret_cast(data); + if (!view) return; + + view->_webLoadStarted(); +} + +static void _web_load_progress(void *data, Evas_Object *obj, void *event_info) +{ + ActivityWebView *view = reinterpret_cast(data); + if (!view) return; + + view->_webLoadProgress(); +} + +static void _web_load_finished(void *data, Evas_Object *obj, void *event_info) +{ + ActivityWebView *view = reinterpret_cast(data); + if (!view) return; + + Elm_Web_Frame_Load_Error *error = NULL; + + if (event_info) + error = reinterpret_cast(event_info); + + view->_webLoadFinished(error); +} + +static void _web_title_changed(void *data, Evas_Object *obj, void *event_info) +{ + ActivityWebView *view = reinterpret_cast(data); + if (!view) return; + + view->_webTitleChanged(); +} + +static void _web_inputmethod_changed(void *data, Evas_Object *obj, void *event_info) +{ + ActivityWebView *view = reinterpret_cast(data); + if (!view) return; + + bool enabled = (bool)event_info; + + view->_webInputMethodChanged(enabled); +} + +ActivityWebView::ActivityWebView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/web") +{ + setPartText("header.label", "Navigateur Web"); + + keyboard = new KeyboardView(evas, parent); + Swallow(keyboard, "keyboard"); + + if (elm_need_web()) + { + web = elm_web_add(parent); + Swallow(web, "webkit"); + evas_object_show(web); + elm_object_focus_set(web, true); + + elm_web_useragent_set(web, USER_AGENT); + elm_web_inwin_mode_set(web, true); + + evas_object_smart_callback_add(web, "load,started", _web_load_started, this); + evas_object_smart_callback_add(web, "load,progress", _web_load_progress, this); + evas_object_smart_callback_add(web, "load,finished", _web_load_finished, this); + evas_object_smart_callback_add(web, "load,error", _web_load_finished, this); + evas_object_smart_callback_add(web, "title,changed", _web_title_changed, this); + evas_object_smart_callback_add(web, "inputmethod,changed", _web_inputmethod_changed, this); + +#ifdef HAVE_EWEBKIT + Evas_Object *eview = elm_web_webkit_view_get(web); + ewk_view_setting_enable_auto_resize_window_set(eview, false); +#endif + + goToCallback(DEFAULT_BROWSER_URL); + } + + addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityWebView::buttonCallback)); +} + +ActivityWebView::~ActivityWebView() +{ + DELETE_NULL(keyboard); + DELETE_NULL_FUNC(evas_object_del, web); +} + +void ActivityWebView::resetView() +{ +} + +void ActivityWebView::_webLoadStarted() +{ + EmitSignal("start,loading", "calaos"); +} + +void ActivityWebView::_webLoadProgress() +{ + setDragValue("progress.level", elm_web_load_progress_get(web), 0.0); + + string t = to_string((int)(elm_web_load_progress_get(web) * 100)) + " %"; + setPartText("progress.text", t); +} + +void ActivityWebView::_webLoadFinished(Elm_Web_Frame_Load_Error *error) +{ + EmitSignal("hide,keyboard", "calaos"); + EmitSignal("stop,loading", "calaos"); + + if (error && !error->is_cancellation) + { +#ifdef HAVE_EWEBKIT + string t = WEBKIT_ERROR_HTML; + replace_str(t, "{FAILING_URL}", error->failing_url); + replace_str(t, "{DESC}", error->description); + + Evas_Object *eview = elm_web_webkit_view_get(web); + Evas_Object *frame = ewk_view_frame_main_get(eview); + ewk_frame_contents_set(frame, + t.c_str(), + t.length(), + "text/html", + "UTF-8", + error->failing_url); +#endif + } +} + +void ActivityWebView::_webTitleChanged() +{ + const char *t = elm_web_title_get(web); + + if (t) setPartText("page.title", t); +} + +void ActivityWebView::_webInputMethodChanged(bool en) +{ + if (en) + EmitSignal("show,keyboard", "calaos"); + else + EmitSignal("hide,keyboard", "calaos"); +} + +void ActivityWebView::buttonCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (source == "button.back") + elm_web_back(web); + else if (source == "button.forward") + elm_web_forward(web); + else if (source == "button.reload") + elm_web_reload_full(web); + else if (source == "button.stop") + elm_web_stop(web); + else if (source == "button.forward") + elm_web_forward(web); + else if (source == "button.home") + goToCallback(DEFAULT_BROWSER_URL); + else if (source == "button.go") + { + ApplicationMain::Instance().ShowKeyboard("Entrez une URL ci-dessous", + sigc::mem_fun(*this, &ActivityWebView::goToCallback), + false, + elm_web_uri_get(web)); + } + else if (source == "button.bookmark") + { + string url = elm_web_uri_get(web); + + string _url = DEFAULT_BROWSER_URL; + _url += "Bookmark.php?new=" + url_encode(url); + _url += "&title=" + url_encode(elm_web_title_get(web)); + _url += "&thumb_file=/tmp/thumb.png"; + + setDragValue("progress.level", 0.0, 0.0); + setPartText("progress.text", "Saving..."); + EmitSignal("saving,bookmark", "calaos"); + + FileDownloader *fdownloader = new FileDownloader(_url, "/dev/null", true); + fdownloader->Start(); + } +} + +void ActivityWebView::goToCallback(string text) +{ + string url; + + remove_tag(text, "<", ">"); + if (text.substr(0, 7) != "http://" && text.substr(0, 8) != "https://") + url = "http://"; + + url += text; + + elm_web_uri_set(web, url.c_str()); + elm_object_focus_set(web, true); +} diff --git a/src/bin/calaos_home/views/ActivityWebView.h b/src/bin/calaos_home/views/ActivityWebView.h new file mode 100644 index 00000000..8a896247 --- /dev/null +++ b/src/bin/calaos_home/views/ActivityWebView.h @@ -0,0 +1,55 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ActivityWebView_H +#define ActivityWebView_H + +#include + +#include "ActivityView.h" +#include "KeyboardView.h" + +using namespace Utils; + +class ActivityWebView: public ActivityView +{ + private: + KeyboardView *keyboard; + Evas_Object *web; + + void buttonCallback(void *data, Evas_Object *edje_object, string emission, string source); + void goToCallback(string url); + + public: + ActivityWebView(Evas *evas, Evas_Object *parent); + ~ActivityWebView(); + + virtual void resetView(); + + + //Used by C-Callbacks + void _webLoadStarted(); + void _webLoadProgress(); + void _webLoadFinished(Elm_Web_Frame_Load_Error *error); + void _webTitleChanged(); + void _webInputMethodChanged(bool en); +}; + +#endif // ActivityWebView_H diff --git a/src/bin/calaos_home/views/ActivityWidgetsView.cpp b/src/bin/calaos_home/views/ActivityWidgetsView.cpp new file mode 100644 index 00000000..06dda00d --- /dev/null +++ b/src/bin/calaos_home/views/ActivityWidgetsView.cpp @@ -0,0 +1,280 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "ActivityWidgetsView.h" +#include + +ActivityWidgetsView::ActivityWidgetsView(Evas *e, Evas_Object *parent): + ActivityView(e, parent, "calaos/page/widgets") +{ + clipper = evas_object_rectangle_add(evas); + evas_object_color_set(clipper, 0, 0, 0, 0); + evas_object_show(clipper); + + Swallow(clipper, "widgets.swallow", true); + + //Create a temporary dir for modules + if (ecore_file_is_dir("/tmp/calaos_widgets")) + ecore_file_recursive_rm("/tmp/calaos_widgets"); + + ecore_file_mkpath("/tmp/calaos_widgets"); + + //add search paths for python modules + ModuleManager::Instance().addPath("../calaos_modules/build/calaos_modules"); + ModuleManager::Instance().addPath("/usr/share/calaos/modules"); + ModuleManager::Instance().addPath("/mnt/ext3/calaos/modules"); + ModuleManager::Instance().SearchModules(); + + LoadWidgets(); +} + +ActivityWidgetsView::~ActivityWidgetsView() +{ + for_each(widgets.begin(), widgets.end(), Delete()); + widgets.clear(); + + if (timer) delete timer; + timer = NULL; +} + +void ActivityWidgetsView::resetView() +{ + EmitSignal("normal", "calaos"); +} + +void ActivityWidgetsView::dimView() +{ + EmitSignal("fade", "calaos"); +} + +void ActivityWidgetsView::TimerTick() +{ +/* + time_t tt = time(NULL); + struct tm *t = localtime(&tt); + + if (t->tm_mon == 11) //december + { + if (t->tm_mday >= 22 && !xmas_widget) + { + //Create the Xmas widget + xmas_widget = new XmasWidget(theme, evas, xmas_def, "xmas"); + evas_object_clip_set(xmas_widget->get_edje(), clipper); + evas_object_color_set(clipper, 255, 255, 255, 255); + xmas_widget->Show(); + } + } + + if (t->tm_mon == 0) //january + { + if (t->tm_mday < 4 && !xmas_widget) + { + //Create the Xmas widget + xmas_widget = new XmasWidget(theme, evas, xmas_def, "xmas"); + evas_object_clip_set(xmas_widget->get_edje(), clipper); + evas_object_color_set(clipper, 255, 255, 255, 255); + xmas_widget->Show(); + } + + if (t->tm_mday >= 4 && xmas_widget) + { + delete xmas_widget; + xmas_widget = NULL; + if (widgets.size() <= 0) + evas_object_color_set(clipper, 255, 255, 255, 0); + } + } +*/ +} + +void ActivityWidgetsView::DeleteWidget(Widget *w) +{ + //delete the specified widget instance + for (uint i = 0;i < widgets.size();i++) + { + if (w == widgets[i]) + { + delete w; + widgets.erase(std::remove(widgets.begin(), widgets.end(), w), widgets.end()); + + SaveWidgets(); + } + } + + if (widgets.size() <= 0/* && !xmas_widget*/) + evas_object_color_set(clipper, 255, 255, 255, 0); +} + +void ActivityWidgetsView::DeleteAllWidgets() +{ + for_each(widgets.begin(), widgets.end(), Delete()); + widgets.clear(); + SaveWidgets(); + //if (!xmas_widget) evas_object_color_set(clipper, 255, 255, 255, 0); + evas_object_color_set(clipper, 0, 0, 0, 0); +} + +void ActivityWidgetsView::EditMode() +{ + for (uint i = 0;i < widgets.size();i++) + { + widgets[i]->EditMode(); + } +} + +void ActivityWidgetsView::NormalMode() +{ + for (uint i = 0;i < widgets.size();i++) + { + widgets[i]->NormalMode(); + } +} + +void ActivityWidgetsView::_AddWidget(Widget *o) +{ + widgets.push_back(o); + evas_object_clip_set(o->getEvasObject(), clipper); + evas_object_color_set(clipper, 255, 255, 255, 255); +} + +void ActivityWidgetsView::LoadWidgets() +{ + std::string file = WIDGET_CONFIG; + TiXmlDocument document(file); + + if (!document.LoadFile()) + { + Utils::logger("root") << Priority::ERROR << "There was a parse error in " << file << log4cpp::eol; + Utils::logger("root") << Priority::ERROR << document.ErrorDesc() << log4cpp::eol; + Utils::logger("root") << Priority::ERROR << "In file " << file << " At line " << document.ErrorRow() << log4cpp::eol; + + //force save of file + SaveWidgets(); + } + else + { + TiXmlHandle docHandle(&document); + + TiXmlElement *node = docHandle.FirstChildElement("calaos:widgets").FirstChildElement("calaos:widget").ToElement(); + for(; node; node = node->NextSiblingElement()) + { + if (node->ValueStr() == "calaos:widget" && + node->Attribute("id") && + node->Attribute("type") && + node->Attribute("posx") && + node->Attribute("posy") && + node->Attribute("width") && + node->Attribute("height")) + { + string type, id; + + type = node->Attribute("type"); + id = node->Attribute("id"); + + int x, y, w, h; + from_string(node->Attribute("posx"), x); + from_string(node->Attribute("posy"), y); + from_string(node->Attribute("width"), w); + from_string(node->Attribute("height"), h); + + ModuleDef t; + vector mods = ModuleManager::Instance().getModules(); + for (uint i = 0;i < mods.size();i++) + { + if (mods[i].mod_fname == type) + { + t = mods[i]; + AddWidget(t, x, y, w, h, id); + break; + } + } + + Show(); + } + } + + } + + //Check each 6 hours + if (!timer) timer = new EcoreTimer(60.0 * 6.0, (sigc::slot)sigc::mem_fun(*this, &ActivityWidgetsView::TimerTick) ); + TimerTick(); +} + +void ActivityWidgetsView::SaveWidgets() +{ + TiXmlDocument document; + TiXmlDeclaration *decl = new TiXmlDeclaration("1.0", "UTF-8", ""); + TiXmlElement *rootnode = new TiXmlElement("calaos:widgets"); + rootnode->SetAttribute("xmlns:calaos", "http://www.calaos.fr"); + document.LinkEndChild(decl); + document.LinkEndChild(rootnode); + + for (int i = 0;i < (int)widgets.size();i++) + { + widgets[i]->Save(rootnode); + } + + string file = WIDGET_CONFIG; + document.SaveFile(file); +} + +bool ActivityWidgetsView::AddWidget(ModuleDef &type, int x, int y, int w, int h, string id) +{ + for (uint i = 0;i < widgets.size();i++) + { + if (widgets[i]->getId() == id) id = ""; + } + + for (int nid = 0;nid < 9999;nid++) + { + bool failed = false; + for (uint i = 0;i < widgets.size();i++) + { + if (widgets[i]->getId() == to_string(nid)) + failed = true; + } + + if (!failed) + { + id = to_string(nid); + break; + } + } + + //create new widget + try + { + Widget *widget = new Widget(theme, evas, type, id, parent, this); + _AddWidget(widget); + widget->Move(x, y); + widget->Resize(w, h); + widget->Show(); + } + catch(const std::exception &e) + { + Utils::logger("module") << Priority::ERROR << "ActivityWidgetsView: Error creating widget, " << + e.what() << log4cpp::eol; + return false; + } + + SaveWidgets(); + + return true; +} diff --git a/src/bin/calaos_home/views/ActivityWidgetsView.h b/src/bin/calaos_home/views/ActivityWidgetsView.h new file mode 100644 index 00000000..ba2251fb --- /dev/null +++ b/src/bin/calaos_home/views/ActivityWidgetsView.h @@ -0,0 +1,74 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef ACTIVITYWIDGETSVIEW_H +#define ACTIVITYWIDGETSVIEW_H + +#include +#include "ActivityView.h" +#include +#include + +using namespace Utils; + +class ActivityWidgetsView: public ActivityView +{ + private: + Evas_Object *clipper; + + vector widgets; + + //timer to do some maintenance stuff + //like showing/hiding xmas widget + EcoreTimer *timer; + +// ModuleDef xmas_def; +// XmasWidget *xmas_widget; + + void _AddWidget(Widget *o); + void TimerTick(); + + public: + ActivityWidgetsView(Evas *evas, Evas_Object *parent); + ~ActivityWidgetsView(); + + virtual void resetView(); + + void dimView(); + + //Edje callbacks for widgets, so manager can delete them + void Callback(void *data, Evas_Object *edje, std::string emission, std::string source); + + void EditMode(); + void NormalMode(); + void ResetPosition() { for (uint i = 0;i < widgets.size();i++) widgets[i]->Reset(); } + void SaveWidgets(); + + void LoadWidgets(); + + bool AddWidget(ModuleDef &mtype, int x, int y, int w = 0, int h = 0, string id = ""); + void DeleteWidget(Widget *w); + void DeleteAllWidgets(); + + int size() { return widgets.size(); } + Widget *getWidget(int i) { return widgets[i]; } +}; + +#endif // ACTIVITYWIDGETSVIEW_H diff --git a/src/bin/calaos_home/views/BaseView.cpp b/src/bin/calaos_home/views/BaseView.cpp new file mode 100644 index 00000000..b2a257f5 --- /dev/null +++ b/src/bin/calaos_home/views/BaseView.cpp @@ -0,0 +1,41 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "BaseView.h" + +#include "ApplicationMain.h" + +BaseView::BaseView(Evas *e, Evas_Object *p): + EdjeObject(ApplicationMain::getTheme(), e), + parent(p), + controller(NULL) +{ + evas_object_data_set(edje, "BaseView", this); +} + +BaseView::~BaseView() +{ + view_deleted.emit(); +} + +void BaseView::objectDeleted() +{ + Utils::logger("root") << Priority::DEBUG << "BaseView: Edje object deleted (" << collection << ")" << log4cpp::eol; +} diff --git a/src/bin/calaos_home/views/BaseView.h b/src/bin/calaos_home/views/BaseView.h new file mode 100644 index 00000000..3a741cc4 --- /dev/null +++ b/src/bin/calaos_home/views/BaseView.h @@ -0,0 +1,61 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef BASEVIEW_H +#define BASEVIEW_H + +#include "config.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "EdjeObject.h" + +#include + +using namespace Utils; + +class ActivityController; +class BaseView: public EdjeObject +{ + protected: + Evas_Object *parent; + + virtual void objectDeleted(); + + public: + BaseView(Evas *evas, Evas_Object *parent); + virtual ~BaseView(); + + virtual string getTitle() { return "None"; } + + sigc::signal view_deleted; + + ActivityController *controller; +}; + +#endif // BASEVIEW_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.cpp new file mode 100644 index 00000000..fbbcc43d --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.cpp @@ -0,0 +1,143 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemAlbum.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemAlbum, Play) +ITEM_BUTTON_CALLBACK(GenlistItemAlbum, Add) + +GenlistItemAlbum::GenlistItemAlbum(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _item_id, int request_type, int _command_id, void *data): + GenlistItemBase(_evas, _parent, "browser/album", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_id(_item_id), + in_query(false), + cover_downloaded(false), + reqtype(request_type), + command_id(_command_id) +{ +} + +GenlistItemAlbum::~GenlistItemAlbum() +{ +} + +string GenlistItemAlbum::getLabelItem(Evas_Object *obj, string part) +{ + if (!in_query) + { + switch (reqtype) + { + case ALBUM_LIST: player->getDBAlbumItem(item_id, sigc::mem_fun(*this, &GenlistItemAlbum::albumItemGet_cb)); break; + case ALBUM_ARTIST: player->getDBAlbumArtistItem(item_id, command_id, sigc::mem_fun(*this, &GenlistItemAlbum::albumItemGet_cb)); break; + case ALBUM_YEAR: player->getDBAlbumYearItem(item_id, command_id, sigc::mem_fun(*this, &GenlistItemAlbum::albumItemGet_cb)); break; + } + + in_query = true; + } + + if (part == "album.text") + { + if (label_album == "") + return "Chargement ..."; + else + return label_album; + } + else if (part == "artist.text") + return label_artist; + else if (part == "year.text") + return label_year; + + return ""; +} + +Evas_Object *GenlistItemAlbum::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "calaos.cover" && + cover_downloaded && + ecore_file_exists(cover_fname.c_str())) + { + o = elm_icon_add(parent); + elm_image_file_set(o, cover_fname.c_str(), NULL); + elm_image_preload_disabled_set(o, false); + + elm_object_item_signal_emit(item, "show,cover", "calaos"); + } + + return o; +} + +void GenlistItemAlbum::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_ALBUM, item_infos["id"]); +} + +void GenlistItemAlbum::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_ALBUM, item_infos["id"]); +} + +void GenlistItemAlbum::albumItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + label_album = infos["name"]; + label_artist = infos["artist"]; + label_year = infos["year"]; + + player->getDBAlbumCoverItem(infos, sigc::mem_fun(*this, &GenlistItemAlbum::albumItemCoverGet_cb)); + + elm_genlist_item_update(item); +} + +void GenlistItemAlbum::albumItemCoverGet_cb(Params &res) +{ + if (res["filename"] == "") + return; + + if (!ecore_file_exists(res["filename"].c_str())) + return; + + cover_fname = res["filename"]; + cover_downloaded = true; + elm_genlist_item_update(item); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.h new file mode 100644 index 00000000..593acf8a --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbum.h @@ -0,0 +1,62 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GENLISTITEMALBUM_H +#define GENLISTITEMALBUM_H + +#include +#include + +using namespace Utils; + +class GenlistItemAlbum: public GenlistItemBase +{ + private: + string label_album, label_artist, label_year; + AudioPlayer *player; + int item_id; + Params item_infos; + bool in_query; + string cover_fname; + bool cover_downloaded; + int reqtype; + int command_id; + + void albumItemGet_cb(Params &infos); + void albumItemCoverGet_cb(Params &res); + + public: + enum { ALBUM_LIST, ALBUM_ARTIST, ALBUM_YEAR, ALBUM_GENRE }; + + GenlistItemAlbum(Evas *evas, Evas_Object *parent, AudioPlayer *player, int item_id, int request_type, int _command_id = 0, void *data = NULL); + virtual ~GenlistItemAlbum(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + + int getItemId() { return item_id; } + Params getItemInfos() { return item_infos; } +}; + +#endif // GENLISTITEMALBUM_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.cpp new file mode 100644 index 00000000..8012f5d4 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.cpp @@ -0,0 +1,154 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemAlbumHeader.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemAlbumHeader, Play) +ITEM_BUTTON_CALLBACK(GenlistItemAlbumHeader, Add) + +GenlistItemAlbumHeader::GenlistItemAlbumHeader(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, Params &_album_infos, int _album_id, void *data): + GenlistItemBase(_evas, _parent, "browser/album_header", ELM_GENLIST_ITEM_GROUP, data), + player(_player), + album_infos(_album_infos), + album_id(_album_id), + in_query(false), + cover_downloaded(false), + dltimer(NULL) +{ +} + +GenlistItemAlbumHeader::~GenlistItemAlbumHeader() +{ + DELETE_NULL(dltimer); +} + +string GenlistItemAlbumHeader::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (part == "text") + { + string album = "Album inconnu"; + if (album_infos.Exists("name")) album = album_infos["name"]; + text = album; + } + else if (part == "text.artist") + { + if (album_infos.Exists("artist")) + text = album_infos["artist"]; + else + text = "Na"; + } + else if (part == "text.album") + { + if (album_infos.Exists("name")) + text = album_infos["name"]; + else + text = "Na"; + } + else if (part == "text.year") + { + if (album_infos.Exists("year")) + text = album_infos["year"]; + else + text = "Na"; + } + else if (part == "text.count") + { + if (album_infos.Exists("count")) + text = album_infos["count"]; + else + text = "Na"; + } + + return text; +} + +Evas_Object *GenlistItemAlbumHeader::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/action_button/label"); + elm_object_text_set(o, "Ajouter"); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "calaos.cover") + { + if (cover_downloaded && + ecore_file_exists(cover_fname.c_str())) + { + o = elm_icon_add(parent); + elm_image_file_set(o, cover_fname.c_str(), NULL); + elm_image_preload_disabled_set(o, false); + + elm_object_item_signal_emit(item, "show,cover", "calaos"); + } + else + { + if (!dltimer) + { + dltimer = new EcoreTimer(0.2, (sigc::slot) + sigc::bind(sigc::mem_fun(*player, &AudioPlayer::getDBAlbumCoverItem), + album_infos, sigc::mem_fun(*this, &GenlistItemAlbumHeader::albumItemCoverGet_cb), AudioPlayer::AUDIO_COVER_SIZE_MEDIUM)); + } + } + } + + return o; +} + +void GenlistItemAlbumHeader::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_ALBUM, album_infos["id"]); +} + +void GenlistItemAlbumHeader::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_ALBUM, album_infos["id"]); +} + +void GenlistItemAlbumHeader::albumItemCoverGet_cb(Params &res) +{ + DELETE_NULL(dltimer); + if (res["filename"] == "") + return; + + if (!ecore_file_exists(res["filename"].c_str())) + return; + + cover_fname = res["filename"]; + cover_downloaded = true; + + elm_genlist_item_fields_update(item, "calaos.cover", ELM_GENLIST_ITEM_FIELD_CONTENT); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.h new file mode 100644 index 00000000..97f1bc54 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemAlbumHeader.h @@ -0,0 +1,56 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemAlbumHeader_H +#define GenlistItemAlbumHeader_H + +#include +#include + +using namespace Utils; + +class GenlistItemAlbumHeader: public GenlistItemBase +{ + private: + AudioPlayer *player; + Params album_infos; + int album_id; + bool in_query; + string cover_fname; + bool cover_downloaded; + + EcoreTimer *dltimer; + + void albumItemGet_cb(Params &infos); + void albumItemCoverGet_cb(Params &res); + + public: + GenlistItemAlbumHeader(Evas *evas, Evas_Object *parent, AudioPlayer *player, Params &album_infos, int album_id, void *data = NULL); + virtual ~GenlistItemAlbumHeader(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); +}; + +#endif // GenlistItemAlbumHeader_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.cpp new file mode 100644 index 00000000..25cf19e1 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.cpp @@ -0,0 +1,115 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemArtist.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemArtist, Play) +ITEM_BUTTON_CALLBACK(GenlistItemArtist, Add) + +GenlistItemArtist::GenlistItemArtist(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _item_id, int request_type, int _command_id, void *data): + GenlistItemBase(_evas, _parent, "browser/default", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_id(_item_id), + in_query(false), + reqtype(request_type), + command_id(_command_id) +{ +} + +GenlistItemArtist::~GenlistItemArtist() +{ +} + +string GenlistItemArtist::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!in_query) + { + switch (reqtype) + { + case ARTIST_LIST: player->getDBArtistItem(item_id, sigc::mem_fun(*this, &GenlistItemArtist::artistItemGet_cb)); break; + case ARTIST_GENRE: player->getDBArtistGenreItem(item_id, command_id, sigc::mem_fun(*this, &GenlistItemArtist::artistItemGet_cb)); break; + } + + in_query = true; + } + + if (part == "text") + { + if (item_infos.size() <= 0) + text = "Chargement..."; + else + text = item_infos["name"]; + } + + return text; +} + +Evas_Object *GenlistItemArtist::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), "calaos/icons/genlist/note_on"); + } + + return o; +} + +void GenlistItemArtist::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_ARTIST, item_infos["id"]); +} + +void GenlistItemArtist::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_ARTIST, item_infos["id"]); +} + +void GenlistItemArtist::artistItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.h new file mode 100644 index 00000000..e22c77d5 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemArtist.h @@ -0,0 +1,58 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemArtist_H +#define GenlistItemArtist_H + +#include +#include + +using namespace Utils; + +class GenlistItemArtist: public GenlistItemBase +{ + private: + AudioPlayer *player; + int item_id; + Params item_infos; + bool in_query; + int reqtype; + int command_id; + + void artistItemGet_cb(Params &infos); + + public: + enum { ARTIST_LIST, ARTIST_GENRE }; + + GenlistItemArtist(Evas *evas, Evas_Object *parent, AudioPlayer *player, int item_id, int request_type, int _command_id = 0, void *data = NULL); + virtual ~GenlistItemArtist(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + + int getItemId() { return item_id; } + Params getItemInfos() { return item_infos; } +}; + +#endif // GenlistItemArtist_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemBase.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemBase.cpp new file mode 100644 index 00000000..565b60ac --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemBase.cpp @@ -0,0 +1,226 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemBase.h" + +static Evas_Object *_item_part_get(void *data, Evas_Object *obj, const char *part); +static void _item_delete(void *data, Evas_Object *obj); +static Eina_Bool _item_state(void *data, Evas_Object *obj, const char *part); +static char *_item_label(void *data, Evas_Object *obj, const char *part); +static void _item_sel_cb(void *data, Evas_Object *obj, void *event_info); + +GenlistItemBase::GenlistItemBase(Evas *_evas, Evas_Object *_parent, string _style, Elm_Genlist_Item_Type _flags, void *select_user_data): + evas(_evas), + parent(_parent), + genlist(NULL), + item(NULL), + style(_style), + user_data(select_user_data), + flags(_flags), + autodel_userdata(NULL) +{ + item_class.item_style = style.c_str(); + item_class.func.text_get = _item_label; + item_class.func.content_get = _item_part_get; + item_class.func.state_get = _item_state; + item_class.func.del = _item_delete; +} + +GenlistItemBase::~GenlistItemBase() +{ + if (autodel_userdata) + { + (*autodel_userdata)(user_data); + delete autodel_userdata; + } + + Utils::logger("root") << Priority::DEBUG << "GenlistItemBase: item deleted" << log4cpp::eol; +} + +void GenlistItemBase::Append(Evas_Object *_genlist, GenlistItemBase *gparent) +{ + genlist = _genlist; + item = elm_genlist_item_append(genlist, + &item_class, + this, + (gparent)?gparent->item:NULL, /* parent item */ + flags, + _item_sel_cb, /* select function */ + this); /* select function data */ + elm_object_item_data_set(item, this); + itemAdded(); +} + +void GenlistItemBase::Prepend(Evas_Object *_genlist, GenlistItemBase *gparent) +{ + genlist = _genlist; + item = elm_genlist_item_prepend(genlist, + &item_class, + this, + (gparent)?gparent->item:NULL, /* parent item */ + flags, + _item_sel_cb, /* select function */ + this); /* select function data */ + elm_object_item_data_set(item, this); + itemAdded(); +} + +void GenlistItemBase::InsertBefore(Evas_Object *_genlist, GenlistItemBase *before, GenlistItemBase *gparent) +{ + genlist = _genlist; + item = elm_genlist_item_insert_before(genlist, + &item_class, + this, + (gparent)?gparent->item:NULL, /* parent item */ + before->item, + flags, + _item_sel_cb, /* select function */ + this); /* select function data */ + elm_object_item_data_set(item, this); + itemAdded(); +} + +void GenlistItemBase::InsertAfter(Evas_Object *_genlist, GenlistItemBase *after, GenlistItemBase *gparent) +{ + genlist = _genlist; + item = elm_genlist_item_insert_after(genlist, + &item_class, + this, + (gparent)?gparent->item:NULL, /* parent item */ + after->item, + flags, + _item_sel_cb, /* select function */ + this); /* select function data */ + elm_object_item_data_set(item, this); + itemAdded(); +} + +void GenlistItemBase::ShowItem(Elm_Genlist_Item_Scrollto_Type type) +{ + elm_genlist_item_show(item, type); +} + +void GenlistItemBase::BringInItem(Elm_Genlist_Item_Scrollto_Type type) +{ + elm_genlist_item_bring_in(item, type); +} + +Evas_Object *GenlistItemBase::getPartItem(Evas_Object *obj, string part) +{ + return NULL; +} + +string GenlistItemBase::getLabelItem(Evas_Object *obj, string part) +{ + return "none"; +} + +bool GenlistItemBase::getStateItem(Evas_Object *obj, string part) +{ + return false; +} + +void GenlistItemBase::itemEmitSignal(string signal, string source) +{ + if (!item) return; + + elm_object_item_signal_emit(item, signal.c_str(), source.c_str()); +} + +void GenlistItemBase::emitSelectedSignal() +{ + item_selected.emit(user_data); +} + +GenlistItemBase * GenlistItemBase::getPreviousItem() +{ + Elm_Object_Item *it = elm_genlist_item_prev_get(item); + if (!it) return NULL; + GenlistItemBase *prev = reinterpret_cast(elm_object_item_data_get(it)); + return prev; +} + +GenlistItemBase * GenlistItemBase::getNextItem() +{ + Elm_Object_Item *it = elm_genlist_item_next_get(item); + if (!it) return NULL; + GenlistItemBase *next = reinterpret_cast(elm_object_item_data_get(it)); + return next; +} + +Evas_Object *_item_part_get(void *data, Evas_Object *obj, const char *part) +{ + GenlistItemBase *item = reinterpret_cast(data); + if (!item) + { + Utils::logger("home") << Priority::ERROR << "GenlistItemBase : _item_part_get(): Can't cast data !" << log4cpp::eol; + return NULL; + } + + return item->getPartItem(obj, part); +} + +void _item_delete(void *data, Evas_Object *obj) +{ + GenlistItemBase *item = reinterpret_cast(data); + if (!item) + { + Utils::logger("home") << Priority::ERROR << "GenlistItemBase : _item_delete(): Can't cast data !" << log4cpp::eol; + return; + } + + delete item; +} + +Eina_Bool _item_state(void *data, Evas_Object *obj, const char *part) +{ + GenlistItemBase *item = reinterpret_cast(data); + if (!item) + { + Utils::logger("home") << Priority::ERROR << "GenlistItemBase : _item_state(): Can't cast data !" << log4cpp::eol; + return false; + } + + return item->getStateItem(obj, part); +} + +char *_item_label(void *data, Evas_Object *obj, const char *part) +{ + GenlistItemBase *item = reinterpret_cast(data); + if (!item) + { + Utils::logger("home") << Priority::ERROR << "GenlistItemBase : _item_label(): Can't cast data !" << log4cpp::eol; + return NULL; + } + + return strdup(item->getLabelItem(obj, part).c_str()); +} + +void _item_sel_cb(void *data, Evas_Object *obj, void *event_info) +{ + GenlistItemBase *item = reinterpret_cast(data); + if (!item) + { + Utils::logger("home") << Priority::ERROR << "GenlistItemBase : _item_sel_cb(): Can't cast data !" << log4cpp::eol; + return; + } + item->emitSelectedSignal(); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemBase.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemBase.h new file mode 100644 index 00000000..92b5a039 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemBase.h @@ -0,0 +1,92 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GENLISTITEMBASE_H +#define GENLISTITEMBASE_H + +#include +#include + +using namespace Utils; + +//This macro is used to add a C callback for elementary buttons on items +#define ITEM_BUTTON_CALLBACK(_class, it_name) \ +static void _item_button_##it_name(void *data, Evas_Object *obj, void *event_info) \ +{ _class *c = reinterpret_cast<_class *>(data); if (data) c->buttonClick##it_name(); } + +class GenlistItemBase: public sigc::trackable +{ + protected: + Evas *evas; + Evas_Object *parent; + Evas_Object *genlist; + + Elm_Object_Item *item; + + Elm_Genlist_Item_Class item_class; + string style; + + void *user_data; + Elm_Genlist_Item_Type flags; + + DeletorBase *autodel_userdata; + + virtual void itemAdded() {} //item was added to a genlist + + public: + GenlistItemBase(Evas *evas, Evas_Object *parent, string style, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE, void *select_user_data = NULL); + virtual ~GenlistItemBase(); + + //Add item to genlist + void Append(Evas_Object *genlist, GenlistItemBase *gparent = NULL); + void Prepend(Evas_Object *genlist, GenlistItemBase *gparent = NULL); + void InsertBefore(Evas_Object *genlist, GenlistItemBase *before, GenlistItemBase *gparent = NULL); + void InsertAfter(Evas_Object *genlist, GenlistItemBase *after, GenlistItemBase *gparent = NULL); + + void RemoveItem() { elm_object_item_del(item); } + GenlistItemBase *getPreviousItem(); + GenlistItemBase *getNextItem(); + + void ShowItem(Elm_Genlist_Item_Scrollto_Type type); + void BringInItem(Elm_Genlist_Item_Scrollto_Type type); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + virtual bool getStateItem(Evas_Object *obj, string part); + + void setSelected(bool sel) { elm_genlist_item_selected_set(item, sel); } + bool isSelected() { return elm_genlist_item_selected_get(item); } + + void updateField(string part, Elm_Genlist_Item_Field_Type type) { elm_genlist_item_fields_update(item, part.c_str(), type); } + + sigc::signal item_selected; + + void setUserData(void *data) { user_data = data; } + void *getUserData() { return user_data; } + void setAutoDeleteUserData(DeletorBase *how_to_delete_user_data) { autodel_userdata = how_to_delete_user_data; } + + void itemEmitSignal(string signal, string source); + + //Used by C callback + void emitSelectedSignal(); +}; + +#endif // GENLISTITEMBASE_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.cpp new file mode 100644 index 00000000..a3666c4c --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.cpp @@ -0,0 +1,118 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemBrowserPlaylist.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemBrowserPlaylist, Play) +ITEM_BUTTON_CALLBACK(GenlistItemBrowserPlaylist, Add) + +GenlistItemBrowserPlaylist::GenlistItemBrowserPlaylist(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _item_id, void *data): + GenlistItemBase(_evas, _parent, "browser/default", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_id(_item_id), + in_query(false), + no_query(false) +{ +} + +GenlistItemBrowserPlaylist::GenlistItemBrowserPlaylist(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, Params &infos, void *data): + GenlistItemBase(_evas, _parent, "browser/default", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_infos(infos), + in_query(false), + no_query(true) +{ +} + +GenlistItemBrowserPlaylist::~GenlistItemBrowserPlaylist() +{ +} + +string GenlistItemBrowserPlaylist::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!in_query) + { + if (!no_query) player->getDBPlaylistItem(item_id, sigc::mem_fun(*this, &GenlistItemBrowserPlaylist::playlistItemGet_cb)); + in_query = true; + } + + if (part == "text") + { + if (item_infos.size() <= 0) + text = "Chargement..."; + else + text = item_infos["name"]; + } + + return text; +} + +Evas_Object *GenlistItemBrowserPlaylist::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), "calaos/icons/genlist/playlist"); + } + + return o; +} + +void GenlistItemBrowserPlaylist::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_PLAYLIST, item_infos["id"]); +} + +void GenlistItemBrowserPlaylist::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_PLAYLIST, item_infos["id"]); +} + +void GenlistItemBrowserPlaylist::playlistItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.h new file mode 100644 index 00000000..6469ff36 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemBrowserPlaylist.h @@ -0,0 +1,56 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemBrowserPlaylist_H +#define GenlistItemBrowserPlaylist_H + +#include +#include + +using namespace Utils; + +class GenlistItemBrowserPlaylist: public GenlistItemBase +{ + private: + AudioPlayer *player; + int item_id; + Params item_infos; + bool in_query; + bool no_query; + + void playlistItemGet_cb(Params &infos); + + public: + GenlistItemBrowserPlaylist(Evas *evas, Evas_Object *parent, AudioPlayer *player, int item_id, void *data = NULL); + GenlistItemBrowserPlaylist(Evas *evas, Evas_Object *parent, AudioPlayer *player, Params &infos, void *data = NULL); + virtual ~GenlistItemBrowserPlaylist(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + + int getItemId() { return item_id; } + Params getItemInfos() { return item_infos; } +}; + +#endif // GenlistItemBrowserPlaylist_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.cpp new file mode 100644 index 00000000..ae443f69 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.cpp @@ -0,0 +1,108 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemGenre.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemGenre, Play) +ITEM_BUTTON_CALLBACK(GenlistItemGenre, Add) + +GenlistItemGenre::GenlistItemGenre(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _item_id, void *data): + GenlistItemBase(_evas, _parent, "browser/default", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_id(_item_id), + in_query(false) +{ +} + +GenlistItemGenre::~GenlistItemGenre() +{ +} + +string GenlistItemGenre::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!in_query) + { + player->getDBGenreItem(item_id, sigc::mem_fun(*this, &GenlistItemGenre::genreItemGet_cb)); + in_query = true; + } + + if (part == "text") + { + if (item_infos.size() <= 0) + text = "Chargement..."; + else + text = item_infos["name"]; + } + + return text; +} + +Evas_Object *GenlistItemGenre::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), "calaos/icons/genlist/note_on"); + } + + return o; +} + +void GenlistItemGenre::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_GENRE, item_infos["id"]); +} + +void GenlistItemGenre::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_GENRE, item_infos["id"]); +} + +void GenlistItemGenre::genreItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.h new file mode 100644 index 00000000..80bd59c5 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemGenre.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemGenre_H +#define GenlistItemGenre_H + +#include +#include + +using namespace Utils; + +class GenlistItemGenre: public GenlistItemBase +{ + private: + AudioPlayer *player; + int item_id; + Params item_infos; + bool in_query; + + void genreItemGet_cb(Params &infos); + + public: + GenlistItemGenre(Evas *evas, Evas_Object *parent, AudioPlayer *player, int item_id, void *data = NULL); + virtual ~GenlistItemGenre(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + + int getItemId() { return item_id; } + Params getItemInfos() { return item_infos; } +}; + +#endif // GenlistItemGenre_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.cpp new file mode 100644 index 00000000..f0c3ad1e --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.cpp @@ -0,0 +1,217 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemPlaylist.h" +#include +#include +#include + +ITEM_BUTTON_CALLBACK(GenlistItemPlaylist, Play) +ITEM_BUTTON_CALLBACK(GenlistItemPlaylist, More) + +GenlistItemPlaylist::GenlistItemPlaylist(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _playlist_item, void *data): + GenlistItemBase(_evas, _parent, "playlist", ELM_GENLIST_ITEM_NONE, data), + player(_player), + playlist_item(_playlist_item) +{ +} + +GenlistItemPlaylist::~GenlistItemPlaylist() +{ +} + +string GenlistItemPlaylist::getLabelItem(Evas_Object *obj, string part) +{ + if (label != "") + return label; + + player->getPlaylistItem(playlist_item, sigc::mem_fun(*this, &GenlistItemPlaylist::playlistItemGet_cb)); + + return "Chargement ..."; +} + +Evas_Object *GenlistItemPlaylist::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.more") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/button/position/info"); + evas_object_smart_callback_add(o, "clicked", _item_button_More, this); + } + + return o; +} + +void GenlistItemPlaylist::buttonClickPlay() +{ + player->playItem(playlist_item); +} + +void GenlistItemPlaylist::buttonClickMore() +{ + Evas_Object *table = createPaddingTable(evas, parent, 260, 200); + + Evas_Object *glist = elm_genlist_add(parent); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Info de la piste #" + to_string(playlist_item + 1) + "
      Détails de la piste."; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + string infolabel; + if (label == "") + { + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Chargement", "..."); + item->Append(glist, header); + } + else + { + if (item_infos["artist"] != "") + { + infolabel = item_infos["artist"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Artiste :", infolabel); + item->Append(glist, header); + } + if (item_infos["album"] != "") + { + infolabel = item_infos["album"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Album :", infolabel); + item->Append(glist, header); + } + if (item_infos["title"] != "") + { + infolabel = item_infos["title"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Titre :", infolabel); + item->Append(glist, header); + } + if (item_infos["duration"] != "") + { + double dur; + from_string(item_infos["duration"], dur); + infolabel = Utils::time2string_digit((long)dur); + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Durée :", infolabel); + item->Append(glist, header); + } + if (item_infos["genre"] != "") + { + infolabel = item_infos["genre"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Genre :", infolabel); + item->Append(glist, header); + } + if (item_infos["type"] != "") + { + infolabel = item_infos["type"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Type de flux :", infolabel); + item->Append(glist, header); + } + if (item_infos["bitrate"] != "") + { + infolabel = item_infos["bitrate"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Débit :", infolabel); + item->Append(glist, header); + } + if (item_infos["filesize"] != "") + { + long int s; + from_string(item_infos["filesize"], s); + s /= 1024; + s /= 1024; + infolabel = to_string(s) + " Mo"; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Taille :", infolabel); + item->Append(glist, header); + } + if (item_infos["samplerate"] != "") + { + infolabel = item_infos["samplerate"] + " Hz"; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Echantillonage :", infolabel); + item->Append(glist, header); + } + if (item_infos["tagversion"] != "") + { + infolabel = item_infos["tagversion"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Version du tag :", infolabel); + item->Append(glist, header); + } + if (item_infos["comment"] != "") + { + infolabel = item_infos["comment"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Commentaire :", infolabel); + item->Append(glist, header); + } + + GenlistItemSimple *item = new GenlistItemSimple(evas, glist, "Supprimer la piste", true); + item->Append(glist, header); + item->setIcon("calaos/icons/genlist/trash"); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemPlaylist::playlistItemDelete_cb)); + } + + elm_table_pack(table, glist, 1, 1, 1, 1); + + popup_infos = elm_ctxpopup_add(parent); + elm_object_style_set(popup_infos, "calaos"); + evas_object_size_hint_min_set(popup_infos, 300, 240); + + elm_object_content_set(popup_infos, table); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup_infos, x, y); + evas_object_show(popup_infos); +} + +void GenlistItemPlaylist::playlistItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + label = ""; + if (infos["artist"] != "" && infos["title"] != "") + label += infos["artist"] + " - " + infos["title"]; + else if (infos["artist"] != "") + label += infos["artist"]; + else if (infos["title"] != "") + label += infos["title"]; + else + label = "?????"; + + elm_genlist_item_update(item); +} + +void GenlistItemPlaylist::playlistItemDelete_cb(void *data) +{ + evas_object_hide(popup_infos); + player->removePlaylistItem(playlist_item); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.h new file mode 100644 index 00000000..8178aee4 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylist.h @@ -0,0 +1,53 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GENLISTITEMPLAYLIST_H +#define GENLISTITEMPLAYLIST_H + +#include +#include + +using namespace Utils; + +class GenlistItemPlaylist: public GenlistItemBase +{ + private: + string label; + AudioPlayer *player; + int playlist_item; + Params item_infos; + Evas_Object *popup_infos; + + void playlistItemGet_cb(Params &infos); + void playlistItemDelete_cb(void *data); + + public: + GenlistItemPlaylist(Evas *evas, Evas_Object *parent, AudioPlayer *player, int playlist_item, void *data = NULL); + virtual ~GenlistItemPlaylist(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickMore(); +}; + +#endif // GENLISTITEMPLAYLIST_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.cpp new file mode 100644 index 00000000..123f7459 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.cpp @@ -0,0 +1,99 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemPlaylistHeader.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemPlaylistHeader, Play) +ITEM_BUTTON_CALLBACK(GenlistItemPlaylistHeader, Add) +ITEM_BUTTON_CALLBACK(GenlistItemPlaylistHeader, Del) + +GenlistItemPlaylistHeader::GenlistItemPlaylistHeader(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, Params &playlist_infos, int playlist_id, void *data): + GenlistItemBase(_evas, _parent, "browser/playlist_header", ELM_GENLIST_ITEM_GROUP, data), + player(_player), + pl_infos(playlist_infos), + pl_id(playlist_id) +{ +} + +GenlistItemPlaylistHeader::~GenlistItemPlaylistHeader() +{ +} + +string GenlistItemPlaylistHeader::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (part == "text") + text = "Liste de lecture: " + pl_infos["name"] + ""; + else if (part == "text.count") + text = pl_infos["count"]; + + return text; +} + +Evas_Object *GenlistItemPlaylistHeader::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "calaos.button.del") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/action_button/label"); + elm_object_text_set(o, "Supprimer"); + evas_object_smart_callback_add(o, "clicked", _item_button_Del, this); + } + + return o; +} + +void GenlistItemPlaylistHeader::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_PLAYLIST, pl_infos["id"]); +} + +void GenlistItemPlaylistHeader::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_PLAYLIST, pl_infos["id"]); +} + +void GenlistItemPlaylistHeader::buttonClickDel() +{ + player->playlistDelete(pl_infos["id"]); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.h new file mode 100644 index 00000000..1b15960f --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemPlaylistHeader.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemPlaylistHeader_H +#define GenlistItemPlaylistHeader_H + +#include +#include + +using namespace Utils; + +class GenlistItemPlaylistHeader: public GenlistItemBase +{ + private: + AudioPlayer *player; + Params pl_infos; + int pl_id; + + public: + GenlistItemPlaylistHeader(Evas *evas, Evas_Object *parent, AudioPlayer *player, Params &playlist_infos, int playlist_id, void *data = NULL); + virtual ~GenlistItemPlaylistHeader(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + void buttonClickDel(); +}; + +#endif // GenlistItemPlaylistHeader_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.cpp new file mode 100644 index 00000000..2f7c8f5c --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.cpp @@ -0,0 +1,96 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemRadio.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemRadio, Play) +ITEM_BUTTON_CALLBACK(GenlistItemRadio, Add) + +GenlistItemRadio::GenlistItemRadio(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, Params item, void *data): + GenlistItemBase(_evas, _parent, "browser/default/noselect", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_infos(item) +{ +} + +GenlistItemRadio::~GenlistItemRadio() +{ +} + +string GenlistItemRadio::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (part == "text") + text = item_infos["name"]; + + return text; +} + +Evas_Object *GenlistItemRadio::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), "calaos/icons/genlist/radio"); + } + + return o; +} + +void GenlistItemRadio::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_RADIO, item_infos["id"] + ":" + item_infos["radio_id"]); +} + +void GenlistItemRadio::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_RADIO, item_infos["id"] + ":" + item_infos["radio_id"]); +} + +void GenlistItemRadio::genreItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.h new file mode 100644 index 00000000..b27ac17a --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemRadio.h @@ -0,0 +1,51 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemRadio_H +#define GenlistItemRadio_H + +#include +#include + +using namespace Utils; + +class GenlistItemRadio: public GenlistItemBase +{ + private: + AudioPlayer *player; + Params item_infos; + + void genreItemGet_cb(Params &infos); + + public: + GenlistItemRadio(Evas *evas, Evas_Object *parent, AudioPlayer *player, Params item, void *data = NULL); + virtual ~GenlistItemRadio(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + + Params getItemInfos() { return item_infos; } +}; + +#endif // GenlistItemRadio_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.cpp new file mode 100644 index 00000000..e6e9c505 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.cpp @@ -0,0 +1,438 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemScenarioAction.h" +#include + +#include +#include + +ITEM_BUTTON_CALLBACK(GenlistItemScenarioAction, Edit) + +GenlistItemScenarioAction::GenlistItemScenarioAction(Evas *_evas, Evas_Object *_parent, ScenarioData &scd, int step, int _action, void *data): + GenlistItemBase(_evas, _parent, "scenario/action", ELM_GENLIST_ITEM_NONE, data), + scenario_data(scd), + sc_step(step), + sc_action(_action) +{ + ScenarioAction &ac = getAction(); + action = ac.io->getActionFromState(); +} + +GenlistItemScenarioAction::~GenlistItemScenarioAction() +{ +} + +ScenarioAction &GenlistItemScenarioAction::getAction() +{ + if (sc_step == ScenarioData::END_STEP) + return scenario_data.step_end.actions[sc_action]; + + return scenario_data.steps[sc_step].actions[sc_action]; +} + +string GenlistItemScenarioAction::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (part == "text") + { + ScenarioAction &ac = getAction(); + text = ac.io->params["name"]; + } + else if (part == "action.text") + { + ScenarioAction &ac = getAction(); + text = action.getComputedTitle(ac.io); + } + + return text; +} + +Evas_Object *GenlistItemScenarioAction::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.edit") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/edit"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Edit, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + ScenarioAction &ac = getAction(); + elm_image_file_set(o, ApplicationMain::getTheme(), ac.io->getIconForIO().c_str()); + } + + return o; +} + +void GenlistItemScenarioAction::buttonClickEdit() +{ + Evas_Object *table = createPaddingTable(evas, parent, 280, 255); + + pager_action = elm_naviframe_add(parent); + evas_object_show(pager_action); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Edition de l'élément
      Choisissez l'action qui sera executé."; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *del_item = new GenlistItemSimple(evas, glist, "Supprimer cette action", true); + del_item->Append(glist, header); + del_item->setIcon("calaos/icons/genlist/trash"); + del_item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioAction::deleteItemSelected)); + + createActionList(glist, header); + + elm_table_pack(table, glist, 1, 1, 1, 1); + + popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, pager_action); + elm_object_style_set(popup, "calaos"); + elm_ctxpopup_direction_priority_set(popup, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_RIGHT); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); + + elm_naviframe_item_push(pager_action, NULL, NULL, NULL, table, "calaos"); +} + +void GenlistItemScenarioAction::deleteItemSelected(void *data) +{ + elm_ctxpopup_dismiss(popup); + + delete_action.emit(this, data); +} + +void GenlistItemScenarioAction::createActionList(Evas_Object *glist, GenlistItemBase *header) +{ + GenlistItemSimple *it = NULL; + + ScenarioAction &ac_current = getAction(); + vector v = ac_current.io->getActionList(); + + for (uint i = 0;i < v.size();i++) + { + IOActionList &ac = v[i]; + ac.copyValueFrom(action); + + if (ac.type == IOActionList::ACTION_SIMPLE) + it = new GenlistItemSimple(evas, glist, ac.title, true); + else + it = new GenlistItemSimple(evas, glist, ac.title, true, false, NULL, "disclosure"); + + it->setIcon("calaos/icons/genlist/action"); + it->Append(glist, header); + + if (ac.type == IOActionList::ACTION_SIMPLE) + it->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioAction::actionSimple), ac)); + else if (ac.type == IOActionList::ACTION_SLIDER) + it->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioAction::actionSlider), ac)); + else if (ac.type == IOActionList::ACTION_NUMBER) + it->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioAction::actionNumber), ac)); + else if (ac.type == IOActionList::ACTION_TEXT) + it->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioAction::actionText), ac)); + else if (ac.type == IOActionList::ACTION_TIME_MS) + it->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioAction::actionTime), ac)); + else if (ac.type == IOActionList::ACTION_COLOR) + it->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioAction::actionColor), ac)); + } +} + +void GenlistItemScenarioAction::actionSimple(void *data, IOActionList ac) +{ + action = ac; + if (sc_step == ScenarioData::END_STEP) + scenario_data.step_end.actions[sc_action].action = + action.getComputedAction(scenario_data.step_end.actions[sc_action].io); + else + scenario_data.steps[sc_step].actions[sc_action].action = + action.getComputedAction(scenario_data.steps[sc_step].actions[sc_action].io); + + elm_genlist_item_fields_update(item, "action.text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioAction::buttonBackClick(void *data, Evas_Object *edje_object, string emission, string source) +{ + elm_naviframe_item_pop(pager_action); +} + +void GenlistItemScenarioAction::buttonValidClick(void *data, Evas_Object *edje_object, string emission, string source) +{ + action = action_temp; + if (sc_step == ScenarioData::END_STEP) + scenario_data.step_end.actions[sc_action].action = + action.getComputedAction(scenario_data.step_end.actions[sc_action].io); + else + scenario_data.steps[sc_step].actions[sc_action].action = + action.getComputedAction(scenario_data.steps[sc_step].actions[sc_action].io); + + elm_genlist_item_fields_update(item, "action.text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioAction::buttonValidTimeClick(void *data, Evas_Object *edje_object, string emission, string source) +{ + action = action_temp; + action.dvalue = elm_spinner_value_get(spin_hours) * 60.0 * 60.0 * 1000.0 + + elm_spinner_value_get(spin_min) * 60.0 * 1000.0 + + elm_spinner_value_get(spin_sec) * 1000.0 + + elm_spinner_value_get(spin_ms); + + elm_genlist_item_fields_update(item, "action.text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioAction::actionSlider(void *data, IOActionList ac) +{ + action_temp = ac; + + page = new EdjeObject(ApplicationMain::getTheme(), evas); + page->LoadEdje("calaos/popup/page/slider"); + page->setAutoDelete(true); + page->addCallback("button.back", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonBackClick)); + page->addCallback("button.valid", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonValidClick)); + page->addCallback("slider_obj:object", "*", sigc::mem_fun(*this, &GenlistItemScenarioAction::sliderSignalCallback)); + page->setDragValue("slider", action_temp.dvalue / 100.0, 0.0); + string t = "Choisir la valeur
      " + ac.title + ""; + page->setPartText("text", t); + + elm_naviframe_item_push(pager_action, NULL, NULL, NULL, page->getEvasObject(), "calaos"); +} + +void GenlistItemScenarioAction::sliderSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (emission == "slider,changed") + { + double x; + page->getDragValue("slider", &x, NULL); + + action_temp.dvalue = (int)(x * 100.0); + } +} + +void GenlistItemScenarioAction::actionNumber(void *data, IOActionList ac) +{ + action_temp = ac; + + page = new EdjeObject(ApplicationMain::getTheme(), evas); + page->LoadEdje("calaos/popup/page/number"); + page->setAutoDelete(true); + page->addCallback("button.back", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonBackClick)); + page->addCallback("button.valid", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonValidClick)); + page->addCallback("button.pad.*", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::numberSignalCallback)); + string t = "Choisir un nombre
      " + ac.title + ""; + page->setPartText("text", t); + page->setPartText("value", to_string(action_temp.dvalue)); + + elm_naviframe_item_push(pager_action, NULL, NULL, NULL, page->getEvasObject(), "calaos"); +} + +void GenlistItemScenarioAction::numberSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + string val = page->getPartText("value"); + + if (source == "button.pad.0") val += "0"; + else if (source == "button.pad.1") val += "1"; + else if (source == "button.pad.2") val += "2"; + else if (source == "button.pad.3") val += "3"; + else if (source == "button.pad.4") val += "4"; + else if (source == "button.pad.5") val += "5"; + else if (source == "button.pad.6") val += "6"; + else if (source == "button.pad.7") val += "7"; + else if (source == "button.pad.8") val += "8"; + else if (source == "button.pad.9") val += "9"; + else if (source == "button.pad.dot") + { + if (val.find('.') == string::npos) + val += "."; + } + else if (source == "button.pad.del") + { + if (val.length() > 0) + val.erase(val.end() - 1); + } + + if (val.length() > 1 && val[val.length()] != '0') + while (val[0] == '0') val.erase(val.begin()); + + if (val.length() == 0) + val = "0"; + + page->setPartText("value", val); + from_string(val, action_temp.dvalue); +} + +void GenlistItemScenarioAction::actionText(void *data, IOActionList ac) +{ + action_temp = ac; + + //TODO! +} + +void GenlistItemScenarioAction::actionTime(void *data, IOActionList ac) +{ + action_temp = ac; + + page = new EdjeObject(ApplicationMain::getTheme(), evas); + page->LoadEdje("calaos/popup/page/time"); + page->setAutoDelete(true); + page->addCallback("button.back", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonBackClick)); + page->addCallback("button.valid", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonValidTimeClick)); + string t = "Choisir une durée
      " + ac.title + ""; + page->setPartText("text", t); + + double sec = action_temp.dvalue / 1000.0; + long ms = (long)action_temp.dvalue % 1000; + int hours = (int)(sec / 3600.0); + sec -= hours * 3600; + int min = (int)(sec / 60.0); + sec -= min * 60; + + spin_hours = elm_spinner_add(parent); + elm_object_style_set(spin_hours, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_hours, "%.0f
      Heures"); + elm_spinner_min_max_set(spin_hours, 0, 99); + elm_spinner_step_set(spin_hours, 1); + elm_spinner_interval_set(spin_hours, 0.15); + elm_spinner_value_set(spin_hours, hours); + evas_object_show(spin_hours); + page->Swallow(spin_hours, "spinner.hours", true); + + spin_min = elm_spinner_add(parent); + elm_object_style_set(spin_min, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_min, "%.0f
      Min."); + elm_spinner_min_max_set(spin_min, 0, 59); + elm_spinner_step_set(spin_min, 1); + elm_spinner_interval_set(spin_min, 0.15); + elm_spinner_value_set(spin_min, min); + evas_object_show(spin_min); + page->Swallow(spin_min, "spinner.minutes", true); + + spin_sec = elm_spinner_add(parent); + elm_object_style_set(spin_sec, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_sec, "%.0f
      Sec."); + elm_spinner_min_max_set(spin_sec, 0, 59); + elm_spinner_step_set(spin_sec, 1); + elm_spinner_interval_set(spin_sec, 0.15); + elm_spinner_value_set(spin_sec, sec); + evas_object_show(spin_sec); + page->Swallow(spin_sec, "spinner.seconds", true); + + spin_ms = elm_spinner_add(parent); + elm_object_style_set(spin_ms, "calaos/time/vertical"); + elm_spinner_label_format_set(spin_ms, "%.0f
      Ms."); + elm_spinner_min_max_set(spin_ms, 0, 999); + elm_spinner_step_set(spin_ms, 1); + elm_spinner_interval_set(spin_ms, 0.15); + elm_spinner_value_set(spin_ms, ms); + evas_object_show(spin_ms); + page->Swallow(spin_ms, "spinner.miliseconds", true); + + elm_naviframe_item_push(pager_action, NULL, NULL, NULL, page->getEvasObject(), "calaos"); +} + +void GenlistItemScenarioAction::actionColor(void *data, IOActionList ac) +{ + action_temp = ac; + + page = new EdjeObject(ApplicationMain::getTheme(), evas); + page->LoadEdje("calaos/popup/page/color"); + page->setAutoDelete(true); + page->addCallback("button.back", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonBackClick)); + page->addCallback("button.valid", "pressed", sigc::mem_fun(*this, &GenlistItemScenarioAction::buttonValidClick)); + page->addCallback("slider.red:object", "*", sigc::mem_fun(*this, &GenlistItemScenarioAction::sliderRedSignalCallback)); + page->addCallback("slider.green:object", "*", sigc::mem_fun(*this, &GenlistItemScenarioAction::sliderGreenSignalCallback)); + page->addCallback("slider.blue:object", "*", sigc::mem_fun(*this, &GenlistItemScenarioAction::sliderBlueSignalCallback)); + page->setDragValue("slider", action_temp.dvalue / 100.0, 0.0); + string t = "Choisir la couleur
      " + ac.title + ""; + page->setPartText("text", t); + + page->setDragValue("slider.red:slider", action_temp.red / 100.0, 0.0); + page->setDragValue("slider.green:slider", action_temp.green / 100.0, 0.0); + page->setDragValue("slider.blue:slider", action_temp.blue / 100.0, 0.0); + + color_preview = evas_object_rectangle_add(evas); + evas_object_color_set(color_preview, action_temp.red, action_temp.green, action_temp.blue, 255); + evas_object_show(color_preview); + page->Swallow(color_preview, "color.preview", true); + + elm_naviframe_item_push(pager_action, NULL, NULL, NULL, page->getEvasObject(), "calaos"); +} + +void GenlistItemScenarioAction::sliderRedSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (emission == "slider,changed") + { + double x; + page->getDragValue("slider.red:slider", &x, NULL); + + action_temp.red = (int)(x * 100.0); + + evas_object_color_set(color_preview, action_temp.red, action_temp.green, action_temp.blue, 255); + } +} + +void GenlistItemScenarioAction::sliderGreenSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (emission == "slider,changed") + { + double x; + page->getDragValue("slider.green:slider", &x, NULL); + + action_temp.green = (int)(x * 100.0); + + evas_object_color_set(color_preview, action_temp.red, action_temp.green, action_temp.blue, 255); + } +} + +void GenlistItemScenarioAction::sliderBlueSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (emission == "slider,changed") + { + double x; + page->getDragValue("slider.blue:slider", &x, NULL); + + action_temp.blue = (int)(x * 100.0); + + evas_object_color_set(color_preview, action_temp.red, action_temp.green, action_temp.blue, 255); + } +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.h new file mode 100644 index 00000000..411c9c44 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioAction.h @@ -0,0 +1,89 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemScenarioAction_H +#define GenlistItemScenarioAction_H + +#include +#include +#include +#include + +using namespace Utils; + +class GenlistItemScenarioAction: public GenlistItemBase +{ + private: + ScenarioData &scenario_data; + int sc_step; + uint sc_action; + + IOActionList action; + IOActionList action_temp; + + Evas_Object *popup; + Evas_Object *pager_action; + + Evas_Object *color_preview; + + EdjeObject *page; + + Evas_Object *spin_hours; + Evas_Object *spin_min; + Evas_Object *spin_sec; + Evas_Object *spin_ms; + + ScenarioAction &getAction(); + void createActionList(Evas_Object *glist, GenlistItemBase *header); + + void actionSimple(void *data, IOActionList ac); + void actionSlider(void *data, IOActionList ac); + void actionNumber(void *data, IOActionList ac); + void actionText(void *data, IOActionList ac); + void actionTime(void *data, IOActionList ac); + void actionColor(void *data, IOActionList ac); + + void buttonBackClick(void *data, Evas_Object *edje_object, string emission, string source); + void buttonValidClick(void *data, Evas_Object *edje_object, string emission, string source); + void buttonValidTimeClick(void *data, Evas_Object *edje_object, string emission, string source); + void sliderSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + void numberSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + void sliderRedSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + void sliderGreenSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + void sliderBlueSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + + void deleteItemSelected(void *data); + + public: + GenlistItemScenarioAction(Evas *evas, Evas_Object *parent, ScenarioData &scd, int step, int action, void *data = NULL); + virtual ~GenlistItemScenarioAction(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickEdit(); + + void setAction(IOActionList &ac) { action = ac; } + + sigc::signal delete_action; +}; + +#endif // GenlistItemScenarioAction_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.cpp new file mode 100644 index 00000000..dd6d726f --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.cpp @@ -0,0 +1,52 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "GenlistItemScenarioHeader.h" +#include + +GenlistItemScenarioHeader::GenlistItemScenarioHeader(Evas *_evas, Evas_Object *_parent, string _title): + GenlistItemBase(_evas, _parent, "scenario/header", ELM_GENLIST_ITEM_GROUP), + title(_title) +{ +} + +GenlistItemScenarioHeader::~GenlistItemScenarioHeader() +{ +} + +void GenlistItemScenarioHeader::itemAdded() +{ + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); +} + +Evas_Object *GenlistItemScenarioHeader::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + return o; +} + +string GenlistItemScenarioHeader::getLabelItem(Evas_Object *obj, string part) +{ + if (part == "elm.text") + return title; + + return ""; +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.h new file mode 100644 index 00000000..c65504ed --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioHeader.h @@ -0,0 +1,43 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef GenlistItemScenarioHeader_H +#define GenlistItemScenarioHeader_H + +#include +#include + +using namespace Utils; + +class GenlistItemScenarioHeader: public GenlistItemBase +{ + private: + string title; + + virtual void itemAdded(); + public: + GenlistItemScenarioHeader(Evas *evas, Evas_Object *parent, string title); + virtual ~GenlistItemScenarioHeader(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); +}; + +#endif // GenlistItemScenarioHeader_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.cpp new file mode 100644 index 00000000..69a9d599 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.cpp @@ -0,0 +1,263 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemScenarioSchedule.h" +#include + +#include +#include + +ITEM_BUTTON_CALLBACK(GenlistItemScenarioSchedule, More) + +GenlistItemScenarioSchedule::GenlistItemScenarioSchedule(Evas *_evas, Evas_Object *_parent, bool scheduleView, Scenario *sc, void *data): + GenlistItemBase(_evas, _parent, (scheduleView)?"scenario/schedule":"scenario/standard", ELM_GENLIST_ITEM_NONE, data), + IOBaseElement(sc->ioScenario), + scenario(sc) +{ +} + +GenlistItemScenarioSchedule::~GenlistItemScenarioSchedule() +{ +} + +void GenlistItemScenarioSchedule::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item); +} + +void GenlistItemScenarioSchedule::initView() +{ + updateView(); +} + +void GenlistItemScenarioSchedule::updateView() +{ + if (scenario->ioScenario) + { + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "time", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "actions.text", ELM_GENLIST_ITEM_FIELD_TEXT); + } +} + +string GenlistItemScenarioSchedule::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!scenario) return text; + + if (part == "text") + { + text = scenario->ioScenario->params["name"]; + } + else if (part == "time") + { + text = "18:35"; + } + else if (part == "actions.text") + { + text = "Aucune actions."; + if (scenario->scenario_data.steps.size() > 1) + text = to_string(scenario->scenario_data.steps.size()) + " étapes."; + else if (scenario->scenario_data.steps.size() == 1 && + scenario->scenario_data.steps[0].actions.size() > 0) + text = to_string(scenario->scenario_data.steps[0].actions.size()) + " actions."; + } + + if (scenario->scenario_data.params["schedule"] != "false") + itemEmitSignal("schedule,true", "calaos"); + else + itemEmitSignal("schedule,false", "calaos"); + + return text; +} + +Evas_Object *GenlistItemScenarioSchedule::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.more") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/button/position/rolldown"); + evas_object_smart_callback_add(o, "clicked", _item_button_More, this); + } + + return o; +} + +void GenlistItemScenarioSchedule::buttonClickMore() +{ + if (!scenario) return; + + Evas_Object *table = createPaddingTable(evas, parent, 280, 260); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Paramètres du scénario
      Modifier, supprimer ou ajouter une planification."; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *item; + + item = new GenlistItemSimple(evas, glist, "Modifier le scénario", true); + item->setIcon("calaos/icons/genlist/edit"); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scenarioModify)); + + item = new GenlistItemSimple(evas, glist, "Supprimer le scénario", true); + item->setIcon("calaos/icons/genlist/trash"); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scenarioDelete)); + + item = new GenlistItemSimple(evas, glist, "Executer le scénario maintenant", true); + item->setIcon("calaos/icons/genlist/play"); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scenarioPlay)); + + if (scenario->scenario_data.params["schedule"] == "false") + { + item = new GenlistItemSimple(evas, glist, "Ajouter une planification", true); + item->setIcon("calaos/icons/genlist/plus"); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scheduleAdd)); + } + else + { + item = new GenlistItemSimple(evas, glist, "Modifier la planification", true); + item->setIcon("calaos/icons/genlist/clock"); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scheduleModify)); + + item = new GenlistItemSimple(evas, glist, "Supprimer la planification", true); + item->setIcon("calaos/icons/genlist/trash"); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scheduleDelete)); + } + + elm_table_pack(table, glist, 1, 1, 1, 1); + + pager_popup = elm_naviframe_add(parent); + evas_object_show(pager_popup); + + popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, pager_popup); + elm_object_style_set(popup, "calaos"); + elm_ctxpopup_direction_priority_set(popup, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_RIGHT); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); + + elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); +} + +void GenlistItemScenarioSchedule::scheduleAdd(void *data) +{ + schedule_add_click.emit(scenario); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioSchedule::scheduleModify(void *data) +{ + schedule_modify_click.emit(scenario); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioSchedule::scheduleDelete(void *data) +{ + schedule_del_click.emit(scenario); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioSchedule::scenarioDelete(void *data) +{ + if (!scenario) return; + + Evas_Object *table = createPaddingTable(evas, parent, 280, 260); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Confirmation
      Êtes-vous sûr de vouloir supprimer ce scénario?"; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, "Oui, supprimer le scénario", true); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::deleteScenarioValid)); + + item = new GenlistItemSimple(evas, parent, "Non", true); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::deleteScenarioCancel)); + + elm_table_pack(table, glist, 1, 1, 1, 1); + + elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); +} + +void GenlistItemScenarioSchedule::deleteScenarioValid(void *data) +{ + if (!scenario) return; + + CalaosModel::Instance().getScenario()->deleteScenario(scenario); + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioSchedule::deleteScenarioCancel(void *data) +{ + if (!scenario) return; + + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioSchedule::scenarioModify(void *data) +{ + if (!scenario) return; + + ApplicationMain::Instance().ShowScenarioEditor(scenario); + + elm_ctxpopup_dismiss(popup); +} + +void GenlistItemScenarioSchedule::scenarioPlay(void *data) +{ + if (!scenario) return; + + scenario->ioScenario->sendAction("true"); + elm_ctxpopup_dismiss(popup); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.h new file mode 100644 index 00000000..3e74b139 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioSchedule.h @@ -0,0 +1,68 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemScenarioSchedule_H +#define GenlistItemScenarioSchedule_H + +#include +#include +#include "ScenarioModel.h" + +using namespace Utils; + +class GenlistItemScenarioSchedule: public GenlistItemBase, public IOBaseElement +{ + private: + Evas_Object *popup, *pager_popup; + + Scenario *scenario; + + void scenarioPlay(void *data); + void scenarioModify(void *data); + void scenarioDelete(void *data); + void scheduleAdd(void *data); + void scheduleModify(void *data); + void scheduleDelete(void *data); + + virtual void ioDeleted(); + + void deleteScenarioValid(void *data); + void deleteScenarioCancel(void *data); + + public: + GenlistItemScenarioSchedule(Evas *evas, Evas_Object *parent, bool scheduleView, Scenario *scenario, void *data = NULL); + virtual ~GenlistItemScenarioSchedule(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickMore(); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + sigc::signal schedule_add_click; + sigc::signal schedule_modify_click; + sigc::signal schedule_del_click; +}; + +#endif // GenlistItemScenarioSchedule_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.cpp new file mode 100644 index 00000000..8febe9b7 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.cpp @@ -0,0 +1,96 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemScenarioScheduleTime.h" +#include + +#include +#include + +ITEM_BUTTON_CALLBACK(GenlistItemScenarioScheduleTime, Edit) +ITEM_BUTTON_CALLBACK(GenlistItemScenarioScheduleTime, Delete) + +GenlistItemScenarioScheduleTime::GenlistItemScenarioScheduleTime(Evas *_evas, Evas_Object *_parent, void *data): + GenlistItemBase(_evas, _parent, "scenario/schedule/time", ELM_GENLIST_ITEM_NONE, data) +{ +} + +GenlistItemScenarioScheduleTime::~GenlistItemScenarioScheduleTime() +{ +} + +string GenlistItemScenarioScheduleTime::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (part == "text") + { + text = "Exécution à 12h30"; + } + + itemEmitSignal("monday,active", "calaos"); + itemEmitSignal("tuesday,active", "calaos"); + itemEmitSignal("thirsday,active", "calaos"); + itemEmitSignal("friday,active", "calaos"); + + return text; +} + +Evas_Object *GenlistItemScenarioScheduleTime::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.edit") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/edit"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Edit, this); + } + else if (part == "calaos.button.delete") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/delete"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Delete, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), "calaos/icons/element/simple/play"); + } + + return o; +} + +void GenlistItemScenarioScheduleTime::buttonClickEdit() +{ + +} + +void GenlistItemScenarioScheduleTime::buttonClickDelete() +{ + +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.h new file mode 100644 index 00000000..38e38aba --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemScenarioScheduleTime.h @@ -0,0 +1,45 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemScenarioScheduleTime_H +#define GenlistItemScenarioScheduleTime_H + +#include +#include + +using namespace Utils; + +class GenlistItemScenarioScheduleTime: public GenlistItemBase +{ + private: + + public: + GenlistItemScenarioScheduleTime(Evas *evas, Evas_Object *parent, void *data = NULL); + virtual ~GenlistItemScenarioScheduleTime(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickEdit(); + void buttonClickDelete(); +}; + +#endif // GenlistItemScenarioScheduleTime_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.cpp new file mode 100644 index 00000000..16ff2563 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.cpp @@ -0,0 +1,136 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemSimple.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemSimple, Pressed) + +GenlistItemSimple::GenlistItemSimple(Evas *_evas, Evas_Object *_parent, string _label, bool can_select, bool _multiline, void *data, string style_addition): + GenlistItemBase(_evas, _parent, + string(can_select? "simple_select":"simple") + string(_multiline? "/multiline":"") + string((style_addition != "")? "/" + style_addition:""), + ELM_GENLIST_ITEM_NONE, data), + label(_label), + multiline(_multiline) +{ + if (multiline) + { + replace_str(label, "\n", "
      "); + replace_str(label, "&", "&"); + } +} + +GenlistItemSimple::~GenlistItemSimple() +{ +} + +string GenlistItemSimple::getLabelItem(Evas_Object *obj, string part) +{ + return label; +} + +Evas_Object *GenlistItemSimple::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "icon") + { + if (icon != "") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), icon.c_str()); + + itemEmitSignal("icon,enabled", "calaos"); + } + else + { + itemEmitSignal("icon,disabled", "calaos"); + } + } + else if (part == "button") + { + if (button_icon != "") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), button_icon.c_str()); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Pressed, this); + + itemEmitSignal("button,enabled", "calaos"); + } + else + { + itemEmitSignal("button,disabled", "calaos"); + } + } + + return o; +} + +void GenlistItemSimple::buttonClickPressed() +{ + button_pressed.emit(); +} + +GenlistItemSimpleKeyValue::GenlistItemSimpleKeyValue(Evas *_evas, Evas_Object *_parent, string _label_key, string _label_value, void *data): + GenlistItemBase(_evas, _parent, "simple_info", ELM_GENLIST_ITEM_NONE, data), + label_key(_label_key), + label_value(_label_value) +{ +} + +GenlistItemSimpleKeyValue::~GenlistItemSimpleKeyValue() +{ +} + +string GenlistItemSimpleKeyValue::getLabelItem(Evas_Object *obj, string part) +{ + if (part == "key.text") + return label_key; + if (part == "value.text") + return label_value; + + return "?"; +} + +Evas_Object *GenlistItemSimpleKeyValue::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "icon") + { + if (icon != "") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), icon.c_str()); + + itemEmitSignal("icon,enabled", "calaos"); + } + else + { + itemEmitSignal("icon,disabled", "calaos"); + } + } + + return o; +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.h new file mode 100644 index 00000000..f2eb5175 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimple.h @@ -0,0 +1,72 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GENLISTITEMSIMPLE_H +#define GENLISTITEMSIMPLE_H + +#include +#include + +using namespace Utils; + +class GenlistItemSimple: public GenlistItemBase +{ + private: + string label; + string icon; + string button_icon; + bool multiline; + + public: + GenlistItemSimple(Evas *evas, Evas_Object *parent, string label, bool can_select, bool multiline = false, void *data = NULL, string style_addition = ""); + virtual ~GenlistItemSimple(); + + virtual string getLabelItem(Evas_Object *obj, string part); + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + + void setIcon(string ic) { icon = ic; } + void setButtonIcon(string ic) { button_icon = ic; } + void setLabelText(string t) { label = t; updateField("text", ELM_GENLIST_ITEM_FIELD_TEXT); } + + //private, from c callback + void buttonClickPressed(); + + //public signal + sigc::signal button_pressed; +}; + +class GenlistItemSimpleKeyValue: public GenlistItemBase +{ + private: + string label_key, label_value; + string icon; + + public: + GenlistItemSimpleKeyValue(Evas *evas, Evas_Object *parent, string label_key, string label_value, void *data = NULL); + virtual ~GenlistItemSimpleKeyValue(); + + virtual string getLabelItem(Evas_Object *obj, string part); + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + + void setIcon(string ic) { icon = ic; } +}; + +#endif // GENLISTITEMSIMPLE_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.cpp new file mode 100644 index 00000000..30fa84bd --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.cpp @@ -0,0 +1,37 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemSimpleHeader.h" + +GenlistItemSimpleHeader::GenlistItemSimpleHeader(Evas *_evas, Evas_Object *_parent, string _label): + GenlistItemBase(_evas, _parent, "simple_header", ELM_GENLIST_ITEM_GROUP), + label(_label) +{ +} + +GenlistItemSimpleHeader::~GenlistItemSimpleHeader() +{ +} + +string GenlistItemSimpleHeader::getLabelItem(Evas_Object *obj, string part) +{ + return label; +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.h new file mode 100644 index 00000000..7bd75bfe --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemSimpleHeader.h @@ -0,0 +1,42 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GENLISTITEMSIMPLEHEADER_H +#define GENLISTITEMSIMPLEHEADER_H + +#include +#include + +using namespace Utils; + +class GenlistItemSimpleHeader: public GenlistItemBase +{ + private: + string label; + + public: + GenlistItemSimpleHeader(Evas *evas, Evas_Object *parent, string label); + virtual ~GenlistItemSimpleHeader(); + + virtual string getLabelItem(Evas_Object *obj, string part); +}; + +#endif // GENLISTITEMSIMPLEHEADER_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.cpp new file mode 100644 index 00000000..eeaf3cec --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.cpp @@ -0,0 +1,248 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemTrack.h" +#include +#include +#include + +ITEM_BUTTON_CALLBACK(GenlistItemTrack, Play) +ITEM_BUTTON_CALLBACK(GenlistItemTrack, Add) +ITEM_BUTTON_CALLBACK(GenlistItemTrack, More) + +GenlistItemTrack::GenlistItemTrack(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _item_id, int request_type, int _command_id = 0, void *data): + GenlistItemBase(_evas, _parent, "browser/track", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_id(_item_id), + in_query(false), + reqtype(request_type), + command_id(_command_id) +{ +} + +GenlistItemTrack::~GenlistItemTrack() +{ +} + +string GenlistItemTrack::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!in_query) + { + switch (reqtype) + { + case TRACK_ALBUM: player->getDBAlbumTrackItem(command_id, item_id, sigc::mem_fun(*this, &GenlistItemTrack::albumItemGet_cb)); break; + case TRACK_PLAYLIST: player->getDBPlaylistTrackItem(command_id, item_id, sigc::mem_fun(*this, &GenlistItemTrack::albumItemGet_cb)); break; + case TRACK_ID: player->getDBTrackInfos(to_string(item_id), sigc::mem_fun(*this, &GenlistItemTrack::albumItemGet_cb)); + } + + in_query = true; + } + + if (part == "text") + { + if (item_infos.size() <= 0) + text = "Chargement..."; + else + text = item_infos["title"]; + } + + return text; +} + +Evas_Object *GenlistItemTrack::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "calaos.button.more") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/button/position/info"); + evas_object_smart_callback_add(o, "clicked", _item_button_More, this); + } + + return o; +} + +void GenlistItemTrack::buttonClickPlay() +{ + switch (reqtype) + { + case TRACK_PLAYLIST: + if (item_infos["remote"] == "1" && + item_infos["url"] != "") //it's a radio, play url + { + player->playItem(AudioPlayer::DB_ITEM_DIRECTURL, item_infos["url"]); + break; + } + case TRACK_ID: + case TRACK_ALBUM: player->playItem(AudioPlayer::DB_ITEM_TRACK, item_infos["id"]); break; + } +} + +void GenlistItemTrack::buttonClickAdd() +{ + switch (reqtype) + { + case TRACK_PLAYLIST: + if (item_infos["remote"] == "1" && + item_infos["url"] != "") //it's a radio, play url + { + player->addItem(AudioPlayer::DB_ITEM_DIRECTURL, item_infos["url"]); + break; + } + case TRACK_ID: + case TRACK_ALBUM: player->addItem(AudioPlayer::DB_ITEM_TRACK, item_infos["id"]); break; + } +} + +void GenlistItemTrack::albumItemGet_cb(Params &infos) +{ + item_infos = infos; + if (!item_infos.Exists("id") && item_infos.Exists("track_id")) + item_infos.Add("id", item_infos["track_id"]); + + cout << "Got infos..." << item_infos.toString() << endl; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void GenlistItemTrack::buttonClickMore() +{ + Evas_Object *table = createPaddingTable(evas, parent, 260, 200); + + Evas_Object *glist = elm_genlist_add(parent); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Info de la piste #" + to_string(item_id + 1) + "
      Détails de la piste."; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + string infolabel; + if (item_infos["artist"] != "") + { + infolabel = item_infos["artist"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Artiste :", infolabel); + item->Append(glist, header); + } + if (item_infos["album"] != "") + { + infolabel = item_infos["album"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Album :", infolabel); + item->Append(glist, header); + } + if (item_infos["title"] != "") + { + infolabel = item_infos["title"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Titre :", infolabel); + item->Append(glist, header); + } + if (item_infos["duration"] != "") + { + double dur; + from_string(item_infos["duration"], dur); + infolabel = Utils::time2string_digit((long)dur); + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Durée :", infolabel); + item->Append(glist, header); + } + if (item_infos["genre"] != "") + { + infolabel = item_infos["genre"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Genre :", infolabel); + item->Append(glist, header); + } + if (item_infos["type"] != "") + { + infolabel = item_infos["type"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Type de flux :", infolabel); + item->Append(glist, header); + } + if (item_infos["bitrate"] != "") + { + infolabel = item_infos["bitrate"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Débit :", infolabel); + item->Append(glist, header); + } + if (item_infos["filesize"] != "") + { + long int s; + from_string(item_infos["filesize"], s); + s /= 1024; + s /= 1024; + infolabel = to_string(s) + " Mo"; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Taille :", infolabel); + item->Append(glist, header); + } + if (item_infos["samplerate"] != "") + { + infolabel = item_infos["samplerate"] + " Hz"; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Echantillonage :", infolabel); + item->Append(glist, header); + } + if (item_infos["tagversion"] != "") + { + infolabel = item_infos["tagversion"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Version du tag :", infolabel); + item->Append(glist, header); + } + if (item_infos["comment"] != "") + { + infolabel = item_infos["comment"]; + GenlistItemSimpleKeyValue *item = new GenlistItemSimpleKeyValue(evas, glist, "Commentaire :", infolabel); + item->Append(glist, header); + } + + elm_table_pack(table, glist, 1, 1, 1, 1); + + Evas_Object *popup_position = elm_ctxpopup_add(parent); + elm_object_style_set(popup_position, "calaos"); + evas_object_size_hint_min_set(popup_position, 300, 240); + + elm_object_content_set(popup_position, table); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup_position, x, y); + evas_object_show(popup_position); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.h new file mode 100644 index 00000000..d5c740b5 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemTrack.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemTrack_H +#define GenlistItemTrack_H + +#include +#include + +using namespace Utils; + +class GenlistItemTrack: public GenlistItemBase +{ + private: + AudioPlayer *player; + int item_id, album_id; + Params item_infos; + bool in_query; + int reqtype; + int command_id; + + void albumItemGet_cb(Params &infos); + + public: + enum { TRACK_ALBUM, TRACK_PLAYLIST, TRACK_ID }; + + GenlistItemTrack(Evas *evas, Evas_Object *parent, AudioPlayer *player, int item_id, int request_type, int _command_id, void *data = NULL); + virtual ~GenlistItemTrack(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + void buttonClickMore(); + + int getItemId() { return item_id; } + Params getItemInfos() { return item_infos; } +}; + +#endif // GenlistItemTrack_H diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemYear.cpp b/src/bin/calaos_home/views/GenlistItems/GenlistItemYear.cpp new file mode 100644 index 00000000..e450c409 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemYear.cpp @@ -0,0 +1,108 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "GenlistItemYear.h" +#include + +ITEM_BUTTON_CALLBACK(GenlistItemYear, Play) +ITEM_BUTTON_CALLBACK(GenlistItemYear, Add) + +GenlistItemYear::GenlistItemYear(Evas *_evas, Evas_Object *_parent, AudioPlayer *_player, int _item_id, void *data): + GenlistItemBase(_evas, _parent, "browser/default", ELM_GENLIST_ITEM_NONE, data), + player(_player), + item_id(_item_id), + in_query(false) +{ +} + +GenlistItemYear::~GenlistItemYear() +{ +} + +string GenlistItemYear::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!in_query) + { + player->getDBYearItem(item_id, sigc::mem_fun(*this, &GenlistItemYear::yearItemGet_cb)); + in_query = true; + } + + if (part == "text") + { + if (item_infos.size() <= 0) + text = "Chargement..."; + else + text = item_infos["year"]; + } + + return text; +} + +Evas_Object *GenlistItemYear::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "calaos.button.play") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Play, this); + } + else if (part == "calaos.button.add") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Add, this); + } + else if (part == "icon") + { + o = elm_icon_add(parent); + elm_image_file_set(o, ApplicationMain::getTheme(), "calaos/icons/genlist/note_on"); + } + + return o; +} + +void GenlistItemYear::buttonClickPlay() +{ + player->playItem(AudioPlayer::DB_ITEM_YEAR, item_infos["year"]); +} + +void GenlistItemYear::buttonClickAdd() +{ + player->addItem(AudioPlayer::DB_ITEM_YEAR, item_infos["year"]); +} + +void GenlistItemYear::yearItemGet_cb(Params &infos) +{ + cout << "Got infos..." << infos.toString() << endl; + item_infos = infos; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/GenlistItems/GenlistItemYear.h b/src/bin/calaos_home/views/GenlistItems/GenlistItemYear.h new file mode 100644 index 00000000..c51150c7 --- /dev/null +++ b/src/bin/calaos_home/views/GenlistItems/GenlistItemYear.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef GenlistItemYear_H +#define GenlistItemYear_H + +#include +#include + +using namespace Utils; + +class GenlistItemYear: public GenlistItemBase +{ + private: + AudioPlayer *player; + int item_id; + Params item_infos; + bool in_query; + + void yearItemGet_cb(Params &infos); + + public: + GenlistItemYear(Evas *evas, Evas_Object *parent, AudioPlayer *player, int item_id, void *data = NULL); + virtual ~GenlistItemYear(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + void buttonClickPlay(); + void buttonClickAdd(); + + int getItemId() { return item_id; } + Params getItemInfos() { return item_infos; } +}; + +#endif // GenlistItemYear_H diff --git a/src/bin/calaos_home/views/IO/IOGenlistRoomGroup.cpp b/src/bin/calaos_home/views/IO/IOGenlistRoomGroup.cpp new file mode 100644 index 00000000..cf360ea3 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOGenlistRoomGroup.cpp @@ -0,0 +1,112 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOGenlistRoomGroup.h" +#include + +IOGenlistRoomGroup::IOGenlistRoomGroup(Evas *_evas, Evas_Object *_parent, Room *_room, string style_addition): + GenlistItemBase(_evas, _parent, string("group_room") + style_addition, ELM_GENLIST_ITEM_GROUP), + room(_room) +{ +} + +IOGenlistRoomGroup::~IOGenlistRoomGroup() +{ +} + +void IOGenlistRoomGroup::itemAdded() +{ + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); +} + +Evas_Object *IOGenlistRoomGroup::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + return o; +} + +string IOGenlistRoomGroup::getLabelItem(Evas_Object *obj, string part) +{ + return room->name; +} + +IOGenlistRoomGroupIcon::IOGenlistRoomGroupIcon(Evas *_evas, Evas_Object *_parent, Room *_room, string style_addition): + GenlistItemBase(_evas, _parent, string("group_room/icon") + style_addition, ELM_GENLIST_ITEM_GROUP), + room(_room) +{ +} + +IOGenlistRoomGroupIcon::~IOGenlistRoomGroupIcon() +{ +} + +void IOGenlistRoomGroupIcon::itemAdded() +{ + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); +} + +Evas_Object *IOGenlistRoomGroupIcon::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (part == "icon") + { + string type = room->type; + string t = type; + + if (type == "salon") t = "lounge"; + if (type == "chambre") t = "bedroom"; + if (type == "cuisine") t = "kitchen"; + if (type == "bureau") t = "office"; + if (type == "sam") t = "diningroom"; + if (type == "cave") t = "cellar"; + if (type == "divers") t = "various"; + if (type == "misc") t = "various"; + if (type == "exterieur") t = "outside"; + if (type == "sdb") t = "bathroom"; + if (type == "hall") t = "corridor"; + if (type == "couloir") t = "corridor"; + + EdjeObject *icon = new EdjeObject(ApplicationMain::getTheme(), evas); + string group = "calaos/icons/room/"; + + try + { + icon->LoadEdje(group + t); + } + catch(...) + { + //room not found, load default + icon->LoadEdje("calaos/icons/room/various"); + } + + icon->setAutoDelete(true); + o = icon->getEvasObject(); + } + + return o; +} + +string IOGenlistRoomGroupIcon::getLabelItem(Evas_Object *obj, string part) +{ + return room->name; +} + diff --git a/src/bin/calaos_home/views/IO/IOGenlistRoomGroup.h b/src/bin/calaos_home/views/IO/IOGenlistRoomGroup.h new file mode 100644 index 00000000..3ef489f7 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOGenlistRoomGroup.h @@ -0,0 +1,61 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOGENLISTROOMGROUP_H +#define IOGENLISTROOMGROUP_H + +#include +#include + +using namespace Utils; + +class IOGenlistRoomGroup: public GenlistItemBase +{ + private: + Room *room; + + virtual void itemAdded(); + + public: + IOGenlistRoomGroup(Evas *evas, Evas_Object *parent, Room *room, string style_addition); + virtual ~IOGenlistRoomGroup(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); +}; + +class IOGenlistRoomGroupIcon: public GenlistItemBase +{ + private: + Room *room; + + virtual void itemAdded(); + + public: + IOGenlistRoomGroupIcon(Evas *evas, Evas_Object *parent, Room *room, string style_addition); + virtual ~IOGenlistRoomGroupIcon(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + Room *getRoom() { return room; } +}; + +#endif // IOGENLISTROOMGROUP_H diff --git a/src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.cpp b/src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.cpp new file mode 100644 index 00000000..a7a2d456 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.cpp @@ -0,0 +1,176 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOGenlistScenarioHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOGenlistScenarioHomeView, Go) + +IOGenlistScenarioHomeView::IOGenlistScenarioHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("scenario_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOGenlistScenarioHomeView::~IOGenlistScenarioHomeView() +{ +} + +void IOGenlistScenarioHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOGenlistScenarioHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.go") + { + object_button = o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + + if (io->params["state"] == "true") + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/stop"); + else + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Go, this); + } + + initView(); + + return o; +} + +string IOGenlistScenarioHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + + return text; +} + +void IOGenlistScenarioHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + //Don't change button state if it's not a SimpleScenario + if (io->params["ioBoolState"] == "") + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + + elm_image_file_set(elm_object_content_get(object_button), ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + + return; + } + + if (io->params["state"] == "true") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } +} + +void IOGenlistScenarioHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + //Don't change button state if it's not a SimpleScenario + if (io->params["ioBoolState"] == "") + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + + elm_image_file_set(elm_object_content_get(object_button), ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + + return; + } + + if (io->params["state"] != state) + { + + if (io->params["state"] == "true") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,anim", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + } + + if (io->params["state"] == "true") + elm_image_file_set(elm_object_content_get(object_button), ApplicationMain::getTheme(), "calaos/icons/action_button/stop"); + else + elm_image_file_set(elm_object_content_get(object_button), ApplicationMain::getTheme(), "calaos/icons/action_button/play"); + + state = io->params["state"]; + } +} + +void IOGenlistScenarioHomeView::buttonClickGo() +{ + if (!io) return; + + io->sendAction("true"); + + if (io->params["ioBoolState"] == "") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,anim", "calaos"); + + elm_image_file_set(elm_object_content_get(object_button), ApplicationMain::getTheme(), "calaos/icons/action_button/stop"); + + //If it's not a SimpleScenario, just flash button when user click it. + EcoreTimer::singleShot(0.7, sigc::mem_fun(*this, &IOGenlistScenarioHomeView::clickFlashButton_cb)); + } +} + +void IOGenlistScenarioHomeView::clickFlashButton_cb() +{ + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + + elm_image_file_set(elm_object_content_get(object_button), ApplicationMain::getTheme(), "calaos/icons/action_button/play"); +} diff --git a/src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.h b/src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.h new file mode 100644 index 00000000..51dcf2a6 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOGenlistScenarioHomeView.h @@ -0,0 +1,53 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOGENLISTSCENARIOHOMEVIEW_H +#define IOGENLISTSCENARIOHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOGenlistScenarioHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + Evas_Object *object_button; + + string state; + + virtual void ioDeleted(); + void clickFlashButton_cb(); + + public: + IOGenlistScenarioHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOGenlistScenarioHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickGo(); +}; + +#endif // IOGENLISTSCENARIOHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOInternalBoolHomeView.cpp b/src/bin/calaos_home/views/IO/IOInternalBoolHomeView.cpp new file mode 100644 index 00000000..a22f3fcf --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOInternalBoolHomeView.cpp @@ -0,0 +1,136 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOInternalBoolHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOInternalBoolHomeView, On) +ITEM_BUTTON_CALLBACK(IOInternalBoolHomeView, Off) + +IOInternalBoolHomeView::IOInternalBoolHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("InternalBool_") + style_addition + ((_io->params["rw"] == "true")?"/rw":""), flags), + IOBaseElement(_io) +{ +} + +IOInternalBoolHomeView::~IOInternalBoolHomeView() +{ +} + +void IOInternalBoolHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOInternalBoolHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.on") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/select"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_On, this); + } + else if (part == "calaos.button.off") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/unselect"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Off, this); + } + + initView(); + + return o; +} + +string IOInternalBoolHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + + return text; +} + +void IOInternalBoolHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->params["state"] == "true") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } +} + +void IOInternalBoolHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->params["state"] == "true") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,anim", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + } +} + +void IOInternalBoolHomeView::buttonClickOn() +{ + if (!io) return; + + io->sendAction("true"); +} + +void IOInternalBoolHomeView::buttonClickOff() +{ + if (!io) return; + + io->sendAction("false"); +} diff --git a/src/bin/calaos_home/views/IO/IOInternalBoolHomeView.h b/src/bin/calaos_home/views/IO/IOInternalBoolHomeView.h new file mode 100644 index 00000000..dc82c2ce --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOInternalBoolHomeView.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOINTERNALBOOLHOMEVIEW_H +#define IOINTERNALBOOLHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOInternalBoolHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOInternalBoolHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOInternalBoolHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickOn(); + void buttonClickOff(); +}; + +#endif // IOINTERNALBOOLHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOInternalIntHomeView.cpp b/src/bin/calaos_home/views/IO/IOInternalIntHomeView.cpp new file mode 100644 index 00000000..03244eb9 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOInternalIntHomeView.cpp @@ -0,0 +1,124 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOInternalIntHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOInternalIntHomeView, More) +ITEM_BUTTON_CALLBACK(IOInternalIntHomeView, Less) + +IOInternalIntHomeView::IOInternalIntHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("InternalInt_") + style_addition + ((_io->params["rw"] == "true")?"/rw":""), flags), + IOBaseElement(_io) +{ +} + +IOInternalIntHomeView::~IOInternalIntHomeView() +{ +} + +void IOInternalIntHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOInternalIntHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.plus") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_More, this); + } + else if (part == "calaos.button.moins") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/less"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Less, this); + } + + initView(); + + return o; +} + +string IOInternalIntHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + if (part == "item.value") + text = io->params["state"]; + + return text; +} + +void IOInternalIntHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOInternalIntHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOInternalIntHomeView::buttonClickMore() +{ + if (!io) return; + + double value; + from_string(io->params["state"], value); + value++; + io->sendAction(to_string(value)); +} + +void IOInternalIntHomeView::buttonClickLess() +{ + if (!io) return; + + double value; + from_string(io->params["state"], value); + value--; + io->sendAction(to_string(value)); +} diff --git a/src/bin/calaos_home/views/IO/IOInternalIntHomeView.h b/src/bin/calaos_home/views/IO/IOInternalIntHomeView.h new file mode 100644 index 00000000..4f4f254f --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOInternalIntHomeView.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOINTERNALINTHOMEVIEW_H +#define IOINTERNALINTHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOInternalIntHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOInternalIntHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOInternalIntHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickMore(); + void buttonClickLess(); +}; + +#endif // IOINTERNALINTHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOInternalStringHomeView.cpp b/src/bin/calaos_home/views/IO/IOInternalStringHomeView.cpp new file mode 100644 index 00000000..e10aaaa6 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOInternalStringHomeView.cpp @@ -0,0 +1,111 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOInternalStringHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOInternalStringHomeView, Text) + +IOInternalStringHomeView::IOInternalStringHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("InternalString_") + style_addition + ((_io->params["rw"] == "true")?"/rw":""), flags), + IOBaseElement(_io) +{ +} + +IOInternalStringHomeView::~IOInternalStringHomeView() +{ +} + +void IOInternalStringHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOInternalStringHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.text") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/keyboard"); + elm_object_style_set(o, "calaos/action_button/pink"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Text, this); + } + + initView(); + + return o; +} + +string IOInternalStringHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + { + if (io->params["state"] == "") + text = io->params["name"]; + else + text = io->params["state"]; + } + + return text; +} + +void IOInternalStringHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOInternalStringHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOInternalStringHomeView::buttonClickText() +{ + if (!io) return; + + ApplicationMain::Instance().ShowKeyboard("Changer la valeur", + sigc::mem_fun(*this, &IOInternalStringHomeView::changeTextCb), + false); +} + +void IOInternalStringHomeView::changeTextCb(string text) +{ + if (!io) return; + + io->sendAction(text); +} diff --git a/src/bin/calaos_home/views/IO/IOInternalStringHomeView.h b/src/bin/calaos_home/views/IO/IOInternalStringHomeView.h new file mode 100644 index 00000000..620cd38c --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOInternalStringHomeView.h @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOINTERNALSTRINGHOMEVIEW_H +#define IOINTERNALSTRINGHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOInternalStringHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + void changeTextCb(string text); + + public: + IOInternalStringHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOInternalStringHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickText(); +}; + +#endif // IOINTERNALSTRINGHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOScenarioHomeView.cpp b/src/bin/calaos_home/views/IO/IOScenarioHomeView.cpp new file mode 100644 index 00000000..4a92e420 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOScenarioHomeView.cpp @@ -0,0 +1,91 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#include "IOScenarioHomeView.h" + +IOScenarioHomeView::IOScenarioHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io): + IOView(_evas, _parent, _io, "calaos/element/scenario_home") +{ + addCallback("object", "go", sigc::mem_fun(*this, &IOScenarioHomeView::clickScenario)); +} + +IOScenarioHomeView::~IOScenarioHomeView() +{ +} + +void IOScenarioHomeView::initView() +{ + if (io) + { + EmitSignal("show,normal", "calaos"); + } + else + { + EmitSignal("show,empty", "calaos"); + EmitSignal("scenario,false", "calaos"); + } + + updateView(); +} + +void IOScenarioHomeView::updateView() +{ + if (io) + { + setPartText("object.text", io->params["name"]); + + //Don't change button state if it's not a SimpleScenario + if (io->params["ioBoolState"] == "") + return; + + //Only send signal if state really changed. + //Without that hack it breaks edje animation for state change + if (io->params["state"] != state) + { + if (io->params["state"] == "true") + EmitSignal("scenario,true", "calaos"); + else + EmitSignal("scenario,false", "calaos"); + + state = io->params["state"]; + } + } +} + +void IOScenarioHomeView::clickScenario(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (!io) return; + + io->sendAction("true"); + + if (io->params["ioBoolState"] == "") + { + EmitSignal("scenario,true", "calaos"); + + //If it's not a SimpleScenario, just flash button when user click it. + EcoreTimer::singleShot(0.7, sigc::mem_fun(*this, &IOScenarioHomeView::clickFlashButton_cb)); + } +} + +void IOScenarioHomeView::clickFlashButton_cb() +{ + EmitSignal("scenario,false", "calaos"); +} diff --git a/src/bin/calaos_home/views/IO/IOScenarioHomeView.h b/src/bin/calaos_home/views/IO/IOScenarioHomeView.h new file mode 100644 index 00000000..77cae793 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOScenarioHomeView.h @@ -0,0 +1,46 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOSCENARIOHOMEVIEW_H +#define IOSCENARIOHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOScenarioHomeView: public IOView +{ + private: + void clickScenario(void *data, Evas_Object *edje_object, string emission, string source); + + string state; + + void clickFlashButton_cb(); + + public: + IOScenarioHomeView(Evas *evas, Evas_Object *parent, IOBase *io); + virtual ~IOScenarioHomeView(); + + virtual void initView(); + virtual void updateView(); +}; + +#endif // IOSCENARIOHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWIAnalogHomeView.cpp b/src/bin/calaos_home/views/IO/IOWIAnalogHomeView.cpp new file mode 100644 index 00000000..88bb8dae --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWIAnalogHomeView.cpp @@ -0,0 +1,82 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWIAnalogHomeView.h" +#include + +IOWIAnalogHomeView::IOWIAnalogHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WIAnalog_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWIAnalogHomeView::~IOWIAnalogHomeView() +{ +} + +void IOWIAnalogHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWIAnalogHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + initView(); + + return o; +} + +string IOWIAnalogHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + else if (part == "item.value") + text = io->params["state"] + " " + io->params["unit"]; + + return text; +} + +void IOWIAnalogHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOWIAnalogHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/IO/IOWIAnalogHomeView.h b/src/bin/calaos_home/views/IO/IOWIAnalogHomeView.h new file mode 100644 index 00000000..19caf9e5 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWIAnalogHomeView.h @@ -0,0 +1,46 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWIANALOGHOMEVIEW_H +#define IOWIANALOGHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWIAnalogHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOWIAnalogHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWIAnalogHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); +}; + +#endif // IOWIANALOGHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWITempHomeView.cpp b/src/bin/calaos_home/views/IO/IOWITempHomeView.cpp new file mode 100644 index 00000000..6e26d667 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWITempHomeView.cpp @@ -0,0 +1,90 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWITempHomeView.h" +#include + +IOWITempHomeView::IOWITempHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WITemp_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWITempHomeView::~IOWITempHomeView() +{ +} + +void IOWITempHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWITempHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + initView(); + + return o; +} + +string IOWITempHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + { + text = io->params["name"]; + } + else if (part == "item.value") + { + text = io->params["state"] + " °C"; + + IOBase *consigne = CalaosModel::Instance().getHome()->getConsigneFromTemp(io); + if (consigne) + text += " / " + consigne->params["state"] + " °C"; + } + + return text; +} + +void IOWITempHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOWITempHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} diff --git a/src/bin/calaos_home/views/IO/IOWITempHomeView.h b/src/bin/calaos_home/views/IO/IOWITempHomeView.h new file mode 100644 index 00000000..57234bcd --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWITempHomeView.h @@ -0,0 +1,46 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWITEMPHOMEVIEW_H +#define IOWITEMPHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWITempHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOWITempHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWITempHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); +}; + +#endif // IOWITEMPHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWOAnalogHomeView.cpp b/src/bin/calaos_home/views/IO/IOWOAnalogHomeView.cpp new file mode 100644 index 00000000..245fb089 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWOAnalogHomeView.cpp @@ -0,0 +1,124 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWOAnalogHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOWOAnalogHomeView, More) +ITEM_BUTTON_CALLBACK(IOWOAnalogHomeView, Less) + +IOWOAnalogHomeView::IOWOAnalogHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WOAnalog_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWOAnalogHomeView::~IOWOAnalogHomeView() +{ +} + +void IOWOAnalogHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWOAnalogHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.plus") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/more"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_More, this); + } + else if (part == "calaos.button.moins") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/less"); + elm_object_style_set(o, "calaos/action_button/blue"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Less, this); + } + + initView(); + + return o; +} + +string IOWOAnalogHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + else if (part == "item.value") + text = io->params["state"] + " " + io->params["unit"]; + + return text; +} + +void IOWOAnalogHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOWOAnalogHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "item.value", ELM_GENLIST_ITEM_FIELD_TEXT); +} + +void IOWOAnalogHomeView::buttonClickMore() +{ + if (!io) return; + + double value; + from_string(io->params["state"], value); + value++; + io->sendAction(to_string(value)); +} + +void IOWOAnalogHomeView::buttonClickLess() +{ + if (!io) return; + + double value; + from_string(io->params["state"], value); + value--; + io->sendAction(to_string(value)); +} diff --git a/src/bin/calaos_home/views/IO/IOWOAnalogHomeView.h b/src/bin/calaos_home/views/IO/IOWOAnalogHomeView.h new file mode 100644 index 00000000..cff609a5 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWOAnalogHomeView.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWOANALOGHOMEVIEW_H +#define IOWOANALOGHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWOAnalogHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOWOAnalogHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWOAnalogHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickMore(); + void buttonClickLess(); +}; + +#endif // IOWOANALOGHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWODaliHomeView.cpp b/src/bin/calaos_home/views/IO/IOWODaliHomeView.cpp new file mode 100644 index 00000000..ce216086 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWODaliHomeView.cpp @@ -0,0 +1,232 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWODaliHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOWODaliHomeView, On) +ITEM_BUTTON_CALLBACK(IOWODaliHomeView, Off) +ITEM_BUTTON_CALLBACK(IOWODaliHomeView, More) +ITEM_BUTTON_CALLBACK(IOWODaliHomeView, Less) + +IOWODaliHomeView::IOWODaliHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WODali_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWODaliHomeView::~IOWODaliHomeView() +{ +} + +void IOWODaliHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWODaliHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + else if (part == "calaos.button.on") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/light_on"); + elm_object_style_set(o, "calaos/action_button/yellow"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_On, this); + } + else if (part == "calaos.button.off") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/light_off"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Off, this); + } + else if (part == "calaos.button.more") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_more"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_More, this); + } + else if (part == "calaos.button.less") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_less"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Less, this); + } + else if (part == "calaos.slider") + { + slider = new EdjeObject(ApplicationMain::getTheme(), evas); + slider->setAutoDelete(true); + slider->object_deleted.connect(sigc::mem_fun(*this, &IOWODaliHomeView::sliderObjectDeleted)); + slider->addCallback("object", "*", sigc::mem_fun(*this, &IOWODaliHomeView::sliderSignalCallback)); + slider->LoadEdje("calaos/slider/horizontal/default"); + slider->Show(); + + slider->setDragValue("slider", io->getDaliValueFromState() / 100.0, 0.0); + + o = slider->getEvasObject(); + } + + initView(); + + return o; +} + +string IOWODaliHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + { + text = io->params["name"]; + } + else if (part == "text.value") + { + double value = io->getDaliValueFromState(); + int percent = (int)value; + + text = to_string(percent) + "%"; + } + + return text; +} + +void IOWODaliHomeView::sliderObjectDeleted() +{ + slider = NULL; +} + +void IOWODaliHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "text.value", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->getDaliValueFromState() > 0.0) + { + itemEmitSignal("text,active,yellow", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } +} + +void IOWODaliHomeView::updateView() +{ + if (!io || !item) + return; + + double value = io->getDaliValueFromState(); + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "text.value", ELM_GENLIST_ITEM_FIELD_TEXT); + slider->setDragValue("slider", value / 100.0, 0.0); + + if (value > 0.0) + { + itemEmitSignal("text,active,yellow", "calaos"); + itemEmitSignal("on,anim", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + } +} + +void IOWODaliHomeView::sliderSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (emission == "slider,start") + { + elm_object_scroll_freeze_push(genlist); + } + else if (emission == "slider,move") + { + } + else if (emission == "slider,changed") + { + double x; + slider->getDragValue("slider", &x, NULL); + + string action = "set "; + action += to_string((int)(x * 100.0)); + + if (io) io->sendAction(action); + + elm_object_scroll_freeze_pop(genlist); + } + +} + +void IOWODaliHomeView::buttonClickOn() +{ + if (!io) return; + + io->sendAction("true"); +} + +void IOWODaliHomeView::buttonClickOff() +{ + if (!io) return; + + io->sendAction("false"); +} + +void IOWODaliHomeView::buttonClickMore() +{ + if (!io) return; + + string action = "set "; + action += to_string((int)(io->getDaliValueFromState() + 1)); + + io->sendAction(action); +} + +void IOWODaliHomeView::buttonClickLess() +{ + if (!io) return; + + string action = "set "; + action += to_string((int)(io->getDaliValueFromState() - 1)); + + io->sendAction(action); +} diff --git a/src/bin/calaos_home/views/IO/IOWODaliHomeView.h b/src/bin/calaos_home/views/IO/IOWODaliHomeView.h new file mode 100644 index 00000000..619079cd --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWODaliHomeView.h @@ -0,0 +1,57 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWODALIHOMEVIEW_H +#define IOWODALIHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWODaliHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + EdjeObject *slider; + + void sliderObjectDeleted(); + + void sliderSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + + public: + IOWODaliHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWODaliHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickOn(); + void buttonClickOff(); + void buttonClickMore(); + void buttonClickLess(); +}; + +#endif // IOWODALIHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.cpp b/src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.cpp new file mode 100644 index 00000000..3af1bf9d --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.cpp @@ -0,0 +1,433 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWODaliRVBHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, On) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, Off) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, RedMore) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, RedLess) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, GreenMore) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, GreenLess) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, BlueMore) +ITEM_BUTTON_CALLBACK(IOWODaliRVBHomeView, BlueLess) + +IOWODaliRVBHomeView::IOWODaliRVBHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WODaliRVB_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWODaliRVBHomeView::~IOWODaliRVBHomeView() +{ +} + +void IOWODaliRVBHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWODaliRVBHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + else if (part == "calaos.button.on") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/light_on"); + elm_object_style_set(o, "calaos/action_button/yellow"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_On, this); + } + else if (part == "calaos.button.off") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/light_off"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Off, this); + } + else if (part == "calaos.button.red.more") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_more"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_RedMore, this); + } + else if (part == "calaos.button.red.less") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_less"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_RedLess, this); + } + else if (part == "calaos.button.green.more") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_more"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_GreenMore, this); + } + else if (part == "calaos.button.green.less") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_less"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_GreenLess, this); + } + else if (part == "calaos.button.blue.more") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_more"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_BlueMore, this); + } + else if (part == "calaos.button.blue.less") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/slider_less"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_BlueLess, this); + } + else if (part == "calaos.slider.red") + { + slider_red = new EdjeObject(ApplicationMain::getTheme(), evas); + slider_red->setAutoDelete(true); + slider_red->object_deleted.connect(sigc::mem_fun(*this, &IOWODaliRVBHomeView::sliderRedObjectDeleted)); + slider_red->addCallback("object", "*", sigc::mem_fun(*this, &IOWODaliRVBHomeView::sliderSignalCallback), slider_red); + slider_red->LoadEdje("calaos/slider/horizontal/red"); + slider_red->Show(); + + int r, g, b; + io->getRGBValueFromState(r, g, b); + slider_red->setDragValue("slider", r / 100.0, 0.0); + + o = slider_red->getEvasObject(); + } + else if (part == "calaos.slider.green") + { + slider_green = new EdjeObject(ApplicationMain::getTheme(), evas); + slider_green->setAutoDelete(true); + slider_green->object_deleted.connect(sigc::mem_fun(*this, &IOWODaliRVBHomeView::sliderRedObjectDeleted)); + slider_green->addCallback("object", "*", sigc::mem_fun(*this, &IOWODaliRVBHomeView::sliderSignalCallback), slider_green); + slider_green->LoadEdje("calaos/slider/horizontal/green"); + slider_green->Show(); + + int r, g, b; + io->getRGBValueFromState(r, g, b); + slider_green->setDragValue("slider", g / 100.0, 0.0); + + o = slider_green->getEvasObject(); + } + else if (part == "calaos.slider.blue") + { + slider_blue = new EdjeObject(ApplicationMain::getTheme(), evas); + slider_blue->setAutoDelete(true); + slider_blue->object_deleted.connect(sigc::mem_fun(*this, &IOWODaliRVBHomeView::sliderRedObjectDeleted)); + slider_blue->addCallback("object", "*", sigc::mem_fun(*this, &IOWODaliRVBHomeView::sliderSignalCallback), slider_blue); + slider_blue->LoadEdje("calaos/slider/horizontal/blue"); + slider_blue->Show(); + + int r, g, b; + io->getRGBValueFromState(r, g, b); + slider_blue->setDragValue("slider", b / 100.0, 0.0); + + o = slider_blue->getEvasObject(); + } + else if (part == "color.preview") + { + int r, g, b, a = 255; + io->getRGBValueFromState(r, g, b); + if (r == 0 && g == 0 && b == 0) a = 100; + + color_preview = evas_object_rectangle_add(evas); + evas_object_color_set(color_preview, r, g, b, a); + evas_object_show(color_preview); + + o = color_preview; + } + + initView(); + + return o; +} + +string IOWODaliRVBHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + { + text = io->params["name"]; + } + else if (part == "text.value.red") + { + int r, g, b; + io->getRGBValueFromState(r, g, b); + + text = to_string(r) + "%"; + } + else if (part == "text.value.green") + { + int r, g, b; + io->getRGBValueFromState(r, g, b); + + text = to_string(g) + "%"; + } + else if (part == "text.value.blue") + { + int r, g, b; + io->getRGBValueFromState(r, g, b); + + text = to_string(b) + "%"; + } + + return text; +} + +void IOWODaliRVBHomeView::sliderRedObjectDeleted() +{ + slider_red = NULL; +} + +void IOWODaliRVBHomeView::sliderGreenObjectDeleted() +{ + slider_green = NULL; +} + +void IOWODaliRVBHomeView::sliderBlueObjectDeleted() +{ + slider_blue = NULL; +} + +void IOWODaliRVBHomeView::initView() +{ + if (!io || !item) + return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + if (r > 0 || g > 0 || b > 0) + { + itemEmitSignal("text,active,yellow", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } +} + +void IOWODaliRVBHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "text.value.red", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "text.value.green", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "text.value.blue", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "color.preview", ELM_GENLIST_ITEM_FIELD_CONTENT); + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + slider_red->setDragValue("slider", r / 100.0, 0.0); + slider_green->setDragValue("slider", g / 100.0, 0.0); + slider_blue->setDragValue("slider", b / 100.0, 0.0); + + if (r > 0 || g > 0 || b > 0) + { + itemEmitSignal("text,active,yellow", "calaos"); + itemEmitSignal("on,anim", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + } +} + +void IOWODaliRVBHomeView::sliderSignalCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + EdjeObject *slider = reinterpret_cast(data); + if (!slider) return; + + if (emission == "slider,start") + { + elm_object_scroll_freeze_push(genlist); + } + else if (emission == "slider,move") + { + } + else if (emission == "slider,changed") + { + double x; + int r, g, b; + slider->getDragValue("slider", &x, NULL); + + io->getRGBValueFromState(r, g, b); + + if (slider == slider_red) r = x * 100; + if (slider == slider_green) g = x * 100; + if (slider == slider_blue) b = x * 100; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + if (io) io->sendAction(action); + + elm_object_scroll_freeze_pop(genlist); + } + +} + +void IOWODaliRVBHomeView::buttonClickOn() +{ + if (!io) return; + + io->sendAction("true"); +} + +void IOWODaliRVBHomeView::buttonClickOff() +{ + if (!io) return; + + io->sendAction("false"); +} + +void IOWODaliRVBHomeView::buttonClickRedMore() +{ + if (!io) return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + r += 5; + if (r > 100) r = 100; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + io->sendAction(action); +} + +void IOWODaliRVBHomeView::buttonClickRedLess() +{ + if (!io) return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + r -= 5; + if (r < 0) r = 0; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + io->sendAction(action); +} + +void IOWODaliRVBHomeView::buttonClickGreenMore() +{ + if (!io) return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + g += 5; + if (g > 100) g = 100; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + io->sendAction(action); +} + +void IOWODaliRVBHomeView::buttonClickGreenLess() +{ + if (!io) return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + g -= 5; + if (g < 0) g = 0; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + io->sendAction(action); +} + +void IOWODaliRVBHomeView::buttonClickBlueMore() +{ + if (!io) return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + b += 5; + if (b > 100) b = 100; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + io->sendAction(action); +} + +void IOWODaliRVBHomeView::buttonClickBlueLess() +{ + if (!io) return; + + int r, g, b; + io->getRGBValueFromState(r, g, b); + + b -= 5; + if (b < 0) b = 0; + + string action = "set "; + action += to_string(io->computeStateFromRGBValue(r, g, b)); + + io->sendAction(action); +} diff --git a/src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.h b/src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.h new file mode 100644 index 00000000..a47bb57d --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWODaliRVBHomeView.h @@ -0,0 +1,67 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWODALIRVBHOMEVIEW_H +#define IOWODALIRVBHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWODaliRVBHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + EdjeObject *slider_red; + EdjeObject *slider_green; + EdjeObject *slider_blue; + Evas_Object *color_preview; + + void sliderRedObjectDeleted(); + void sliderGreenObjectDeleted(); + void sliderBlueObjectDeleted(); + + void sliderSignalCallback(void *data, Evas_Object *edje_object, string emission, string source); + + public: + IOWODaliRVBHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWODaliRVBHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickOn(); + void buttonClickOff(); + + void buttonClickRedMore(); + void buttonClickRedLess(); + void buttonClickGreenMore(); + void buttonClickGreenLess(); + void buttonClickBlueMore(); + void buttonClickBlueLess(); +}; + +#endif // IOWODALIRVBHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWODigitalHomeView.cpp b/src/bin/calaos_home/views/IO/IOWODigitalHomeView.cpp new file mode 100644 index 00000000..740daa08 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWODigitalHomeView.cpp @@ -0,0 +1,136 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWODigitalHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOWODigitalHomeView, On) +ITEM_BUTTON_CALLBACK(IOWODigitalHomeView, Off) + +IOWODigitalHomeView::IOWODigitalHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WODigital_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWODigitalHomeView::~IOWODigitalHomeView() +{ +} + +void IOWODigitalHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWODigitalHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.on") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/light_on"); + elm_object_style_set(o, "calaos/action_button/yellow"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_On, this); + } + else if (part == "calaos.button.off") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/light_off"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Off, this); + } + + initView(); + + return o; +} + +string IOWODigitalHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + + return text; +} + +void IOWODigitalHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->params["state"] == "true") + { + itemEmitSignal("text,active,yellow", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } +} + +void IOWODigitalHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->params["state"] == "true") + { + itemEmitSignal("text,active,yellow", "calaos"); + itemEmitSignal("on,anim", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + } +} + +void IOWODigitalHomeView::buttonClickOn() +{ + if (!io) return; + + io->sendAction("true"); +} + +void IOWODigitalHomeView::buttonClickOff() +{ + if (!io) return; + + io->sendAction("false"); +} diff --git a/src/bin/calaos_home/views/IO/IOWODigitalHomeView.h b/src/bin/calaos_home/views/IO/IOWODigitalHomeView.h new file mode 100644 index 00000000..15e54624 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWODigitalHomeView.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWODIGITALHOMEVIEW_H +#define IOWODIGITALHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWODigitalHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOWODigitalHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWODigitalHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickOn(); + void buttonClickOff(); +}; + +#endif // IOWODIGITALHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWOVoletHomeView.cpp b/src/bin/calaos_home/views/IO/IOWOVoletHomeView.cpp new file mode 100644 index 00000000..66ddd590 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWOVoletHomeView.cpp @@ -0,0 +1,153 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWOVoletHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOWOVoletHomeView, Up) +ITEM_BUTTON_CALLBACK(IOWOVoletHomeView, Down) +ITEM_BUTTON_CALLBACK(IOWOVoletHomeView, Stop) + +IOWOVoletHomeView::IOWOVoletHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WOVolet_") + style_addition, flags), + IOBaseElement(_io) +{ +} + +IOWOVoletHomeView::~IOWOVoletHomeView() +{ +} + +void IOWOVoletHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWOVoletHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.up") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/up_arrow"); + elm_object_style_set(o, "calaos/action_button/yellow"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Up, this); + } + else if (part == "calaos.button.down") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/down_arrow"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Down, this); + } + else if (part == "calaos.button.stop") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/stop"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Stop, this); + } + + initView(); + + return o; +} + +string IOWOVoletHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + text = io->params["name"]; + + return text; +} + +void IOWOVoletHomeView::initView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->params["state"] == "false") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } +} + +void IOWOVoletHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + + if (io->params["state"] == "false") + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,anim", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,anim", "calaos"); + } +} + +void IOWOVoletHomeView::buttonClickUp() +{ + if (!io) return; + + io->sendAction("up"); +} + +void IOWOVoletHomeView::buttonClickDown() +{ + if (!io) return; + + io->sendAction("down"); +} + +void IOWOVoletHomeView::buttonClickStop() +{ + if (!io) return; + + io->sendAction("stop"); +} diff --git a/src/bin/calaos_home/views/IO/IOWOVoletHomeView.h b/src/bin/calaos_home/views/IO/IOWOVoletHomeView.h new file mode 100644 index 00000000..c78ff293 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWOVoletHomeView.h @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWOVOLETHOMEVIEW_H +#define IOWOVOLETHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWOVoletHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + public: + IOWOVoletHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWOVoletHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickUp(); + void buttonClickDown(); + void buttonClickStop(); +}; + +#endif // IOWOVOLETHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.cpp b/src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.cpp new file mode 100644 index 00000000..8b779cb7 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.cpp @@ -0,0 +1,265 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOWOVoletSmartHomeView.h" +#include + +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, Up) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, Down) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, Stop) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, ImpulseUp) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, ImpulseDown) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, Set25) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, Set50) +ITEM_BUTTON_CALLBACK(IOWOVoletSmartHomeView, Set75) + +IOWOVoletSmartHomeView::IOWOVoletSmartHomeView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string style_addition, Elm_Genlist_Item_Type flags): + GenlistItemBase(_evas, _parent, string("WOVoletSmart_") + style_addition, flags), + IOBaseElement(_io), + window_slider(NULL) +{ +} + +IOWOVoletSmartHomeView::~IOWOVoletSmartHomeView() +{ +} + +void IOWOVoletSmartHomeView::ioDeleted() +{ + IOBaseElement::ioDeleted(); + + DELETE_NULL_FUNC(elm_object_item_del, item) +} + +Evas_Object *IOWOVoletSmartHomeView::getPartItem(Evas_Object *obj, string part) +{ + Evas_Object *o = NULL; + + if (!io) return o; + + if (part == "calaos.button.up") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/up_arrow"); + elm_object_style_set(o, "calaos/action_button/yellow"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Up, this); + } + else if (part == "calaos.button.down") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/down_arrow"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Down, this); + } + else if (part == "calaos.button.stop") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/stop"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_Stop, this); + } + else if (part == "calaos.button.impulse_up") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/impulse_up"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_ImpulseUp, this); + } + else if (part == "calaos.button.impulse_down") + { + o = elm_button_add(parent); + Evas_Object *icon = elm_icon_add(o); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/action_button/impulse_down"); + elm_object_style_set(o, "calaos/action_button/default"); + elm_object_content_set(o, icon); + evas_object_smart_callback_add(o, "clicked", _item_button_ImpulseDown, this); + } + else if (part == "calaos.button.25") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/action_button/label"); + elm_object_text_set(o, "25%"); + evas_object_smart_callback_add(o, "clicked", _item_button_Set25, this); + } + else if (part == "calaos.button.50") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/action_button/label"); + elm_object_text_set(o, "50%"); + evas_object_smart_callback_add(o, "clicked", _item_button_Set50, this); + } + else if (part == "calaos.button.75") + { + o = elm_button_add(parent); + elm_object_style_set(o, "calaos/action_button/label"); + elm_object_text_set(o, "75%"); + evas_object_smart_callback_add(o, "clicked", _item_button_Set75, this); + } + else if (part == "calaos.window.slider") + { + window_slider = new EdjeObject(ApplicationMain::getTheme(), evas); + window_slider->setAutoDelete(true); + window_slider->object_deleted.connect(sigc::mem_fun(*this, &IOWOVoletSmartHomeView::sliderObjectDeleted)); + window_slider->LoadEdje("calaos/shutter/slider"); + window_slider->Show(); + + o = window_slider->getEvasObject(); + } + + initView(); + + return o; +} + +string IOWOVoletSmartHomeView::getLabelItem(Evas_Object *obj, string part) +{ + string text; + + if (!io) return text; + + if (part == "text") + { + text = io->params["name"]; + } + else if (part == "shutter.state") + { + int percent = io->getPercentVoletSmart(); + + if (percent == 0) + text = "Etat : Ouvert."; + else if (percent > 0 && percent < 50) + text = "Etat : Ouvert à " + to_string(percent) + "%."; + else if (percent >= 50 && percent < 100) + text = "Etat : Fermé à " + to_string(percent) + "%."; + else if (percent == 100) + text = "Etat : Fermé."; + } + else if (part == "shutter.action") + { + string status = io->getStatusVoletSmart(); + if (status == "stop" || status == "") + text = "Action : Arrêté"; + else if (status == "down") + text = "Action : Fermeture."; + else if (status == "up") + text = "Action : Ouverture."; + } + + return text; +} + +void IOWOVoletSmartHomeView::sliderObjectDeleted() +{ + window_slider = NULL; +} + +void IOWOVoletSmartHomeView::initView() +{ + updateView(); +} + +void IOWOVoletSmartHomeView::updateView() +{ + if (!io || !item) + return; + + elm_genlist_item_fields_update(item, "text", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "shutter.state", ELM_GENLIST_ITEM_FIELD_TEXT); + elm_genlist_item_fields_update(item, "shutter.action", ELM_GENLIST_ITEM_FIELD_TEXT); + + int percent = io->getPercentVoletSmart(); + + if (percent >= 100) + { + itemEmitSignal("text,active,blue", "calaos"); + itemEmitSignal("on,normal", "calaos"); + } + else + { + itemEmitSignal("text,inactive", "calaos"); + itemEmitSignal("off,normal", "calaos"); + } + + if (window_slider) window_slider->setDragValue("object.shutter", 0.0, (double)percent / 100.0); +} + +void IOWOVoletSmartHomeView::buttonClickUp() +{ + if (!io) return; + + io->sendAction("up"); +} + +void IOWOVoletSmartHomeView::buttonClickDown() +{ + if (!io) return; + + io->sendAction("down"); +} + +void IOWOVoletSmartHomeView::buttonClickStop() +{ + if (!io) return; + + io->sendAction("stop"); +} + +void IOWOVoletSmartHomeView::buttonClickImpulseUp() +{ + if (!io) return; + + io->sendAction("up 1"); +} + +void IOWOVoletSmartHomeView::buttonClickImpulseDown() +{ + if (!io) return; + + io->sendAction("down 1"); +} + +void IOWOVoletSmartHomeView::buttonClickSet25() +{ + if (!io) return; + + io->sendAction("set 25"); +} + +void IOWOVoletSmartHomeView::buttonClickSet50() +{ + if (!io) return; + + io->sendAction("set 50"); +} + +void IOWOVoletSmartHomeView::buttonClickSet75() +{ + if (!io) return; + + io->sendAction("set 75"); +} diff --git a/src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.h b/src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.h new file mode 100644 index 00000000..204b0069 --- /dev/null +++ b/src/bin/calaos_home/views/IO/IOWOVoletSmartHomeView.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOWOVOLETSMARTHOMEVIEW_H +#define IOWOVOLETSMARTHOMEVIEW_H + +#include +#include + +using namespace Utils; + +class IOWOVoletSmartHomeView: public GenlistItemBase, public IOBaseElement +{ + private: + virtual void ioDeleted(); + + EdjeObject *window_slider; + + void sliderObjectDeleted(); + + public: + IOWOVoletSmartHomeView(Evas *evas, Evas_Object *parent, IOBase *io, string style_addition, Elm_Genlist_Item_Type flags = ELM_GENLIST_ITEM_NONE); + virtual ~IOWOVoletSmartHomeView(); + + virtual Evas_Object *getPartItem(Evas_Object *obj, string part); + virtual string getLabelItem(Evas_Object *obj, string part); + + //Called when the real IO changed + virtual void initView(); + virtual void updateView(); + + void buttonClickUp(); + void buttonClickDown(); + void buttonClickStop(); + void buttonClickImpulseUp(); + void buttonClickImpulseDown(); + void buttonClickSet25(); + void buttonClickSet50(); + void buttonClickSet75(); +}; + +#endif // IOWOVOLETSMARTHOMEVIEW_H diff --git a/src/bin/calaos_home/views/IOView.cpp b/src/bin/calaos_home/views/IOView.cpp new file mode 100644 index 00000000..8ba8a664 --- /dev/null +++ b/src/bin/calaos_home/views/IOView.cpp @@ -0,0 +1,148 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "IOView.h" + +#include "IO/IOScenarioHomeView.h" + +#include "IO/IOWODigitalHomeView.h" +#include "IO/IOGenlistScenarioHomeView.h" +#include "IO/IOWODaliHomeView.h" +#include "IO/IOWODaliRVBHomeView.h" +#include "IO/IOInternalBoolHomeView.h" +#include "IO/IOInternalIntHomeView.h" +#include "IO/IOInternalStringHomeView.h" +#include "IO/IOWIAnalogHomeView.h" +#include "IO/IOWOAnalogHomeView.h" +#include "IO/IOWITempHomeView.h" +#include "IO/IOWOVoletHomeView.h" +#include "IO/IOWOVoletSmartHomeView.h" + +IOView::IOView(Evas *_evas, Evas_Object *_parent, IOBase *_io, string collection): + BaseView(_evas, _parent), + IOBaseElement(_io) +{ + try + { + LoadEdje(collection); + } + catch (exception const &e) + { + Utils::logger("root") << Priority::CRIT << "IOView: Can't load edje" << log4cpp::eol; + throw; + } +} + +IOView::~IOView() +{ +} + +IOBaseElement::IOBaseElement(IOBase *_io): + io(_io) +{ + if (io) + { + con_deleted = io->io_deleted.connect(sigc::mem_fun(*this, &IOBaseElement::ioDeleted)); + con_changed = io->io_changed.connect(sigc::mem_fun(*this, &IOBaseElement::updateView)); + } +} + +IOBaseElement::~IOBaseElement() +{ + if (io) + { + con_deleted.disconnect(); + con_changed.disconnect(); + } +} + +void IOBaseElement::setIO(IOBase *_io) +{ + io = _io; + + if (io) + { + con_deleted = io->io_deleted.connect(sigc::mem_fun(*this, &IOBaseElement::ioDeleted)); + con_changed = io->io_changed.connect(sigc::mem_fun(*this, &IOBaseElement::updateView)); + } + + updateView(); +} + +void IOBaseElement::ioDeleted() +{ + io = NULL; + updateView(); +} + +void IOBaseElement::initView() +{ +} + +IOView *IOViewFactory::CreateIOView(Evas *evas, Evas_Object *parent, IOBase *io, int type) +{ + switch (type) + { + default: + case IOView::IO_NONE: return NULL; break; + case IOView::IO_SCENARIO_HOME: return new IOScenarioHomeView(evas, parent, io); break; + } +} + +IOView *IOViewFactory::CreateIOView(Evas *evas, Evas_Object *parent, int type) +{ + return CreateIOView(evas, parent, NULL, type); +} + +IOBaseElement *IOViewFactory::CreateIOBaseElement(Evas *evas, Evas_Object *parent, IOBase *io, Evas_Object *genlist, string style_addition, GenlistItemBase *gparent) +{ + IOBaseElement *element = NULL; + + if (io->params["type"] == "WODigital") + element = new IOWODigitalHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "scenario") + element = new IOGenlistScenarioHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WODali" || io->params["type"] == "X10Output") + element = new IOWODaliHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WODaliRVB") + element = new IOWODaliRVBHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "InternalBool") + element = new IOInternalBoolHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "InternalInt") + element = new IOInternalIntHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "InternalString") + element = new IOInternalStringHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WIAnalog") + element = new IOWIAnalogHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WOAnalog") + element = new IOWOAnalogHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WITemp") + element = new IOWITempHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WOVolet") + element = new IOWOVoletHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + else if (io->params["type"] == "WOVoletSmart") + element = new IOWOVoletSmartHomeView(evas, parent, io, style_addition, ELM_GENLIST_ITEM_NONE); + + GenlistItemBase *item = dynamic_cast(element); + if (item) + item->Append(genlist, gparent); + + return element; +} diff --git a/src/bin/calaos_home/views/IOView.h b/src/bin/calaos_home/views/IOView.h new file mode 100644 index 00000000..2ced5eb1 --- /dev/null +++ b/src/bin/calaos_home/views/IOView.h @@ -0,0 +1,73 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef IOVIEW_H +#define IOVIEW_H + +#include +#include "BaseView.h" + +#include + +using namespace Utils; + +class IOBaseElement +{ + protected: + IOBase *io; + + sigc::connection con_changed; + sigc::connection con_deleted; + + virtual void ioDeleted(); + + public: + IOBaseElement(IOBase *io); + virtual ~IOBaseElement(); + + virtual IOBase *getIO() { return io; } + virtual void setIO(IOBase *_io); + + virtual void initView(); + virtual void updateView() = 0; +}; + +class GenlistItemBase; +class IOView: public BaseView, public IOBaseElement +{ + public: + enum { IO_NONE = 0, IO_SCENARIO_HOME }; + + public: + IOView(Evas *evas, Evas_Object *parent, IOBase *io, string collection); + IOView(Evas *evas, Evas_Object *parent, IOBase *io); + virtual ~IOView(); +}; + +class IOViewFactory +{ + public: + static IOView *CreateIOView(Evas *evas, Evas_Object *parent, IOBase *io, int type); + static IOView *CreateIOView(Evas *evas, Evas_Object *parent, int type); + + static IOBaseElement *CreateIOBaseElement(Evas *evas, Evas_Object *parent, IOBase *io, Evas_Object *genlist, string style_addition, GenlistItemBase *gparent = NULL); +}; + +#endif // IOVIEW_H diff --git a/src/bin/calaos_home/views/KeyboardView.cpp b/src/bin/calaos_home/views/KeyboardView.cpp new file mode 100644 index 00000000..05004610 --- /dev/null +++ b/src/bin/calaos_home/views/KeyboardView.cpp @@ -0,0 +1,140 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "KeyboardView.h" +#include "Ecore_X.h" + +//Some XKeysims +#define XK_Return 0xff0d +#define XK_BackSpace 0xff08 + +KeyboardView::KeyboardView(Evas *e, Evas_Object *parent): + BaseView(e, parent), + keys_upper(false), + keys_other(false) +{ + try + { + LoadEdje("calaos/keyboard"); + } + catch (exception const &e) + { + Utils::logger("root") << Priority::CRIT << "KeyboardView: Can't load edje" << log4cpp::eol; + throw; + } + + addCallback("keyboard", "*", sigc::mem_fun(*this, &KeyboardView::onKeyboardCallback)); +} + +KeyboardView::~KeyboardView() +{ +} + +void KeyboardView::pressKey(string k) +{ + /* Code from enlightenment/Illume */ + const char *key = NULL; + int glyph; + + /* utf8 -> glyph id (unicode - ucs4) */ + glyph = 0; + evas_string_char_next_get(k.c_str(), 0, &glyph); + if (glyph <= 0) return; + /* glyph id -> keysym */ + if (glyph > 0xff) glyph |= 0x1000000; + + key = ecore_x_keysym_string_get(glyph); + + if (!key) return; + + ecore_x_test_fake_key_press(key); +} + +void KeyboardView::onKeyboardCallback(void *data, Evas_Object *edje_object, string emission, string source) +{ + if (source == "keyboard" && emission == "key,key_maj") + { + keys_upper = !keys_upper; + + if (keys_upper) + EmitSignal("keyboard,upper", "calaos"); + else + EmitSignal("keyboard,lower", "calaos"); + } + else if (source == "keyboard" && emission == "key,key_other") + { + keys_other = !keys_other; + + if (keys_other) + EmitSignal("keyboard,other", "calaos"); + else + EmitSignal("keyboard,normal", "calaos"); + } + else if (source == "keyboard" && emission == "key,key_space") + { + pressKey(" "); + } + else if (source == "keyboard" && emission == "key,key_del") + { + ecore_x_test_fake_key_press(ecore_x_keysym_string_get(XK_BackSpace)); + } + else if (source == "keyboard" && emission == "key,key_enter") + { + ecore_x_test_fake_key_press(ecore_x_keysym_string_get(XK_Return)); + + EmitSignal("hide,keyboard", "calaos"); + } + else if (source == "keyboard" && emission == "key,key_multiply") + { + pressKey("*"); + } + else if (source == "keyboard" && emission == "key,key_question") + { + pressKey("?"); + } + else if (source == "keyboard" && emission == "key,key_quote") + { + pressKey("\""); + } + else if (source == "keyboard" && emission == "key,key_backslash") + { + pressKey("\\"); + } + else if (source == "keyboard" && emission == "key,key_bracket_open") + { + pressKey("["); + } + else if (source == "keyboard" && emission == "key,key_bracket_close") + { + pressKey("]"); + } + else if (source == "keyboard" && emission == "key,key_double_point") + { + pressKey(":"); + } + else if (source == "keyboard" && emission.substr(0, 4) == "key,") + { + emission.erase(0, 4); + if (keys_upper) + std::transform (emission.begin(), emission.end(), emission.begin(), to_upper()); + + pressKey(emission); + } +} diff --git a/src/bin/calaos_home/views/KeyboardView.h b/src/bin/calaos_home/views/KeyboardView.h new file mode 100644 index 00000000..8370f122 --- /dev/null +++ b/src/bin/calaos_home/views/KeyboardView.h @@ -0,0 +1,49 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef KeyboardView_H +#define KeyboardView_H + +#include + +#include "BaseView.h" + +using namespace Utils; + +class KeyboardView: public BaseView +{ + private: + void onKeyboardCallback(void *data, Evas_Object *edje_object, string emission, string source); + + bool keys_upper; + bool keys_other; + + public: + KeyboardView(Evas *evas, Evas_Object *parent); + ~KeyboardView(); + + //simulate a pressed key + void pressKey(string key); + + enum { KEY_ALPHA, KEY_SHIFT, KEY_SPACE, KEY_ENTER }; + sigc::signal key_pressed; +}; + +#endif // KeyboardView_H diff --git a/src/bin/calaos_home/views/MainContentView.cpp b/src/bin/calaos_home/views/MainContentView.cpp new file mode 100644 index 00000000..92367da6 --- /dev/null +++ b/src/bin/calaos_home/views/MainContentView.cpp @@ -0,0 +1,228 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "MainContentView.h" +#include "ApplicationMain.h" + +MainContentView::MainContentView(Evas *e, Evas_Object *p): + BaseView(e, p), + EvasSmart(e, "PageContentView"), + evas(e) +{ + clip = evas_object_rectangle_add(evas); + evas_object_color_set(clip, 255, 255, 255, 255); + AddMemberObject(clip); +} + +MainContentView::~MainContentView() +{ + list::iterator it = views.begin(); + for (;it != views.end();it++) + { + ViewAnimation *va = (*it); + + DelMemberObject(va->animation->getEvasObject()); + delete va->animation; + + if (va->view) + delete va->view; + + delete va; + } + + DelMemberObject(clip); + evas_object_del(clip); +} + +void MainContentView::addView(BaseView *view) +{ + if (!view) + throw(runtime_error("MainContentView::addView(): view is NULL !")); + + int x, y, w, h; + evas_object_geometry_get(clip, &x, &y, &w, &h); + evas_object_show(clip); + + ViewAnimation *va = new ViewAnimation(view); + va->view->EmitSignal("show", "calaos"); + va->view->Show(); + va->animation = new EdjeObject(theme, evas); + va->animation->LoadEdje("elm/pager/base/calaos/fade_invisible"); + va->animation->Swallow(va->view, "elm.swallow.content"); + va->pop_me = false; + va->animation->Move(x, y); + va->animation->Resize(w, h); + evas_object_clip_set(va->animation->getEvasObject(), clip); + va->animation->addCallback("*", "elm,action,hide,finished", sigc::mem_fun(*this, &MainContentView::hideFinished), va); + + AddMemberObject(va->animation->getEvasObject()); + + if (views.size() > 0) + { + ViewAnimation *old_va = views.back(); + old_va->animation->EmitSignal("elm,action,hide", "elm"); + } + + views.push_back(va); + + va->animation->Show(); + va->animation->EmitSignal("elm,action,push", "elm"); +} + +void MainContentView::removeTopView() +{ + if (views.size() <= 0) + return; + + ViewAnimation *va = views.back(); + views.pop_back(); + + va->animation->EmitSignal("elm,action,pop", "elm"); + va->pop_me = true; + + if (views.size() > 0) + { + ViewAnimation *last_va = views.back(); + last_va->view->Show(); + last_va->animation->Show(); + last_va->animation->EmitSignal("elm,action,show", "elm"); + } +} + +void MainContentView::showView(BaseView *view) +{ + Utils::logger("root") << Priority::CRIT << "MainMenuView:showView() not implemented !" << log4cpp::eol; + + if (!view) + throw(runtime_error("MainContentView::showView(): view is NULL !")); +} + +void MainContentView::hideFinished(void *data, Evas_Object *edje_object, string emission, string source) +{ + ViewAnimation *va = reinterpret_cast(data); + if (!va) return; + + if (va->pop_me) + { + DelMemberObject(va->animation->getEvasObject()); + + if (member_count <= 0) + evas_object_hide(clip); + + delete va->animation; + + //Don't delete view if it has been pushed again to MainContentView + list::iterator it = views.begin(); + bool found = false; + for (;it != views.end();it++) + { + ViewAnimation *_va = *it; + if (_va->view == va->view) + { + found = true; + break; + } + } + if (!found && va->view) + delete va->view; + + delete va; + } + else + { + va->animation->Hide(); + va->view->Hide(); + va->animation->EmitSignal("elm,action,reset", "elm"); + edje_object_message_signal_process(va->animation->getEvasObject()); + } +} + +BaseView *MainContentView::getTopView() +{ + if (views.size() <= 0) + return NULL; + + ViewAnimation *va = views.back(); + + return va->view; +} + +class SmartMoveFunctor +{ + private: + int x, y; + public: + SmartMoveFunctor(int _x, int _y): x(_x), y(_y) {} + + void operator()(ViewAnimation *&va) const + { + va->animation->Move(x, y); + } +}; +void MainContentView::SmartMove(int x, int y) +{ + evas_object_move(clip, x, y); + + for_each(views.begin(), views.end(), SmartMoveFunctor(x, y)); +} + +class SmartResizeFunctor +{ + private: + int w, h; + public: + SmartResizeFunctor(int _w, int _h): w(_w), h(_h) {} + + void operator()(ViewAnimation *&va) const + { + va->animation->Resize(w, h); + } +}; +void MainContentView::SmartResize(int w, int h) +{ + evas_object_resize(clip, w, h); + + for_each(views.begin(), views.end(), SmartResizeFunctor(w, h)); +} + +void MainContentView::SmartShow() +{ + evas_object_show(clip); +} + +void MainContentView::SmartHide() +{ + evas_object_hide(clip); +} + +void MainContentView::SmartColorSet(int r, int g, int b, int a) +{ + evas_object_color_set(clip, r, g, b, a); +} + +void MainContentView::SmartClipSet(Evas_Object *_clip) +{ + evas_object_clip_set(clip, _clip); +} + +void MainContentView::SmartClipUnset() +{ + evas_object_clip_unset(clip); +} diff --git a/src/bin/calaos_home/views/MainContentView.h b/src/bin/calaos_home/views/MainContentView.h new file mode 100644 index 00000000..24d76fa7 --- /dev/null +++ b/src/bin/calaos_home/views/MainContentView.h @@ -0,0 +1,83 @@ +/****************************************************************************** +** Copyright (c) 2006-2011, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef MAINCONTENTVIEW_H +#define MAINCONTENTVIEW_H + +#include + +#include "BaseView.h" +#include "EvasSmart.h" + +using namespace Utils; + +class ViewAnimation +{ + private: + void viewDeleted() + { + view = NULL; + } + + public: + ViewAnimation(BaseView *v): + view(v) + { + view->object_deleted.connect(sigc::mem_fun(*this, &ViewAnimation::viewDeleted)); + } + + BaseView *view; + EdjeObject *animation; + bool pop_me; +}; + +class MainContentView: public BaseView, public EvasSmart +{ + private: + Evas *evas; + + list views; + BaseView *top_item; + + Evas_Object *clip; + + void hideFinished(void *data, Evas_Object *edje_object, string emission, string source); + + public: + MainContentView(Evas *evas, Evas_Object *parent); + ~MainContentView(); + + void addView(BaseView *view); + void removeTopView(); + void showView(BaseView *view); + + BaseView *getTopView(); + + + virtual void SmartMove(int x, int y); + virtual void SmartResize(int w, int h); + virtual void SmartShow(); + virtual void SmartHide(); + virtual void SmartColorSet(int r, int g, int b, int a); + virtual void SmartClipSet(Evas_Object *clip); + virtual void SmartClipUnset(); +}; + +#endif // MAINCONTENTVIEW_H diff --git a/src/bin/calaos_home/views/MainMenuView.cpp b/src/bin/calaos_home/views/MainMenuView.cpp new file mode 100644 index 00000000..5de2d934 --- /dev/null +++ b/src/bin/calaos_home/views/MainMenuView.cpp @@ -0,0 +1,222 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "MainMenuView.h" +#include "ApplicationMain.h" + +#define LIST_ITEM_CALLBACK(_class, it_name) \ +static void _item_##it_name##_cb(void *data, Evas_Object *obj, void *event_info) \ +{ _class *menu = reinterpret_cast<_class *>(data); if (data) menu->_click_##it_name(); } \ +void _class::_click_##it_name() { on_##it_name##_click.emit(); } + +LIST_ITEM_CALLBACK(MainMenuView, reboot) +LIST_ITEM_CALLBACK(MainMenuView, widget) +LIST_ITEM_CALLBACK(MainMenuView, suspend) + +MainMenuView::MainMenuView(Evas *e, Evas_Object *p): + BaseView(e, p), + evas(e) +{ + try + { + LoadEdje("calaos/main/menu"); + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "MainMenuView: Can't load edje" << log4cpp::eol; + throw; + } + + addCallback("menu", "*", sigc::mem_fun(*this, &MainMenuView::EdjeCallback)); + addCallback("*", "pressed", sigc::mem_fun(*this, &MainMenuView::ButtonPressedCallback)); + + elm_object_part_content_set(parent, "calaos.main.menu", getEvasObject()); + + list = elm_list_add(parent); + Swallow(list, "menu.homeboard"); + + elm_object_style_set(list, "menu/homeboard"); + elm_list_select_mode_set(list, ELM_OBJECT_SELECT_MODE_ALWAYS); + + evas_object_show(list); + + on_widget_click.connect(sigc::mem_fun(*this, &MainMenuView::editWidgetClick)); + + Show(); +} + +MainMenuView::~MainMenuView() +{ + DELETE_NULL_FUNC(evas_object_del, list) +} + +void MainMenuView::EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source) +{ + if (emission == "home") + on_home_click.emit(); + else if (emission == "media") + on_media_click.emit(); + else if (emission == "scenario") + on_scenario_click.emit(); + else if (emission == "config") + on_config_click.emit(); + else if (emission == "homeboard,open") + { + on_menu_open.emit(); + + elm_list_clear(list); + + Evas_Object *icon; + icon = elm_icon_add(list); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/widget"); + elm_image_resizable_set(icon, true, true); + item_config_widget = elm_list_item_append(list, "Configuration des widgets.", icon, NULL, _item_widget_cb, this); + + icon = elm_icon_add(list); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/screensaver"); + elm_image_resizable_set(icon, true, true); + item_sleep_screen = elm_list_item_append(list, "Mettre en veille l'écran.", icon, NULL, _item_suspend_cb, this); + + icon = elm_icon_add(list); + elm_image_file_set(icon, ApplicationMain::getTheme(), "calaos/icons/reboot"); + elm_image_resizable_set(icon, true, true); + item_reboot = elm_list_item_append(list, "Redémarrer la machine.", icon, NULL, _item_reboot_cb, this); + + elm_list_go(list); + + //Update DPMS info on button + edje_object_part_text_set(elm_list_item_object_get(item_sleep_screen), + "object.description", + "Touchez une fois l'écran pour sortir du mode veille."); + if (Utils::get_config_option("dpms_enable") != "true") + edje_object_part_text_set(elm_list_item_object_get(item_sleep_screen), "object.more_infos", + "Auto: Désactivé"); + else + { + int val; + from_string(Utils::get_config_option("dpms_standby"), val); + + string _t = "Auto: " + Utils::time2string(val); + edje_object_part_text_set(elm_list_item_object_get(item_sleep_screen), "object.more_infos", + _t.c_str()); + } + + //Update number of widgets + string nb = to_string(0); //TODO ! + nb += " Widgets"; + edje_object_part_text_set(elm_list_item_object_get(item_config_widget), "object.more_infos", + nb.c_str()); + edje_object_part_text_set(elm_list_item_object_get(item_config_widget), + "object.description", + "Déplacez et configurez vos widgets sur le bureau."); + + //Reboot item + edje_object_part_text_set(elm_list_item_object_get(item_reboot), + "object.description", + "Veuillez patienter pendant la procédure de redémarrage."); + edje_object_part_text_set(elm_list_item_object_get(item_reboot), + "object.more_infos", ""); + } + else if (emission == "homeboard,close") + { + on_menu_close.emit(); + } +} + +void MainMenuView::ButtonPressedCallback(void *data, Evas_Object *_edje, string emission, string source) +{ + if (source == "button.valid") + { + EmitSignal("widget,normal", "calaos"); + on_widget_valid_click.emit(); + } + else if (source == "button.cancel") + { + EmitSignal("widget,normal", "calaos"); + on_widget_cancel_click.emit(); + } +} + +void MainMenuView::editWidgetClick() +{ + EmitSignal("widget,edit", "calaos"); +} + +void MainMenuView::UnselectAllMenu() +{ + EmitSignal("unselect,all", "calaos"); +} + +void MainMenuView::DisableMenu() +{ + EmitSignal("disable", "calaos"); +} + +void MainMenuView::EnableMenu() +{ + EmitSignal("enable", "calaos"); +} + +void MainMenuView::ShowMenu() +{ + EmitSignal("show,menu", "calaos"); + elm_object_signal_emit(parent, "show,menu", "calaos"); +} + +void MainMenuView::HideMenu() +{ + EmitSignal("hide,menu", "calaos"); + elm_object_signal_emit(parent, "hide,menu", "calaos"); +} + +void MainMenuView::SelectHome() +{ + EmitSignal("select,home", "calaos"); +} + +void MainMenuView::SelectMedia() +{ + EmitSignal("select,media", "calaos"); +} + +void MainMenuView::SelectScenario() +{ + EmitSignal("select,scenario", "calaos"); +} + +void MainMenuView::SelectConfig() +{ + EmitSignal("select,config", "calaos"); +} + +void MainMenuView::OpenLinkMenu() +{ + EmitSignal("menu,link,open", "calaos"); +} + +void MainMenuView::CloseLinkMenu() +{ + EmitSignal("menu,link,close", "calaos"); +} + +void MainMenuView::setVersionString(string version) +{ + setPartText("calaos.version", version); +} diff --git a/src/bin/calaos_home/views/MainMenuView.h b/src/bin/calaos_home/views/MainMenuView.h new file mode 100644 index 00000000..712e478c --- /dev/null +++ b/src/bin/calaos_home/views/MainMenuView.h @@ -0,0 +1,91 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef MAINMENUVIEW_H +#define MAINMENUVIEW_H + +#include + +#include "BaseView.h" + +using namespace Utils; + +class MainMenuView: public BaseView +{ + public: + //These are for private use to get callbacks from C code. + void _click_reboot(); + void _click_suspend(); + void _click_widget(); + + private: + Evas *evas; + + Evas_Object *list; + + Elm_Object_Item *item_config_widget; + Elm_Object_Item *item_sleep_screen; + Elm_Object_Item *item_reboot; + + void EdjeCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + void ButtonPressedCallback(void *data, Evas_Object *_edje, std::string emission, std::string source); + void editWidgetClick(); + + public: + MainMenuView(Evas *evas, Evas_Object *parent); + ~MainMenuView(); + + void UnselectAllMenu(); + void DisableMenu(); + void EnableMenu(); + + void ShowMenu(); + void HideMenu(); + + void SelectHome(); + void SelectMedia(); + void SelectScenario(); + void SelectConfig(); + + void OpenLinkMenu(); + void CloseLinkMenu(); + + void setVersionString(string version); + + /** + * UI Signals + */ + sigc::signal on_home_click; + sigc::signal on_media_click; + sigc::signal on_scenario_click; + sigc::signal on_config_click; + + sigc::signal on_reboot_click; + sigc::signal on_suspend_click; + sigc::signal on_widget_click; + + sigc::signal on_menu_open; + sigc::signal on_menu_close; + + sigc::signal on_widget_valid_click; + sigc::signal on_widget_cancel_click; +}; + +#endif // MAINMENUVIEW_H diff --git a/src/bin/calaos_home/views/PagingView.cpp b/src/bin/calaos_home/views/PagingView.cpp new file mode 100644 index 00000000..9e32cd39 --- /dev/null +++ b/src/bin/calaos_home/views/PagingView.cpp @@ -0,0 +1,195 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "PagingView.h" + +static void _cb_object_resize(void *data , Evas *e, Evas_Object *obj, void *event_info) +{ + PagingView *p = reinterpret_cast(data); + if (p) p->_objectResized(); +} + +static void _scroller_anim_stop_cb(void *data , Evas_Object *obj, void *event_info) +{ + PagingView *p = reinterpret_cast(data); + if (p) p->updateSelector(); +} + +static void _scroller_start_cb(void *data , Evas_Object *obj, void *event_info) +{ + PagingView *p = reinterpret_cast(data); + if (p) p->dragStart(); +} + +static void _scroller_stop_cb(void *data , Evas_Object *obj, void *event_info) +{ + PagingView *p = reinterpret_cast(data); + if (p) p->dragStop(); +} + +PagingView::PagingView(Evas *e, Evas_Object *parent): + BaseView(e, parent) +{ + try + { + LoadEdje("calaos/paging_view"); + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "PagingView: Can't load edje" << log4cpp::eol; + throw; + } + + pager_scroller = elm_scroller_add(parent); + elm_scroller_bounce_set(pager_scroller, EINA_TRUE, EINA_FALSE); + elm_scroller_policy_set(pager_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_scroller_page_relative_set(pager_scroller, 1.0, 1.0); + + box_content = elm_box_add(pager_scroller); + evas_object_size_hint_weight_set(box_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box_content, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_homogeneous_set(box_content, EINA_TRUE); + elm_box_horizontal_set(box_content, EINA_TRUE); + + elm_object_content_set(pager_scroller, box_content); + evas_object_show(box_content); + elm_object_style_set(pager_scroller, "calaos/pager"); + + evas_object_smart_callback_add(pager_scroller, "scroll,drag,start", _scroller_start_cb, this); + evas_object_smart_callback_add(pager_scroller, "scroll,anim,start", _scroller_start_cb, this); + evas_object_smart_callback_add(pager_scroller, "scroll,anim,stop", _scroller_anim_stop_cb, this); +// evas_object_smart_callback_add(pager_scroller, "scroll,drag,stop", _scroller_stop_cb, this); + evas_object_smart_callback_add(pager_scroller, "scroll,anim,stop", _scroller_stop_cb, this); + + Swallow(pager_scroller, "pager.swallow"); + + // Selector + box_selector = elm_box_add(parent); + elm_box_homogeneous_set(box_selector, EINA_TRUE); + elm_box_horizontal_set(box_selector, EINA_TRUE); + evas_object_show(box_selector); + + Swallow(box_selector, "selector.swallow"); + + evas_object_event_callback_add(pager_scroller, EVAS_CALLBACK_RESIZE, _cb_object_resize, this); +} + +PagingView::~PagingView() +{ + elm_box_clear(box_content); + elm_box_clear(box_selector); + elm_object_content_unset(pager_scroller); + + for (unsigned int i = 0;i < pages.size(); i++) + evas_object_del(pages[i]); + pages.clear(); + + for_each(selectors.begin(), selectors.end(), Delete()); + selectors.clear(); + + DELETE_NULL_FUNC(evas_object_del, box_content) + DELETE_NULL_FUNC(evas_object_del, box_selector) + DELETE_NULL_FUNC(evas_object_del, pager_scroller) +} + +int PagingView::addPage(Evas_Object *content) +{ + evas_object_show(content); + elm_box_pack_end(box_content, content); + pages.push_back(content); + + EdjeObject *o = new EdjeObject(theme, evas); + try + { + o->LoadEdje("calaos/paging_view/selector"); + } + catch(exception const& e) + { + Utils::logger("root") << Priority::CRIT << "PagingView: Can't load edje calaos/paging_view/selector" << log4cpp::eol; + throw; + } + + int w, h; + edje_object_size_min_get(o->getEvasObject(), &w, &h); + evas_object_size_hint_min_set(o->getEvasObject(), w, h); + + o->Show(); + elm_box_pack_end(box_selector, o->getEvasObject()); + selectors.push_back(o); + + _objectResized(); + + bringPage(pages.size() - 1); + + updateSelector(); + + return pages.size(); +} + +void PagingView::delPage(int page) +{ + if (page < 0 || page >= (int)pages.size()) + { + Utils::logger("root") << Priority::CRIT << "PagingView: delPage(" << page << ") out of bound [size: " << pages.size() << "] !" << log4cpp::eol; + return; + } + + elm_box_unpack(box_content, pages[page]); + evas_object_del(pages[page]); + pages.erase(pages.begin() + page); + + elm_box_unpack(box_content, selectors[page]->getEvasObject()); + delete selectors[page]; + selectors.erase(selectors.begin() + page); + + bringPage(0); +} + +void PagingView::updateSelector() +{ + int current = getCurrentPage(); + + for (unsigned int i = 0;i < selectors.size();i++) + { + if ((int)i == current) + selectors[i]->EmitSignal("select", "calaos"); + else + selectors[i]->EmitSignal("unselect", "calaos"); + } +} + +void PagingView::_objectResized() +{ + Evas_Coord w, h; + evas_object_geometry_get(pager_scroller, NULL, NULL, &w, &h); + + for (unsigned int i = 0;i < pages.size();i++) + evas_object_size_hint_min_set(pages[i], w, h); +} + +void PagingView::dragStart() +{ + drag_start.emit(); +} + +void PagingView::dragStop() +{ + drag_stop.emit(); +} diff --git a/src/bin/calaos_home/views/PagingView.h b/src/bin/calaos_home/views/PagingView.h new file mode 100644 index 00000000..2727a650 --- /dev/null +++ b/src/bin/calaos_home/views/PagingView.h @@ -0,0 +1,66 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef PAGINGVIEW_H +#define PAGINGVIEW_H + +#include + +#define CHECK_SCROLL_RETURN(...) \ + if (!edje) \ + { \ + Utils::logger("root") << Priority::CRIT << "PagingView: Scroller object NULL !" << log4cpp::eol; \ + return __VA_ARGS__; \ + } + +class PagingView: public BaseView +{ + protected: + Evas_Object *pager_scroller; + + Evas_Object *box_content; + Evas_Object *box_selector; + + vector pages; + vector selectors; + + public: + PagingView(Evas *evas, Evas_Object *parent); + ~PagingView(); + + int addPage(Evas_Object *content); + void delPage(int page); + + void bringPage(int page) { CHECK_SCROLL_RETURN(); elm_scroller_page_bring_in(pager_scroller, page, 0); } + int getPageCount() { CHECK_SCROLL_RETURN(0); return pages.size(); } + int getCurrentPage() { CHECK_SCROLL_RETURN(0); int n; elm_scroller_current_page_get(pager_scroller, &n, NULL); return n; } + + sigc::signal drag_start; + sigc::signal drag_stop; + + + //private stuff + void updateSelector(); + void dragStart(); + void dragStop(); + void _objectResized(); +}; + +#endif // PAGINGVIEW_H diff --git a/src/bin/calaos_home/views/WebKitError.h b/src/bin/calaos_home/views/WebKitError.h new file mode 100644 index 00000000..3e4fdf10 --- /dev/null +++ b/src/bin/calaos_home/views/WebKitError.h @@ -0,0 +1,85 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef WEBKITERROR_H +#define WEBKITERROR_H + +#define WEBKIT_ERROR_HTML " \ + \ + \ + \ + \ +Erreur de chargement ! \ + \ + \ + \ +
      \ +

      Erreur !

      \ +

      \ +Une erreur est survenue lors de la connexion au site: \ +

      \ +
      \ +{FAILING_URL}
      {DESC} \ +
      \ +Le navigateur ne peut pas ouvrir la page du site web demandé. \ +
        \ +
      • Avez vous correctement tapé l'adresse du site web? (ex: \"ww.calaos.fr\" au lieu de \"www.calaos.fr)
      • \ +
      • Etes-vous sûr que ce site existe?
      • \ +
      • Est-ce que votre connection Internet est opérationnelle? Veuillez vérifier connection Internet.
      • \ +
      • La centrale Calaos est-elle bien paramétrée pour accéder à Internet? Vérifiez les réglages.
      • \ +
      \ +
      \ + \ + \ +" + +#endif diff --git a/src/bin/calaos_home/views/Widget.cpp b/src/bin/calaos_home/views/Widget.cpp new file mode 100644 index 00000000..4af93eee --- /dev/null +++ b/src/bin/calaos_home/views/Widget.cpp @@ -0,0 +1,404 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include + +static void _edje_widget_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(obj, emission, source); +} +static void _evas_move_start_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(NULL, "start,move", "widget"); +} +static void _evas_move_stop_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(NULL, "stop,move", "widget"); +} +static void _evas_move_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(NULL, "moving", "widget"); +} +static void _evas_resize_start_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(NULL, "start,resize", "widget"); +} +static void _evas_resize_stop_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(NULL, "stop,resize", "widget"); +} +static void _evas_resize_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Widget *w = reinterpret_cast(data); + if (w) w->Callback(NULL, "resizing", "widget"); +} + +Widget::Widget(string &_theme, Evas *_evas, ModuleDef &_mtype, string _id, Evas_Object *_parent, ActivityWidgetsView *_view): + EdjeObject(_theme, _evas), + parent(_parent), + view(_view), + id(_id), + mtype(_mtype.mod_fname), + timer(NULL), + popup(NULL), + moving(false), + resizing(false) +{ + if (mtype == "xmas" || id == "xmas") + return; + + if (!LoadEdje("calaos/widget/base")) + { + Utils::logger("root").fatal("FATAL ERROR !"); + Utils::logger("root").fatal(" exiting..."); + exit(1); + } + + edje_object_signal_callback_add(edje, "*", "*", _edje_widget_cb, this); + + if (!ModuleManager::Instance().createModuleInstance(evas, _mtype, mdef, id)) + { + string msg = "Error, createModuleInstance(" + mtype + ") failed !"; + throw line_exception(msg.c_str(), __LINE__); + } + + CalaosModuleBase *module = ModuleManager::Instance().getModuleInstance(mdef); + + if (!module) + { + string msg = "Error, getModuleInstance(" + mtype + ") failed !"; + throw line_exception(msg.c_str(), __LINE__); + } + + Evas_Object *o = module->getEvasObject(); + edje_object_part_swallow(edje, "widget", o); + + evas_object_show(o); + + //Box for moving widget + move_box = evas_object_rectangle_add(evas); + evas_object_color_set(move_box, 0, 0, 0, 0); + evas_object_event_callback_add(move_box, EVAS_CALLBACK_MOUSE_DOWN, + _evas_move_start_cb, this); + evas_object_event_callback_add(move_box, EVAS_CALLBACK_MOUSE_MOVE, + _evas_move_move_cb, this); + evas_object_event_callback_add(move_box, EVAS_CALLBACK_MOUSE_UP, + _evas_move_stop_cb, this); + + //Box for resizing widget + resize_box = evas_object_rectangle_add(evas); + evas_object_color_set(resize_box, 0, 0, 0, 0); + evas_object_event_callback_add(resize_box, EVAS_CALLBACK_MOUSE_DOWN, + _evas_resize_start_cb, this); + evas_object_event_callback_add(resize_box, EVAS_CALLBACK_MOUSE_MOVE, + _evas_resize_move_cb, this); + evas_object_event_callback_add(resize_box, EVAS_CALLBACK_MOUSE_UP, + _evas_resize_stop_cb, this); + + edje_object_part_swallow(edje, "widget.resize.bloc", resize_box); + + int w, h; + module->getSizeMin(w, h); + Resize(w, h); + +// set_layer(-5); +} + +Widget::~Widget() +{ + if (mtype == "xmas" || id == "xmas") + return; + + ModuleManager::Instance().DeleteInstance(mdef); + + evas_object_del(move_box); + evas_object_del(resize_box); + + if (timer) + { + delete timer; + timer = NULL; + } +} + +void Widget::Callback(Evas_Object *edje, std::string emission, std::string source) +{ + int x, y, mx, my, w, h, rx, ry; + + if (source == "widget" && emission == "start,move") + { + getGeometry(&x, &y, NULL, NULL); + evas_pointer_output_xy_get(evas, &mx, &my); + offset_x = mx - x; + offset_y = my - y; + + moving = true; + } + else if (source == "widget" && emission == "moving" && moving) + { + evas_pointer_output_xy_get(evas, &mx, &my); + Move(mx - offset_x, my - offset_y); + } + else if (source == "widget" && emission == "stop,move") + { + moving = false; + } + else if (source == "widget" && emission == "start,resize") + { + evas_object_geometry_get(resize_box, &x, &y, NULL, NULL); + evas_pointer_output_xy_get(evas, &mx, &my); + offset_x = mx - x; + offset_y = my - y; + + resizing = true; + } + else if (source == "widget" && emission == "resizing" && resizing) + { + getGeometry(&x, &y, &w, &h); + evas_pointer_output_xy_get(evas, &mx, &my); + + evas_object_geometry_get(resize_box, &rx, &ry, NULL, NULL); + + Resize(mx - offset_x + (x + w - rx) - x, my - offset_y + (y + h - ry) - y); + } + else if (source == "widget" && emission == "stop,resize") + { + resizing = false; + } + else if (source == "button.delete" && emission == "pressed") + { + Evas_Object *table = createPaddingTable(evas, parent, 280, 260); + + Evas_Object *glist = elm_genlist_add(table); + elm_object_style_set(glist, "calaos"); + elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); + evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(glist); + + string title_label = "Confirmation
      Êtes-vous sûr de vouloir supprimer ce widget?"; + GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); + header->Append(glist); + + GenlistItemSimple *item = new GenlistItemSimple(evas, parent, "Oui, supprimer le widget", true); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &Widget::deleteValid)); + + item = new GenlistItemSimple(evas, parent, "Non", true); + item->Append(glist, header); + item->item_selected.connect(sigc::mem_fun(*this, &Widget::deleteCancel)); + + elm_table_pack(table, glist, 1, 1, 1, 1); + + popup = elm_ctxpopup_add(parent); + elm_object_content_set(popup, table); + elm_object_style_set(popup, "calaos"); + elm_ctxpopup_direction_priority_set(popup, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_RIGHT, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_UP); + + Evas_Coord x,y; + evas_pointer_canvas_xy_get(evas, &x, &y); + evas_object_move(popup, x, y); + evas_object_show(popup); + } +} + +void Widget::deleteValid(void *data) +{ + elm_ctxpopup_dismiss(popup); + view->DeleteWidget(this); +} + +void Widget::deleteCancel(void *data) +{ + elm_ctxpopup_dismiss(popup); +} + +void Widget::Show() +{ + edje_object_signal_emit(edje, "show", "calaos"); + EdjeObject::Show(); +} + +void Widget::Hide() +{ + edje_object_signal_emit(edje, "hide", "calaos"); +} + +void Widget::Move(int x, int y) +{ + //Clamp values + if (x < 0) x = 0; + if (y < 0) y = 0; + int w, h; + getGeometry(NULL, NULL, &w, &h); + if (x + w > WIDTH) x = WIDTH - w; + if (y + h + 100 > HEIGHT) y = HEIGHT - h - 100; + + posx = x; + posy = y; + + EdjeObject::Move(x, y); + evas_object_move(move_box, x, y); +} + +void Widget::Resize(int w, int h) +{ + CalaosModuleBase *module = ModuleManager::Instance().getModuleInstance(mdef); + + int minw, minh, maxw, maxh; + module->getSizeMin(minw, minh); + module->getSizeMax(maxw, maxh); + + if (minw > 0 && w < minw) w = minw; + if (minh > 0 && h < minh) h = minh; + if (maxw > 0 && w > maxw) w = maxw; + if (maxh > 0 && h > maxh) h = maxh; + + width = w; + height = h; + + EdjeObject::Resize(w, h); + evas_object_resize(move_box, w, h); +} + +void Widget::EditMode() +{ + evas_object_show(move_box); + edje_object_signal_emit(edje, "widget,edit", "calaos"); + + CalaosModuleBase *module = ModuleManager::Instance().getModuleInstance(mdef); + int minw, minh, maxw, maxh; + module->getSizeMin(minw, minh); + module->getSizeMax(maxw, maxh); + + if (minw != maxw || minh != maxh) + edje_object_signal_emit(edje, "widget,resizable", "calaos"); + + getGeometry(&old_x, &old_y, &old_w, &old_h); +} + +void Widget::NormalMode() +{ + evas_object_hide(move_box); + edje_object_signal_emit(edje, "widget,normal", "calaos"); +} + +void Widget::Reset() +{ + start_time = ecore_time_get(); + + getGeometry(&start_x, &start_y, &start_w, &start_h); + + //create a timer to do the animation + if (timer) delete timer; + timer = new EcoreTimer(1.0 / 30., (sigc::slot)sigc::mem_fun(*this, &Widget::_ResetAnim) ); +} + +void Widget::_ResetAnim() +{ + int new_x, new_y, new_w, new_h; + + //anim has to be done in 1s. + double time = ecore_time_get() - start_time; + if (time >= 1.0) time = 1.0; + + //calc a DECELERATE value + double time_val = sin(time * PI / 2.0); + + int xoffset, yoffset, woffset, hoffset; + + if (old_x > start_x) xoffset = old_x - start_x; else xoffset = start_x - old_x; + if (old_y > start_y) yoffset = old_y - start_y; else yoffset = start_y - old_y; + if (old_w > start_w) woffset = old_w - start_w; else woffset = start_w - old_w; + if (old_h > start_h) hoffset = old_h - start_h; else hoffset = start_h - old_h; + + if (old_x > start_x) + new_x = start_x + (xoffset * time_val); + else + new_x = start_x - (xoffset * time_val); + + if (old_y > start_y) + new_y = start_y + (yoffset * time_val); + else + new_y = start_y - (yoffset * time_val); + + if (old_w > start_w) + new_w = start_w + (woffset * time_val); + else + new_w = start_w - (woffset * time_val); + + if (old_h > start_h) + new_h = start_h + (hoffset * time_val); + else + new_h = start_h - (hoffset * time_val); + + Move(new_x, new_y); + Resize(new_w, new_h); + + //animation is done, exit timer + if (time_val >= 1.0 && timer) + { + delete timer; + timer = NULL; + } +} + +void Widget::Save(TiXmlElement *pnode) +{ + if (!pnode) return; + + TiXmlElement *node = new TiXmlElement("calaos:widget"); + pnode->LinkEndChild(node); + + node->SetAttribute("id", id); + node->SetAttribute("type", mtype); + node->SetAttribute("posx", to_string(posx)); + node->SetAttribute("posy", to_string(posy)); + node->SetAttribute("width", to_string(width)); + node->SetAttribute("height", to_string(height)); +} + +string Widget::getStringInfo() +{ + CalaosModuleBase *module = ModuleManager::Instance().getModuleInstance(mdef); + + if (!module) + { + string msg = "Error, getModuleInstance(" + mtype + ") failed !"; + throw line_exception(msg.c_str(), __LINE__); + + return "Error !"; + } + + return module->getStringInfo(); +} diff --git a/src/bin/calaos_home/views/Widget.h b/src/bin/calaos_home/views/Widget.h new file mode 100644 index 00000000..d2d44f63 --- /dev/null +++ b/src/bin/calaos_home/views/Widget.h @@ -0,0 +1,88 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef CWidget_H +#define CWidget_H + +#include +#include +#include +#include +#include + +class ActivityWidgetsView; + +class Widget: public EdjeObject +{ + protected: + Evas_Object *parent; + ActivityWidgetsView *view; + + double x, y, start_time; + string id, mtype; + + ModuleDef mdef; + + EcoreTimer *timer; + + Evas_Object *popup; + + int offset_x, offset_y; + int old_x, old_y, old_w, old_h; + int start_x, start_y, start_w, start_h; + bool moving, resizing; + + Evas_Object *move_box, *resize_box; + + int posx, posy, width, height; + + sigc::connection sig_widgetmanager; + + void _ResetAnim(); + + void deleteValid(void *data); + void deleteCancel(void *data); + + public: + Widget(string &_theme, Evas *_evas, ModuleDef &_mtype, string _id, Evas_Object *parent, ActivityWidgetsView *view); + ~Widget(); + + void Callback(Evas_Object *edje, std::string emission, std::string source); + + virtual void Show(); + virtual void Hide(); + virtual void Move(int x, int y); + virtual void Resize(int w, int h); + + virtual void EditMode(); + virtual void NormalMode(); + + //Reset position of widget + virtual void Reset(); + + //Save config & position to xml + virtual void Save(TiXmlElement *node); + + virtual string getId() { return id; } + virtual string getType() { return mtype; } + virtual string getStringInfo(); +}; + +#endif diff --git a/src/bin/calaos_server/Audio/AVRDenon.cpp b/src/bin/calaos_server/Audio/AVRDenon.cpp new file mode 100644 index 00000000..dec681bd --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRDenon.cpp @@ -0,0 +1,284 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "AVRDenon.h" + +using namespace Calaos; + +AVRDenon::AVRDenon(Params &p): + AVReceiver(p, 23) +{ + source_names[AVReceiver::AVR_INPUT_DVD] = "DVD"; + source_names[AVReceiver::AVR_INPUT_BD] = "Blu-ray Disc"; + source_names[AVReceiver::AVR_INPUT_CD] = "CD"; + source_names[AVReceiver::AVR_INPUT_PHONO] = "Phono"; + source_names[AVReceiver::AVR_INPUT_TUNER] = "Tuner"; + source_names[AVReceiver::AVR_INPUT_TV] = "TV"; + source_names[AVReceiver::AVR_INPUT_SAT] = "Sat/CBL"; + source_names[AVReceiver::AVR_INPUT_DVRBDR] = "DVR"; + source_names[AVReceiver::AVR_INPUT_GAME_1] = "Game"; + source_names[AVReceiver::AVR_INPUT_GAME_2] = "Game 2"; + source_names[AVReceiver::AVR_INPUT_AUX] = "V. Aux"; + source_names[AVReceiver::AVR_INPUT_DOCK] = "Dock"; + source_names[AVReceiver::AVR_INPUT_HDRADIO] = "HD Radio"; + source_names[AVReceiver::AVR_INPUT_IPOD] = "iPod"; + source_names[AVReceiver::AVR_INPUT_USB] = "Net/USB"; + source_names[AVReceiver::AVR_INPUT_RHAPSODY] = "Rhapsody"; + source_names[AVReceiver::AVR_INPUT_NAPSTER] = "Napster"; + source_names[AVReceiver::AVR_INPUT_PANDORA] = "Pandora"; + source_names[AVReceiver::AVR_INPUT_LASTFM] = "LastFM"; + source_names[AVReceiver::AVR_INPUT_FLICKR] = "Flickr"; + source_names[AVReceiver::AVR_INPUT_FAV] = "Favorites"; + source_names[AVReceiver::AVR_INPUT_NETRADIO] = "IRadio"; + source_names[AVReceiver::AVR_INPUT_SERVER] = "Server"; + + command_suffix = "\r"; + + Utils::logger("output") << Priority::INFO << "AVRDenon::AVRDenon(" << params["host"] << "): Ok" << log4cpp::eol; +} + +AVRDenon::~AVRDenon() +{ + Utils::logger("output") << Priority::INFO << "AVRDenon::~AVRDenon(): Ok" << log4cpp::eol; +} + +void AVRDenon::connectionEstablished() +{ + //power status? + sendRequest("PW?"); + sendRequest("Z2?"); + sendRequest("Z3?"); + + //input selected? + sendRequest("SI?"); + + //volume? + sendRequest("MV?"); +} + +void AVRDenon::processMessage(string msg) +{ + Utils::logger("output") << Priority::DEBUG << "AVRDenon::processMessage(): Recv: " << msg << log4cpp::eol; + + if (msg.substr(0, 2) == "MV") //master volume changed + { + msg.erase(0, 2); + if (is_of_type(msg)) + { + from_string(msg, volume_main); + volume_main = 99 - volume_main; + if (msg.length() == 2) + volume_main = volume_main * 100 / 99; + else + volume_main = (volume_main / 10) * 100 / 99; + + state_changed_1.emit("volume", to_string(volume_main)); + } + } + else if (msg == "PWSTANDBY") //power off + { + power_main = false; + state_changed_1.emit("power", "false"); + } + else if (msg == "PWON") //power on + { + power_main = true; + state_changed_1.emit("power", "true"); + } + else if (msg.substr(0, 2) == "Z2") //zone 2 changed + { + msg.erase(0, 2); + + if (msg == "ON") + { + power_zone2 = true; + state_changed_2.emit("power", "true"); + } + else if (msg == "OFF") + { + power_zone2 = false; + state_changed_2.emit("power", "false"); + } + else if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_zone2 = inputFromString(msg); + state_changed_2.emit("input_source", to_string(source_zone2)); + } + else if (is_of_type(msg)) //Volume changed + { + from_string(msg, volume_zone2); + volume_zone2 = 99 - volume_zone2; + if (msg.length() == 2) + volume_zone2 = volume_zone2 * 100 / 99; + else + volume_zone2 = (volume_zone2 / 10) * 100 / 99; + + state_changed_2.emit("volume", to_string(volume_zone2)); + } + } + else if (msg.substr(0, 2) == "Z3") //zone 3 changed + { + msg.erase(0, 2); + + if (msg == "ON") + { + power_zone3 = true; + state_changed_3.emit("power", "true"); + } + else if (msg == "OFF") + { + power_zone3 = false; + state_changed_3.emit("power", "false"); + } + else if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_zone3 = inputFromString(msg); + state_changed_3.emit("input_source", to_string(source_zone3)); + } + else if (is_of_type(msg)) //Volume changed + { + from_string(msg, volume_zone3); + volume_zone3 = 99 - volume_zone3; + if (msg.length() == 2) + volume_zone3 = volume_zone3 * 100 / 99; + else + volume_zone3 = (volume_zone3 / 10) * 100 / 99; + + state_changed_3.emit("volume", to_string(volume_zone3)); + } + } + else if (msg.substr(0, 2) == "SI") //main zone input source changed + { + msg.erase(0, 2); + if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_main = inputFromString(msg); + state_changed_1.emit("input_source", to_string(source_main)); + } + } +} + +void AVRDenon::Power(bool on, int zone) +{ + if (zone == 1 && on) + sendRequest("PWON"); + else if (zone == 1 && !on) + sendRequest("PWSTANDBY"); + else if (zone == 2 && on) + sendRequest("Z2ON"); + else if (zone == 2 && !on) + sendRequest("Z2OFF"); + else if (zone == 3 && on) + sendRequest("Z3ON"); + else if (zone == 3 && !on) + sendRequest("Z3OFF"); +} + +int AVRDenon::inputFromString(string source) +{ + if (source == "PHONO") return AVReceiver::AVR_INPUT_PHONO; + if (source == "CD") return AVReceiver::AVR_INPUT_CD; + if (source == "TUNER") return AVReceiver::AVR_INPUT_TUNER; + if (source == "DVD") return AVReceiver::AVR_INPUT_DVD; + if (source == "BD") return AVReceiver::AVR_INPUT_BD; + if (source == "TV") return AVReceiver::AVR_INPUT_TV; + if (source == "SAT/CBL") return AVReceiver::AVR_INPUT_SAT; + if (source == "DVR") return AVReceiver::AVR_INPUT_DVRBDR; + if (source == "GAME") return AVReceiver::AVR_INPUT_GAME_1; + if (source == "GAME2") return AVReceiver::AVR_INPUT_GAME_2; + if (source == "V.AUX") return AVReceiver::AVR_INPUT_AUX; + if (source == "DOCK") return AVReceiver::AVR_INPUT_DOCK; + if (source == "HDRADIO") return AVReceiver::AVR_INPUT_HDRADIO; + if (source == "IPOD") return AVReceiver::AVR_INPUT_IPOD; + if (source == "NET/USB") return AVReceiver::AVR_INPUT_USB; + if (source == "RHAPSODY") return AVReceiver::AVR_INPUT_RHAPSODY; + if (source == "NAPSTER") return AVReceiver::AVR_INPUT_NAPSTER; + if (source == "PANDORA") return AVReceiver::AVR_INPUT_PANDORA; + if (source == "LASTFM") return AVReceiver::AVR_INPUT_LASTFM; + if (source == "FLICKR") return AVReceiver::AVR_INPUT_FLICKR; + if (source == "FAVORITES") return AVReceiver::AVR_INPUT_FAV; + if (source == "IRADIO") return AVReceiver::AVR_INPUT_NETRADIO; + if (source == "SERVER") return AVReceiver::AVR_INPUT_SERVER; + + return AVReceiver::AVR_UNKNOWN; +} + +string AVRDenon::inputToString(int source) +{ + switch (source) + { + case AVReceiver::AVR_INPUT_PHONO: return "PHONO"; + case AVReceiver::AVR_INPUT_CD: return "CD"; + case AVReceiver::AVR_INPUT_TUNER: return "TUNER"; + case AVReceiver::AVR_INPUT_DVD: return "DVD"; + case AVReceiver::AVR_INPUT_BD: return "BD"; + case AVReceiver::AVR_INPUT_TV: return "TV"; + case AVReceiver::AVR_INPUT_SAT: return "SAT/CBL"; + case AVReceiver::AVR_INPUT_DVRBDR: return "DVR"; + case AVReceiver::AVR_INPUT_GAME_1: return "GAME"; + case AVReceiver::AVR_INPUT_GAME_2: return "GAME2"; + case AVReceiver::AVR_INPUT_AUX: return "V.AUX"; + case AVReceiver::AVR_INPUT_DOCK: return "DOCK"; + case AVReceiver::AVR_INPUT_HDRADIO: return "HDRADIO"; + case AVReceiver::AVR_INPUT_IPOD: return "IPOD"; + case AVReceiver::AVR_INPUT_USB: return "NET/USB"; + case AVReceiver::AVR_INPUT_RHAPSODY: return "RHAPSODY"; + case AVReceiver::AVR_INPUT_NAPSTER: return "NAPSTER"; + case AVReceiver::AVR_INPUT_PANDORA: return "PANDORA"; + case AVReceiver::AVR_INPUT_LASTFM: return "LASTFM"; + case AVReceiver::AVR_INPUT_FLICKR: return "FLICKR"; + case AVReceiver::AVR_INPUT_FAV: return "FAVORITES"; + case AVReceiver::AVR_INPUT_NETRADIO: return "IRADIO"; + case AVReceiver::AVR_INPUT_SERVER: return "SERVER"; + default: break; + } + + return ""; +} + +void AVRDenon::setVolume(int volume, int zone) +{ + int v = volume * 99 / 100; + v = 99 - v; + stringstream ss; + ss.width(2); + ss.fill('0'); + + if (zone == 1) ss << "MV" << v; + else if (zone == 2) ss << "Z2" << v; + else if (zone == 3) ss << "Z3" << v; + else return; + + sendRequest(ss.str()); +} + +void AVRDenon::selectInputSource(int source, int zone) +{ + string s = inputToString(source); + if (s == "") return; + + string cmd; + if (zone == 1) cmd = "SI" + s; + else if (zone == 2) cmd = "Z2" + s; + else if (zone == 3) cmd = "Z3" + s; + else return; + + sendRequest(cmd); +} diff --git a/src/bin/calaos_server/Audio/AVRDenon.h b/src/bin/calaos_server/Audio/AVRDenon.h new file mode 100644 index 00000000..5bdc2820 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRDenon.h @@ -0,0 +1,53 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef AVRDENON_H +#define AVRDENON_H + +#include +#include + +namespace Calaos +{ + +//Manage Denon AV devices +class AVRDenon: public AVReceiver +{ + protected: + + int inputFromString(string source); + string inputToString(int source); + + virtual void processMessage(string msg); + virtual void connectionEstablished(); + + public: + AVRDenon(Params &p); + virtual ~AVRDenon(); + + virtual void Power(bool on, int zone = 1); + virtual void setVolume(int volume, int zone = 1); + virtual void selectInputSource(int source, int zone = 1); + virtual bool hasDisplay() { return false; } +}; + +} + +#endif // AVRDENON_H diff --git a/src/bin/calaos_server/Audio/AVRManager.cpp b/src/bin/calaos_server/Audio/AVRManager.cpp new file mode 100644 index 00000000..50fc9d8b --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRManager.cpp @@ -0,0 +1,102 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include +#include + +using namespace Calaos; + +AVRManager::AVRManager() +{ +} + +AVRManager::~AVRManager() +{ + for (unsigned int i = 0;i < avrs.size();i++) + delete avrs[i]; + + avrs.clear(); +} + +AVRManager &AVRManager::Instance() +{ + static AVRManager inst; + + return inst; +} + +AVReceiver *AVRManager::Create(Params &p) +{ + AVReceiver *receiver = getReceiver(p["host"]); + if (!receiver) + { + if (p["model"] == "pioneer") + receiver = new AVRPioneer(p); + else if (p["model"] == "denon") + receiver = new AVRDenon(p); + else if (p["model"] == "onkyo") + receiver = new AVROnkyo(p); + else if (p["model"] == "marantz") + receiver = new AVRMarantz(p); + else + { + Utils::logger("output") << Priority::INFO << "AVRManager(): Unknown A/V Receiver model " << p["model"] << log4cpp::eol; + return NULL; + } + avrs.push_back(receiver); + } + + receiver->ref_count++; + + return receiver; +} + +void AVRManager::Delete(AVReceiver *obj) +{ + bool found = false; + for (unsigned int i = 0;i < avrs.size() && !found;i++) + { + if (avrs[i] == obj) + { + obj->ref_count--; + found = true; + } + } + + if (obj->ref_count <= 0) + { + avrs.erase(std::remove(avrs.begin(), avrs.end(), obj), avrs.end()); + delete obj; + } +} + +AVReceiver *AVRManager::getReceiver(string host) +{ + for (unsigned int i = 0;i < avrs.size();i++) + { + if (avrs[i]->host == host) + return avrs[i]; + } + + return NULL; +} diff --git a/src/bin/calaos_server/Audio/AVRManager.h b/src/bin/calaos_server/Audio/AVRManager.h new file mode 100644 index 00000000..8e29a858 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRManager.h @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ + +#ifndef AVRMANAGER_H +#define AVRMANAGER_H + +#include +#include +#include + +namespace Calaos +{ + +class AVRManager +{ + private: + AVRManager(); + + vector avrs; + public: + static AVRManager &Instance(); //Singleton + ~AVRManager(); + + AVReceiver *Create(Params &p); + void Delete(AVReceiver *obj); + + AVReceiver *getReceiver(string host); +}; + +} + +#endif // AVRMANAGER_H diff --git a/src/bin/calaos_server/Audio/AVRMarantz.cpp b/src/bin/calaos_server/Audio/AVRMarantz.cpp new file mode 100644 index 00000000..8198fdf3 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRMarantz.cpp @@ -0,0 +1,291 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "AVRMarantz.h" + +using namespace Calaos; + +AVRMarantz::AVRMarantz(Params &p): + AVReceiver(p, 23) +{ + source_names[AVReceiver::AVR_INPUT_PHONO] = "Phono"; + source_names[AVReceiver::AVR_INPUT_CD] = "CD"; + source_names[AVReceiver::AVR_INPUT_DVD] = "DVD"; + source_names[AVReceiver::AVR_INPUT_BD] = "Bluray"; + source_names[AVReceiver::AVR_INPUT_TV] = "TV"; + source_names[AVReceiver::AVR_INPUT_SAT] = "Sat/CBL"; + source_names[AVReceiver::AVR_INPUT_TVSAT] = "Sat"; + source_names[AVReceiver::AVR_INPUT_VCR] = "VCR"; + source_names[AVReceiver::AVR_INPUT_GAME_1] = "Game"; + source_names[AVReceiver::AVR_INPUT_AUX] = "V. Aux"; + source_names[AVReceiver::AVR_INPUT_TUNER] = "Tuner"; + source_names[AVReceiver::AVR_INPUT_HDRADIO] = "HD Radio"; + source_names[AVReceiver::AVR_INPUT_RHAPSODY] = "Rhapsody"; + source_names[AVReceiver::AVR_INPUT_NAPSTER] = "Napster"; + source_names[AVReceiver::AVR_INPUT_PANDORA] = "Pandora"; + source_names[AVReceiver::AVR_INPUT_LASTFM] = "LastFM"; + source_names[AVReceiver::AVR_INPUT_FLICKR] = "Flickr"; + source_names[AVReceiver::AVR_INPUT_FAV] = "Favorites"; + source_names[AVReceiver::AVR_INPUT_NETRADIO] = "IRadio"; + source_names[AVReceiver::AVR_INPUT_SERVER] = "Server"; + source_names[AVReceiver::AVR_INPUT_CDRTAPE] = "CDR"; + source_names[AVReceiver::AVR_INPUT_AUX1] = "Aux 1"; + source_names[AVReceiver::AVR_INPUT_AUX2] = "Aux 2"; + source_names[AVReceiver::AVR_INPUT_USB] = "Net/USB"; + source_names[AVReceiver::AVR_INPUT_IPOD] = "USB/iPod"; + + command_suffix = "\r"; + + Utils::logger("output") << Priority::INFO << "AVRMarantz::AVRMarantz(" << params["host"] << "): Ok" << log4cpp::eol; +} + +AVRMarantz::~AVRMarantz() +{ + Utils::logger("output") << Priority::INFO << "AVRMarantz::~AVRMarantz(): Ok" << log4cpp::eol; +} + +void AVRMarantz::connectionEstablished() +{ + //power status? + sendRequest("PW?"); + sendRequest("ZM?"); + sendRequest("Z2?"); + sendRequest("Z3?"); + + //input selected? + sendRequest("SI?"); + + //volume? + sendRequest("MV?"); +} + +void AVRMarantz::processMessage(string msg) +{ + Utils::logger("output") << Priority::DEBUG << "AVRMarantz::processMessage(): Recv: " << msg << log4cpp::eol; + + if (msg.substr(0, 2) == "MV") //master volume changed + { + msg.erase(0, 2); + if (is_of_type(msg)) + { + from_string(msg, volume_main); + volume_main = 99 - volume_main; + if (msg.length() == 2) + volume_main = volume_main * 100 / 99; + else + volume_main = (volume_main / 10) * 100 / 99; + + state_changed_1.emit("volume", to_string(volume_main)); + } + } + else if (msg == "PWSTANDBY") //power off + { + power_main = false; + state_changed_1.emit("power", "false"); + } + else if (msg == "PWON") //power on + { + power_main = true; + state_changed_1.emit("power", "true"); + } + else if (msg.substr(0, 2) == "Z2") //zone 2 changed + { + msg.erase(0, 2); + + if (msg == "ON") + { + power_zone2 = true; + state_changed_2.emit("power", "true"); + } + else if (msg == "OFF") + { + power_zone2 = false; + state_changed_2.emit("power", "false"); + } + else if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_zone2 = inputFromString(msg); + state_changed_2.emit("input_source", to_string(source_zone2)); + } + else if (is_of_type(msg)) //Volume changed + { + from_string(msg, volume_zone2); + volume_zone2 = 99 - volume_zone2; + if (msg.length() == 2) + volume_zone2 = volume_zone2 * 100 / 99; + else + volume_zone2 = (volume_zone2 / 10) * 100 / 99; + + state_changed_2.emit("volume", to_string(volume_zone2)); + } + } + else if (msg.substr(0, 2) == "Z3") //zone 3 changed + { + msg.erase(0, 2); + + if (msg == "ON") + { + power_zone3 = true; + state_changed_3.emit("power", "true"); + } + else if (msg == "OFF") + { + power_zone3 = false; + state_changed_3.emit("power", "false"); + } + else if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_zone3 = inputFromString(msg); + state_changed_3.emit("input_source", to_string(source_zone3)); + } + else if (is_of_type(msg)) //Volume changed + { + from_string(msg, volume_zone3); + volume_zone3 = 99 - volume_zone3; + if (msg.length() == 2) + volume_zone3 = volume_zone3 * 100 / 99; + else + volume_zone3 = (volume_zone3 / 10) * 100 / 99; + + state_changed_3.emit("volume", to_string(volume_zone3)); + } + } + else if (msg.substr(0, 2) == "SI") //main zone input source changed + { + msg.erase(0, 2); + if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_main = inputFromString(msg); + state_changed_1.emit("input_source", to_string(source_main)); + } + } +} + +void AVRMarantz::Power(bool on, int zone) +{ + if (zone == 1 && on) + sendRequest("PWON"); + else if (zone == 1 && !on) + sendRequest("PWSTANDBY"); + else if (zone == 2 && on) + sendRequest("Z2ON"); + else if (zone == 2 && !on) + sendRequest("Z2OFF"); + else if (zone == 3 && on) + sendRequest("Z3ON"); + else if (zone == 3 && !on) + sendRequest("Z3OFF"); +} + +int AVRMarantz::inputFromString(string source) +{ + if (source == "PHONO") return AVReceiver::AVR_INPUT_PHONO; + if (source == "CD") return AVReceiver::AVR_INPUT_CD; + if (source == "DVD") return AVReceiver::AVR_INPUT_DVD; + if (source == "BD") return AVReceiver::AVR_INPUT_BD; + if (source == "TV") return AVReceiver::AVR_INPUT_TV; + if (source == "SAT/CBL") return AVReceiver::AVR_INPUT_SAT; + if (source == "SAT") return AVReceiver::AVR_INPUT_TVSAT; + if (source == "VCR") return AVReceiver::AVR_INPUT_VCR; + if (source == "GAME") return AVReceiver::AVR_INPUT_GAME_1; + if (source == "V.AUX") return AVReceiver::AVR_INPUT_AUX; + if (source == "TUNER") return AVReceiver::AVR_INPUT_TUNER; + if (source == "HDRADIO") return AVReceiver::AVR_INPUT_HDRADIO; + if (source == "RHAPSODY") return AVReceiver::AVR_INPUT_RHAPSODY; + if (source == "NAPSTER") return AVReceiver::AVR_INPUT_NAPSTER; + if (source == "PANDORA") return AVReceiver::AVR_INPUT_PANDORA; + if (source == "LASTFM") return AVReceiver::AVR_INPUT_LASTFM; + if (source == "FLICKR") return AVReceiver::AVR_INPUT_FLICKR; + if (source == "FAVORITES") return AVReceiver::AVR_INPUT_FAV; + if (source == "IRADIO") return AVReceiver::AVR_INPUT_NETRADIO; + if (source == "SERVER") return AVReceiver::AVR_INPUT_SERVER; + if (source == "CDR") return AVReceiver::AVR_INPUT_CDRTAPE; + if (source == "AUX1") return AVReceiver::AVR_INPUT_AUX1; + if (source == "AUX2") return AVReceiver::AVR_INPUT_AUX2; + if (source == "NET/USB") return AVReceiver::AVR_INPUT_USB; + if (source == "USB/IPOD") return AVReceiver::AVR_INPUT_IPOD; + + return AVReceiver::AVR_UNKNOWN; +} + +string AVRMarantz::inputToString(int source) +{ + switch (source) + { + case AVReceiver::AVR_INPUT_PHONO: return "PHONO"; + case AVReceiver::AVR_INPUT_CD: return "CD"; + case AVReceiver::AVR_INPUT_DVD: return "DVD"; + case AVReceiver::AVR_INPUT_BD: return "BD"; + case AVReceiver::AVR_INPUT_TV: return "TV"; + case AVReceiver::AVR_INPUT_SAT: return "SAT/CBL"; + case AVReceiver::AVR_INPUT_TVSAT: return "SAT"; + case AVReceiver::AVR_INPUT_VCR: return "VCR"; + case AVReceiver::AVR_INPUT_GAME_1: return "GAME"; + case AVReceiver::AVR_INPUT_AUX: return "V.AUX"; + case AVReceiver::AVR_INPUT_TUNER: return "TUNER"; + case AVReceiver::AVR_INPUT_HDRADIO: return "HDRADIO"; + case AVReceiver::AVR_INPUT_RHAPSODY: return "RHAPSODY"; + case AVReceiver::AVR_INPUT_NAPSTER: return "NAPSTER"; + case AVReceiver::AVR_INPUT_PANDORA: return "PANDORA"; + case AVReceiver::AVR_INPUT_LASTFM: return "LASTFM"; + case AVReceiver::AVR_INPUT_FLICKR: return "FLICKR"; + case AVReceiver::AVR_INPUT_FAV: return "FAVORITES"; + case AVReceiver::AVR_INPUT_NETRADIO: return "IRADIO"; + case AVReceiver::AVR_INPUT_SERVER: return "SERVER"; + case AVReceiver::AVR_INPUT_CDRTAPE: return "CDR"; + case AVReceiver::AVR_INPUT_AUX1: return "AUX1"; + case AVReceiver::AVR_INPUT_AUX2: return "AUX2"; + case AVReceiver::AVR_INPUT_USB: return "NET/USB"; + case AVReceiver::AVR_INPUT_IPOD: return "USB/IPOD"; + default: break; + } + + return ""; +} + +void AVRMarantz::setVolume(int volume, int zone) +{ + int v = volume * 99 / 100; + v = 99 - v; + stringstream ss; + ss.width(2); + ss.fill('0'); + + if (zone == 1) ss << "MV" << v; + else if (zone == 2) ss << "Z2" << v; + else if (zone == 3) ss << "Z3" << v; + else return; + + sendRequest(ss.str()); +} + +void AVRMarantz::selectInputSource(int source, int zone) +{ + string s = inputToString(source); + if (s == "") return; + + string cmd; + if (zone == 1) cmd = "SI" + s; + else if (zone == 2) cmd = "Z2" + s; + else if (zone == 3) cmd = "Z3" + s; + else return; + + sendRequest(cmd); +} diff --git a/src/bin/calaos_server/Audio/AVRMarantz.h b/src/bin/calaos_server/Audio/AVRMarantz.h new file mode 100644 index 00000000..ae1b4de6 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRMarantz.h @@ -0,0 +1,53 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef AVRMarantz_H +#define AVRMarantz_H + +#include +#include + +namespace Calaos +{ + +//Manage Denon AV devices +class AVRMarantz: public AVReceiver +{ + protected: + + int inputFromString(string source); + string inputToString(int source); + + virtual void processMessage(string msg); + virtual void connectionEstablished(); + + public: + AVRMarantz(Params &p); + virtual ~AVRMarantz(); + + virtual void Power(bool on, int zone = 1); + virtual void setVolume(int volume, int zone = 1); + virtual void selectInputSource(int source, int zone = 1); + virtual bool hasDisplay() { return false; } +}; + +} + +#endif // AVRMarantz_H diff --git a/src/bin/calaos_server/Audio/AVROnkyo.cpp b/src/bin/calaos_server/Audio/AVROnkyo.cpp new file mode 100644 index 00000000..e0935488 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVROnkyo.cpp @@ -0,0 +1,378 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include "AVROnkyo.h" + +using namespace Calaos; + +AVROnkyo::AVROnkyo(Params &p): + AVReceiver(p, 60128, AVR_CON_BYTES) +{ + source_names[AVReceiver::AVR_INPUT_DVD] = "DVD / Bluray"; + source_names[AVReceiver::AVR_INPUT_CD] = "CD"; + source_names[AVReceiver::AVR_INPUT_PHONO] = "Phono"; + source_names[AVReceiver::AVR_INPUT_TUNER] = "Tuner"; + source_names[AVReceiver::AVR_INPUT_VIDEO_1] = "VCR/DVR"; + source_names[AVReceiver::AVR_INPUT_VIDEO_2] = "Sat/CBL"; + source_names[AVReceiver::AVR_INPUT_VIDEO_3] = "Game/TV"; + source_names[AVReceiver::AVR_INPUT_VIDEO_4] = "Aux. 1"; + source_names[AVReceiver::AVR_INPUT_VIDEO_5] = "Aux. 2"; + source_names[AVReceiver::AVR_INPUT_VIDEO_6] = "PC"; + source_names[AVReceiver::AVR_INPUT_VIDEO_7] = "Video 7"; + source_names[AVReceiver::AVR_INPUT_TV] = "TV/Tape"; + source_names[AVReceiver::AVR_INPUT_SERVER] = "Music Server DLNA"; + source_names[AVReceiver::AVR_INPUT_NETRADIO] = "Internet Radio"; + source_names[AVReceiver::AVR_INPUT_USB] = "USB Front"; + source_names[AVReceiver::AVR_INPUT_USB2] = "USB Rear"; + source_names[AVReceiver::AVR_INPUT_NETWORK] = "Network"; + source_names[AVReceiver::AVR_INPUT_APORT] = "Universal Port"; + source_names[AVReceiver::AVR_INPUT_MULTIIN] = "Multi Ch. In"; + + Utils::logger("output") << Priority::INFO << "AVROnkyo::AVROnkyo(" << params["host"] << "): Ok" << log4cpp::eol; +} + +AVROnkyo::~AVROnkyo() +{ + Utils::logger("output") << Priority::INFO << "AVROnkyo::~AVROnkyo(): Ok" << log4cpp::eol; +} + +void AVROnkyo::connectionEstablished() +{ + //power status? + sendCustomCommand("PWRQSTN"); + sendCustomCommand("ZPWQSTN"); + sendCustomCommand("PW3QSTN"); + + //input selected? + sendCustomCommand("SLIQSTN"); + sendCustomCommand("SLZQSTN"); + sendCustomCommand("SL3QSTN"); + + //volume? + sendCustomCommand("MVLQSTN"); + sendCustomCommand("ZVLQSTN"); + sendCustomCommand("VL3QSTN"); +} + +void AVROnkyo::sendCustomCommand(string command) +{ + vector eISCP; + + int data_size = command.length() + 3; //2 more bytes for !1 + int msg_size = data_size + 16; //end char + header + + //Header + eISCP.push_back('I'); + eISCP.push_back('S'); + eISCP.push_back('C'); + eISCP.push_back('P'); + + //Header size (big endian) + eISCP.push_back(0x00); + eISCP.push_back(0x00); + eISCP.push_back(0x00); + eISCP.push_back(0x10); + + //data size (big endian) + eISCP.push_back(0x00); + eISCP.push_back(0x00); + eISCP.push_back(0x00); + // the official ISCP docs say this is supposed to be just the data size (eiscpDataSize) + // ** BUT ** + // It only works if you send the size of the entire Message size (eiscpMsgSize) + eISCP.push_back((char)data_size); + + //eISCP version + eISCP.push_back(0x01); + + //reserved + eISCP.push_back(0x00); + eISCP.push_back(0x00); + eISCP.push_back(0x00); + + //data header + eISCP.push_back('!'); + eISCP.push_back('1'); //device type, 1 for receiver + + //data command + eISCP.insert(eISCP.end(), command.begin(), command.end()); + + //end char + eISCP.push_back(0x0D); + + sendRequest(eISCP); +} + +void AVROnkyo::processMessage(vector data) +{ + if (data.size() < 18) //msg is too small, wait for more data to come + { + //We don't have a complete paquet yet, buffurize it. + brecv_buffer.insert(brecv_buffer.end(), data.begin(), data.end()); + + Utils::logger("output") << Priority::DEBUG << "AVReceiver:getData() Bufferize data." << log4cpp::eol; + + return; + } + + if (!brecv_buffer.empty()) + { + //Put last data in buffer + brecv_buffer.insert(data.end(), data.begin(), data.end()); + data = brecv_buffer; + brecv_buffer.clear(); + } + + vector::iterator it = data.begin(); + string msg; + for (int i = 0;it < data.end();it++, i++) + { + if (i < 18) continue; + + if (*it == 0x0A || + *it == 0x0D || + *it == 0x1A) + { + if (!msg.empty()) + { + processMessage(msg); + data.erase(data.begin(), it); + + //remove starting separator chars + while (data.size() > 0 && + (*(data.begin()) == 0x0A || + *(data.begin()) == 0x1A || + *(data.begin()) == 0x0D)) + { + data.erase(data.begin()); + } + + it = data.begin(); + i = 0; + msg.clear(); + } + continue; + } + msg.push_back(*it); + } + + if (!data.empty()) + { + //We don't have a complete paquet yet, buffurize it. + brecv_buffer.insert(data.end(), data.begin(), data.end()); + + Utils::logger("output") << Priority::DEBUG << "AVReceiver:getData() Bufferize data." << log4cpp::eol; + } +} + +void AVROnkyo::processMessage(string msg) +{ + Utils::logger("output") << Priority::DEBUG << "AVROnkyo::processMessage(): Recv new message: " << msg << log4cpp::eol; + + if (msg.substr(0, 3) == "MVL") //master volume changed + { + msg.erase(0, 3); + if (is_of_type(msg)) + { + istringstream iss(msg); + iss >> hex >> volume_main; + + state_changed_1.emit("volume", to_string(volume_main)); + } + } + else if (msg.substr(0, 3) == "ZVL") //zone2 volume changed + { + msg.erase(0, 3); + if (is_of_type(msg)) + { + istringstream iss(msg); + iss >> hex >> volume_zone2; + + state_changed_2.emit("volume", to_string(volume_zone2)); + } + } + else if (msg.substr(0, 3) == "VL3") //zone3 volume changed + { + msg.erase(0, 3); + if (is_of_type(msg)) + { + istringstream iss(msg); + iss >> hex >> volume_zone3; + + state_changed_3.emit("volume", to_string(volume_zone3)); + } + } + else if (msg == "PWR00") //power off + { + power_main = false; + state_changed_1.emit("power", "false"); + } + else if (msg == "PWR01") //power on + { + power_main = true; + state_changed_1.emit("power", "true"); + } + else if (msg == "ZPW00") //power off + { + power_zone2 = false; + state_changed_2.emit("power", "false"); + } + else if (msg == "ZPW01") //power on + { + power_zone2 = true; + state_changed_2.emit("power", "true"); + } + else if (msg == "PW300") //power off + { + power_zone3 = false; + state_changed_3.emit("power", "false"); + } + else if (msg == "PW301") //power on + { + power_zone3 = true; + state_changed_3.emit("power", "true"); + } + else if (msg.substr(0, 3) == "SLI") //main zone input source changed + { + msg.erase(0, 3); + if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_main = inputFromString(msg); + state_changed_1.emit("input_source", to_string(source_main)); + } + } + else if (msg.substr(0, 3) == "SLZ") //zone 2 input source changed + { + msg.erase(0, 3); + if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_zone2 = inputFromString(msg); + state_changed_2.emit("input_source", to_string(source_main)); + } + } + else if (msg.substr(0, 3) == "SL3") //zone 3 input source changed + { + msg.erase(0, 3); + if (inputFromString(msg) != AVReceiver::AVR_UNKNOWN) //this is an input source change + { + source_zone3 = inputFromString(msg); + state_changed_3.emit("input_source", to_string(source_main)); + } + } + +} + +void AVROnkyo::Power(bool on, int zone) +{ + if (zone == 1 && on) + sendCustomCommand("PWR01"); + else if (zone == 1 && !on) + sendCustomCommand("PWR00"); + else if (zone == 2 && on) + sendCustomCommand("ZPW01"); + else if (zone == 2 && !on) + sendCustomCommand("ZPW00"); + else if (zone == 3 && on) + sendCustomCommand("PW301"); + else if (zone == 3 && !on) + sendCustomCommand("PW300"); +} + +int AVROnkyo::inputFromString(string source) +{ + if (source == "00") return AVReceiver::AVR_INPUT_VIDEO_1; + if (source == "01") return AVReceiver::AVR_INPUT_VIDEO_2; + if (source == "02") return AVReceiver::AVR_INPUT_VIDEO_3; + if (source == "03") return AVReceiver::AVR_INPUT_VIDEO_4; + if (source == "04") return AVReceiver::AVR_INPUT_VIDEO_5; + if (source == "05") return AVReceiver::AVR_INPUT_VIDEO_6; + if (source == "06") return AVReceiver::AVR_INPUT_VIDEO_7; + if (source == "10") return AVReceiver::AVR_INPUT_DVD; + if (source == "20") return AVReceiver::AVR_INPUT_TV; + if (source == "22") return AVReceiver::AVR_INPUT_PHONO; + if (source == "23") return AVReceiver::AVR_INPUT_CD; + if (source == "26") return AVReceiver::AVR_INPUT_TUNER; + if (source == "27") return AVReceiver::AVR_INPUT_SERVER; + if (source == "28") return AVReceiver::AVR_INPUT_NETRADIO; + if (source == "29") return AVReceiver::AVR_INPUT_USB; + if (source == "2A") return AVReceiver::AVR_INPUT_USB2; + if (source == "2B") return AVReceiver::AVR_INPUT_NETWORK; + if (source == "40") return AVReceiver::AVR_INPUT_APORT; + if (source == "30") return AVReceiver::AVR_INPUT_MULTIIN; + + return AVReceiver::AVR_UNKNOWN; +} + +string AVROnkyo::inputToString(int source) +{ + switch (source) + { + case AVReceiver::AVR_INPUT_VIDEO_1: return "00"; + case AVReceiver::AVR_INPUT_VIDEO_2: return "01"; + case AVReceiver::AVR_INPUT_VIDEO_3: return "02"; + case AVReceiver::AVR_INPUT_VIDEO_4: return "03"; + case AVReceiver::AVR_INPUT_VIDEO_5: return "04"; + case AVReceiver::AVR_INPUT_VIDEO_6: return "05"; + case AVReceiver::AVR_INPUT_VIDEO_7: return "06"; + case AVReceiver::AVR_INPUT_DVD: return "10"; + case AVReceiver::AVR_INPUT_TV: return "20"; + case AVReceiver::AVR_INPUT_PHONO: return "22"; + case AVReceiver::AVR_INPUT_CD: return "23"; + case AVReceiver::AVR_INPUT_TUNER: return "26"; + case AVReceiver::AVR_INPUT_SERVER: return "27"; + case AVReceiver::AVR_INPUT_NETRADIO: return "28"; + case AVReceiver::AVR_INPUT_USB: return "29"; + case AVReceiver::AVR_INPUT_USB2: return "2A"; + case AVReceiver::AVR_INPUT_NETWORK: return "2B"; + case AVReceiver::AVR_INPUT_APORT: return "40"; + case AVReceiver::AVR_INPUT_MULTIIN: return "30"; + default: break; + } + + return ""; +} + +void AVROnkyo::setVolume(int volume, int zone) +{ + stringstream ss; + ss.width(2); + ss.fill('0'); + + if (zone == 1) ss << "MVL" << uppercase << hex << volume; + else if (zone == 2) ss << "ZVL" << uppercase << hex << volume; + else if (zone == 3) ss << "VL3" << uppercase << hex << volume; + else return; + + sendCustomCommand(ss.str()); +} + +void AVROnkyo::selectInputSource(int source, int zone) +{ + string s = inputToString(source); + if (s == "") return; + + string cmd; + if (zone == 1) cmd = "SLI" + s; + else if (zone == 2) cmd = "SLZ" + s; + else if (zone == 3) cmd = "SL3" + s; + else return; + + sendCustomCommand(cmd); +} diff --git a/src/bin/calaos_server/Audio/AVROnkyo.h b/src/bin/calaos_server/Audio/AVROnkyo.h new file mode 100644 index 00000000..c2fb6e68 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVROnkyo.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef AVROnkyo_H +#define AVROnkyo_H + +#include +#include + +namespace Calaos +{ + +//Manage Denon AV devices +class AVROnkyo: public AVReceiver +{ + protected: + + //buffer to store received data + vector brecv_buffer; + + int inputFromString(string source); + string inputToString(int source); + + virtual void processMessage(vector msg); + virtual void processMessage(string msg); + virtual void connectionEstablished(); + + public: + AVROnkyo(Params &p); + virtual ~AVROnkyo(); + + virtual void Power(bool on, int zone = 1); + virtual void setVolume(int volume, int zone = 1); + virtual void selectInputSource(int source, int zone = 1); + virtual bool hasDisplay() { return false; } + + virtual void sendCustomCommand(string command); +}; + +} + +#endif // AVROnkyo_H diff --git a/src/bin/calaos_server/Audio/AVRPioneer.cpp b/src/bin/calaos_server/Audio/AVRPioneer.cpp new file mode 100644 index 00000000..fd0b6455 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRPioneer.cpp @@ -0,0 +1,370 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +AVRPioneer::AVRPioneer(Params &p): + AVReceiver(p, 23) +{ + source_names[AVReceiver::AVR_INPUT_BD] = "Blu-ray Disc"; + source_names[AVReceiver::AVR_INPUT_DVD] = "DVD"; + source_names[AVReceiver::AVR_INPUT_TVSAT] = "TV/Sat"; + source_names[AVReceiver::AVR_INPUT_DVRBDR] = "DVR/BDR"; + source_names[AVReceiver::AVR_INPUT_VIDEO_1] = "Video 1"; + source_names[AVReceiver::AVR_INPUT_VIDEO_2] = "Video 2"; + source_names[AVReceiver::AVR_INPUT_HDMI_1] = "HDMI 1"; + source_names[AVReceiver::AVR_INPUT_HDMI_2] = "HDMI 2"; + source_names[AVReceiver::AVR_INPUT_HDMI_3] = "HDMI 3"; + source_names[AVReceiver::AVR_INPUT_HDMI_4] = "HDMI 4"; + source_names[AVReceiver::AVR_INPUT_HDMI_5] = "HDMI 5"; + source_names[AVReceiver::AVR_INPUT_HDMI_6] = "HDMI 6"; + source_names[AVReceiver::AVR_INPUT_NETRADIO] = "Home Media Gallery"; + source_names[AVReceiver::AVR_INPUT_IPOD] = "iPod/USB"; + source_names[AVReceiver::AVR_INPUT_CD] = "CD"; + source_names[AVReceiver::AVR_INPUT_CDRTAPE] = "CD-R/Tape"; + source_names[AVReceiver::AVR_INPUT_TUNER] = "Tuner"; + source_names[AVReceiver::AVR_INPUT_PHONO] = "Phono"; + source_names[AVReceiver::AVR_INPUT_MULTIIN] = "Multi Channel In"; + source_names[AVReceiver::AVR_INPUT_APORT] = "Adapter Port"; + source_names[AVReceiver::AVR_INPUT_SIRIUS] = "Sirius"; + + command_suffix = "\r"; + + Utils::logger("output") << Priority::INFO << "AVRPioneer::AVRPioneer(" << params["host"] << "): Ok" << log4cpp::eol; +} + +AVRPioneer::~AVRPioneer() +{ + Utils::logger("output") << Priority::INFO << "AVRPioneer::~AVRPioneer(): Ok" << log4cpp::eol; +} + +void AVRPioneer::connectionEstablished() +{ + sendRequest("?P"); //get power on + sendRequest("?AP"); //get power on zone 2 + sendRequest("?BP"); //get power on zone 3 + sendRequest("?V"); //get master volume + sendRequest("?ZV"); //get zone 2 volume + sendRequest("?YV"); //get zone 3 volume + sendRequest("?F"); //get input source + sendRequest("?ZS"); //get input source for zone 2 + sendRequest("?ZT"); //get input source for zone 3 + sendRequest("?FL"); //get display text +} + +void AVRPioneer::processMessage(string msg) +{ + Utils::logger("output") << Priority::DEBUG << "AVRPioneer::processMessage(): Recv: " << msg << log4cpp::eol; + + if (msg.substr(0, 3) == "VOL") //volume changed + { + msg.erase(0, 3); + if (is_of_type(msg)) + { + from_string(msg, volume_main); + volume_main = volume_main * 100 / 185; + + state_changed_1.emit("volume", to_string(volume_main)); + } + } + else if (msg == "PWR1") //power off + { + power_main = false; + state_changed_1.emit("power", "false"); + } + else if (msg == "PWR0") //power on + { + power_main = true; + state_changed_1.emit("power", "true"); + } + else if (msg == "APR1") //power zone2 off + { + power_zone2 = false; + state_changed_2.emit("power", "false"); + } + else if (msg == "APR0") //power zone2 on + { + power_zone2 = true; + state_changed_2.emit("power", "true"); + } + else if (msg == "BPR1") //power zone3 off + { + power_zone3 = false; + state_changed_3.emit("power", "false"); + } + else if (msg == "BPR0") //power zone3 on + { + power_zone3 = true; + state_changed_3.emit("power", "true"); + } + else if (msg.substr(0, 2) == "ZV") //volume zone 2 changed + { + msg.erase(0, 2); + if (is_of_type(msg)) + { + from_string(msg, volume_zone2); + volume_zone2 = volume_zone2 * 100 / 81; + + state_changed_2.emit("volume", to_string(volume_zone2)); + } + } + else if (msg.substr(0, 2) == "YV") //volume zone 3 changed + { + msg.erase(0, 2); + if (is_of_type(msg)) + { + from_string(msg, volume_zone3); + volume_zone3 = volume_zone3 * 100 / 81; + + state_changed_2.emit("volume", to_string(volume_zone3)); + } + } + else if (msg.substr(0, 2) == "FL") + { + msg.erase(0, 4); + decodeDisplayText(msg); + } + else if (msg.substr(0, 2) == "FN") + { + msg.erase(0, 2); + int in; + from_string(msg, in); + + switch (in) + { + case 25: source_main = AVReceiver::AVR_INPUT_BD; break; + case 4: source_main = AVReceiver::AVR_INPUT_DVD; break; + case 5: source_main = AVReceiver::AVR_INPUT_TVSAT; break; + case 15: source_main = AVReceiver::AVR_INPUT_DVRBDR; break; + case 10: source_main = AVReceiver::AVR_INPUT_VIDEO_1; break; + case 14: source_main = AVReceiver::AVR_INPUT_VIDEO_2; break; + case 19: source_main = AVReceiver::AVR_INPUT_HDMI_1; break; + case 20: source_main = AVReceiver::AVR_INPUT_HDMI_2; break; + case 21: source_main = AVReceiver::AVR_INPUT_HDMI_3; break; + case 22: source_main = AVReceiver::AVR_INPUT_HDMI_4; break; + case 23: source_main = AVReceiver::AVR_INPUT_HDMI_5; break; + case 24: source_main = AVReceiver::AVR_INPUT_HDMI_6; break; + case 26: source_main = AVReceiver::AVR_INPUT_NETRADIO; break; + case 17: source_main = AVReceiver::AVR_INPUT_IPOD; break; + case 1: source_main = AVReceiver::AVR_INPUT_CD; break; + case 3: source_main = AVReceiver::AVR_INPUT_CDRTAPE; break; + case 2: source_main = AVReceiver::AVR_INPUT_TUNER; break; + case 0: source_main = AVReceiver::AVR_INPUT_PHONO; break; + case 12: source_main = AVReceiver::AVR_INPUT_MULTIIN; break; + case 33: source_main = AVReceiver::AVR_INPUT_APORT; break; + case 27: source_main = AVReceiver::AVR_INPUT_SIRIUS; break; + default: return; + } + + state_changed_1.emit("input_source", to_string(source_main)); + } + else if (msg.substr(0, 3) == "Z2F") + { + msg.erase(0, 3); + int in; + from_string(msg, in); + + switch (in) + { + case 4: source_zone2 = AVReceiver::AVR_INPUT_DVD; break; + case 5: source_zone2 = AVReceiver::AVR_INPUT_TVSAT; break; + case 15: source_zone2 = AVReceiver::AVR_INPUT_DVRBDR; break; + case 10: source_zone2 = AVReceiver::AVR_INPUT_VIDEO_1; break; + case 14: source_zone2 = AVReceiver::AVR_INPUT_VIDEO_2; break; + case 26: source_zone2 = AVReceiver::AVR_INPUT_NETRADIO; break; + case 17: source_zone2 = AVReceiver::AVR_INPUT_IPOD; break; + case 1: source_zone2 = AVReceiver::AVR_INPUT_CD; break; + case 3: source_zone2 = AVReceiver::AVR_INPUT_CDRTAPE; break; + case 2: source_zone2 = AVReceiver::AVR_INPUT_TUNER; break; + case 33: source_zone2 = AVReceiver::AVR_INPUT_APORT; break; + case 27: source_zone2 = AVReceiver::AVR_INPUT_SIRIUS; break; + default: return; + } + + state_changed_2.emit("input_source", to_string(source_zone2)); + } + else if (msg.substr(0, 3) == "Z3F") + { + msg.erase(0, 3); + int in; + from_string(msg, in); + + switch (in) + { + case 4: source_zone3 = AVReceiver::AVR_INPUT_DVD; break; + case 5: source_zone3 = AVReceiver::AVR_INPUT_TVSAT; break; + case 15: source_zone3 = AVReceiver::AVR_INPUT_DVRBDR; break; + case 10: source_zone3 = AVReceiver::AVR_INPUT_VIDEO_1; break; + case 14: source_zone3 = AVReceiver::AVR_INPUT_VIDEO_2; break; + case 26: source_zone3 = AVReceiver::AVR_INPUT_NETRADIO; break; + case 17: source_zone3 = AVReceiver::AVR_INPUT_IPOD; break; + case 1: source_zone3 = AVReceiver::AVR_INPUT_CD; break; + case 3: source_zone3 = AVReceiver::AVR_INPUT_CDRTAPE; break; + case 2: source_zone3 = AVReceiver::AVR_INPUT_TUNER; break; + case 33: source_zone3 = AVReceiver::AVR_INPUT_APORT; break; + case 27: source_zone3 = AVReceiver::AVR_INPUT_SIRIUS; break; + default: return; + } + + state_changed_3.emit("input_source", to_string(source_zone3)); + } +} + +void AVRPioneer::Power(bool on, int zone) +{ + if (zone == 1 && on) + sendRequest("PO"); + else if (zone == 1 && !on) + sendRequest("PF"); + else if (zone == 2 && on) + sendRequest("APO"); + else if (zone == 2 && !on) + sendRequest("APF"); + else if (zone == 3 && on) + sendRequest("BPO"); + else if (zone == 3 && !on) + sendRequest("BPF"); +} + +void AVRPioneer::setVolume(int volume, int zone) +{ + if (zone == 1) + { + int v = volume * 185 / 100; + stringstream ss; + ss.width(3); + ss.fill('0'); + ss << v << "VL"; + sendRequest(ss.str()); + } + else if (zone == 2) + { + int v = volume * 81 / 100; + stringstream ss; + ss.width(2); + ss.fill('0'); + ss << v << "ZV"; + sendRequest(ss.str()); + } + else if (zone == 3) + { + int v = volume * 81 / 100; + stringstream ss; + ss.width(2); + ss.fill('0'); + ss << v << "YV"; + sendRequest(ss.str()); + } +} + +void AVRPioneer::decodeDisplayText(string &text) +{ + display_text.clear(); + string tmp; + + for (int i = 0;i < text.length();i++) + { + tmp += text[i]; + if (tmp.length() < 2) continue; + + int c; + istringstream iss(tmp); + iss >> std::hex >> c; + display_text += (char)c; + tmp.clear(); + } + + state_changed_1.emit("display_text", to_string(display_text)); + state_changed_2.emit("display_text", to_string(display_text)); + state_changed_3.emit("display_text", to_string(display_text)); +} + +void AVRPioneer::selectInputSource(int source, int zone) +{ + if (zone == 1) + { + switch (source) + { + case AVReceiver::AVR_INPUT_BD: sendRequest("25FN"); break; + case AVReceiver::AVR_INPUT_DVD: sendRequest("04FN"); break; + case AVReceiver::AVR_INPUT_TVSAT: sendRequest("05FN"); break; + case AVReceiver::AVR_INPUT_DVRBDR: sendRequest("15FN"); break; + case AVReceiver::AVR_INPUT_VIDEO_1: sendRequest("10FN"); break; + case AVReceiver::AVR_INPUT_VIDEO_2: sendRequest("14FN"); break; + case AVReceiver::AVR_INPUT_HDMI_1: sendRequest("19FN"); break; + case AVReceiver::AVR_INPUT_HDMI_2: sendRequest("20FN"); break; + case AVReceiver::AVR_INPUT_HDMI_3: sendRequest("21FN"); break; + case AVReceiver::AVR_INPUT_HDMI_4: sendRequest("22FN"); break; + case AVReceiver::AVR_INPUT_HDMI_5: sendRequest("23FN"); break; + case AVReceiver::AVR_INPUT_HDMI_6: sendRequest("24FN"); break; + case AVReceiver::AVR_INPUT_NETRADIO: sendRequest("26FN"); break; + case AVReceiver::AVR_INPUT_IPOD: sendRequest("17FN"); break; + case AVReceiver::AVR_INPUT_CD: sendRequest("01FN"); break; + case AVReceiver::AVR_INPUT_CDRTAPE: sendRequest("03FN"); break; + case AVReceiver::AVR_INPUT_TUNER: sendRequest("02FN"); break; + case AVReceiver::AVR_INPUT_PHONO: sendRequest("00FN"); break; + case AVReceiver::AVR_INPUT_MULTIIN: sendRequest("12FN"); break; + case AVReceiver::AVR_INPUT_APORT: sendRequest("33FN"); break; + case AVReceiver::AVR_INPUT_SIRIUS: sendRequest("27FN"); break; + default: break; + } + } + else if (zone == 2) + { + switch (source) + { + case AVReceiver::AVR_INPUT_DVD: sendRequest("04ZS"); break; + case AVReceiver::AVR_INPUT_TVSAT: sendRequest("05ZS"); break; + case AVReceiver::AVR_INPUT_DVRBDR: sendRequest("15ZS"); break; + case AVReceiver::AVR_INPUT_VIDEO_1: sendRequest("10ZS"); break; + case AVReceiver::AVR_INPUT_VIDEO_2: sendRequest("14ZS"); break; + case AVReceiver::AVR_INPUT_NETRADIO: sendRequest("26ZS"); break; + case AVReceiver::AVR_INPUT_IPOD: sendRequest("17ZS"); break; + case AVReceiver::AVR_INPUT_CD: sendRequest("01ZS"); break; + case AVReceiver::AVR_INPUT_CDRTAPE: sendRequest("03ZS"); break; + case AVReceiver::AVR_INPUT_TUNER: sendRequest("02ZS"); break; + case AVReceiver::AVR_INPUT_APORT: sendRequest("33ZS"); break; + case AVReceiver::AVR_INPUT_SIRIUS: sendRequest("27ZS"); break; + default: break; + } + } + else if (zone == 3) + { + switch (source) + { + case AVReceiver::AVR_INPUT_DVD: sendRequest("04ZT"); break; + case AVReceiver::AVR_INPUT_TVSAT: sendRequest("05ZT"); break; + case AVReceiver::AVR_INPUT_DVRBDR: sendRequest("15ZT"); break; + case AVReceiver::AVR_INPUT_VIDEO_1: sendRequest("10ZT"); break; + case AVReceiver::AVR_INPUT_VIDEO_2: sendRequest("14ZT"); break; + case AVReceiver::AVR_INPUT_NETRADIO: sendRequest("26ZT"); break; + case AVReceiver::AVR_INPUT_IPOD: sendRequest("17ZT"); break; + case AVReceiver::AVR_INPUT_CD: sendRequest("01ZT"); break; + case AVReceiver::AVR_INPUT_CDRTAPE: sendRequest("03ZT"); break; + case AVReceiver::AVR_INPUT_TUNER: sendRequest("02ZT"); break; + case AVReceiver::AVR_INPUT_APORT: sendRequest("33ZT"); break; + case AVReceiver::AVR_INPUT_SIRIUS: sendRequest("27ZT"); break; + default: break; + } + } +} diff --git a/src/bin/calaos_server/Audio/AVRPioneer.h b/src/bin/calaos_server/Audio/AVRPioneer.h new file mode 100644 index 00000000..6e8a7092 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVRPioneer.h @@ -0,0 +1,52 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef AVRPIONEER_H +#define AVRPIONEER_H + +#include +#include + +namespace Calaos +{ + +//Manage Pioneer device +class AVRPioneer: public AVReceiver +{ + protected: + + void decodeDisplayText(string &text); + + virtual void processMessage(string msg); + virtual void connectionEstablished(); + + public: + AVRPioneer(Params &p); + virtual ~AVRPioneer(); + + virtual void Power(bool on, int zone = 1); + virtual void setVolume(int volume, int zone = 1); + virtual void selectInputSource(int source, int zone = 1); + virtual bool hasDisplay() { return true; } //Pioneer has display infos through ethernet +}; + +} + +#endif // AVRPIONEER_H diff --git a/src/bin/calaos_server/Audio/AVReceiver.cpp b/src/bin/calaos_server/Audio/AVReceiver.cpp new file mode 100644 index 00000000..73687758 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVReceiver.cpp @@ -0,0 +1,407 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +#define AVR_TIMEOUT 40.0 +#define AVR_RECONNECT 10.0 + +static Eina_Bool _con_server_add(void *data, int type, Ecore_Con_Event_Server_Add *ev) +{ + AVReceiver *o = reinterpret_cast(data); + + if (ev && ev->server && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->addConnection(ev->server); + else + Utils::logger("output") << Priority::CRIT + << "AVReceiver(): _con_server_add, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _con_server_del(void *data, int type, Ecore_Con_Event_Server_Del *ev) +{ + AVReceiver *o = reinterpret_cast(data); + + if (ev && ev->server && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->delConnection(ev->server); + else + Utils::logger("output") << Priority::CRIT + << "AVReceiver(): _con_server_del, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _con_server_data(void *data, int type, Ecore_Con_Event_Server_Data *ev) +{ + AVReceiver *o = reinterpret_cast(data); + + if (ev && ev->server && (o != ecore_con_server_data_get(ev->server))) + return ECORE_CALLBACK_PASS_ON; + + if (o) + o->dataGet(ev->server, ev->data, ev->size); + else + Utils::logger("output") << Priority::CRIT + << "AVReceiver(): _con_server_data, failed to get object !" + << log4cpp::eol; + + return ECORE_CALLBACK_RENEW; +} + +AVReceiver::AVReceiver(Params &p, int default_port, int _connection_type): + ref_count(0), + params(p), + econ(NULL), + timer_con(NULL), + isConnected(false), + volume_main(0), + volume_zone2(0), + volume_zone3(0), + power_main(false), + power_zone2(false), + power_zone3(false), + source_main(0), + source_zone2(0), + source_zone3(0), + connection_type(_connection_type) +{ + Utils::logger("output") << Priority::DEBUG << "AVReceiver::AVReceiver(" << params["id"] << "): Ok" << log4cpp::eol; + + if (!params.Exists("visible")) params.Add("visible", "false"); + + host = params["host"]; + port = default_port; + + if (params.Exists("port")) + from_string(params["port"], port); + + ehandler_add = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_con_server_add, this); + ehandler_del = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, (Ecore_Event_Handler_Cb)_con_server_del, this); + ehandler_data = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_con_server_data, this); + + timerConnReconnect(); + timer_con = new EcoreTimer(AVR_RECONNECT, (sigc::slot)sigc::mem_fun(*this, &AVReceiver::timerConnReconnect)); +} + +AVReceiver::~AVReceiver() +{ + DELETE_NULL(timer_con); + DELETE_NULL_FUNC(ecore_con_server_del, econ); + DELETE_NULL_FUNC(ecore_event_handler_del, ehandler_add); + DELETE_NULL_FUNC(ecore_event_handler_del, ehandler_del); + DELETE_NULL_FUNC(ecore_event_handler_del, ehandler_data); + + Utils::logger("output") << Priority::DEBUG << "AVReceiver::~AVReceiver(): Ok" << log4cpp::eol; +} + +void AVReceiver::timerConnReconnect() +{ + Utils::logger("output") << Priority::DEBUG << "AVReceiver:timerConnReconnect() Connecting to " << host << ":" << port << log4cpp::eol; + + DELETE_NULL_FUNC(ecore_con_server_del, econ); + econ = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, host.c_str(), port, this); + ecore_con_server_data_set(econ, this); + + Utils::logger("output") << Priority::DEBUG << "AVReceiver:timerConnReconnect(): econ == " << econ << log4cpp::eol; +} + +void AVReceiver::addConnection(Ecore_Con_Server *srv) +{ + if (srv != econ) return; + + DELETE_NULL(timer_con); + isConnected = true; + + connectionEstablished(); + + Utils::logger("output") << Priority::DEBUG << "AVReceiver: main connection established" << log4cpp::eol; +} + +void AVReceiver::delConnection(Ecore_Con_Server *srv) +{ + if (srv != econ) return; + + DELETE_NULL(timer_con); + + Utils::logger("output") << Priority::WARN << "AVReceiver: Main Connection closed !" << log4cpp::eol; + Utils::logger("output") << Priority::WARN << "AVReceiver: Trying to reconnect..." << log4cpp::eol; + + timer_con = new EcoreTimer(AVR_RECONNECT, (sigc::slot)sigc::mem_fun(*this, &AVReceiver::timerConnReconnect)); + + isConnected = false; +} + +void AVReceiver::dataGet(Ecore_Con_Server *srv, void *data, int size) +{ + if (srv != econ) return; + + if (connection_type == AVR_CON_CHAR) + { + string msg((char *)data, size); + dataGet(msg); + } + else if (connection_type == AVR_CON_BYTES) + { + char *cdata = (char *)data; + vector d(cdata, cdata + size); + + //We don't know how to handle these messages, + //so we delegate the processing to the child class + //processMessage(vector) has to be inherited ! + processMessage(d); + } +} + +void AVReceiver::dataGet(string msg) +{ + if (msg.find('\n') == string::npos && + msg.find('\r') == string::npos) + { + //We have not a complete paquet yet, buffurize it. + recv_buffer += msg; + + Utils::logger("output") << Priority::DEBUG << "AVReceiver:getData() Bufferize data." << log4cpp::eol; + + return; + } + + if (!recv_buffer.empty()) + { + //Put last data in buffer + recv_buffer += msg; + msg = recv_buffer; + recv_buffer.clear(); + } + + replace_str(msg, "\r\n", "\n"); + replace_str(msg, "\r", "\n"); + + vector tokens; + split(msg, tokens, "\n"); + + Utils::logger("output") << Priority::DEBUG << "AVReceiver:getData() Got " << tokens.size() << " messages." << log4cpp::eol; + + for(int i = 0; i < tokens.size(); i++) + processMessage(tokens[i]); +} + +void AVReceiver::processMessage(string msg) +{ + Utils::logger("output") << Priority::WARN << "AVReceiver:processMessage(): Should be inherited !" << log4cpp::eol; +} + +void AVReceiver::processMessage(vector msg) +{ + Utils::logger("output") << Priority::WARN << "AVReceiver:processMessage(): Should be inherited !" << log4cpp::eol; +} + +void AVReceiver::sendRequest(string request) +{ + if (!econ || !isConnected) return; + + Utils::logger("output") << Priority::DEBUG << "AVReceiver::sendRequest() Command: " << request << log4cpp::eol; + + request += command_suffix; + + ecore_con_server_send(econ, request.c_str(), request.length()); +} + +void AVReceiver::sendRequest(vector request) +{ + if (!econ || !isConnected) return; + + Utils::logger("output") << Priority::DEBUG << "AVReceiver::sendRequest(), " << request.size() << " bytes" << log4cpp::eol; + + ecore_con_server_send(econ, &request[0], request.size()); +} + +bool AVReceiver::getPower(int zone) +{ + if (zone == 2) return power_zone2; + if (zone == 3) return power_zone3; + return power_main; +} + +int AVReceiver::getVolume(int zone) +{ + if (zone == 2) return volume_zone2; + if (zone == 3) return volume_zone3; + return volume_main; +} + +int AVReceiver::getInputSource(int zone) +{ + if (zone == 2) return source_zone2; + if (zone == 3) return source_zone3; + return source_main; +} + +IOAVReceiver::IOAVReceiver(Params &p): + Input(p), + Output(p), + zone(1) +{ + if (p.Exists("zone")) + from_string(p["zone"], zone); + receiver = AVRManager::Instance().Create(p); + + if (zone == 1 && receiver) + receiver->state_changed_1.connect(sigc::mem_fun(*this, &IOAVReceiver::statusChanged)); + if (zone == 2 && receiver) + receiver->state_changed_2.connect(sigc::mem_fun(*this, &IOAVReceiver::statusChanged)); + if (zone == 3 && receiver) + receiver->state_changed_3.connect(sigc::mem_fun(*this, &IOAVReceiver::statusChanged)); +} + +IOAVReceiver::~IOAVReceiver() +{ + AVRManager::Instance().Delete(receiver); +} + +void IOAVReceiver::statusChanged(string param, string value) +{ + EmitSignalInput(); + + string sig = "input "; + sig += Input::get_param("id") + " "; + sig += url_encode(param + ":" + to_string(value)); + IPC::Instance().SendEvent("events", sig); + + sig = "output "; + sig += Input::get_param("id") + " "; + sig += url_encode(param + ":" + to_string(value)); + IPC::Instance().SendEvent("events", sig); +} + +string IOAVReceiver::get_value_string() +{ + if (!receiver) return ""; + + return to_string(receiver->getInputSource(zone)); +} + +map IOAVReceiver::get_all_values_string() +{ + map m; + + if (!receiver) + return m; + + if (receiver->getPower(zone)) + m["power"] = "true"; + else + m["power"] = "false"; + + m["volume"] = to_string(receiver->getVolume(zone)); + m["input_source"] = to_string(receiver->getInputSource(zone)); + + if (receiver->hasDisplay()) + { + m["has_display"] = "true"; + m["display_text"] = receiver->getDisplayText(); + } + else + m["has_display"] = "false"; + + return m; +} + +void IOAVReceiver::force_input_string(string val) +{ + if (!receiver) return; + + if (val == "power off" || val == "power false") + receiver->Power(false, zone); + else if (val == "power on" || val == "power true") + receiver->Power(true, zone); + else if (val.substr(0, 7) == "volume ") + { + val.erase(0, 7); + int vol; + from_string(val, vol); + receiver->setVolume(vol, zone); + } + else if (val.substr(0, 7) == "source ") + { + val.erase(0, 7); + int source; + from_string(val, source); + receiver->selectInputSource(source, zone); + } + else if (val.substr(0, 7) == "custom ") + { + val.erase(0, 7); + receiver->sendCustomCommand(val); + } +} + +bool IOAVReceiver::set_value(string val) +{ + Utils::logger("output") << Priority::INFO << "IOAVReceiver(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + force_input_string(val); + + return true; +} + +bool IOAVReceiver::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:avr"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + Input::get_params().get_item(i, key, value); + cnode->SetAttribute(key, value); + } + + return true; +} + +map IOAVReceiver::query_param(string param) +{ + map m; + + if (!receiver) return m; + + if (param == "input_sources") + { + AVRList sources = receiver->getSources(); + AVRList::iterator it = sources.begin(); + for (;it != sources.end();it++) + m[to_string((*it).first)] = (*it).second; + } + + return m; +} diff --git a/src/bin/calaos_server/Audio/AVReceiver.h b/src/bin/calaos_server/Audio/AVReceiver.h new file mode 100644 index 00000000..3af13b52 --- /dev/null +++ b/src/bin/calaos_server/Audio/AVReceiver.h @@ -0,0 +1,175 @@ +/****************************************************************************** +** Copyright (c) 2006-2012, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Calaos; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef AVRECEIVER_H +#define AVRECEIVER_H + +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +typedef map AVRList; + +class AVReceiver +{ + friend class AVRManager; + + protected: + int ref_count; + + Params params; + AVRList source_names; + + Ecore_Con_Server *econ; + EcoreTimer *timer_con; + + bool isConnected; + string recv_buffer; + string host; + int port; + + int volume_main, volume_zone2, volume_zone3; + bool power_main, power_zone2, power_zone3; + string display_text; + int source_main, source_zone2, source_zone3; + + string command_suffix; + + Ecore_Event_Handler *ehandler_add; + Ecore_Event_Handler *ehandler_del; + Ecore_Event_Handler *ehandler_data; + + enum { AVR_CON_CHAR = 0, AVR_CON_BYTES }; + int connection_type; + + void timerConnReconnect(); + virtual void processMessage(string msg); + virtual void processMessage(vector msg); + + void sendRequest(string request); + void sendRequest(vector request); + + virtual void connectionEstablished() {} + + void dataGet(string data); + + public: + AVReceiver(Params &p, int default_port, int connection_type = AVR_CON_CHAR); + virtual ~AVReceiver(); + + /* AVR specific functions */ + enum { + AVR_UNKNOWN, + + /* AVR Zones */ + AVR_ZONE_MAIN, AVR_ZONE_2, AVR_ZONE_3, + + /* AVR Input sources */ + //WARNING: After first release, don't move these value it will mess the stored rule's actions + //Instead, add new value to the end. + AVR_INPUT_BD, AVR_INPUT_DVD, AVR_INPUT_TVSAT, AVR_INPUT_DVRBDR, + AVR_INPUT_VIDEO_1, AVR_INPUT_VIDEO_2, AVR_INPUT_VIDEO_3, AVR_INPUT_VIDEO_4, + AVR_INPUT_VIDEO_5, AVR_INPUT_VIDEO_6, AVR_INPUT_VIDEO_7, AVR_INPUT_VIDEO_8, + AVR_INPUT_NETRADIO, AVR_INPUT_IPOD, + AVR_INPUT_HDMI_1, AVR_INPUT_HDMI_2, AVR_INPUT_HDMI_3, AVR_INPUT_HDMI_4, + AVR_INPUT_HDMI_5, AVR_INPUT_HDMI_6, AVR_INPUT_HDMI_7, AVR_INPUT_HDMI_8, + AVR_INPUT_CD, AVR_INPUT_CDRTAPE, AVR_INPUT_TUNER, AVR_INPUT_PHONO, AVR_INPUT_MULTIIN, + AVR_INPUT_APORT, AVR_INPUT_SIRIUS, AVR_INPUT_TV, AVR_INPUT_SAT, AVR_INPUT_GAME_1, + AVR_INPUT_GAME_2, AVR_INPUT_AUX, AVR_INPUT_DOCK, AVR_INPUT_HDRADIO, + AVR_INPUT_RHAPSODY, AVR_INPUT_NAPSTER, AVR_INPUT_PANDORA, AVR_INPUT_LASTFM, + AVR_INPUT_FLICKR, AVR_INPUT_FAV, AVR_INPUT_SERVER, AVR_INPUT_NETWORK, + AVR_INPUT_USB, AVR_INPUT_USB2, AVR_INPUT_USB3, AVR_INPUT_USB4, + AVR_INPUT_USB5, AVR_INPUT_USB6, AVR_INPUT_USB7, AVR_INPUT_USB8, + AVR_INPUT_VCR, AVR_INPUT_AUX1, AVR_INPUT_AUX2, AVR_INPUT_AUX3, AVR_INPUT_AUX4, + AVR_INPUT_AUX5, AVR_INPUT_AUX6, AVR_INPUT_AUX7, AVR_INPUT_AUX8 + }; + + virtual void Power(bool on, int zone = 1) {} + virtual bool getPower(int zone = 1); + virtual void setVolume(int volume, int zone = 1) {} + virtual int getVolume(int zone = 1); + + virtual AVRList getSources() { return source_names; } + virtual void selectInputSource(int source, int zone = 1) {} + virtual int getInputSource(int zone = 1); + + //return true if AVR can send his display status text + virtual bool hasDisplay() { return false; } + virtual string getDisplayText() { return display_text; } + + virtual void sendCustomCommand(string command) { sendRequest(command); } + + sigc::signal state_changed_1; //zone 1 + sigc::signal state_changed_2; //zone 2 + sigc::signal state_changed_3; //zone 3 + + /* This is private for C callbacks */ + void addConnection(Ecore_Con_Server *srv); + void delConnection(Ecore_Con_Server *srv); + void dataGet(Ecore_Con_Server *srv, void *data, int size); +}; + +//Input/Output for A/V Receiver devices +class IOAVReceiver: public Input, public Output, public sigc::trackable +{ + private: + AVReceiver *receiver; + int zone; + + void statusChanged(string param, string value); + + public: + IOAVReceiver(Params &p); + virtual ~IOAVReceiver(); + + /* Input/Output functions */ + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual void set_param(std::string opt, std::string val) + { Input::set_param(opt, val); } + virtual std::string get_param(std::string opt) + { return Input::get_param(opt); } + virtual Params &get_params() + { return Input::get_params(); } + + virtual map query_param(string param); + + //Input + virtual string get_value_string(); + virtual map get_all_values_string(); + virtual void force_input_string(string v); + + //Output + virtual bool set_value(string val); + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node); +}; + +} + +#endif // AVRECEIVER_H diff --git a/src/bin/calaos_server/Audio/AudioDB.cpp b/src/bin/calaos_server/Audio/AudioDB.cpp new file mode 100644 index 00000000..e72a4433 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioDB.cpp @@ -0,0 +1,32 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace std; +using namespace Calaos; + +AudioDB::AudioDB(Params &p): param(p) +{ +} + +AudioDB::~AudioDB() +{ +} diff --git a/src/bin/calaos_server/Audio/AudioDB.h b/src/bin/calaos_server/Audio/AudioDB.h new file mode 100644 index 00000000..a399541c --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioDB.h @@ -0,0 +1,80 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AUDIODB_H +#define S_AUDIODB_H + +#include +#include + +namespace Calaos +{ + +class AudioDB +{ + protected: + Params param; + + public: + AudioDB(Params &p); + virtual ~AudioDB(); + + virtual void getStats(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) {} + + //Album + virtual void getAlbums(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getAlbumsTitles(AudioRequest_cb callback, int from, int nb, string album_id, AudioPlayerData user_data = AudioPlayerData()) {} + + //Artist + virtual void getArtists(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getArtistsAlbums(AudioRequest_cb callback, int from, int nb, string artist_id, AudioPlayerData user_data = AudioPlayerData()) {} + + //Genre + virtual void getGenres(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getGenresArtists(AudioRequest_cb callback, int from, int nb, string genre_id, AudioPlayerData user_data = AudioPlayerData()) {} + + //Year + virtual void getYears(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getYearsAlbums(AudioRequest_cb callback, int from, int nb, string year, AudioPlayerData user_data = AudioPlayerData()) {} + + //Playlists + virtual void getPlaylists(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getPlaylistsTracks(AudioRequest_cb callback, int from, int nb, string playlist_id, AudioPlayerData user_data = AudioPlayerData()) {} + + //Radios + virtual void getRadios(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getRadiosItems(AudioRequest_cb callback, int from, int nb, string radio, string item_id = "", string search = "", AudioPlayerData user_data = AudioPlayerData()) {} + + //Random + virtual void getRandoms(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()) {} + virtual void setRandomsType(string type) {} + //TODO:Random genre selection with " randomplaygenrelist" + + virtual void getSearch(AudioRequest_cb callback, int from, int nb, string search, AudioPlayerData user_data = AudioPlayerData()) {} + + virtual void getMusicFolder(AudioRequest_cb callback, int from, int nb, string folder_id = "", AudioPlayerData user_data = AudioPlayerData()) {} + virtual void getTrackInfos(AudioRequest_cb callback, string track_id, AudioPlayerData user_data = AudioPlayerData()) {} + + //TODO:Favorites +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/AudioInput.cpp b/src/bin/calaos_server/Audio/AudioInput.cpp new file mode 100644 index 00000000..104fb419 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioInput.cpp @@ -0,0 +1,68 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +AudioInput::AudioInput(Params &p, AudioPlayer *_player): + Input(p), + answer(""), + status(ERROR), + player(_player) +{ +} + +AudioInput::~AudioInput() +{ +} + +void AudioInput::hasChanged() +{ +// if (st != status) + { + status = st; + switch (status) + { + default: + case ERROR: answer = "onerror"; break; + case PLAY: answer = "onplay"; break; + case PAUSE: answer = "onpause"; break; + case STOP: answer = "onstop"; break; + case SONG_CHANGE: answer = "onsongchange"; break; + case PLAYLIST_CHANGE: answer = "onplaylistchange"; break; + case VOLUME_CHANGE: answer = "onvolumechange"; break; + } + + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += url_encode(string("state:") + answer); + IPC::Instance().SendEvent("events", sig); + } +} + +std::string AudioInput::get_value_string() +{ + return answer; +} diff --git a/src/bin/calaos_server/Audio/AudioInput.h b/src/bin/calaos_server/Audio/AudioInput.h new file mode 100644 index 00000000..4a90edb0 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioInput.h @@ -0,0 +1,56 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AUDIOINPUT_H +#define S_AUDIOINPUT_H + +#include +#include + +namespace Calaos +{ + +class AudioPlayer; + +class AudioInput: public Input, public sigc::trackable +{ + private: + AudioPlayer *player; + std::string answer; + int status; + int st; + + public: + AudioInput(Params &p, AudioPlayer *_player); + ~AudioInput(); + + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual void hasChanged(); + virtual std::string get_value_string(); + + void set_status(int s) { st = s; hasChanged(); } + + AudioPlayer *get_player() { return player; } +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/AudioManager.cpp b/src/bin/calaos_server/Audio/AudioManager.cpp new file mode 100644 index 00000000..aba3ead6 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioManager.cpp @@ -0,0 +1,69 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +AudioManager::AudioManager() +{ +} + +AudioManager::~AudioManager() +{ + for (int i = 0;i < players.size();i++) + delete players[i]; + + players.clear(); +} + +AudioManager &AudioManager::Instance() +{ + static AudioManager inst; + + return inst; +} + +void AudioManager::Add(AudioPlayer *player, std::string dbhost) +{ + player->set_param("pid", Utils::to_string(players.size())); + players.push_back(player); +} + +void AudioManager::Delete(int pos) +{ + vector::iterator iter = players.begin(); + for (int i = 0;i < pos;iter++, i++) ; + delete players[pos]; + players.erase(iter); +} + +int AudioManager::searchIdOf(Output *output) +{ + vector::iterator it; + int i = 0; + for(it = players.begin();it != players.end();it++) + { + if((*it)->get_output() == output) + return i; + i++; + } + return -1; +} diff --git a/src/bin/calaos_server/Audio/AudioManager.h b/src/bin/calaos_server/Audio/AudioManager.h new file mode 100644 index 00000000..b14a54cc --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioManager.h @@ -0,0 +1,56 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AUDIOMANAGER_H +#define S_AUDIOMANAGER_H + +#include +#include +#include + +namespace Calaos +{ + +class AudioManager +{ + private: + AudioManager(); + + std::string host; + int port; + + vector players; + public: + static AudioManager &Instance(); //Singleton + ~AudioManager(); + + void Add(AudioPlayer *player, std::string dbhost = "null"); + void Delete(int i); + void Delete(AudioPlayer *obj) + { players.erase(std::remove(players.begin(), players.end(), obj), players.end()); } + int get_size() { return players.size(); } //return the number of players available + AudioPlayer *get_player(int i) { return players[i]; } + + int searchIdOf(Output *output); +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/AudioOutput.cpp b/src/bin/calaos_server/Audio/AudioOutput.cpp new file mode 100644 index 00000000..5d0c8d96 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioOutput.cpp @@ -0,0 +1,128 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +AudioOutput::AudioOutput(Params &p, AudioPlayer *_player): + Output(p), + player(_player), + answer("") +{ +} + +AudioOutput::~AudioOutput() +{ +} + +bool AudioOutput::set_value(std::string value) +{ + string val = value; + + Utils::logger("output") << Priority::INFO << "AudioOutput(" << get_param("id") << "): got action \"" << val << "\"" << log4cpp::eol; + + //list of all available player functions + if (val == "play") + player->Play(); + else if (val == "pause") + player->Pause(); + else if (val == "stop") + player->Stop(); + else if (val == "next") + player->Next(); + else if (val == "previous") + player->Previous(); + else if (val == "power on") + player->Power(true); + else if (val == "power off") + player->Power(false); + else if (val.compare(0, 6, "sleep ") == 0) + { + val.erase(0, 6); + player->Sleep(atoi(val.c_str())); + } + else if (val.compare(0, 5, "sync ") == 0) + { + val.erase(0, 5); + player->Synchronize(val.c_str(), true); + } + else if (val.compare(0, 7, "unsync ") == 0) + { + val.erase(0, 7); + player->Synchronize(val.c_str(), false); + } + else if (val.compare(0, 5, "play ") == 0) + { + val.erase(0, 5); + player->playlist_play_items(val); + } + else if (val.compare(0, 4, "add ") == 0) + { + val.erase(0, 4); + player->playlist_add_items(val); + } + else if (val.compare(0, 11, "volume set ") == 0) + { + val.erase(0, 11); + int vol; + from_string(val, vol); + + player->set_volume(vol); + } + else if (val.compare(0, 10, "volume up ") == 0) + { + val.erase(0, 10); + AudioPlayerData data; + data.svalue = val; + + player->get_volume(sigc::mem_fun(*this, &AudioOutput::get_volume_cb), data); + } + else if (val.compare(0, 12, "volume down ") == 0) + { + val.erase(0, 12); + AudioPlayerData data; + data.svalue = "-" + val; + + player->get_volume(sigc::mem_fun(*this, &AudioOutput::get_volume_cb), data); + } + + string sig = "output "; + sig += get_param("id") + " "; + sig += url_encode(string("state:") + value); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +std::string AudioOutput::get_value_string() +{ + return answer; +} + +void AudioOutput::get_volume_cb(AudioPlayerData data) +{ + int vol; + from_string(data.svalue, vol); + + player->set_volume(data.ivalue + vol); +} diff --git a/src/bin/calaos_server/Audio/AudioOutput.h b/src/bin/calaos_server/Audio/AudioOutput.h new file mode 100644 index 00000000..6889d115 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioOutput.h @@ -0,0 +1,55 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AUDIOOUTPUT_H +#define S_AUDIOOUTPUT_H + +#include +#include + +namespace Calaos +{ + +class AudioPlayer; +class AudioPlayerData; + +class AudioOutput: public Output +{ + private: + AudioPlayer *player; + std::string answer; + + void get_volume_cb(AudioPlayerData data); + + public: + AudioOutput(Params &p, AudioPlayer *_player); + ~AudioOutput(); + + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual bool set_value(std::string val); + virtual std::string get_value_string(); + + AudioPlayer *get_player() { return player; } +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/AudioPlayer.cpp b/src/bin/calaos_server/Audio/AudioPlayer.cpp new file mode 100644 index 00000000..f34df8df --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioPlayer.cpp @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +AudioPlayer::AudioPlayer(Params &p): + param(p), + database(NULL) +{ + Params pio = param; + + pio.Add("id", param["oid"]); + pio.Add("type", "AudioOutput"); + aoutput = new AudioOutput(pio, this); + + pio.Add("id", param["iid"]); + pio.Add("type", "AudioInput"); + ainput = new AudioInput(pio, this); +} + +AudioPlayer::~AudioPlayer() +{ + delete aoutput; + delete ainput; +} + +bool AudioPlayer::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:audio"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + param.get_item(i, key, value); + cnode->SetAttribute(key, value); + } + + return true; +} diff --git a/src/bin/calaos_server/Audio/AudioPlayer.h b/src/bin/calaos_server/Audio/AudioPlayer.h new file mode 100644 index 00000000..73c01e7a --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioPlayer.h @@ -0,0 +1,122 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AUDIOPLAYER_H +#define S_AUDIOPLAYER_H + +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class AudioPlayer +{ + protected: + Params param; + Output *aoutput; + Input *ainput; + + AudioDB *database; + + public: + AudioPlayer(Params &p); + virtual ~AudioPlayer(); + + virtual void Play() { } + virtual void Pause() { } + virtual void Stop() { } + virtual void Next() { } + virtual void Previous() { } + virtual void Power(bool on) { } + virtual void Sleep(int seconds) { } + virtual void Synchronize(string playerid, bool sync) { } + virtual void getSynchronizeList(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } //get all players wich we can sync with + + virtual void get_volume(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void set_volume(int vol) { } + + //Return a list of option supported by the player + virtual Params getOptions() { Params p; return p; } + + virtual void get_title(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_artist(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_album(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_album_cover(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_genre(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_songinfo(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_current_time(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void set_current_time(double seconds) { } + virtual void get_duration(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + + //retourne le nombre de secondes restante avant le poweroff + virtual void get_sleep(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_status(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_sync_status(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } //get all players synced with + + //playlist functions + virtual void playlist_moveup(int item) { } + virtual void playlist_movedown(int item) { } + virtual void playlist_delete(int item) { } + virtual void playlist_play(int item) { } + virtual void playlist_play_artist(string item) { } + virtual void playlist_play_album(string item) { } + virtual void playlist_play_title(string item) { } + virtual void playlist_add_artist(string item) { } + virtual void playlist_add_album(string item) { } + virtual void playlist_add_title(string item) { } + virtual void playlist_add_items(string item) { } + virtual void playlist_play_items(string item) { } + virtual void playlist_clear() { } + virtual void playlist_save(string name) { } + virtual void playlist_delete(string id) { } + virtual void get_playlist_current(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_playlist_size(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_playlist_item(int index, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_playlist_basic_info(int index, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_playlist_album_cover(int i, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + virtual void get_album_cover_id(string track_id, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()) { } + + virtual bool canPlaylist() { return false; } + virtual bool canDatabase() { return false; } + + virtual Params getDatabaseCapabilities() { Params p; return p; } + + string get_param(string opt) { return param[opt]; } + void set_param(string opt, string val) { param.Add(opt, val); } + Params &get_params() { return param; } + Output *get_output() { return aoutput; } + Input *get_input() { return ainput; } + + AudioDB *get_database() { return database; } + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node); +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/AudioPlayerData.h b/src/bin/calaos_server/Audio/AudioPlayerData.h new file mode 100644 index 00000000..409c0169 --- /dev/null +++ b/src/bin/calaos_server/Audio/AudioPlayerData.h @@ -0,0 +1,109 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AUDIOPLAYERDATA_H +#define S_AUDIOPLAYERDATA_H + +#include + +namespace Calaos +{ + +class AudioPlayerData; + +typedef sigc::slot AudioRequest_cb; +typedef sigc::signal AudioRequest_signal; + +class AudioPlayerData +{ + private: + AudioPlayerData *chain_data; //used to chain multiple calls + + public: + AudioPlayerData(): + chain_data(NULL) + {} + AudioPlayerData(const AudioPlayerData &data) + { + params = data.params; + vparams = data.vparams; + ivalue = data.ivalue; + ivalue2 = data.ivalue2; + svalue = data.svalue; + dvalue = data.dvalue; + callback = data.callback; + user_data = data.user_data; + + if (data.chain_data) + chain_data = new AudioPlayerData(*data.chain_data); + else + chain_data = NULL; + } + AudioPlayerData &operator=(const AudioPlayerData &data) + { + params = data.params; + vparams = data.vparams; + ivalue = data.ivalue; + ivalue2 = data.ivalue2; + svalue = data.svalue; + dvalue = data.dvalue; + callback = data.callback; + user_data = data.user_data; + + if (data.chain_data) + chain_data = new AudioPlayerData(*data.chain_data); + else + chain_data = NULL; + + return *this; + } + + ~AudioPlayerData() + { + if (chain_data) + delete chain_data; + } + + Params params; + vector vparams; + int ivalue, ivalue2; + string svalue; + double dvalue; + + void set_chain_data(AudioPlayerData *data) + { + chain_data = data; + } + + AudioPlayerData &get_chain_data() + { + if (!chain_data) + set_chain_data(new AudioPlayerData); + + return *chain_data; + } + + AudioRequest_cb callback; + void *user_data; //user data +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/Squeezebox.cpp b/src/bin/calaos_server/Audio/Squeezebox.cpp new file mode 100644 index 00000000..90894eb9 --- /dev/null +++ b/src/bin/calaos_server/Audio/Squeezebox.cpp @@ -0,0 +1,1793 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include + +// The JSON parser +#include + +#define SQ_TIMEOUT 40.0 +#define SQ_RECONNECT 3.0 + +using namespace Calaos; + +static Eina_Bool _con_server_add(void *data, int type, Ecore_Con_Event_Server_Add *ev) +{ + Squeezebox *o = reinterpret_cast(data); + + if (ev && ev->server && (o != ecore_con_server_data_get(ev->server))) + { + return ECORE_CALLBACK_PASS_ON; + } + + if (o) + { + o->addConnection(ev->server); + } + else + { + Utils::logger("squeezebox") << Priority::CRIT + << "Squeezebox(): _con_server_add, failed to get object !" + << log4cpp::eol; + } + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _con_server_del(void *data, int type, Ecore_Con_Event_Server_Del *ev) +{ + Squeezebox *o = reinterpret_cast(data); + + if (ev && ev->server && (o != ecore_con_server_data_get(ev->server))) + { + return ECORE_CALLBACK_PASS_ON; + } + + if (o) + { + o->delConnection(ev->server); + } + else + { + Utils::logger("squeezebox") << Priority::CRIT + << "Squeezebox(): _con_server_del, failed to get object !" + << log4cpp::eol; + } + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool _con_server_data(void *data, int type, Ecore_Con_Event_Server_Data *ev) +{ + Squeezebox *o = reinterpret_cast(data); + + if (ev && ev->server && (o != ecore_con_server_data_get(ev->server))) + { + return ECORE_CALLBACK_PASS_ON; + } + + if (o) + { + o->dataGet(ev->server, ev->data, ev->size); + } + else + { + Utils::logger("squeezebox") << Priority::CRIT + << "Squeezebox(): _con_server_data, failed to get object !" + << log4cpp::eol; + } + + return ECORE_CALLBACK_RENEW; +} + +Squeezebox::Squeezebox(Params &p): + AudioPlayer(p), + enotif(NULL), + econ(NULL), + econ_udp(NULL), + ehandler_add(NULL), + ehandler_del(NULL), + ehandler_data(NULL), + timer_notification(NULL), + timer_con(NULL), + timer_timeout(NULL), + isConnected(false) +{ + host = param["host"]; + if (param.Exists("port_cli")) + { + Utils::from_string(param["port_web"], port_web); + Utils::from_string(param["port_cli"], port_cli); + } + else + { + Utils::from_string(param["port"], port_cli); + port_web = 9000; + param.Add("port_cli", to_string(port_cli)); + param.Add("port_web", "9000"); + } + if (param.Exists("port")) + param.Delete("port"); + id = param["id"]; + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox: new device (" << id << ") at " << host << ":" << port_cli << log4cpp::eol; + + //Create DB + database = new SqueezeboxDB(this, param); + + ehandler_add = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_con_server_add, this); + ehandler_del = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, (Ecore_Event_Handler_Cb)_con_server_del, this); + ehandler_data = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_con_server_data, this); + + econ_udp = ecore_con_server_connect(ECORE_CON_REMOTE_BROADCAST, "255.255.255.255", BCAST_UDP_PORT, NULL); + + timerConnReconnect(); + timerNotificationReconnect(); + + timer_notification = new EcoreTimer(SQ_RECONNECT, + (sigc::slot)sigc::mem_fun(*this, &Squeezebox::timerNotificationReconnect)); + timer_con = new EcoreTimer(SQ_RECONNECT, + (sigc::slot)sigc::mem_fun(*this, &Squeezebox::timerConnReconnect)); +} + +Squeezebox::~Squeezebox() +{ + if (timer_notification) + { + delete timer_notification; + timer_notification = NULL; + } + if (timer_con) + { + delete timer_con; + timer_con = NULL; + } + + ecore_con_server_del(enotif); + ecore_con_server_del(econ); + ecore_con_server_del(econ_udp); + + ecore_event_handler_del(ehandler_add); + ecore_event_handler_del(ehandler_del); + ecore_event_handler_del(ehandler_data); + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox::~Squeezebox(): Ok" << log4cpp::eol; +} + +void Squeezebox::timerNotificationReconnect() +{ + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:timerNotificationReconnect() Connecting to " << host << ":" << port_cli << log4cpp::eol; + + if (enotif) ecore_con_server_del(enotif); + enotif = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, host.c_str(), port_cli, this); + ecore_con_server_data_set(enotif, this); + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:timerNotificationReconnect(): econ == " << econ << " and enotif == " << enotif << log4cpp::eol; +} + +void Squeezebox::timerConnReconnect() +{ + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:timerConnReconnect() Connecting to " << host << ":" << port_cli << log4cpp::eol; + + if (econ) ecore_con_server_del(econ); + econ = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, host.c_str(), port_cli, this); + ecore_con_server_data_set(econ, this); + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:timerConnReconnect(): econ == " << econ << " and enotif == " << enotif << log4cpp::eol; +} + +void Squeezebox::addConnection(Ecore_Con_Server *srv) +{ + if (srv == enotif) + { + if (timer_notification) + { + delete timer_notification; + timer_notification = NULL; + } + + //we need to subscribe to these commands to watch for status changes + //string cmd = "subscribe playlist,mixer,pause,stop\n\r"; + string cmd = "listen 1\n\r"; + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox: trying to subscribe to events" << log4cpp::eol; + + ecore_con_server_send(enotif, cmd.c_str(), cmd.length()); + } + else if (srv == econ) + { + if (timer_con) + { + delete timer_con; + timer_con = NULL; + } + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox: main connection established" << log4cpp::eol; + } + else + { + Utils::logger("squeezebox") << Priority::WARN + << "Squeezebox:addConnection() Wrong Ecore_Con_Server object" + << log4cpp::eol; + } +} + +void Squeezebox::delConnection(Ecore_Con_Server *srv) +{ + if (srv == enotif) + { + if (timer_notification) + { + delete timer_notification; + timer_notification = NULL; + } + + Utils::logger("squeezebox") << Priority::WARN << "Squeezebox: Notification Connection closed !" << log4cpp::eol; + Utils::logger("squeezebox") << Priority::WARN << "Squeezebox: Trying to reconnect..." << log4cpp::eol; + + timer_notification = new EcoreTimer(SQ_RECONNECT, + (sigc::slot)sigc::mem_fun(*this, &Squeezebox::timerNotificationReconnect)); + + isConnected = false; + } + else if (srv == econ) + { + if (timer_con) + { + delete timer_con; + timer_con = NULL; + } + + Utils::logger("squeezebox") << Priority::WARN << "Squeezebox: Main Connection closed !" << log4cpp::eol; + Utils::logger("squeezebox") << Priority::WARN << "Squeezebox: Trying to reconnect..." << log4cpp::eol; + + timer_con = new EcoreTimer(SQ_RECONNECT, + (sigc::slot)sigc::mem_fun(*this, &Squeezebox::timerConnReconnect)); + + isConnected = false; + } + else + { + Utils::logger("squeezebox") << Priority::WARN + << "Squeezebox:delConnection(): Wrong Ecore_Con_Server object (" << srv << ") where econ == " << econ << " and enotif == " << enotif + << log4cpp::eol; + } +} + +void Squeezebox::dataGet(Ecore_Con_Server *srv, void *data, int size) +{ + string msg((char *)data, size); + + if (srv == enotif) + { + if (msg.find('\n') == string::npos && + msg.find('\r') == string::npos) + { + //We have not a complete paquet yet, buffurize it. + buffer_notif += msg; + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:getData(notification) Bufferize data." << log4cpp::eol; + + return; + } + + if (!buffer_notif.empty()) + { + msg = buffer_notif; + buffer_notif.clear(); + } + + //Clean data string + int i = msg.length() - 1; + while ((msg[i] == '\n' || msg[i] == '\r' || msg[i] == '\0') && i >= 0) i--; + + replace_str(msg, "\r\n", "\n"); + replace_str(msg, "\r", "\n"); + + vector tokens; + split(msg, tokens, "\n"); + + isConnected = true; + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:notification Got " << tokens.size() << " messages." << log4cpp::eol; + + for(int i = 0; i < tokens.size(); i++) + processNotificationMessage(tokens[i]); + } + else if (srv == econ) + { + if (msg.find('\n') == string::npos && + msg.find('\r') == string::npos) + { + //We have not a complete paquet yet, buffurize it. + buffer_main += msg; + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:getData(main) Bufferize data." << log4cpp::eol; + + return; + } + + if (!buffer_main.empty()) + { + msg = buffer_main; + buffer_main.clear(); + } + + //Clean data string + int i = msg.length() - 1; + while ((msg[i] == '\n' || msg[i] == '\r' || msg[i] == '\0') && i >= 0) i--; + + replace_str(msg, "\r\n", "\n"); + replace_str(msg, "\r", "\n"); + + vector tokens; + split(msg, tokens, "\n"); + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:notification Got " << tokens.size() << " messages." << log4cpp::eol; + + for(int i = 0; i < tokens.size(); i++) + processMessage(true, tokens[i]); + } + else + { + Utils::logger("squeezebox") << Priority::WARN + << "Squeezebox:dataGet() Wrong Ecore_Con_Server object" + << log4cpp::eol; + } +} + +void Squeezebox::processNotificationMessage(string msg) +{ + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:processNotificationMessage() Message: \"" << msg << "\"" << log4cpp::eol; + + Params p; + p.Parse(msg); + + if (param["id"] != url_decode2(p["0"])) + return; + + int pid; + from_string(param["pid"], pid); + + if (p["1"] == "playlist") + { + if (p["2"] == "open" || p["2"] == "newsong") //current song changes ! + { + string notify = "songchanged player " + to_string(pid); + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(SONG_CHANGE); + + string sig = "audio "; + sig += get_param("pid") + " songchanged"; + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "move") + { + string notify = "playlist move " + p["3"] + " " + p["4"] + " " + to_string(pid);; + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(PLAYLIST_CHANGE); + + string sig = "audio_playlist "; + sig += get_param("pid") + " playlist move " + p["3"] + " " + p["4"]; + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "delete") + { + string notify = "playlist delete " + p["3"] + " " + to_string(pid);; + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(PLAYLIST_CHANGE); + + string sig = "audio_playlist "; + sig += get_param("pid") + " playlist delete " + p["3"]; + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "loadtracks" || p["2"] == "clear" || p["2"] == "play" || p["2"] == "load") + { + string notify = "playlist reload " + to_string(pid);; + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(PLAYLIST_CHANGE); + + string sig = "audio_playlist "; + sig += get_param("pid") + " playlist reload"; + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "addtracks" || p["2"] == "add") + { + string notify = "playlist tracksadded " + to_string(pid);; + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(PLAYLIST_CHANGE); + + string sig = "audio_playlist "; + sig += get_param("pid") + " playlist tracksadded"; + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "clear") + { + string notify = "playlist cleared " + to_string(pid);; + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(PLAYLIST_CHANGE); + + string sig = "audio_playlist "; + sig += get_param("pid") + " playlist cleared"; + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "pause") + { + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) + { + if (p["3"] == "" || p["3"] == "0") + ain->set_status(PLAY); + else + ain->set_status(PAUSE); + } + + string sig = "audio_status "; + sig += get_param("pid") + " "; + + if (p["3"] == "" || p["3"] == "0") + sig += "play"; + else + sig += "pause"; + + IPC::Instance().SendEvent("events", sig); + } + else if (p["2"] == "stop") + { + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(STOP); + + string sig = "audio_status "; + sig += get_param("pid") + " stop"; + IPC::Instance().SendEvent("events", sig); + } + } + + //volume change + if (p["1"] == "mixer" && p["2"] == "volume") + { + string notify = "volumechanged " + to_string(pid) + " " + p["3"]; + + ecore_con_server_send(econ_udp, notify.c_str(), notify.size()); + + //notify the player's input + AudioInput *ain = dynamic_cast(ainput); + if (ain) ain->set_status(VOLUME_CHANGE); + + string sig = "audio_volume "; + sig += get_param("pid") + " change " + p["3"]; + IPC::Instance().SendEvent("events", sig); + } +} + +void Squeezebox::processMessage(bool status, string msg) +{ + if (status) + { + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:processMessage() Message: \"" << msg << "\"" << log4cpp::eol; + } + else + { + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox:processMessage() sending failed !" << log4cpp::eol; + + //Try reconnecting to avoid unwanted data from old command to alter current command + if (ecore_con_server_connected_get(econ)) + { + delConnection(econ); + delConnection(enotif); + } + } + + if (timer_timeout) + { + delete timer_timeout; + timer_timeout = NULL; + } + + if (squeeze_commands.size() > 0) + { + SqueezeboxCommand &cmd = squeeze_commands.front(); + + cmd.status = status; + cmd.result = msg; + + if (!cmd.noCallback) + { + SqueezeRequest_signal sig; + sig.connect(cmd.callback); + sig.emit(status, cmd.request, cmd.result, cmd.user_data); + } + + squeeze_commands.pop(); + } + + //continue to send request until we have no more + _sendRequest(); +} + +void Squeezebox::sendRequest(string command, SqueezeRequest_cb callback, AudioPlayerData user_data) +{ + SqueezeboxCommand cmd; + cmd.request = command; + cmd.callback = callback; + cmd.user_data = user_data; + + squeeze_commands.push(cmd); + + _sendRequest(); +} + +void Squeezebox::sendRequest(string command) +{ + SqueezeboxCommand cmd; + cmd.request = command; + cmd.noCallback = true; + + squeeze_commands.push(cmd); + + _sendRequest(); +} + +Eina_Bool _execute_request_idler_cb(void *data) +{ + Squeezebox *sq = reinterpret_cast(data); + if (!sq) return ECORE_CALLBACK_CANCEL; + + sq->processMessage(false, ""); + + //delete the ecore_idler + return ECORE_CALLBACK_CANCEL; +} + +void Squeezebox::_sendRequest() +{ + //return if a request is already in progress + if (!squeeze_commands.empty() && squeeze_commands.front().inProgress) + return; + + //return if there is no more command to process + if (squeeze_commands.empty()) + return; + + //Do the real work here, get the next available request and process it + SqueezeboxCommand &cmd = squeeze_commands.front(); + + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox: sending command: \"" << cmd.request << "\"" << log4cpp::eol; + + cmd.inProgress = true; + + if (!timer_timeout) + timer_timeout = new EcoreTimer(SQ_TIMEOUT, (sigc::slot)sigc::mem_fun(*this, &Squeezebox::requestTimeout_cb)); + + if (isConnected) + { + cmd.request += "\n\r"; + ecore_con_server_send(econ, cmd.request.c_str(), cmd.request.length()); + } + else + { + ecore_idler_add(_execute_request_idler_cb, this); + } +} + +void Squeezebox::requestTimeout_cb() +{ + Utils::logger("squeezebox") << Priority::DEBUG << "Squeezebox: Request: Timeout ! " << log4cpp::eol; + + processMessage(false, ""); +} + +void Squeezebox::Play() +{ + string cmd = id; + cmd += " play"; + + sendRequest(cmd); +} + +void Squeezebox::Pause() +{ + string cmd = id; + cmd += " pause"; + + sendRequest(cmd); +} + +void Squeezebox::Stop() +{ + string cmd = id; + cmd += " stop"; + + sendRequest(cmd); +} + +void Squeezebox::Next() +{ + string cmd = id; + cmd += " playlist index +1"; + + sendRequest(cmd); +} + +void Squeezebox::Previous() +{ + string cmd = id; + cmd += " playlist index -1"; + + sendRequest(cmd); +} + +void Squeezebox::Power(bool on) +{ + string cmd = id; + + if (on) + cmd += " power 1"; + else + cmd += " power 0"; + + sendRequest(cmd); +} + +void Squeezebox::Sleep(int seconds) +{ + string cmd = id; + cmd += " sleep " + to_string(seconds); + + sendRequest(cmd); +} + +void Squeezebox::Synchronize(string playerid, bool sync) +{ + string cmd = id; + if (sync) + cmd += " sync " + playerid; + else + cmd += " sync -"; + + sendRequest(cmd); +} + +void Squeezebox::get_songinfo(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " path ?"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_songinfo_cb), data); +} + +void Squeezebox::get_songinfo_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + string path = p["2"]; + + string cmd = "songinfo 0 100 tags:algjdro url:"; + cmd += path; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_songinfo_cb2), data); +} + +void Squeezebox::get_songinfo_cb2(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + Params infos; + + //It's probably a remote stream, get infos with specific commands + if (p.size() <= 5) + { + get_artist(sigc::mem_fun(*this, &Squeezebox::get_songinfo_artist_cb), data); + + return; + } + + for (int i = 5;i < p.size();i++) + { + string value = p[Utils::to_string(i)]; + vector attr; + Utils::split(Utils::url_decode2(value), attr, ":", 2); + + if (attr.size() == 2) + infos.Add(Utils::url_decode2(attr[0]), Utils::url_decode2(attr[1])); + } + data.get_chain_data().params = infos; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_songinfo_artist_cb(AudioPlayerData data) +{ + data.get_chain_data().params.Add("artist", data.svalue); + get_album(sigc::mem_fun(*this, &Squeezebox::get_songinfo_album_cb), data); +} +void Squeezebox::get_songinfo_album_cb(AudioPlayerData data) +{ + data.get_chain_data().params.Add("album", data.svalue); + get_title(sigc::mem_fun(*this, &Squeezebox::get_songinfo_title_cb), data); +} +void Squeezebox::get_songinfo_title_cb(AudioPlayerData data) +{ + data.get_chain_data().params.Add("title", data.svalue); + get_duration(sigc::mem_fun(*this, &Squeezebox::get_songinfo_duration_cb), data); +} +void Squeezebox::get_songinfo_duration_cb(AudioPlayerData data) +{ + data.get_chain_data().params.Add("duration", to_string(data.dvalue)); + + //force getting album cover for remote stream (radio, music services) + data.get_chain_data().params.Add("coverart", "1"); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + + +void Squeezebox::get_title(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " remote ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_title_cb), data); +} +void Squeezebox::get_title_cb(bool status, string request, string result, AudioPlayerData data) +{ + string cmd; + Params p; + p.Parse(result); + + if (p["2"] == "1") + cmd = id + " title ?"; + else + cmd = id + " current_title ?"; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_title2_cb), data); +} +void Squeezebox::get_title2_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().svalue = url_decode2(p["2"]); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + + +void Squeezebox::get_artist(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " remote ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_title_cb), data); +} +void Squeezebox::get_artist_cb(bool status, string request, string result, AudioPlayerData data) +{ + string cmd; + Params p; + p.Parse(result); + + if (p["2"] == "1") + cmd = id + " artist ?"; + else + cmd = id + " title ?"; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_title2_cb), data); +} +void Squeezebox::get_artist2_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().svalue = url_decode2(p["2"]); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + + +void Squeezebox::get_album(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " album ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_album_cb), data); +} +void Squeezebox::get_album_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().svalue = url_decode2(p["2"]); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + + +void Squeezebox::get_album_cover(AudioRequest_cb callback, AudioPlayerData user_data) +{ + //Try using a JSON call to get artwork_url if any + + string url = "http://"; + url += param["host"] + ":9000"; + url += "/jsonrpc.js"; + + string postData = "{\"id\":1,\"method\":\"slim.request\",\"params\":[\""; + postData += id; + postData += "\",[\"status\",\"-\",1,\"tags:gABbehldiqtyrSuoKLN\"]]}"; + + AudioPlayerData *data = new AudioPlayerData(); + data->set_chain_data(new AudioPlayerData(user_data)); + data->callback = callback; + + FileDownloader *downloader = new FileDownloader(url, postData, "application/json", true); + downloader->addCallback(sigc::mem_fun(*this, &Squeezebox::get_album_cover_json_cb), data); + + downloader->Start(); +} +void Squeezebox::get_album_cover_json_cb(string result, void *data, void *user_data) +{ + if (result == "failed" || result == "aborted") + { + AudioPlayerData *_data = reinterpret_cast(user_data); + AudioPlayerData adata(*_data); + delete _data; + + get_album_cover_std(adata); + } + else if (result == "done") + { + AudioPlayerData *_data = reinterpret_cast(user_data); + AudioPlayerData adata(*_data); + delete _data; + + Buffer_CURL *buff = reinterpret_cast(data); + string res((const char *)buff->buffer, buff->bufsize); + + json_error_t jerr; + json_t *json = json_loads(res.c_str(), 0, &jerr); + + cout << json_dumps(json, JSON_INDENT(4)) << endl; + + if (!json) + { + Utils::logger("squeezebox") << Priority::DEBUG << "JSON - Error loading json : " << jerr.text << log4cpp::eol; + + get_album_cover_std(adata); + + return; + } + + json_t *remoteMeta = NULL, *artwork_url = NULL, *jresult = NULL; + + if (json_is_object(json)) + { + jresult = json_object_get(json, "result"); + + if (json_is_object(jresult)) + { + remoteMeta = json_object_get(jresult, "remoteMeta"); + + if (json_is_object(remoteMeta)) + { + artwork_url = json_object_get(remoteMeta, "artwork_url"); + if (json_is_string(artwork_url)) + { + string aurl; + + aurl = json_string_value(artwork_url); + + if (artwork_url) json_decref(artwork_url); + if (remoteMeta) json_decref(remoteMeta); + if (jresult) json_decref(jresult); + if (json) json_decref(json); + + if (aurl.compare(0, 4, "http") == 0) + { + adata.get_chain_data().svalue = aurl; + + AudioRequest_signal sig; + sig.connect(adata.callback); + sig.emit(adata.get_chain_data()); + + return; + } + else + { + string s = "http://"; + s += host + ":9000/"; + s += aurl; + + adata.get_chain_data().svalue = s; + + AudioRequest_signal sig; + sig.connect(adata.callback); + sig.emit(adata.get_chain_data()); + + return; + } + } + + Utils::logger("squeezebox") << Priority::DEBUG << "JSON - artwork_url not found in remoteMeta!" << log4cpp::eol; + } + else + { + Utils::logger("squeezebox") << Priority::DEBUG << "JSON - remoteMeta not found!" << log4cpp::eol; + } + } + } + + if (remoteMeta) json_decref(remoteMeta); + if (artwork_url) json_decref(artwork_url); + if (json) json_decref(json); + + get_album_cover_std(adata); + } +} +void Squeezebox::get_album_cover_std(AudioPlayerData data) +{ + Utils::logger("squeezebox") << Priority::DEBUG << "get_album_cover(): trying with standard CLI way..." << log4cpp::eol; + + string cmd = id; + cmd += " path ?"; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_album_cover_std_cb), data); +} +void Squeezebox::get_album_cover_std_cb(bool status, string request, string result, AudioPlayerData data) +{ + string cmd; + Params p; + p.Parse(result); + string path = p["2"]; + + cmd = "songinfo 0 100 url:"; + cmd += path; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_album_cover_std2_cb), data); +} +void Squeezebox::get_album_cover_std2_cb(bool status, string request, string result, AudioPlayerData data) +{ + vector tokens; + split(result, tokens); + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + string aid = ""; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + split(tmp, tk, ":", 2); + if (tk.size() != 2) continue; + + if (tk[0] == "artwork_track_id") aid = tk[1]; + if (tk[0] == "id" && aid == "") aid = tk[1]; + } + + stringstream aurl; + if (aid == "") aid = "current"; + aurl << "http://" << host << ":" << port_web << "/music/" << aid << "/cover.jpg"; + if (aid == "") aurl << "?playerid=" << id; + + data.get_chain_data().svalue = aurl.str(); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_album_cover_id(string track_id, AudioRequest_cb callback, AudioPlayerData user_data) +{ + stringstream aurl; + if (track_id == "") track_id = "0"; + aurl << "http://" << host << ":" << port_web << "/music/" << track_id << "/cover.jpg"; + + Utils::logger("squeezebox") << Priority::DEBUG << "get_album_cover_id(): \"" << aurl << "\"" << log4cpp::eol; + + user_data.svalue = aurl.str(); + + AudioRequest_signal sig; + sig.connect(callback); + sig.emit(user_data); +} + + +void Squeezebox::get_playlist_album_cover(int item, AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " playlist path " + to_string(item) + " ?"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_album_cover_cb), data); +} +void Squeezebox::get_playlist_album_cover_cb(bool status, string request, string result, AudioPlayerData data) +{ + string cmd; + Params p; + p.Parse(result); + string path = p["4"]; + + cmd = "songinfo 0 100 url:"; + cmd += path; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_album_cover2_cb), data); +} +void Squeezebox::get_playlist_album_cover2_cb(bool status, string request, string result, AudioPlayerData data) +{ + vector tokens; + split(result, tokens); + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + string aid = ""; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + split(tmp, tk, ":", 2); + if (tk.size() != 2) continue; + + if (tk[0] == "artwork_track_id") aid = tk[1]; + if (tk[0] == "id" && aid == "") aid = tk[1]; + } + + stringstream aurl; + if (aid == "") aid = "0"; + aurl << "http://" << host << ":" << port_web << "/music/" << aid << "/cover.jpg"; + + Utils::logger("squeezebox") << Priority::DEBUG << "get_playlist_album_cover(): \"" << aurl << "\"" << log4cpp::eol; + + data.get_chain_data().svalue = aurl.str(); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_genre(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " genre ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_genre_cb), data); +} +void Squeezebox::get_genre_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().svalue = url_decode2(p["2"]); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_current_time(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " time ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_current_time_cb), data); +} + +void Squeezebox::get_current_time_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + if (is_of_type(url_decode2(p["2"]))) + from_string(url_decode2(p["2"]), data.get_chain_data().dvalue); + else + data.get_chain_data().dvalue = 0.0; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::set_current_time(double seconds) +{ + string cmd = id; + cmd += " time " + to_string(seconds); + + sendRequest(cmd); +} + +void Squeezebox::get_duration(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " duration ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + data.dvalue = 0.0; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_duration_cb), data); +} + +void Squeezebox::get_duration_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + if (is_of_type(url_decode2(p["2"]))) + from_string(url_decode2(p["2"]), data.get_chain_data().dvalue); + else + data.get_chain_data().dvalue = 0.0; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_sleep(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " sleep ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_sleep_cb), data); +} + +void Squeezebox::get_sleep_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + if (is_of_type(url_decode2(p["2"]))) + from_string(url_decode2(p["2"]), data.get_chain_data().ivalue); + else + data.get_chain_data().ivalue = 0; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_status(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " mode ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_status_cb), data); +} + +void Squeezebox::get_status_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().svalue = url_decode2(p["2"]); + + if (data.get_chain_data().svalue == "play") + data.get_chain_data().ivalue = PLAY; + else if (data.get_chain_data().svalue == "pause") + data.get_chain_data().ivalue = PAUSE; + else if (data.get_chain_data().svalue == "stop") + data.get_chain_data().ivalue = STOP; + else + data.get_chain_data().ivalue = STOP; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_sync_status(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " sync ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_sync_status_cb), data); +} + +void Squeezebox::get_sync_status_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + vector &results = data.get_chain_data().vparams; + + vector splitter; + Utils::split(url_decode2(p["2"]), splitter, ","); + + for (int j = 0;j < splitter.size();j++) + { + string tmp = splitter[j]; + + if (tmp == "-") break; + + for (int i = 0;i < AudioManager::Instance().get_size();i++) + { + AudioPlayer *ap = AudioManager::Instance().get_player(i); + if (ap->get_param("id") == tmp) + { + Params result; + + //player found in calaosd, add it + result.Add("id", ap->get_param("id")); + result.Add("name", ap->get_param("name")); + + results.push_back(result); + + break; + } + } + } + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_playlist_size(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " playlist tracks ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_size_cb), data); +} + +void Squeezebox::get_playlist_size_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + if (is_of_type(url_decode2(p["3"]))) + from_string(url_decode2(p["3"]), data.get_chain_data().ivalue); + else + data.get_chain_data().ivalue = 0; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_playlist_current(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " playlist index ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_current_cb), data); +} + +void Squeezebox::get_playlist_current_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + if (is_of_type(url_decode2(p["3"]))) + from_string(url_decode2(p["3"]), data.get_chain_data().ivalue); + else + data.get_chain_data().ivalue = 0; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_playlist_item(int index, AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " playlist path " + to_string(index) + " ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + data.ivalue = index; //store index for later use + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_item_cb), data); +} + +void Squeezebox::get_playlist_item_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + string path = url_decode2(p["4"]); + + string cmd = "songinfo 0 100 tags:algjdro url:" + url_encode(path); + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_item2_cb), data); +} +void Squeezebox::get_playlist_item2_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + //It's probably a remote stream, get infos with specific commands + if (p.size() <= 5) + { + string cmd = id; + cmd += " playlist title " + to_string(data.ivalue) + " ?"; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_item3_cb), data); + + return; + } + + for (int i = 5;i < p.size();i++) + { + string value = p[to_string(i)]; + vector attr; + split(url_decode2(value), attr, ":", 2); + + if (attr.size() == 2) + data.get_chain_data().params.Add(url_decode2(attr[0]), url_decode2(attr[1])); + } + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} +void Squeezebox::get_playlist_item3_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().params.Add("artist", url_decode2(p["4"])); + + data.ivalue2 = data.ivalue; //hack here, ivalue will be erased by get_playlist_current call + get_playlist_current(sigc::mem_fun(*this, &Squeezebox::get_playlist_item4_cb), data); +} +void Squeezebox::get_playlist_item4_cb(AudioPlayerData data) +{ + int index = (int)data.ivalue2; + + if (index == data.ivalue) + { + string cmd = id; + cmd += " current_title ?"; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_item5_cb), data); + } + else + { + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); + } +} +void Squeezebox::get_playlist_item5_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + data.get_chain_data().params.Add("title", url_decode2(p["2"])); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::get_playlist_basic_info(int index, AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " playlist artist " + to_string(index) + " ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + data.ivalue = index; //store index for later use + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_info_cb), data); +} + +void Squeezebox::get_playlist_info_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + string key = url_decode2(p["2"]); + string val = url_decode2(p["4"]); + + data.get_chain_data().params.Add(key, val); + + if (key == "artist") + { + string cmd = id; + cmd += " playlist album " + to_string(data.ivalue) + " ?"; + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_info_cb), data); + } + else if (key == "album") + { + string cmd = id; + cmd += " playlist title " + to_string(data.ivalue) + " ?"; + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_playlist_info_cb), data); + } + else + { + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); + } +} + +void Squeezebox::playlist_moveup(int item) +{ + stringstream cmd; + cmd << id << " playlist move " << item << " " << (item - 1); + + sendRequest(cmd.str()); +} + +void Squeezebox::playlist_movedown(int item) +{ + stringstream cmd; + cmd << id << " playlist move " << item << " " << (item + 1); + + sendRequest(cmd.str()); +} + +void Squeezebox::playlist_delete(int item) +{ + stringstream cmd; + cmd << id << " playlist delete " << item; + + sendRequest(cmd.str()); +} + +void Squeezebox::playlist_play(int item) +{ + stringstream cmd; + cmd << id << " playlist index " << item; + + sendRequest(cmd.str()); +} + +void Squeezebox::playlist_clear() +{ + string cmd = id; + cmd += " playlist clear"; + + sendRequest(cmd); +} + +void Squeezebox::playlist_save(string name) +{ + string cmd = id; + cmd += " playlist save " + Utils::url_encode(name); + + sendRequest(cmd); +} + +void Squeezebox::playlist_delete(string id) +{ + string cmd = "playlists delete playlist_id:" + id; + + sendRequest(cmd); +} + +void Squeezebox::playlist_play_artist(string item) +{ + string cmd = id; + cmd += " playlistcontrol cmd:load artist_id:"; + cmd += item; + + sendRequest(cmd); +} + +void Squeezebox::playlist_play_album(string item) +{ + string cmd = id; + cmd += " playlistcontrol cmd:load album_id:"; + cmd += item; + + sendRequest(cmd); +} + +void Squeezebox::playlist_play_title(string item) +{ + string cmd = id; + cmd += " playlistcontrol cmd:load track_id:"; + cmd += item; + + sendRequest(cmd); +} + +void Squeezebox::playlist_add_artist(string item) +{ + string cmd = id; + cmd += " playlistcontrol cmd:add artist_id:"; + cmd += item; + + sendRequest(cmd); +} + +void Squeezebox::playlist_add_album(string item) +{ + string cmd = id; + cmd += " playlistcontrol cmd:add album_id:"; + cmd += item; + + sendRequest(cmd); +} + +void Squeezebox::playlist_add_title(string item) +{ + string cmd = id; + cmd += " playlistcontrol cmd:add track_id:"; + cmd += item; + + sendRequest(cmd); +} + +void Squeezebox::playlist_add_items(string item) +{ + string cmd; + + vector tokens; + Utils::split(item, tokens, ":", 2); + if (tokens.size() != 2) return; + + if (tokens[0] == "track_id" || + tokens[0] == "album_id" || + tokens[0] == "artist_id" || + tokens[0] == "genre_id" || + tokens[0] == "year" || + tokens[0] == "playlist_id" || + tokens[0] == "folder_id") + { + cmd = id; + cmd += " playlistcontrol cmd:add "; + cmd += item; + } + else if (tokens[0] == "radio_id") + { + vector tok; + Utils::split(tokens[1], tok, ":", 2); + if (tok.size() != 2) return; + + cmd = id; + cmd += " " + tok[1] + " "; //radio type + cmd += " playlist add item_id:"; + cmd += tok[0]; //radio id + } + else //add as direct song url + { + cmd = id; + cmd += " playlist add "; + cmd += url_encode(item); + } + + sendRequest(cmd); +} + +void Squeezebox::playlist_play_items(string item) +{ + string cmd; + + vector tokens; + Utils::split(item, tokens, ":", 2); + if (tokens.size() != 2) return; + + if (tokens[0] == "track_id" || + tokens[0] == "album_id" || + tokens[0] == "artist_id" || + tokens[0] == "genre_id" || + tokens[0] == "year" || + tokens[0] == "playlist_id" || + tokens[0] == "folder_id" || + tokens[0] == "playlist_name") + { + cmd = id; + cmd += " playlistcontrol cmd:load "; + cmd += url_encode(item); + } + else if (tokens[0] == "radio_id") + { + vector tok; + Utils::split(tokens[1], tok, ":", 2); + if (tok.size() != 2) return; + + cmd = id; + cmd += " " + tok[1] + " "; //radio type + cmd += " playlist play item_id:"; + cmd += tok[0]; //radio id + } + else //play as direct song url + { + cmd = id; + cmd += " playlist play "; + cmd += url_encode(item); + } + + sendRequest(cmd); +} + +void Squeezebox::get_volume(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = id; + cmd += " mixer volume ?"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_volume_cb), data); +} + +void Squeezebox::get_volume_cb(bool status, string request, string result, AudioPlayerData data) +{ + Params p; + p.Parse(result); + + if (is_of_type(url_decode2(p["3"]))) + from_string(url_decode2(p["3"]), data.get_chain_data().ivalue); + else + data.get_chain_data().ivalue = 0; + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void Squeezebox::set_volume(int vol) +{ + string cmd = id; + cmd += " mixer volume "; + cmd += to_string(vol); + + sendRequest(cmd); +} + +void Squeezebox::getSynchronizeList(AudioRequest_cb callback, AudioPlayerData user_data) +{ + string cmd = "players 0 20"; + + AudioPlayerData data; + data.set_chain_data(new AudioPlayerData(user_data)); + data.callback = callback; + + sendRequest(cmd, sigc::mem_fun(*this, &Squeezebox::get_sync_list_cb), data); +} + +void Squeezebox::get_sync_list_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + + vector tokens; + split(res, tokens); + + if (tokens.size() > 0) + { + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "playerid") + { + string pid = url_decode2(tk[1]); + + for (int i = 0;i < AudioManager::Instance().get_size();i++) + { + AudioPlayer *ap = AudioManager::Instance().get_player(i); + if (ap->get_param("id") == pid && pid != id) + { + //player found in calaosd, add it + item.Add("id", pid); + item.Add("name", ap->get_param("name")); + result.push_back(item); + + break; + } + } + } + } + } + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} diff --git a/src/bin/calaos_server/Audio/Squeezebox.h b/src/bin/calaos_server/Audio/Squeezebox.h new file mode 100644 index 00000000..369a23de --- /dev/null +++ b/src/bin/calaos_server/Audio/Squeezebox.h @@ -0,0 +1,233 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_SQUEEZEBOX_H +#define S_SQUEEZEBOX_H + +#include +#include +#include +#include +#include + +namespace Calaos +{ + +typedef sigc::slot SqueezeRequest_cb; +typedef sigc::signal SqueezeRequest_signal; + +class SqueezeboxCommand +{ + public: + SqueezeboxCommand(): + inProgress(false), + noCallback(false) + { } + + bool status; + + string request; + string result; + + bool inProgress; + bool noCallback; + + SqueezeRequest_cb callback; + + AudioPlayerData user_data; +}; + +class SqueezeboxDB; + +class Squeezebox: public AudioPlayer, public sigc::trackable +{ + friend class SqueezeboxDB; + + protected: + Ecore_Con_Server *enotif; + Ecore_Con_Server *econ; + Ecore_Con_Server *econ_udp; + + Ecore_Event_Handler *ehandler_add; + Ecore_Event_Handler *ehandler_del; + Ecore_Event_Handler *ehandler_data; + + EcoreTimer *timer_notification; + EcoreTimer *timer_con; + + EcoreTimer *timer_timeout; + queue squeeze_commands; + + string host, id; + int port_cli, port_web; + + bool isConnected; + + string buffer_notif, buffer_main; + + void timerNotificationReconnect(); + void timerConnReconnect(); + + void processNotificationMessage(string msg); + + void _sendRequest(); + void requestTimeout_cb(); + + void sendRequest(string request); + void sendRequest(string request, SqueezeRequest_cb callback, AudioPlayerData user_data); + + void get_songinfo_cb(bool status, string request, string result, AudioPlayerData data); + void get_songinfo_cb2(bool status, string request, string result, AudioPlayerData data); + void get_songinfo_artist_cb(AudioPlayerData data); + void get_songinfo_album_cb(AudioPlayerData data); + void get_songinfo_title_cb(AudioPlayerData data); + void get_songinfo_duration_cb(AudioPlayerData data); + void get_songinfo_cover_cb(AudioPlayerData data); + + void get_title_cb(bool status, string request, string result, AudioPlayerData data); + void get_title2_cb(bool status, string request, string result, AudioPlayerData data); + + void get_artist_cb(bool status, string request, string result, AudioPlayerData data); + void get_artist2_cb(bool status, string request, string result, AudioPlayerData data); + + void get_album_cb(bool status, string request, string result, AudioPlayerData data); + + void get_album_cover_json_cb(string result, void *data, void *user_data); + void get_album_cover_std(AudioPlayerData data); + void get_album_cover_std_cb(bool status, string request, string result, AudioPlayerData data); + void get_album_cover_std2_cb(bool status, string request, string result, AudioPlayerData data); + + void get_genre_cb(bool status, string request, string result, AudioPlayerData data); + void get_current_time_cb(bool status, string request, string result, AudioPlayerData data); + void get_duration_cb(bool status, string request, string result, AudioPlayerData data); + + void get_sleep_cb(bool status, string request, string result, AudioPlayerData data); + void get_status_cb(bool status, string request, string result, AudioPlayerData data); + void get_sync_status_cb(bool status, string request, string result, AudioPlayerData data); + + void get_playlist_current_cb(bool status, string request, string result, AudioPlayerData data); + void get_playlist_size_cb(bool status, string request, string result, AudioPlayerData data); + + void get_playlist_item_cb(bool status, string request, string result, AudioPlayerData data); + void get_playlist_item2_cb(bool status, string request, string result, AudioPlayerData data); + void get_playlist_item3_cb(bool status, string request, string result, AudioPlayerData data); + void get_playlist_item4_cb(AudioPlayerData data); + void get_playlist_item5_cb(bool status, string request, string result, AudioPlayerData data); + + void get_playlist_info_cb(bool status, string request, string result, AudioPlayerData data); + + void get_playlist_album_cover_cb(bool status, string request, string result, AudioPlayerData data); + void get_playlist_album_cover2_cb(bool status, string request, string result, AudioPlayerData data); + + void get_album_cover_id_cb(bool status, string request, string result, AudioPlayerData data); + void get_volume_cb(bool status, string request, string result, AudioPlayerData data); + void get_sync_list_cb(bool status, string request, string result, AudioPlayerData data); + + public: + Squeezebox(Params &p); + virtual ~Squeezebox(); + + virtual void Play(); + virtual void Pause(); + virtual void Stop(); + virtual void Next(); + virtual void Previous(); + virtual void Power(bool on); + virtual void Sleep(int seconds); + virtual void Synchronize(string playerid, bool sync); + virtual void getSynchronizeList(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); //get all players wich we can sync with + + virtual void get_volume(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void set_volume(int vol); + + //Return a list of option supported by the player + virtual Params getOptions() + { + Params p; + p.Add("sync", "true"); + p.Add("sleep", "true"); + return p; + } + + virtual void get_title(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_artist(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_album(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_album_cover(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_genre(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_songinfo(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_current_time(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void set_current_time(double seconds); + virtual void get_duration(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + + //retourne le nombre de secondes restante avant le poweroff + virtual void get_sleep(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_status(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_sync_status(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); //get all players synced with + + //playlist functions + virtual void playlist_moveup(int item); + virtual void playlist_movedown(int item); + virtual void playlist_delete(int item); + virtual void playlist_play(int item); + virtual void playlist_play_artist(string item); + virtual void playlist_play_album(string item); + virtual void playlist_play_title(string item); + virtual void playlist_add_artist(string item); + virtual void playlist_add_album(string item); + virtual void playlist_add_title(string item); + virtual void playlist_add_items(string item); + virtual void playlist_play_items(string item); + virtual void playlist_clear(); + virtual void playlist_save(string name); + virtual void playlist_delete(string id); + virtual void get_playlist_current(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_playlist_size(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_playlist_item(int index, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_playlist_basic_info(int index, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_playlist_album_cover(int i, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + virtual void get_album_cover_id(string track_id, AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + + virtual bool canPlaylist() { return true; } + virtual bool canDatabase() { return true; } + + virtual Params getDatabaseCapabilities() + { + Params p; + p.Add("artist", "true"); + p.Add("album", "true"); + p.Add("genre", "true"); + p.Add("year", "true"); + p.Add("music folder", "true"); + p.Add("playlist", "true"); + p.Add("radio", "true"); + p.Add("search", "true"); + return p; + } + + /* This is private for C callbacks */ + void addConnection(Ecore_Con_Server *srv); + void delConnection(Ecore_Con_Server *srv); + void dataGet(Ecore_Con_Server *srv, void *data, int size); + void processMessage(bool status, string msg); +}; + +} + +#endif diff --git a/src/bin/calaos_server/Audio/SqueezeboxDB.cpp b/src/bin/calaos_server/Audio/SqueezeboxDB.cpp new file mode 100644 index 00000000..89cb0554 --- /dev/null +++ b/src/bin/calaos_server/Audio/SqueezeboxDB.cpp @@ -0,0 +1,1077 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +SqueezeboxDB::SqueezeboxDB(Squeezebox *squeezebox, Params &p): + AudioDB(p), + player(squeezebox) +{ + Utils::logger("squeezebox") << Priority::DEBUG << "SqueezeboxDB: new Database at " << param["host"] << log4cpp::eol; +} + +SqueezeboxDB::~SqueezeboxDB() +{ + Utils::logger("squeezebox") << Priority::DEBUG << "SqueezeboxDB::~SqueezeboxDB(): Ok" << log4cpp::eol; +} + +void SqueezeboxDB::getAlbums(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + string cmd = "albums " + to_string(from) + " " + to_string(nb) + " tags:lyja"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getAlbums_cb), data); +} +void SqueezeboxDB::getAlbums_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "album") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "year" && tk[1] != "0") item.Add("year", url_decode2(tk[1])); + if (tk[0] == "artist") item.Add("artist", url_decode2(tk[1])); + if (tk[0] == "artwork_track_id") + { + item.Add("cover_id", url_decode2(tk[1])); + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/music/" << item["cover_id"] << "/cover.jpg"; + item.Add("cover_url", aurl.str()); + } + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getAlbumsTitles(AudioRequest_cb callback, int from, int nb, string album_id, AudioPlayerData user_data) +{ + string cmd = "titles " + to_string(from) + " " + to_string(nb); + cmd += " album_id:" + album_id + " sort:tracknum tags:galdyorJilkmqtTvf"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getAlbumsTitles_cb), data); +} +void SqueezeboxDB::getAlbumsTitles_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "title") item.Add("title", url_decode2(tk[1])); + if (tk[0] == "year" && tk[1] != "0") item.Add("year", url_decode2(tk[1])); + if (tk[0] == "genre") item.Add("genre", url_decode2(tk[1])); + if (tk[0] == "album") item.Add("album", url_decode2(tk[1])); + if (tk[0] == "artist") item.Add("artist", url_decode2(tk[1])); + if (tk[0] == "artwork_track_id") + { + item.Add("cover_id", url_decode2(tk[1])); + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/music/" << item["cover_id"] << "/cover.jpg"; + item.Add("cover_url", aurl.str()); + } + if (tk[0] == "duration") item.Add("duration", url_decode2(tk[1])); + if (tk[0] == "type") item.Add("type", url_decode2(tk[1])); + if (tk[0] == "bitrate") item.Add("bitrate", url_decode2(tk[1])); + if (tk[0] == "comment") item.Add("comment", url_decode2(tk[1])); + if (tk[0] == "samplerate") item.Add("samplerate", url_decode2(tk[1])); + if (tk[0] == "tagversion") item.Add("tagversion", url_decode2(tk[1])); + if (tk[0] == "filesize") item.Add("filesize", url_decode2(tk[1])); + if (tk[0] == "bpm") item.Add("bpm", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getArtists(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + string cmd = "artists " + to_string(from) + " " + to_string(nb); + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getArtists_cb), data); +} +void SqueezeboxDB::getArtists_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "artist") item.Add("name", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getArtistsAlbums(AudioRequest_cb callback, int from, int nb, string artist_id, AudioPlayerData user_data) +{ + string cmd = "albums " + to_string(from) + " " + to_string(nb); + cmd += " artist_id:" + artist_id + " tags:lyja"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getArtistsAlbums_cb), data); +} +void SqueezeboxDB::getArtistsAlbums_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "album") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "year" && tk[1] != "0") item.Add("year", url_decode2(tk[1])); + if (tk[0] == "artist") item.Add("artist", url_decode2(tk[1])); + if (tk[0] == "artwork_track_id") + { + item.Add("cover_id", url_decode2(tk[1])); + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/music/" << item["cover_id"] << "/cover.jpg"; + item.Add("cover_url", aurl.str()); + } + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getGenres(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + string cmd = "genres " + to_string(from) + " " + to_string(nb); + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getGenres_cb), data); +} +void SqueezeboxDB::getGenres_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "genre") item.Add("name", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getGenresArtists(AudioRequest_cb callback, int from, int nb, string genre_id, AudioPlayerData user_data) +{ + string cmd = "artists " + to_string(from) + " " + to_string(nb) + " genre_id:" + genre_id; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getGenresArtists_cb), data); +} +void SqueezeboxDB::getGenresArtists_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "artist") item.Add("name", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getYears(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + string cmd = "years " + to_string(from) + " " + to_string(nb); + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getYears_cb), data); +} +void SqueezeboxDB::getYears_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "year" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getYearsAlbums(AudioRequest_cb callback, int from, int nb, string year, AudioPlayerData user_data) +{ + string cmd = "albums " + to_string(from) + " " + to_string(nb); + cmd += " year:" + year + " tags:lyja"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getYearsAlbums_cb), data); +} +void SqueezeboxDB::getYearsAlbums_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "album") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "year" && tk[1] != "0") item.Add("year", url_decode2(tk[1])); + if (tk[0] == "artist") item.Add("artist", url_decode2(tk[1])); + if (tk[0] == "artwork_track_id") + { + item.Add("cover_id", url_decode2(tk[1])); + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/music/" << item["cover_id"] << "/cover.jpg"; + item.Add("cover_url", aurl.str()); + } + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getPlaylists(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + string cmd = "playlists " + to_string(from) + " " + to_string(nb); + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getPlaylists_cb), data); +} +void SqueezeboxDB::getPlaylists_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "playlist") item.Add("name", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getPlaylistsTracks(AudioRequest_cb callback, int from, int nb, string playlist_id, AudioPlayerData user_data) +{ + /* We need to add the current player for gettting playlist tracks + This is a bug in the squeezebox server + http://bugs.slimdevices.com/show_bug.cgi?id=16454 + */ + string cmd = player->id; + cmd += " playlists tracks " + to_string(from) + " " + to_string(nb); + cmd += " playlist_id:" + playlist_id + " tags:galdyorJxuilkmqtTvf"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getPlaylistsTracks_cb), data); +} +void SqueezeboxDB::getPlaylistsTracks_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "playlist index" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "id") item.Add("id", url_decode2(tk[1])); + if (tk[0] == "title") item.Add("title", url_decode2(tk[1])); + if (tk[0] == "year" && tk[1] != "0") item.Add("year", url_decode2(tk[1])); + if (tk[0] == "genre") item.Add("genre", url_decode2(tk[1])); + if (tk[0] == "album") item.Add("album", url_decode2(tk[1])); + if (tk[0] == "artist") item.Add("artist", url_decode2(tk[1])); + if (tk[0] == "artwork_track_id") + { + item.Add("cover_id", url_decode2(tk[1])); + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/music/" << item["cover_id"] << "/cover.jpg"; + item.Add("cover_url", aurl.str()); + } + if (tk[0] == "duration") item.Add("duration", url_decode2(tk[1])); + if (tk[0] == "type") item.Add("type", url_decode2(tk[1])); + if (tk[0] == "bitrate") item.Add("bitrate", url_decode2(tk[1])); + if (tk[0] == "remote") item.Add("remote", url_decode2(tk[1])); + if (tk[0] == "url") item.Add("url", url_decode2(tk[1])); + if (tk[0] == "comment") item.Add("comment", url_decode2(tk[1])); + if (tk[0] == "samplerate") item.Add("samplerate", url_decode2(tk[1])); + if (tk[0] == "tagversion") item.Add("tagversion", url_decode2(tk[1])); + if (tk[0] == "filesize") item.Add("filesize", url_decode2(tk[1])); + if (tk[0] == "bpm") item.Add("bpm", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getRadios(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + string cmd = "radios"; + cmd += " " + to_string(from) + " " + to_string(nb); + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + data.ivalue = from; + data.dvalue = nb; + data.svalue = "radios"; + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getRadios_cb), data); +} + +void SqueezeboxDB::getRadios_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + for (int i = 3;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (item.Exists(tk[0])) + { + if (item.Exists("icon")) + { + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/" << item["icon"]; + item.Add("icon", aurl.str()); + } + + item.Add("id", item["cmd"]); + item.Delete("cmd"); + + result.push_back(item); + item.clear(); + } + + item.Add(tk[0], tk[1]); + } + + if (item.size() > 0) + { + if (item.Exists("icon")) + { + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/" << item["icon"]; + item.Add("icon", aurl.str()); + } + item.Add("id", item["cmd"]); + item.Delete("cmd"); + + result.push_back(item); + } + + if (data.svalue == "radios") + data.svalue = "music_services"; + else if (data.svalue == "music_services") + data.svalue = "apps"; + else if (data.svalue == "apps") + data.svalue.clear(); + + if (data.svalue.empty()) + { + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); + } + else + { + string cmd = data.svalue; + cmd += " " + to_string(data.ivalue) + " " + to_string(data.dvalue); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getRadios_cb), data); + } +} + +void SqueezeboxDB::getRadiosItems(AudioRequest_cb callback, int from, int nb, string radio, string item_id, string search, AudioPlayerData user_data) +{ + string cmd = radio + " items " + to_string(from) + " " + to_string(nb); + if (item_id != "") cmd += " item_id:" + item_id; + if (search != "") cmd += " search:" + search; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getRadiosItems_cb), data); +} +void SqueezeboxDB::getRadiosItems_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector &result = data.get_chain_data().vparams; + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params item; + int cpt = 0; + for (int i = 0;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "name") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "title") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "isaudio") item.Add("isaudio", url_decode2(tk[1])); + if (tk[0] == "hasitems") item.Add("hasitems", url_decode2(tk[1])); + if (tk[0] == "type") item.Add("type", url_decode2(tk[1])); + if (tk[0] == "icon") //Menu icons + { + stringstream aurl; + aurl << "http://" << param["host"] << ":9000" << url_decode2(tk[1]); + + item.Add("coverart", "1"); + item.Add("coverart_url", aurl.str()); + } + if (tk[0] == "image") //Radios coverart + { + item.Add("coverart", "1"); + item.Add("coverart_url", url_decode2(tk[1])); + } + //TODO: SqueezeCenter is able to get some more infos from streams + //like nb of listeners, current playing track, ... + //We could add a way to also display these infos + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getRandoms(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data) +{ + vector &result = user_data.vparams; + Params p; + + p.Add("id", "tracks"); + p.Add("name", "Random Tracks"); + result.push_back(p); + p.clear(); + + p.Add("id", "albums"); + p.Add("name", "Random Albums"); + result.push_back(p); + p.clear(); + + p.Add("id", "contributors"); + p.Add("name", "Random Artists"); + result.push_back(p); + p.clear(); + + p.Add("id", "years"); + p.Add("name", "Random Years"); + result.push_back(p); + p.clear(); + + p.Add("count", to_string(result.size())); + result.push_back(p); + p.clear(); + + AudioRequest_signal sig; + sig.connect(callback); + sig.emit(user_data); +} + +void SqueezeboxDB::setRandomsType(string type) +{ + string cmd, res; + cmd = param["id"] + " randomplay " + to_string(type); + + player->sendRequest(cmd); +} + +void SqueezeboxDB::getStats(AudioRequest_cb callback, AudioPlayerData user_data) +{ + //Get total genres + string cmd = "info total genres ?"; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getStats_genre_cb), data); +} +void SqueezeboxDB::getStats_genre_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + if (tokens.size() == 4) + data.get_chain_data().params.Add("genres", tokens[3]); + + //Get total artists + string cmd = "info total artists ?"; + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getStats_artist_cb), data); +} +void SqueezeboxDB::getStats_artist_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + if (tokens.size() == 4) + data.get_chain_data().params.Add("artists", tokens[3]); + + //Get total album + string cmd = "info total albums ?"; + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getStats_album_cb), data); +} +void SqueezeboxDB::getStats_album_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + if (tokens.size() == 4) + data.get_chain_data().params.Add("albums", tokens[3]); + + //Get total tracks + string cmd = "info total songs ?"; + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getStats_song_cb), data); +} +void SqueezeboxDB::getStats_song_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + if (tokens.size() == 4) + data.get_chain_data().params.Add("tracks", tokens[3]); + + //Get total playlists + string cmd = "playlists 0 0"; + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getStats_playlist_cb), data); +} +void SqueezeboxDB::getStats_playlist_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + if (tokens.size() == 4) + { + vector tk; + split(tokens[3], tk, ":"); + if (tk.size() == 2) + data.get_chain_data().params.Add("playlists", tk[1]); + } + + //Get total years + string cmd = "years 0 0"; + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getStats_year_cb), data); +} +void SqueezeboxDB::getStats_year_cb(bool status, string request, string res, AudioPlayerData data) +{ + vector tokens; + split(res, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + if (tokens.size() == 4) + { + vector tk; + split(tokens[3], tk, ":"); + if (tk.size() == 2) + data.get_chain_data().params.Add("years", tk[1]); + } + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getSearch(AudioRequest_cb callback, int from, int nb, string search, AudioPlayerData user_data) +{ + string cmd = "search " + to_string(from) + " " + to_string(nb) + " term:" + url_encode(search); + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getSearch_cb), data); +} +void SqueezeboxDB::getSearch_cb(bool status, string request, string res, AudioPlayerData data) +{ + if (res != "") + { + data.svalue = res; + data.ivalue = 0; + data.dvalue = 0.0; + } + + vector &result = data.get_chain_data().vparams; + vector tokens; + split(data.svalue, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params &item = data.params; + int cpt = (int)data.dvalue; + for (int i = data.ivalue;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "contributor_id" || tk[0] == "album_id" || tk[0] == "track_id" || tk[0] == "genre_id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + if (tk[0] == "count") + item.Add("count", url_decode2(tk[1])); + else + item.Add("id", url_decode2(tk[1])); + + if (tk[0] == "contributor_id") item.Add("type", "artist"); + if (tk[0] == "album_id") item.Add("type", "album"); + if (tk[0] == "track_id") item.Add("type", "track"); + if (tk[0] == "genre_id") item.Add("type", "genre"); + } + + if (tk[0] == "contributor") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "album") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "track") item.Add("name", url_decode2(tk[1])); + if (tk[0] == "genre") item.Add("name", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getMusicFolder(AudioRequest_cb callback, int from, int nb, string folder_id, AudioPlayerData user_data) +{ + string cmd = "musicfolder " + to_string(from) + " " + to_string(nb); + if (folder_id != "") cmd += " folder_id:" + folder_id; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getMusicFolder_cb), data); +} +void SqueezeboxDB::getMusicFolder_cb(bool status, string request, string res, AudioPlayerData data) +{ + if (res != "") + { + data.svalue = res; + data.ivalue = 0; + data.dvalue = 0.0; + } + + vector &result = data.get_chain_data().vparams; + vector tokens; + split(data.svalue, tokens); + + for_each(tokens.begin(), tokens.end(), UrlDecode()); + + Params &item = data.params; + int cpt = (int)data.dvalue; + for (int i = data.ivalue;i < tokens.size();i++) + { + string tmp = tokens[i]; + vector tk; + + split(tmp, tk, ":", 2); + + if (tk.size() != 2) continue; + + if (tk[0] == "id" || tk[0] == "count") + { + if (cpt > 0) result.push_back(item); + item.clear(); + cpt++; + + item.Add(tk[0], url_decode2(tk[1])); + } + + if (tk[0] == "type") item.Add("type", url_decode2(tk[1])); + if (tk[0] == "filename") item.Add("name", url_decode2(tk[1])); + } + + result.push_back(item); + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} + +void SqueezeboxDB::getTrackInfos(AudioRequest_cb callback, string track_id, AudioPlayerData user_data) +{ + string cmd = "songinfo 0 99999 tags:galdyorJilkmqtTvf track_id:" + track_id; + + AudioPlayerData data; + data.callback = callback; + data.set_chain_data(new AudioPlayerData(user_data)); + + player->sendRequest(cmd, sigc::mem_fun(*this, &SqueezeboxDB::getTrackInfos_cb), data); +} + +void SqueezeboxDB::getTrackInfos_cb(bool status, string request, string res, AudioPlayerData data) +{ + Params p; + p.Parse(res); + + Params &item = data.get_chain_data().params; + + for (int i = 4;i < p.size();i++) + { + string value = p[to_string(i)]; + vector tk; + Utils::split(Utils::url_decode2(value), tk, ":", 2); + + if (tk.size() != 2) + if (tk[0] == "id") item.Add("track_id", url_decode2(tk[1])); + if (tk[0] == "title") item.Add("title", url_decode2(tk[1])); + if (tk[0] == "year" && tk[1] != "0") item.Add("year", url_decode2(tk[1])); + if (tk[0] == "genre") item.Add("genre", url_decode2(tk[1])); + if (tk[0] == "album") item.Add("album", url_decode2(tk[1])); + if (tk[0] == "artist") item.Add("artist", url_decode2(tk[1])); + if (tk[0] == "artwork_track_id") + { + item.Add("cover_id", url_decode2(tk[1])); + stringstream aurl; + aurl << "http://" << player->host << ":" << player->port_web << "/music/" << item["cover_id"] << "/cover.jpg"; + item.Add("cover_url", aurl.str()); + } + if (tk[0] == "duration") item.Add("duration", url_decode2(tk[1])); + if (tk[0] == "type") item.Add("audiotype", url_decode2(tk[1])); + if (tk[0] == "bitrate") item.Add("bitrate", url_decode2(tk[1])); + if (tk[0] == "comment") item.Add("comment", url_decode2(tk[1])); + if (tk[0] == "samplerate") item.Add("samplerate", url_decode2(tk[1])); + if (tk[0] == "tagversion") item.Add("tagversion", url_decode2(tk[1])); + if (tk[0] == "filesize") item.Add("filesize", url_decode2(tk[1])); + if (tk[0] == "bpm") item.Add("bpm", url_decode2(tk[1])); + } + + AudioRequest_signal sig; + sig.connect(data.callback); + sig.emit(data.get_chain_data()); +} diff --git a/src/bin/calaos_server/Audio/SqueezeboxDB.h b/src/bin/calaos_server/Audio/SqueezeboxDB.h new file mode 100644 index 00000000..6407abf2 --- /dev/null +++ b/src/bin/calaos_server/Audio/SqueezeboxDB.h @@ -0,0 +1,117 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_SQDB_H +#define S_SQDB_H + +#include +#include +#include + +namespace Calaos +{ + +class Squeezebox; + +class SqueezeboxDB: public AudioDB +{ + private: + Squeezebox *player; + + void getAlbums_cb(bool status, string request, string result, AudioPlayerData data); + void getAlbumsTitles_cb(bool status, string request, string result, AudioPlayerData data); + + void getArtists_cb(bool status, string request, string result, AudioPlayerData data); + void getArtistsAlbums_cb(bool status, string request, string result, AudioPlayerData data); + + void getGenres_cb(bool status, string request, string result, AudioPlayerData data); + void getGenresArtists_cb(bool status, string request, string result, AudioPlayerData data); + + void getYears_cb(bool status, string request, string result, AudioPlayerData data); + void getYearsAlbums_cb(bool status, string request, string result, AudioPlayerData data); + + void getPlaylists_cb(bool status, string request, string result, AudioPlayerData data); + void getPlaylistsTracks_cb(bool status, string request, string result, AudioPlayerData data); + + void getRadios_cb(bool status, string request, string result, AudioPlayerData data); + void getRadiosItems_cb(bool status, string request, string result, AudioPlayerData data); + + void getRandoms_cb(bool status, string request, string result, AudioPlayerData data); + void getRandomType_cb(bool status, string request, string result, AudioPlayerData data); + + void getSearch_cb(bool status, string request, string result, AudioPlayerData data); + + void getMusicFolder_cb(bool status, string request, string result, AudioPlayerData data); + + void getStats_genre_cb(bool status, string request, string result, AudioPlayerData data); + void getStats_artist_cb(bool status, string request, string result, AudioPlayerData data); + void getStats_album_cb(bool status, string request, string result, AudioPlayerData data); + void getStats_song_cb(bool status, string request, string result, AudioPlayerData data); + void getStats_playlist_cb(bool status, string request, string result, AudioPlayerData data); + void getStats_year_cb(bool status, string request, string result, AudioPlayerData data); + + void getTrackInfos_cb(bool status, string request, string result, AudioPlayerData data); + + public: + SqueezeboxDB(Squeezebox *squeezebox, Params &p); + ~SqueezeboxDB(); + + virtual void getStats(AudioRequest_cb callback, AudioPlayerData user_data = AudioPlayerData()); + + //Album + virtual void getAlbums(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void getAlbumsTitles(AudioRequest_cb callback, int from, int nb, string album_id, AudioPlayerData user_data = AudioPlayerData()); + + //Artist + virtual void getArtists(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void getArtistsAlbums(AudioRequest_cb callback, int from, int nb, string artist_id, AudioPlayerData user_data = AudioPlayerData()); + + //Genre + virtual void getGenres(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void getGenresArtists(AudioRequest_cb callback, int from, int nb, string genre_id, AudioPlayerData user_data = AudioPlayerData()); + + //Year + virtual void getYears(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void getYearsAlbums(AudioRequest_cb callback, int from, int nb, string year, AudioPlayerData user_data = AudioPlayerData()); + + //Playlists + virtual void getPlaylists(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void getPlaylistsTracks(AudioRequest_cb callback, int from, int nb, string playlist_id, AudioPlayerData user_data = AudioPlayerData()); + + //Radios + virtual void getRadios(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void getRadiosItems(AudioRequest_cb callback, int from, int nb, string radio, string item_id = "", string search = "", AudioPlayerData user_data = AudioPlayerData()); + + //Random + virtual void getRandoms(AudioRequest_cb callback, int from, int nb, AudioPlayerData user_data = AudioPlayerData()); + virtual void setRandomsType(string type); + //TODO:Random genre selection with " randomplaygenrelist" + + virtual void getSearch(AudioRequest_cb callback, int from, int nb, string search, AudioPlayerData user_data = AudioPlayerData()); + + virtual void getMusicFolder(AudioRequest_cb callback, int from, int nb, string folder_id = "", AudioPlayerData user_data = AudioPlayerData()); + virtual void getTrackInfos(AudioRequest_cb callback, string track_id, AudioPlayerData user_data = AudioPlayerData()); + + //TODO:Favorites +}; + +} + +#endif diff --git a/src/bin/calaos_server/Calaos.cpp b/src/bin/calaos_server/Calaos.cpp new file mode 100644 index 00000000..ddd6558c --- /dev/null +++ b/src/bin/calaos_server/Calaos.cpp @@ -0,0 +1,105 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include + +using namespace Calaos; + +Utils::type_signal_wago Utils::signal_wago; + +int CURL_write_callback_server(void *buffer, size_t size, size_t nmemb, void *stream) +{ + //don't care about the data + //just return the simulated number of data read + return size * nmemb; +} + +void Calaos::CallUrl(string url, string post_data) +{ + FileDownloader *downloader = new FileDownloader(url, post_data, "text/plain", true); + downloader->Start(); +} + +std::string Calaos::get_new_id(std::string prefix) +{ + int cpt = 0; + bool found = false; + while (!found) + { + Input *in = ListeRoom::Instance().get_input(prefix + Utils::to_string(cpt)); + Output *out = ListeRoom::Instance().get_output(prefix + Utils::to_string(cpt)); + + if (!in && !out) + found = true; + else + cpt++; + } + + std::string ret = prefix + Utils::to_string(cpt); + return ret; +} + +std::string Calaos::get_new_scenario_id() +{ + int cpt = 0; + bool found = true; + list autosc = ListeRoom::Instance().getAutoScenarios(); + + while (found && autosc.size() > 0) + { + list::iterator it = autosc.begin(); + + bool found2 = false; + for (;it != autosc.end() && !found2;it++) + { + Scenario *sc = *it; + if (sc->get_param("auto_scenario") == "scenario_" + Utils::to_string(cpt)) + found2 = true; + } + + if (found2) + cpt++; + else + found = false; + } + + string ret = "scenario_" + Utils::to_string(cpt); + return ret; +} + +StartReadRules::StartReadRules(): + count_io(0) +{ +} + +void StartReadRules::addIO() +{ + count_io++; +} + +void StartReadRules::ioRead() +{ + count_io--; + if (count_io == 0) + ListeRule::Instance().ExecuteStartRules(); +} diff --git a/src/bin/calaos_server/Calaos.h b/src/bin/calaos_server/Calaos.h new file mode 100644 index 00000000..51b72a7d --- /dev/null +++ b/src/bin/calaos_server/Calaos.h @@ -0,0 +1,67 @@ +/****************************************************************************** + ** Copyright (c) 2007-2008, Calaos. All Rights Reserved. + ** + ** This file is part of Calaos Home. + ** + ** Calaos Home is free software; you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation; either version 3 of the License, or + ** (at your option) any later version. + ** + ** Calaos Home is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Foobar; if not, write to the Free Software + ** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + ** + ******************************************************************************/ +#ifndef S_UTILS_CALAOS_H +#define S_UTILS_CALAOS_H + +#include +#include +#include + +#include + +using namespace Utils; + +namespace Calaos +{ + void CallUrl(string url, string post_data = ""); +#ifndef UTILS + std::string get_new_id(std::string prefix); + std::string get_new_scenario_id(); +#endif + + //This class only counts all IO at start and wait for them + //to read their values. After all values are read, it calls ExecuteStartRules + class StartReadRules + { + private: + int count_io; + + StartReadRules(); + + public: + static StartReadRules &Instance() + { + static StartReadRules st; + return st; + } + + void addIO(); + void ioRead(); + }; +} + +namespace Utils +{ + typedef sigc::signal type_signal_wago; + extern type_signal_wago signal_wago; +} + +#endif diff --git a/src/bin/calaos_server/Config.cpp b/src/bin/calaos_server/Config.cpp new file mode 100644 index 00000000..f3ecc3f4 --- /dev/null +++ b/src/bin/calaos_server/Config.cpp @@ -0,0 +1,374 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +typedef struct _ConfigStateValue +{ + public: + char *id; + char *value; + + _ConfigStateValue(): + id(NULL), + value(NULL) {} + ~_ConfigStateValue() + { + free(id); + free(value); + } + +} ConfigStateValue; + +typedef struct +{ + unsigned int version; //versionned cache + Eina_Hash *states; + +} ConfigStateCache; + +static Eet_Data_Descriptor *edd_state = NULL; +static Eet_Data_Descriptor *edd_cache = NULL; + +static void _eina_hash_free_cb(void *data) +{ + delete (ConfigStateValue *)data; +} + +Config::Config() +{ + //Init eet for States file + eet_init(); + initEetDescriptors(); + + //read config hash table + cache_states = eina_hash_string_superfast_new(_eina_hash_free_cb); + loadStateCache(); +} + +Config::~Config() +{ + eina_hash_free(cache_states); + releaseEetDescriptors(); + eet_shutdown(); +} + +void Config::initEetDescriptors() +{ + Eet_Data_Descriptor_Class edc; + + EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&edc, ConfigStateValue); + edd_state = eet_data_descriptor_stream_new(&edc); + + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_state, ConfigStateValue, "id", id, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_state, ConfigStateValue, "value", value, EET_T_STRING); + + EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&edc, ConfigStateCache); + edd_cache = eet_data_descriptor_stream_new(&edc); + + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_cache, ConfigStateCache, "version", version, EET_T_UINT); + EET_DATA_DESCRIPTOR_ADD_HASH(edd_cache, ConfigStateCache, "states", states, edd_state); +} + +void Config::releaseEetDescriptors() +{ + eet_data_descriptor_free(edd_cache); + eet_data_descriptor_free(edd_state); +} + +void Config::LoadConfigIO() +{ + std::string file = ETC_DIR; + file = file + "io.xml"; + + TiXmlDocument document(file); + + if (!document.LoadFile()) + { + Utils::logger("root") << Priority::ERROR << "Config::LoadConfigIO() There was a parse error"<< log4cpp::eol; + Utils::logger("root") << Priority::ERROR << document.ErrorDesc() << log4cpp::eol; + Utils::logger("root") << Priority::ERROR << "In file " << file << " At line " << document.ErrorRow() << log4cpp::eol; + + Utils::logger("root") << Priority::INFO << "Config::LoadConfigIO() Trying to load default config" << log4cpp::eol; + std::string file_default = ETC_DIR, file_error = ETC_DIR; + file_default = file_default + "io.default"; + file_error = file_error + "io.xml.parse_error"; + + Utils::file_copy(file, file_error); + Utils::file_copy(file_default, file); + + exit(-1); + } + + TiXmlHandle docHandle(&document); + + TiXmlElement *room_node = docHandle.FirstChildElement("calaos:ioconfig").FirstChildElement("calaos:home").FirstChildElement().ToElement(); + for(; room_node; room_node = room_node->NextSiblingElement()) + { + if (room_node->ValueStr() == "calaos:room" && + room_node->Attribute("name") && + room_node->Attribute("type")) + { + string name, type; + int hits = 0; + + name = room_node->Attribute("name"); + type = room_node->Attribute("type"); + if (room_node->Attribute("hits")) + room_node->Attribute("hits", &hits); + + Room *room = new Room(name, type, hits); + ListeRoom::Instance().Add(room); + + room->LoadFromXml(room_node); + } + } + + Utils::logger("root") << Priority::INFO << "Config::LoadConfigIO() Done. " << log4cpp::eol; +} + +void Config::SaveConfigIO() +{ + string file = ETC_DIR; + file = file + "io.xml"; + string tmp = file + "_tmp"; + + Utils::logger("root") << Priority::INFO << "Config::SaveConfigIO() Saving " << file << "..." << log4cpp::eol; + + TiXmlDocument document; + TiXmlDeclaration *decl = new TiXmlDeclaration("1.0", "UTF-8", ""); + TiXmlElement *ionode = new TiXmlElement("calaos:ioconfig"); + ionode->SetAttribute("xmlns:calaos", "http://www.calaos.fr"); + document.LinkEndChild(decl); + document.LinkEndChild(ionode); + TiXmlElement *node = new TiXmlElement("calaos:home"); + ionode->LinkEndChild(node); + + for (int i = 0;i < ListeRoom::Instance().size();i++) + { + Room *room = ListeRoom::Instance().get_room(i); + room->SaveToXml(node); + } + + if (document.SaveFile(tmp)) + { + ecore_file_unlink(file.c_str()); + ecore_file_mv(tmp.c_str(), file.c_str()); + } + + Utils::logger("root") << Priority::INFO << "Config::SaveConfigIO() Done." << log4cpp::eol; +} + +void Config::LoadConfigRule() +{ + std::string file = ETC_DIR; + file = file + "rules.xml"; + TiXmlDocument document(file); + + if (!document.LoadFile()) + { + Utils::logger("root") << Priority::ERROR << "Config::LoadConfigRule() There was a parse error in " << file << log4cpp::eol; + Utils::logger("root") << Priority::ERROR << document.ErrorDesc() << log4cpp::eol; + Utils::logger("root") << Priority::ERROR << "In file " << file << " At line " << document.ErrorRow() << log4cpp::eol; + + Utils::logger("root") << Priority::INFO << "Config::LoadConfigRule() Trying to load default config" << log4cpp::eol; + std::string file_default = ETC_DIR, file_error = ETC_DIR; + file_default = file_default + "rules.default"; + file_error = file_error + "rules.xml.parse_error"; + + Utils::file_copy(file, file_error); + Utils::file_copy(file_default, file); + + exit(-1); + } + + TiXmlHandle docHandle(&document); + + TiXmlElement *rule_node = docHandle.FirstChildElement("calaos:rules").FirstChildElement().ToElement(); + + if (!rule_node) + { + Utils::logger("root") << Priority::ERROR << "Config::LoadConfigRule() Error, node not found in file " << file << log4cpp::eol; + } + + for(; rule_node; rule_node = rule_node->NextSiblingElement()) + { + if (rule_node->ValueStr() == "calaos:rule" && + rule_node->Attribute("name") && + rule_node->Attribute("type")) + { + string name, type; + + name = rule_node->Attribute("name"); + type = rule_node->Attribute("type"); + + Rule *rule = new Rule(type, name); + rule->LoadFromXml(rule_node); + + ListeRule::Instance().Add(rule); + } + } + + Utils::logger("root") << Priority::INFO << "Config::LoadConfigRule() Done. " << ListeRule::Instance().size() << " rules loaded." << log4cpp::eol; +} + +void Config::SaveConfigRule() +{ + string file = ETC_DIR; + file = file + "rules.xml"; + string tmp = file + "_tmp"; + + Utils::logger("root") << Priority::INFO << "Config::SaveConfigRule() Saving " << file << "..." << log4cpp::eol; + + TiXmlDocument document; + TiXmlDeclaration *decl = new TiXmlDeclaration("1.0", "UTF-8", ""); + TiXmlElement *rulesnode = new TiXmlElement("calaos:rules"); + rulesnode->SetAttribute("xmlns:calaos", "http://www.calaos.fr"); + document.LinkEndChild(decl); + document.LinkEndChild(rulesnode); + + for (int i = 0;i < ListeRule::Instance().size();i++) + { + Rule *rule = ListeRule::Instance().get_rule(i); + rule->SaveToXml(rulesnode); + } + + if (document.SaveFile(tmp)) + { + ecore_file_unlink(file.c_str()); + ecore_file_mv(tmp.c_str(), file.c_str()); + } + + Utils::logger("root") << Priority::INFO << "Config::SaveConfigRule() Done." << log4cpp::eol; +} + +void Config::loadStateCache() +{ + ConfigStateCache *cache; + string file = ETC_DIR; + file = file + "iostates.cache"; + + Eet_File *ef = eet_open(file.c_str(), EET_FILE_MODE_READ); + if (!ef) + { + Utils::logger("root") << Priority::WARN << "Config::loadStateCache() could not open iostates.cache for read !" << log4cpp::eol; + return; + } + + cache = (ConfigStateCache *)eet_data_read(ef, edd_cache, "calaos/states/cache"); + if (!cache) + { + eet_close(ef); + Utils::logger("root") << Priority::WARN << "Config::loadStateCache() could not read iostates.cache, corrupted file?" << log4cpp::eol; + return; + } + + if (cache->version < CONFIG_STATES_CACHE_VERSION) + { + Utils::logger("root") << Priority::WARN << "Config::loadStateCache() file version too old, upgrading to new format" << log4cpp::eol; + cache->version = CONFIG_STATES_CACHE_VERSION; + } + + //read all states and put it in cache_states + Eina_Iterator *it = eina_hash_iterator_tuple_new(cache->states); + void *data; + while (eina_iterator_next(it, &data)) + { + Eina_Hash_Tuple *t = (Eina_Hash_Tuple *)data; + ConfigStateValue *state = (ConfigStateValue *)t->data; + string skey = state->id; + string svalue = state->value; + SaveValueIO(skey, svalue, false); + } + eina_iterator_free(it); + + eet_close(ef); + + Utils::logger("root") << Priority::INFO << "Config::loadStateCache(): States cache read successfully." << log4cpp::eol; +} + +void Config::saveStateCache() +{ + Eet_File *ef; + string file = ETC_DIR; + file = file + "iostates.cache"; + string tmp = file + "_tmp"; + ConfigStateCache *cache; + + cache = new ConfigStateCache; + cache->version = CONFIG_STATES_CACHE_VERSION; + cache->states = cache_states; + + ef = eet_open(tmp.c_str(), EET_FILE_MODE_WRITE); + if (!ef) + { + Utils::logger("root") << Priority::WARN << "Config::saveStateCache() could not open iostates.cache for write !" << log4cpp::eol; + return; + } + + Eina_Bool ret = eet_data_write(ef, edd_cache, "calaos/states/cache", cache, EINA_TRUE); + + eet_close(ef); + delete cache; + + if (ret) + { + ecore_file_unlink(file.c_str()); + ecore_file_mv(tmp.c_str(), file.c_str()); + } + + Utils::logger("root") << Priority::DEBUG << "Config::saveStateCache(): States cache written successfully." << log4cpp::eol; +} + +void Config::SaveValueIO(string id, string value, bool save) +{ + if (eina_hash_find(cache_states, id.c_str())) + { + ConfigStateValue *v = new ConfigStateValue; + v->id = strdup(id.c_str()); + v->value = strdup(value.c_str()); + void *old_data = eina_hash_set(cache_states, id.c_str(), v); + delete (ConfigStateValue *)old_data; + } + else + { + ConfigStateValue *v = new ConfigStateValue; + v->id = strdup(id.c_str()); + v->value = strdup(value.c_str()); + eina_hash_add(cache_states, id.c_str(), v); + } + + if (save) + saveStateCache(); +} + +bool Config::ReadValueIO(string id, string &value) +{ + ConfigStateValue *v = (ConfigStateValue *)eina_hash_find(cache_states, id.c_str()); + if (!v) + return false; + + value = v->value; + + return true; +} diff --git a/src/bin/calaos_server/Config.h b/src/bin/calaos_server/Config.h new file mode 100644 index 00000000..50383506 --- /dev/null +++ b/src/bin/calaos_server/Config.h @@ -0,0 +1,79 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_CONFIG_H +#define S_CONFIG_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +#define CONFIG_STATES_CACHE_VERSION 1 + +class Config +{ + private: + Config(); + + void initEetDescriptors(); + void releaseEetDescriptors(); + void loadStateCache(); + void saveStateCache(); + + Eina_Hash *cache_states; + + public: + static Config &Instance() + { + static Config inst; + return inst; + } + ~Config(); + + void LoadConfigIO(); + void LoadConfigRule(); + + void SaveConfigIO(); + void SaveConfigRule(); + + void SaveValueIO(string id, string value, bool save = true); + bool ReadValueIO(string id, string &value); +}; + +} +#endif diff --git a/src/bin/calaos_server/Etage.cpp b/src/bin/calaos_server/Etage.cpp new file mode 100644 index 00000000..2acc52d7 --- /dev/null +++ b/src/bin/calaos_server/Etage.cpp @@ -0,0 +1,59 @@ +/** DEPRECATED ! **/ + +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +#include +//----------------------------------------------------------------------------- +using namespace std; +using namespace Soekris; +//----------------------------------------------------------------------------- +Etage::~Etage() +{ + for (int i = 0;i < pieces.size();i++) + delete pieces[i]; + + Soekris::log(DEBUG_INFO, "Etage::~Etage(): Ok"); +} +//----------------------------------------------------------------------------- +void Etage::Add(Piece *p) +{ + pieces.push_back(p); + + Soekris::log(DEBUG_INFO, "Etage::Add(): Ok"); +} +//----------------------------------------------------------------------------- +void Etage::Remove(int pos) +{ + vector::iterator iter = pieces.begin(); + for (int i = 0;i < pos;iter++, i++) ; + delete pieces[pos]; + pieces.erase(iter); + + Soekris::log(DEBUG_INFO, "Etage::Remove(): Ok"); +} +//----------------------------------------------------------------------------- +Piece *Etage::operator[] (int i) const +{ + return pieces[i]; +} +//----------------------------------------------------------------------------- diff --git a/src/bin/calaos_server/Etage.h b/src/bin/calaos_server/Etage.h new file mode 100644 index 00000000..85f6106a --- /dev/null +++ b/src/bin/calaos_server/Etage.h @@ -0,0 +1,65 @@ +/** DEPRECATED ! **/ + +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +//----------------------------------------------------------------------------- +#ifndef S_ETAGE_H +#define S_ETAGE_H +//----------------------------------------------------------------------------- +#include +#include +#include +//----------------------------------------------------------------------------- +using namespace std; +//----------------------------------------------------------------------------- +namespace Soekris +{ +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +class Etage +{ + protected: + Glib::ustring name; + Glib::ustring img; + + std::vector pieces; + + public: + Etage(Glib::ustring n, Glib::ustring i): name(n), img(i) + { Soekris::log(DEBUG_INFO, "Etage::Etage(%s, %s): Ok", name.c_str(), img.c_str()); } + ~Etage(); + + Glib::ustring &get_name() { return name; } + Glib::ustring &get_img() { return img; } + + void set_name(Glib::ustring &s) { name = s; } + void set_img(Glib::ustring &s) { img = s; } + + void Add(Piece *p); + void Remove(int i); + Piece *operator[] (int i) const; + + int get_size() { return pieces.size(); } +}; +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +} +#endif diff --git a/src/bin/calaos_server/IO/IOFactory.cpp b/src/bin/calaos_server/IO/IOFactory.cpp new file mode 100644 index 00000000..8cf9769e --- /dev/null +++ b/src/bin/calaos_server/IO/IOFactory.cpp @@ -0,0 +1,334 @@ +/****************************************************************************** +* Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Calaos; + +void IOFactory::readParams(TiXmlElement *node, Params &p) +{ + TiXmlAttribute *attr = node->ToElement()->FirstAttribute(); + + for (; attr; attr = attr->Next()) + { + p.Add(attr->Name(), attr->ValueStr()); + } +} + +Input *IOFactory::CreateInput(std::string type, Params ¶ms) +{ + Input *in = NULL; + + if (type == "InputTime") + { + in = new InputTime(params); + } + else if (type == "InputTimer") + { + in = new InputTimer(params); + } + else if (type == "WIDigitalBP" || type == "WIDigital") + { + in = new WIDigitalBP(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "WIDigitalTriple") + { + in = new WIDigitalTriple(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "WITemp") + { + in = new WITemp(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "WIAnalog") + { + in = new WIAnalog(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "OWTemp") + { + in = new OWTemp(params); + } + else if (type == "scenario") + { + in = new Scenario(params); + } + else if (type == "InPlageHoraire") + { + in = new InPlageHoraire(params); + } + else if (type == "internbool" || type == "internalbool" || + type == "InternalBoolOutput" || type == "InternalBoolInput" || + type == "InternalBool") + { + type = "InternalBool"; + params.Add("type", type); + + in = new Internal(params); + } + else if (type == "internint" || type == "internalint" || + type == "InternalIntOutput" || type == "InternalIntInput" || + type == "InternalInt") + { + type = "InternalInt"; + params.Add("type", type); + + in = new Internal(params); + } + else if (type == "internstring" || type == "internalstring" || + type == "InternalStringOutput" || type == "InternalStringInput" || + type == "InternalString") + { + type = "InternalString"; + params.Add("type", type); + + in = new Internal(params); + } + + if (in) + Utils::logger("root") << Priority::INFO << "IOFactory::CreateInput(" << type << "): Ok" << log4cpp::eol; + else + Utils::logger("root") << Priority::WARN << "IOFactory::CreateInput(" << type << "): Unknown Input type !" << log4cpp::eol; + + return in; +} + +Input *IOFactory::CreateInput(TiXmlElement *node) +{ + Params p; + readParams(node, p); + + Input *in = CreateInput(p["type"], p); + in->LoadFromXml(node); + + return in; +} + +Output *IOFactory::CreateOutput(std::string type, Params ¶ms) +{ + Output *out = NULL; + + if (type == "OutputFake") + { + out = new OutputFake(params); + } + else if (type == "WODigital") + { + out = new WODigital(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "WONeon") + { + Utils::logger("root") << Priority::ERROR << "IOFactory::CreateOutput(" << type << "): WONeon is deprecated !" << log4cpp::eol; + } + else if (type == "X10Output") + { + out = new X10Output(params); + } + else if (type == "WOVolet") + { + out = new WOVolet(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "WOVoletSmart") + { + out = new WOVoletSmart(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "WODali") + { + out = new WODali(params); + } + else if (type == "WODaliRVB") + { + out = new WODaliRVB(params); + } + else if (type == "WOAnalog") + { + out = new WOAnalog(params); + int port; + Utils::from_string(params["port"], port); + std::string host = params["host"]; + if (!params.Exists("port")) + port = 502; + + WagoMap::Instance(host, port); + } + else if (type == "AVReceiver") + { + out = new IOAVReceiver(params); + } + + if (out) + Utils::logger("root") << Priority::INFO << "IOFactory::CreateOutput(" << type << "): Ok" << log4cpp::eol; + else + Utils::logger("root") << Priority::WARN << "IOFactory::CreateOutput(" << type << "): Unknown Output type !" << log4cpp::eol; + + return out; +} + +Output *IOFactory::CreateOutput(TiXmlElement *node) +{ + Params p; + readParams(node, p); + + Output *out = CreateOutput(p["type"], p); + out->LoadFromXml(node); + + return out; +} + +AudioPlayer *IOFactory::CreateAudio (std::string type, Params ¶ms) +{ + AudioPlayer *player = NULL; + + if (type == "slim") + { + player = new Squeezebox(params); + } + + if (player) + Utils::logger("root") << Priority::INFO << "IOFactory::CreateAudio(" << type << "): Ok" << log4cpp::eol; + else + Utils::logger("root") << Priority::WARN << "IOFactory::CreateAudio(" << type << "): Unknown Input type !" << log4cpp::eol; + + return player; +} + +AudioPlayer *IOFactory::CreateAudio(TiXmlElement *node) +{ + Params p; + readParams(node, p); + + AudioPlayer *pl = CreateAudio(p["type"], p); + pl->LoadFromXml(node); + + return pl; +} + +IPCam *IOFactory::CreateIPCamera (std::string type, Params ¶ms) +{ + IPCam *cam = NULL; + + if (type == "axis") + { + cam = new Axis(params); + } + else if (type == "gadspot") + { + cam = new Gadspot(params); + } + else if (type == "planet") + { + cam = new Planet(params); + } + else if (type == "standard_mjpeg") + { + cam = new StandardMjpeg(params); + } + + if (cam) + Utils::logger("root") << Priority::INFO << "IOFactory::CreateIPCamera(" << type << "): Ok" << log4cpp::eol; + else + Utils::logger("root") << Priority::WARN << "IOFactory::CreateIPCamera(" << type << "): Unknown Input type !" << log4cpp::eol; + + return cam; +} + +IPCam *IOFactory::CreateIPCamera(TiXmlElement *node) +{ + Params p; + readParams(node, p); + + IPCam *cam = CreateIPCamera(p["type"], p); + cam->LoadFromXml(node); + + return cam; +} diff --git a/src/bin/calaos_server/IO/IOFactory.h b/src/bin/calaos_server/IO/IOFactory.h new file mode 100644 index 00000000..f8d5488c --- /dev/null +++ b/src/bin/calaos_server/IO/IOFactory.h @@ -0,0 +1,53 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_IOFactory_H +#define S_IOFactory_H + +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class IOFactory +{ + public: + static void readParams(TiXmlElement *node, Params &p); + + static Input *CreateInput (std::string type, Params ¶ms); + static Input *CreateInput (TiXmlElement *node); + + static Output *CreateOutput (std::string type, Params ¶ms); + static Output *CreateOutput (TiXmlElement *node); + + static AudioPlayer *CreateAudio (std::string type, Params ¶ms); + static AudioPlayer *CreateAudio (TiXmlElement *node); + + static IPCam *CreateIPCamera (std::string type, Params ¶ms); + static IPCam *CreateIPCamera (TiXmlElement *node); +}; + +} + +#endif diff --git a/src/bin/calaos_server/IO/InPlageHoraire.cpp b/src/bin/calaos_server/IO/InPlageHoraire.cpp new file mode 100644 index 00000000..10cf5f45 --- /dev/null +++ b/src/bin/calaos_server/IO/InPlageHoraire.cpp @@ -0,0 +1,345 @@ +/****************************************************************************** +** Copyright (c) 2006-2013, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +InPlageHoraire::InPlageHoraire(Params &p): + value(false), + Input(p) +{ + ListeRule::Instance().Add(this); //add this specific input to the EventLoop + Utils::logger("input") << Priority::DEBUG << "InPlageHoraire::InPlageHoraire(" << get_param("id") << "): Ok" << log4cpp::eol; + + set_param("visible", "false"); + + months.set(); //set all months by default +} + +InPlageHoraire::~InPlageHoraire() +{ + Utils::logger("input") << Priority::DEBUG << "InPlageHoraire::~InPlageHoraire(): Ok" << log4cpp::eol; +} + +void InPlageHoraire::clear() +{ + plg_lundi.clear(); + plg_mardi.clear(); + plg_mercredi.clear(); + plg_jeudi.clear(); + plg_vendredi.clear(); + plg_samedi.clear(); + plg_dimanche.clear(); +} + +void InPlageHoraire::hasChanged() +{ + bool val = false; + vector *plage; + + struct tm *ctime = NULL; + time_t t = time(NULL); + ctime = localtime(&t); + + switch (ctime->tm_wday) + { + case MONDAY: plage = &plg_lundi; break; + case TUESDAY: plage = &plg_mardi; break; + case WEDNESDAY: plage = &plg_mercredi; break; + case THURSDAY: plage = &plg_jeudi; break; + case FRIDAY: plage = &plg_vendredi; break; + case SATURDAY: plage = &plg_samedi; break; + case SUNDAY: plage = &plg_dimanche; break; + default: break; + } + + bool tmp = false; + for (int i = 0;i < plage->size();i++) + { + TimeRange &h = (*plage)[i]; + + long start_time = h.getStartTimeSec(ctime->tm_year + 1900, ctime->tm_mon + 1, ctime->tm_mday); + long end_time = h.getEndTimeSec(ctime->tm_year + 1900, ctime->tm_mon + 1, ctime->tm_mday); + long cur = ctime->tm_hour * 3600 + + ctime->tm_min * 60 + + ctime->tm_sec; + + if (cur >= start_time && cur <= end_time) + val = true; + } + + if (val != value) + { + value = val; + Utils::logger("input") << Priority::INFO << "InPlageHoraire(" << get_param("id") << "): Changed to " << (value?"true":"false") << log4cpp::eol; + + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + if (val) + sig += Utils::url_encode("state:true"); + else + sig += Utils::url_encode("state:false"); + IPC::Instance().SendEvent("events", sig); + } +} + +void InPlageHoraire::LoadPlage(TiXmlElement *node, vector &plage) +{ + TiXmlHandle docHandle(node); + TiXmlElement *cnode = docHandle.FirstChildElement().ToElement(); + for(; cnode; cnode = cnode->NextSiblingElement()) + { + TimeRange h; + if (cnode->Attribute("start_type")) + { + from_string(string(cnode->Attribute("start_type")), h.start_type); + if (h.start_type < 0 || h.start_type > 3) + h.start_type = TimeRange::HTYPE_NORMAL; + } + if (cnode->Attribute("start_offset")) + { + from_string(string(cnode->Attribute("start_offset")), h.start_offset); + if (h.start_offset < 0) h.start_offset = -1; + if (h.start_offset > 0) h.start_offset = 1; + } + if (cnode->Attribute("start_hour")) h.shour = cnode->Attribute("start_hour"); + if (cnode->Attribute("start_min")) h.smin = cnode->Attribute("start_min"); + if (cnode->Attribute("start_sec")) h.ssec = cnode->Attribute("start_sec"); + + if (cnode->Attribute("end_type")) + { + from_string(string(cnode->Attribute("end_type")), h.end_type); + if (h.end_type < 0 || h.end_type > 3) + h.end_type = TimeRange::HTYPE_NORMAL; + } + if (cnode->Attribute("end_offset")) + { + from_string(string(cnode->Attribute("end_offset")), h.end_offset); + if (h.end_offset < 0) h.end_offset = -1; + if (h.end_offset > 0) h.end_offset = 1; + } + if (cnode->Attribute("end_hour")) h.ehour = cnode->Attribute("end_hour"); + if (cnode->Attribute("end_min")) h.emin = cnode->Attribute("end_min"); + if (cnode->Attribute("end_sec")) h.esec = cnode->Attribute("end_sec"); + + stringstream sstart, sstop; + if (h.start_type == TimeRange::HTYPE_NORMAL) + { + sstart << h.shour << ":" << h.smin << ":" << h.ssec; + } + else if (h.start_type == TimeRange::HTYPE_SUNRISE) + { + sstart << " Sunrise"; + if (h.shour == "0" || h.smin == "0" || h.ssec == "0") + { + if (h.start_offset > 0) + sstart << " +offset "; + else + sstart << " -offset "; + sstart << h.shour << ":" << h.smin << ":" << h.ssec; + } + } + else if (h.start_type == TimeRange::HTYPE_SUNSET) + { + sstart << " Sunset"; + if (h.shour == "0" || h.smin == "0" || h.ssec == "0") + { + if (h.start_offset > 0) + sstart << " +offset "; + else + sstart << " -offset "; + sstart << h.shour << ":" << h.smin << ":" << h.ssec; + } + } + + if (h.end_type == TimeRange::HTYPE_NORMAL) + { + sstop << h.ehour << ":" << h.emin << ":" << h.esec; + } + else if (h.end_type == TimeRange::HTYPE_SUNRISE) + { + sstop << " Sunrise"; + if (h.ehour == "0" || h.emin == "0" || h.esec == "0") + { + if (h.end_offset > 0) + sstop << " +offset "; + else + sstop << " -offset "; + sstart << h.ehour << ":" << h.emin << ":" << h.esec; + } + } + else if (h.end_type == TimeRange::HTYPE_SUNSET) + { + sstop << " Sunset"; + if (h.ehour == "0" || h.emin == "0" || h.esec == "0") + { + if (h.end_offset > 0) + sstop << " +offset "; + else + sstop << " -offset "; + sstop << h.ehour << ":" << h.emin << ":" << h.esec; + } + } + + Utils::logger("input") << Priority::DEBUG << "InPlageHoraire::LoadPlage(): Adding plage: " + << sstart.str() << " ===> " << sstop.str() << log4cpp::eol; + + plage.push_back(h); + } +} + +bool InPlageHoraire::LoadFromXml(TiXmlElement *pnode) +{ + TiXmlHandle docHandle(pnode); + TiXmlElement *node = docHandle.FirstChildElement().ToElement(); + + Utils::logger("input") << Priority::DEBUG << "InPlageHoraire::LoadFromXml(): Loading plage content" << log4cpp::eol; + + //try to load months + if (pnode->Attribute("months")) + { + string m = pnode->Attribute("months"); + //reverse to have a left to right months representation + std::reverse(m.begin(), m.end()); + + try + { + bitset<12> mset(m); + months = mset; + } + catch(...) + { + Utils::logger("input") << Priority::ERROR << "InPlageHoraire::LoadFromXml(): wrong parameters for months: " << m << log4cpp::eol; + Utils::logger("input") << Priority::ERROR << "InPlageHoraire::LoadFromXml(): Setting all months to active" << log4cpp::eol; + + months.set(); //set all months by default + } + } + + for(; node; node = node->NextSiblingElement()) + { + if (node->ValueStr() == "calaos:lundi") + LoadPlage(node, plg_lundi); + else if (node->ValueStr() == "calaos:mardi") + LoadPlage(node, plg_mardi); + else if (node->ValueStr() == "calaos:mercredi") + LoadPlage(node, plg_mercredi); + else if (node->ValueStr() == "calaos:jeudi") + LoadPlage(node, plg_jeudi); + else if (node->ValueStr() == "calaos:vendredi") + LoadPlage(node, plg_vendredi); + else if (node->ValueStr() == "calaos:samedi") + LoadPlage(node, plg_samedi); + else if (node->ValueStr() == "calaos:dimanche") + LoadPlage(node, plg_dimanche); + } + + return true; +} + +void InPlageHoraire::SavePlage(TiXmlElement *node, string day, vector &plage) +{ + if (plage.size() <= 0) return; //don't create node if empty + + TiXmlElement *day_node = new TiXmlElement(string("calaos:") + day); + node->LinkEndChild(day_node); + + for (int i = 0;i < plage.size();i++) + { + TiXmlElement *period_node = new TiXmlElement("calaos:plage"); + day_node->LinkEndChild(period_node); + + TimeRange &h = plage[i]; + + period_node->SetAttribute("start_type", to_string(h.start_type)); + if (h.start_type == TimeRange::HTYPE_NORMAL) + { + period_node->SetAttribute("start_hour", h.shour); + period_node->SetAttribute("start_min", h.smin); + period_node->SetAttribute("start_sec", h.ssec); + } + else if (h.start_type == TimeRange::HTYPE_SUNRISE || + h.start_type == TimeRange::HTYPE_SUNSET) + { + if (h.shour != "0" || h.smin != "0" || h.ssec != "0") + { + period_node->SetAttribute("start_hour", h.shour); + period_node->SetAttribute("start_min", h.smin); + period_node->SetAttribute("start_sec", h.ssec); + period_node->SetAttribute("start_offset", h.start_offset); + } + } + + period_node->SetAttribute("end_type", to_string(h.end_type)); + if (h.end_type == TimeRange::HTYPE_NORMAL) + { + period_node->SetAttribute("end_hour", h.ehour); + period_node->SetAttribute("end_min", h.emin); + period_node->SetAttribute("end_sec", h.esec); + } + else if (h.end_type == TimeRange::HTYPE_SUNRISE || + h.end_type == TimeRange::HTYPE_SUNSET) + { + if (h.ehour != "0" || h.emin != "0" || h.esec != "0") + { + period_node->SetAttribute("end_hour", h.ehour); + period_node->SetAttribute("end_min", h.emin); + period_node->SetAttribute("end_sec", h.esec); + period_node->SetAttribute("end_offset", h.end_offset); + } + } + } +} + +bool InPlageHoraire::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:input"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + get_params().get_item(i, key, value); + cnode->SetAttribute(key, value); + } + + //Save months + stringstream ssmonth; + ssmonth << months; + string str = ssmonth.str(); + std::reverse(str.begin(), str.end()); + + cnode->SetAttribute("months", str); + + SavePlage(cnode, "lundi", plg_lundi); + SavePlage(cnode, "mardi", plg_mardi); + SavePlage(cnode, "mercredi", plg_mercredi); + SavePlage(cnode, "jeudi", plg_jeudi); + SavePlage(cnode, "vendredi", plg_vendredi); + SavePlage(cnode, "samedi", plg_samedi); + SavePlage(cnode, "dimanche", plg_dimanche); + + return true; +} diff --git a/src/bin/calaos_server/IO/InPlageHoraire.h b/src/bin/calaos_server/IO/InPlageHoraire.h new file mode 100644 index 00000000..8463386e --- /dev/null +++ b/src/bin/calaos_server/IO/InPlageHoraire.h @@ -0,0 +1,91 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_InPlageHoraire_H +#define S_InPlageHoraire_H + +#include +#include +#include + +namespace Calaos +{ + +class InPlageHoraire : public Input +{ + protected: + bool value; + + vector plg_lundi; + vector plg_mardi; + vector plg_mercredi; + vector plg_jeudi; + vector plg_vendredi; + vector plg_samedi; + vector plg_dimanche; + + void LoadPlage(TiXmlElement *node, vector &plage); + void SavePlage(TiXmlElement *node, string day, vector &plage); + + public: + InPlageHoraire(Params &p); + ~InPlageHoraire(); + + virtual DATA_TYPE get_type() { return TBOOL; } + virtual bool get_value_bool() { return value; } + + //Here we store months when plagehoraire is active + enum { JANUARY = 0, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER }; + bitset<12> months; + + void AddLundi(TimeRange &horaire) { plg_lundi.push_back(horaire); } + void AddMardi(TimeRange &horaire) { plg_mardi.push_back(horaire); } + void AddMercredi(TimeRange &horaire) { plg_mercredi.push_back(horaire); } + void AddJeudi(TimeRange &horaire) { plg_jeudi.push_back(horaire); } + void AddVendredi(TimeRange &horaire) { plg_vendredi.push_back(horaire); } + void AddSamedi(TimeRange &horaire) { plg_samedi.push_back(horaire); } + void AddDimanche(TimeRange &horaire) { plg_dimanche.push_back(horaire); } + + vector &getLundi() { return plg_lundi; } + vector &getMardi() { return plg_mardi; } + vector &getMercredi() { return plg_mercredi; } + vector &getJeudi() { return plg_jeudi; } + vector &getVendredi() { return plg_vendredi; } + vector &getSamedi() { return plg_samedi; } + vector &getDimanche() { return plg_dimanche; } + + void setLundi(vector &h) { plg_lundi = h; } + void setMardi(vector &h) { plg_mardi = h; } + void setMercredi(vector &h) { plg_mercredi = h; } + void setJeudi(vector &h) { plg_jeudi = h; } + void setVendredi(vector &h) { plg_vendredi = h; } + void setSamedi(vector &h) { plg_samedi = h; } + void setDimanche(vector &h) { plg_dimanche = h; } + + void clear(); + + virtual void hasChanged(); + + virtual bool LoadFromXml(TiXmlElement *node); + virtual bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/InputTime.cpp b/src/bin/calaos_server/IO/InputTime.cpp new file mode 100644 index 00000000..fd4d8bbf --- /dev/null +++ b/src/bin/calaos_server/IO/InputTime.cpp @@ -0,0 +1,107 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; +using namespace Utils; + +InputTime::InputTime(Params &p): + Input(p), + with_date(false), + value(false) +{ + ListeRule::Instance().Add(this); //add this specific input to the EventLoop + + set_param("visible", "false"); + + Utils::logger("input") << Priority::DEBUG << "InputTime::InputTime(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +InputTime::~InputTime() +{ + Utils::logger("input") << Priority::DEBUG << "InputTime::~InputTime(): Ok" << log4cpp::eol; +} + +void InputTime::hasChanged() +{ + bool val = false; + + if (get_params().Exists("year") && get_params().Exists("month") && get_params().Exists("day")) + { + with_date = true; + + from_string(get_param("year"), year); + from_string(get_param("month"), month); + from_string(get_param("day"), day); + } + else + { + with_date = false; + } + + Utils::from_string(get_param("hour"), hour); + Utils::from_string(get_param("min"), minute); + Utils::from_string(get_param("sec"), second); + + { + struct tm *ctime = NULL; + time_t t = time(NULL); + ctime = localtime(&t); + + if (with_date) + { + if (ctime->tm_mday == day && + ctime->tm_mon + 1 == month && + ctime->tm_year + 1900 == year && + ctime->tm_sec == second && + ctime->tm_min == minute && + ctime->tm_hour == hour) + { + val = true; + } + } + else + { + if (ctime->tm_sec == second && + ctime->tm_min == minute && + ctime->tm_hour == hour) + { + val = true; + } + } + } + + if (val != value) + { + value = val; + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + if (val) + sig += Utils::url_encode("state:true"); + else + sig += Utils::url_encode("state:false"); + IPC::Instance().SendEvent("events", sig); + } +} diff --git a/src/bin/calaos_server/IO/InputTime.h b/src/bin/calaos_server/IO/InputTime.h new file mode 100644 index 00000000..41541e67 --- /dev/null +++ b/src/bin/calaos_server/IO/InputTime.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_INPUTTIME_H +#define S_INPUTTIME_H + +#include +#include + +namespace Calaos +{ + +class InputTime : public Input +{ + protected: + bool with_date; //operation redondante + + int hour, minute, second; + int day, month, year; + + bool value; + + public: + InputTime(Params &prm); + ~InputTime(); + + virtual DATA_TYPE get_type() { return TBOOL; } + virtual bool get_value_bool() { return value; } + + bool is_with_date() { return with_date; } + + virtual void hasChanged(); +}; + +} + +#endif diff --git a/src/bin/calaos_server/IO/InputTimer.cpp b/src/bin/calaos_server/IO/InputTimer.cpp new file mode 100644 index 00000000..c6214204 --- /dev/null +++ b/src/bin/calaos_server/IO/InputTimer.cpp @@ -0,0 +1,162 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +InputTimer::InputTimer(Params &p): + Input(p), + Output(p), + timer(NULL), + value("true"), + start(false) +{ + set_param("visible", "false"); + + Utils::logger("input") << Priority::DEBUG << "InputTimer::InputTimer(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +InputTimer::~InputTimer() +{ + Utils::logger("input") << Priority::DEBUG << "InputTimer::~InputTimer(): Ok" << log4cpp::eol; +} + +bool InputTimer::set_value(string command) +{ + if( command == "start") + command = "true"; + + if(command == "stop") + command = "false"; + + if (command == "true") + { + Utils::logger("output") << Priority::INFO << "InputTimer(" << get_param("id") << "): got action, Start Timer" << log4cpp::eol; + StartTimer(); + } + else if(command == "false") + { + Utils::logger("output") << Priority::INFO << "InputTimer(" << get_param("id") << "): got action, Stop Timer" << log4cpp::eol; + StopTimer(); + } + else + { + //set the time + vector valSplit; + vector::reverse_iterator it; + split(command, valSplit, ":"); + int i = 0; + + ms = 0; + second = 0; + minute = 0; + hour = 0; + + for(it = valSplit.rbegin(); it != valSplit.rend(); it++) + { + int j; + if( from_string(*it, j) ) + { + if(i==0) + ms = j; + else if(i==1) + second = j; + else if(i==2) + minute = j; + else + hour = j; + i++; + } + else + Utils::logger("output") << Priority::WARN << + "InputTimer: Invalid time value: " <)sigc::mem_fun(*this, &InputTimer::TimerDone)); + + value = "false"; +} + +void InputTimer::StopTimer() +{ + if (timer) delete timer; + timer = NULL; + value = "false"; +} + +void InputTimer::TimerDone() +{ + if (timer) delete timer; + timer = NULL; + value = "true"; + + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode("state:true"); + IPC::Instance().SendEvent("events", sig); +} + +void InputTimer::hasChanged() +{ + +} diff --git a/src/bin/calaos_server/IO/InputTimer.h b/src/bin/calaos_server/IO/InputTimer.h new file mode 100644 index 00000000..ae4ad194 --- /dev/null +++ b/src/bin/calaos_server/IO/InputTimer.h @@ -0,0 +1,67 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_INPUTTIMER_H +#define S_INPUTTIMER_H + +#include +#include +#include +#include + +namespace Calaos +{ + +class InputTimer : public Input, public Output +{ + protected: + int hour, minute, second, ms; + + EcoreTimer *timer; + string value; + bool start; + + void StartTimer(); + void StopTimer(); + void TimerDone(); + + public: + InputTimer(Params &prm); + ~InputTimer(); + + //Input + virtual DATA_TYPE get_type() { return TSTRING; } + virtual string get_value_string() { return value; } + + //Output + virtual bool set_value(string val); + + virtual void hasChanged(); + + virtual void set_param(std::string opt, std::string val) + { Input::set_param(opt, val); } + virtual std::string get_param(std::string opt) + { return Input::get_param(opt); } + virtual Params &get_params() + { return Input::get_params(); } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/IntValue.cpp b/src/bin/calaos_server/IO/IntValue.cpp new file mode 100644 index 00000000..302a580b --- /dev/null +++ b/src/bin/calaos_server/IO/IntValue.cpp @@ -0,0 +1,200 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +Internal::Internal(Params &p): + Input(p), + Output(p), + bvalue(false), + dvalue(0.0), + svalue("") +{ + Utils::logger("output") << Priority::INFO << "Internal::Internal(" << get_param("id") << "): Ok" << log4cpp::eol; + + if (!Input::get_params().Exists("visible")) set_param("visible", "false"); + if (!Input::get_params().Exists("rw")) set_param("rw", "false"); + if (!Input::get_params().Exists("save")) set_param("save", "false"); + + LoadFromConfig(); +} + +Internal::~Internal() +{ + Utils::logger("output") << Priority::INFO << "Internal::~Internal(): Ok" << log4cpp::eol; +} + +void Internal::force_input_bool(bool v) +{ + bvalue = v; + EmitSignalInput(); + + Save(); + + string sig = "input "; + sig += Input::get_param("id") + " "; + if (v) + sig += Utils::url_encode(string("state:true")); + else + sig += Utils::url_encode(string("state:false")); + IPC::Instance().SendEvent("events", sig); +} + +bool Internal::set_value(bool val) +{ + Utils::logger("output") << Priority::INFO << "InternalBool(" << get_param("id") << "): got action, " << ((val)?"True":"False") << log4cpp::eol; + + force_input_bool(val); + + string sig = "output "; + sig += Input::get_param("id") + " "; + if (val) + sig += Utils::url_encode(string("state:true")); + else + sig += Utils::url_encode(string("state:false")); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +void Internal::force_input_double(double v) +{ + dvalue = v; + EmitSignalInput(); + + Save(); + + string sig = "input "; + sig += Input::get_param("id") + " "; + sig += url_encode("state:" + to_string(dvalue)); + IPC::Instance().SendEvent("events", sig); +} + +bool Internal::set_value(double val) +{ + Utils::logger("output") << Priority::INFO << "InternalInt(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + force_input_double(val); + + string sig = "output "; + sig += Input::get_param("id") + " "; + sig += url_encode("state:" + to_string(dvalue)); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +void Internal::force_input_string(string v) +{ + svalue = v; + EmitSignalInput(); + + Save(); + + string sig = "input "; + sig += Input::get_param("id") + " "; + sig += url_encode(string("state:") + to_string(svalue)); + IPC::Instance().SendEvent("events", sig); +} + +bool Internal::set_value(string val) +{ + Utils::logger("output") << Priority::INFO << "InternalString(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + force_input_string(val); + + string sig = "output "; + sig += Input::get_param("id") + " "; + sig += url_encode(string("state:") + to_string(svalue)); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +void Internal::Save() +{ + if (Input::get_param("save") != "true") return; + + switch (get_type()) + { + case TBOOL: + if (bvalue) + set_param("value", "true"); + else + set_param("value", "false"); + break; + case TINT: set_param("value", to_string(dvalue)); break; + case TSTRING: set_param("value", svalue); break; + default: break; + } + + //save value if needed + Config::Instance().SaveValueIO(Input::get_param("id"), Input::get_param("value")); +} + +void Internal::LoadFromConfig() +{ + if (Input::get_param("save") != "true") return; + + string saved_value; + if (!Config::Instance().ReadValueIO(Input::get_param("id"), saved_value)) + { + saved_value = Input::get_param("value"); + if (saved_value == "") + return; + } + + switch (get_type()) + { + case TBOOL: + if (saved_value == "true") + bvalue = true; + else + bvalue = false; + break; + case TINT: + from_string(saved_value, dvalue); + break; + case TSTRING: + svalue = saved_value; + break; + default: break; + } +} + +bool Internal::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:internal"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + get_params().get_item(i, key, value); + if (key == "value" && get_param("save") != "true") continue; + cnode->SetAttribute(key, value); + } + + return true; +} diff --git a/src/bin/calaos_server/IO/IntValue.h b/src/bin/calaos_server/IO/IntValue.h new file mode 100644 index 00000000..89e677da --- /dev/null +++ b/src/bin/calaos_server/IO/IntValue.h @@ -0,0 +1,81 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_IntValue_H +#define S_IntValue_H + +#include +#include +#include + +namespace Calaos +{ + + class Internal : public Input, public Output + { + protected: + bool bvalue; + double dvalue; + string svalue; + + void Save(); //save value to file + void LoadFromConfig(); //load value from config file + + public: + Internal(Params &p); + ~Internal(); + + virtual DATA_TYPE get_type() + { + if (Input::get_param("type") == "InternalBool") return TBOOL; + if (Input::get_param("type") == "InternalInt") return TINT; + if (Input::get_param("type") == "InternalString") return TSTRING; + return TUNKNOWN; + } + + //Input + virtual bool get_value_bool() { return bvalue; } + virtual double get_value_double() { return dvalue; } + virtual string get_value_string() { return svalue; } + + virtual void force_input_bool(bool v); + virtual void force_input_double(double v); + virtual void force_input_string(string v); + + //Output + virtual bool set_value(bool val); + virtual bool set_value(double val); + virtual bool set_value(string val); + + //Use common params for input and output + virtual void set_param(std::string opt, std::string val) + { Input::set_param(opt, val); } + virtual std::string get_param(std::string opt) + { return Input::get_param(opt); } + virtual Params &get_params() + { return Input::get_params(); } + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node); + }; + +} +#endif diff --git a/src/bin/calaos_server/IO/OWTemp.cpp b/src/bin/calaos_server/IO/OWTemp.cpp new file mode 100644 index 00000000..e4ea6aa7 --- /dev/null +++ b/src/bin/calaos_server/IO/OWTemp.cpp @@ -0,0 +1,139 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +#ifdef HAVE_OWCAPI +#include +#endif + +using namespace Calaos; + +OWTemp::OWTemp(Params &p): + Input(p), + value(0.0), + timer(0.0) +{ + char *res; + size_t len; + std::string tmp; + + ow_id = get_param("ow_id"); + tmp = get_param("time"); + ow_args = get_param("ow_args"); + time = atof(tmp.c_str()); + + printf("OW_ID : %s, time : %3.3f\n", ow_id.c_str(), time); + + if (!get_params().Exists("visible")) set_param("visible", "true"); + ListeRule::Instance().Add(this); //add this specific input to the EventLoop + +#ifdef HAVE_OWCAPI + + /* Read value */ + OW_init(ow_args.c_str()); + ow_req = ow_id + "/temperature"; + if(OW_get(ow_req.c_str(), &res, &len) >= 0) + { + value = atof(res); + printf("Temperature read : %3.3f\n", value); + free(res); + Utils::logger("input") << Priority::INFO << "OWTemp::OWTemp(" << get_param("id") << "): Ok" << log4cpp::eol; + } + else + { + Utils::logger("input") << Priority::INFO << "OWTemp::OWTemp(" << get_param("id") << "): Cannot read One Wire Temperature Sensor (" << ow_id << ")" << log4cpp::eol; + } +#else + Utils::logger("input") << Priority::INFO << "OWTemp::OWTemp(" << get_param("id") << "): One Wire support not enabled !" << log4cpp::eol; +#endif + + +} + +OWTemp::~OWTemp() +{ + Utils::logger("input") << Priority::INFO << "OWTemp::~OWTemp(): Ok" << log4cpp::eol; + +#ifdef HAVE_OWCAPI + OW_finish(); +#endif +} + +void OWTemp::hasChanged() +{ +#ifdef HAVE_OWCAPI + + char *res; + size_t len; + double val = value; + double sec = ecore_time_get() - timer; + + if (sec >= time) + { + timer = ecore_time_get(); + /* Read value */ + + ow_req = ow_id + "/temperature"; + if(OW_get(ow_req.c_str(), &res, &len) >= 0) + { + val = atof(res); + printf("Temperature read : %3.3f\n", val); + free(res); + Utils::logger("input") << Priority::INFO << "OWTemp::hasChanged(" << get_param("id") << "): Ok" << log4cpp::eol; + } + else + { + Utils::logger("input") << Priority::INFO << "OWTemp::hasChanged(" << get_param("id") << "): Cannot read One Wire Temperature Sensor (" << ow_id << ")" << log4cpp::eol; + } + + if (val != value) + { + Utils::logger("input") << Priority::INFO << "OWTemp:changed(" << get_param("id") << ") : " << get_value_double() << " °C" << log4cpp::eol; + + value = val; + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(get_value_double())); + IPC::Instance().SendEvent("events", sig); + } + } +#endif +} + +double OWTemp::get_value_double() +{ + return value; +} + +void OWTemp::force_input_double(double v) +{ + value = v; + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(get_value_double())); + IPC::Instance().SendEvent("events", sig); +} diff --git a/src/bin/calaos_server/IO/OWTemp.h b/src/bin/calaos_server/IO/OWTemp.h new file mode 100644 index 00000000..3f96b0c2 --- /dev/null +++ b/src/bin/calaos_server/IO/OWTemp.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_OWTemp_H +#define S_OWTemp_H + +#include +#include +#include + +namespace Calaos +{ + +class OWTemp : public Input +{ + protected: + std::string ow_id; + std::string ow_req; + std::string ow_args; + double value; + double timer; + double time; + public: + OWTemp(Params &p); + ~OWTemp(); + + virtual DATA_TYPE get_type() { return TINT; } + + virtual void force_input_double(double v); + + virtual double get_value_double(); + + virtual void hasChanged(); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/OutputFake.cpp b/src/bin/calaos_server/IO/OutputFake.cpp new file mode 100644 index 00000000..c4f5125e --- /dev/null +++ b/src/bin/calaos_server/IO/OutputFake.cpp @@ -0,0 +1,57 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +OutputFake::OutputFake(Params &p): + value(false), + Output(p) +{ + Utils::logger("output") << Priority::INFO << "OutputFake::OutputFake(" << get_param("id") << "): Ok" << log4cpp::eol; + + set_param("visible", "false"); +} + +OutputFake::~OutputFake() +{ + Utils::logger("output") << Priority::INFO << "OutputFake::~OutputFake(): Ok" << log4cpp::eol; +} + +bool OutputFake::set_value(bool val) +{ + value = val; + + Utils::logger("output") << Priority::INFO << "OutputFake(" << get_param("id") << "): got action, " << ((value)?"True":"False") << log4cpp::eol; + + string sig = "output "; + sig += get_param("id") + " "; + if (val) + sig += Utils::url_encode(string("state:true")); + else + sig += Utils::url_encode(string("state:false")); + IPC::Instance().SendEvent("events", sig); + + EmitSignalOutput(); + + return true; +} diff --git a/src/bin/calaos_server/IO/OutputFake.h b/src/bin/calaos_server/IO/OutputFake.h new file mode 100644 index 00000000..a406153f --- /dev/null +++ b/src/bin/calaos_server/IO/OutputFake.h @@ -0,0 +1,46 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_OUTPUTFAKE_H +#define S_OUTPUTFAKE_H + +#include +#include + +namespace Calaos +{ + +class OutputFake : public Output +{ + private: + bool value; + + public: + OutputFake(Params &p); + ~OutputFake(); + + DATA_TYPE get_type() { return TBOOL; } + + bool set_value(bool val); + bool get_value_bool() { return value; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/Scenario.cpp b/src/bin/calaos_server/IO/Scenario.cpp new file mode 100644 index 00000000..17dba086 --- /dev/null +++ b/src/bin/calaos_server/IO/Scenario.cpp @@ -0,0 +1,78 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +Scenario::Scenario(Params &p): + value(false), + Input(p), + Output(p), + auto_scenario(NULL) +{ + Utils::logger("output") << Priority::INFO << "Scenario::Scenario(" << get_param("id") << "): Ok" << log4cpp::eol; + + if (Input::get_param("auto_scenario") != "") + { + auto_scenario = new AutoScenario(this); + Input::setAutoScenario(true); + } + + if (!Input::get_params().Exists("visible")) set_param("visible", "true"); +} + +Scenario::~Scenario() +{ + DELETE_NULL(auto_scenario); + + Utils::logger("output") << Priority::INFO << "Scenario::~Scenario(): Ok" << log4cpp::eol; +} + +void Scenario::force_input_bool(bool v) +{ + value = v; + EmitSignalInput(); + + string sig = "input "; + sig += Input::get_param("id") + " "; + if (v) + sig += Utils::url_encode(string("state:true")); + else + sig += Utils::url_encode(string("state:false")); + IPC::Instance().SendEvent("events", sig); +} + +bool Scenario::set_value(bool val) +{ + force_input_bool(val); + + string sig = "output "; + sig += Input::get_param("id") + " "; + if (val) + sig += Utils::url_encode(string("state:true")); + else + sig += Utils::url_encode(string("state:false")); + IPC::Instance().SendEvent("events", sig); + + return true; +} diff --git a/src/bin/calaos_server/IO/Scenario.h b/src/bin/calaos_server/IO/Scenario.h new file mode 100644 index 00000000..7d66e120 --- /dev/null +++ b/src/bin/calaos_server/IO/Scenario.h @@ -0,0 +1,64 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_Scenario_H +#define S_Scenario_H + +#include +#include +#include + +namespace Calaos +{ + +class AutoScenario; + +class Scenario : public Input, public Output +{ + protected: + bool value; + + AutoScenario *auto_scenario; + + public: + Scenario(Params &p); + ~Scenario(); + + virtual DATA_TYPE get_type() { return TBOOL; } + + //Input + virtual bool get_value_bool() { return value; } + virtual void force_input_bool(bool v); + + //Output + virtual bool set_value(bool val); + + virtual void set_param(std::string opt, std::string val) + { Input::set_param(opt, val); } + virtual std::string get_param(std::string opt) + { return Input::get_param(opt); } + virtual Params &get_params() + { return Input::get_params(); } + + AutoScenario *getAutoScenario() { return auto_scenario; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WIAnalog.cpp b/src/bin/calaos_server/IO/WIAnalog.cpp new file mode 100644 index 00000000..437d6e17 --- /dev/null +++ b/src/bin/calaos_server/IO/WIAnalog.cpp @@ -0,0 +1,153 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +WIAnalog::WIAnalog(Params &p): + Input(p), + real_value_max(0.0), + wago_value_max(0.0), + port(502), + value(0.0), + timer(0.0), + frequency(15.0), // 15 sec. between each read + requestInProgress(false), + start(true) +{ + readConfig(); + + ListeRule::Instance().Add(this); //add this specific input to the EventLoop + + WagoMap::Instance(host, port).read_words((UWord)address, 1, sigc::mem_fun(*this, &WIAnalog::WagoReadCallback)); + requestInProgress = true; + + Calaos::StartReadRules::Instance().addIO(); + + Utils::logger("input") << Priority::INFO << "WIAnalog::WIAnalog(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WIAnalog::~WIAnalog() +{ + Utils::logger("input") << Priority::INFO << "WIAnalog::~WIAnalog(): Ok" << log4cpp::eol; +} + +void WIAnalog::readConfig() +{ + host = get_param("host"); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + Utils::from_string(get_param("var"), address); + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + if (get_params().Exists("real_max")) Utils::from_string(get_param("real_max"), real_value_max); + if (get_params().Exists("wago_max")) Utils::from_string(get_param("wago_max"), wago_value_max); + + if (get_params().Exists("frequency")) Utils::from_string(get_param("frequency"), frequency); +} + +void WIAnalog::WagoReadCallback(bool status, UWord address, int count, vector &values) +{ + requestInProgress = false; + + if (!status) + { + Utils::logger("input") << Priority::ERROR << "WIAnalog(" << get_param("id") << "): Failed to read value" << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + double val = value; + + if (!values.empty()) + { + val = values[0]; + } + + if (val != value) + { + value = val; + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(get_value_double())); + IPC::Instance().SendEvent("events", sig); + + Utils::logger("input") << Priority::INFO << "WIAnalog:changed(" << get_param("id") << ") : " << get_value_double() << log4cpp::eol; + } + + if (start) + { + Calaos::StartReadRules::Instance().ioRead(); + start = false; + } +} + +void WIAnalog::hasChanged() +{ + readConfig(); + + double sec = ecore_time_get() - timer; + if (sec >= frequency) + { + timer = ecore_time_get(); + + if (!requestInProgress) + { + requestInProgress = true; + WagoMap::Instance(host, port).read_words((UWord)address, 1, sigc::mem_fun(*this, &WIAnalog::WagoReadCallback)); + } + } +} + +double WIAnalog::get_value_double() +{ + readConfig(); + + Utils::logger("input") << Priority::DEBUG << "WIAnalog::get_value_double(" << get_param("id") << "): " + << value << " * " << real_value_max << " / " << wago_value_max << log4cpp::eol; + + if (wago_value_max > 0 && real_value_max > 0) + return Utils::roundValue(value * real_value_max / wago_value_max); + else + return Utils::roundValue(value); +} + +void WIAnalog::force_input_double(double v) +{ + if (wago_value_max > 0 && real_value_max > 0) + value = v * wago_value_max / real_value_max; + else + value = v; + + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(v)); + IPC::Instance().SendEvent("events", sig); +} diff --git a/src/bin/calaos_server/IO/WIAnalog.h b/src/bin/calaos_server/IO/WIAnalog.h new file mode 100644 index 00000000..2e1e259d --- /dev/null +++ b/src/bin/calaos_server/IO/WIAnalog.h @@ -0,0 +1,67 @@ +/****************************************************************************** +** Copyright (c) 2007-2010, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WIAnalog_H +#define S_WIAnalog_H + +#include +#include +#include +#include + +namespace Calaos +{ + +class WIAnalog : public Input +{ + protected: + int address; + double real_value_max; + double wago_value_max; + + std::string host; + int port; + + double value; + double timer; + double offset; + double frequency; + + bool requestInProgress; + bool start; + + void readConfig(); + + void WagoReadCallback(bool status, UWord address, int count, vector &values); + + public: + WIAnalog(Params &p); + ~WIAnalog(); + + virtual DATA_TYPE get_type() { return TINT; } + virtual void force_input_double(double v); + + virtual double get_value_double(); + + virtual void hasChanged(); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WIDigitalBP.cpp b/src/bin/calaos_server/IO/WIDigitalBP.cpp new file mode 100644 index 00000000..38d8f8b9 --- /dev/null +++ b/src/bin/calaos_server/IO/WIDigitalBP.cpp @@ -0,0 +1,135 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WIDigitalBP::WIDigitalBP(Params &p): + Input(p), + port(502), + value(false), + initial(true) +{ + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "false"); + + iter = Utils::signal_wago.connect( sigc::mem_fun(this, &WIDigitalBP::ReceiveFromWago) ); + + if (get_param("knx") != "true") + { + WagoMap::Instance(host, port).read_bits((UWord)address, 1, sigc::mem_fun(*this, &WIDigitalBP::WagoReadCallback)); + + Calaos::StartReadRules::Instance().addIO(); + } + else + { + Utils::logger("input") << Priority::INFO << "WIDigitalBP::WIDigitalBP(" << get_param("id") << "): Not reading initial state for KNX inputs" << log4cpp::eol; + } + + Utils::logger("input") << Priority::INFO << "WIDigitalBP::WIDigitalBP(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WIDigitalBP::~WIDigitalBP() +{ + iter->disconnect(); + Utils::logger("input") << Priority::INFO << "WIDigitalBP::~WIDigitalBP(): Ok" << log4cpp::eol; +} + +void WIDigitalBP::ReceiveFromWago(std::string ip, int addr, bool val, std::string intype) +{ + if (ip == host && addr == address) + { + if ((intype == "std" && get_param("knx") != "true") || + (intype == "knx" && get_param("knx") == "true")) + { + Utils::logger("input") << Priority::INFO << "WIDigitalBP::ReceiveFromWago(): Got " + << to_string(val) << " on " << intype << " input " << addr + << log4cpp::eol; + + udp_value = val; + hasChanged(); + } + } +} + +void WIDigitalBP::WagoReadCallback(bool status, UWord address, int count, vector &values) +{ + if (!status) + { + Utils::logger("input") << Priority::ERROR << "WIDigitalBP(" << get_param("id") << "): Failed to read value" << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + if (initial) + { + if (!values.empty()) + value = values[0]; + + if (value) + Utils::logger("input") << Priority::INFO << "WIDigitalBP::WIDigitalBP(" << get_param("id") << "): Reading initial state: true" << log4cpp::eol; + else + Utils::logger("input") << Priority::INFO << "WIDigitalBP::WIDigitalBP(" << get_param("id") << "): Reading initial state: false" << log4cpp::eol; + initial = false; + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WIDigitalBP::hasChanged() +{ + bool val = false; + std::vector values; + + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (get_param("knx") != "true") + { + //Force to reconnect in case of disconnection + WagoMap::Instance(host, port).read_bits((UWord)address, 1, sigc::mem_fun(*this, &WIDigitalBP::WagoReadCallback)); + } + + val = udp_value; + + if (val != value) + { + value = val; + + string sig = "input "; + sig += get_param("id") + " "; + if (value) + sig += Utils::url_encode(string("state:true")); + else + sig += Utils::url_encode(string("state:false")); + IPC::Instance().SendEvent("events", sig); + + EmitSignalInput(); + } +} diff --git a/src/bin/calaos_server/IO/WIDigitalBP.h b/src/bin/calaos_server/IO/WIDigitalBP.h new file mode 100644 index 00000000..383c71c3 --- /dev/null +++ b/src/bin/calaos_server/IO/WIDigitalBP.h @@ -0,0 +1,62 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WIDigitalBP_H +#define S_WIDigitalBP_H + +#include +#include +#include + +namespace Calaos +{ + +class WIDigitalBP : public Input, public sigc::trackable +{ + protected: + type_signal_wago::iterator iter; + + int address; + std::string host; + int port; + + bool value, udp_value; + bool initial; + + void WagoReadCallback(bool status, UWord address, int count, vector &values); + + public: + WIDigitalBP(Params &p); + ~WIDigitalBP(); + + virtual DATA_TYPE get_type() { return TBOOL; } + virtual bool get_value_bool() { return value; } + virtual void force_input_bool(bool v) + { + value = v; + EmitSignalInput(); + } + + virtual void hasChanged(); + virtual void ReceiveFromWago(std::string ip, int addr, bool val, std::string intype); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WIDigitalTriple.cpp b/src/bin/calaos_server/IO/WIDigitalTriple.cpp new file mode 100644 index 00000000..3d1f20ae --- /dev/null +++ b/src/bin/calaos_server/IO/WIDigitalTriple.cpp @@ -0,0 +1,139 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WIDigitalTriple::WIDigitalTriple(Params &p): + Input(p), + port(502), + value(0.0), + count(0), + timer(NULL) +{ + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "false"); + + iter = Utils::signal_wago.connect( sigc::mem_fun(this, &WIDigitalTriple::ReceiveFromWago) ); + Utils::logger("input") << Priority::INFO << "WIDigitalTriple::WIDigitalTriple(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WIDigitalTriple::~WIDigitalTriple() +{ + iter->disconnect(); + if (timer) delete timer; + Utils::logger("input") << Priority::INFO << "WIDigitalTriple::~WIDigitalTriple(): Ok" << log4cpp::eol; +} + +void WIDigitalTriple::ReceiveFromWago(std::string ip, int addr, bool val, std::string intype) +{ + if (ip == host && addr == address) + { + if ((intype == "std" && get_param("knx") != "true") || + (intype == "knx" && get_param("knx") == "true")) + { + Utils::logger("input") << Priority::INFO << "WIDigitalTriple::ReceiveFromWago(): Got " + << to_string(val) << " on " << intype << " input " << addr + << log4cpp::eol; + + udp_value = val; + hasChanged(); + } + } +} + +void WIDigitalTriple::WagoReadCallback(bool status, UWord address, int nb, vector &values) +{ + if (!status) + { + Utils::logger("input") << Priority::ERROR << "WIDigitalTriple(" << get_param("id") << "): Failed to read value" << log4cpp::eol; + return; + } +} + +void WIDigitalTriple::hasChanged() +{ + bool val = false; + + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (get_param("knx") != "true") + { + //Force to reconnect in case of disconnection + //WagoMap::Instance(host, port).read_bits((UWord)address, 1, sigc::mem_fun(*this, &WIDigitalTriple::WagoReadCallback)); + } + + val = udp_value; + + if (val) + { + if (!timer) + { + count = 0; + timer = new EcoreTimer(0.5, + (sigc::slot)sigc::mem_fun(*this, &WIDigitalTriple::TimerDone)); + } + + count += 1; + } +} + +void WIDigitalTriple::TimerDone() +{ + if (count > 0) + { + if (count == 1) value = 1.; + if (count == 2) value = 2.; + if (count >= 3) value = 3.; + + count = 0; + + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(value)); + IPC::Instance().SendEvent("events", sig); + + //reset input value to 0 after 250ms (simulate button press/release) + EcoreTimer::singleShot(0.250, sigc::mem_fun(*this, &WIDigitalTriple::resetInput)); + } + + if (timer) + { + delete timer; + timer = NULL; + } +} + +void WIDigitalTriple::resetInput() +{ + value = 0.; +} + diff --git a/src/bin/calaos_server/IO/WIDigitalTriple.h b/src/bin/calaos_server/IO/WIDigitalTriple.h new file mode 100644 index 00000000..e27d6090 --- /dev/null +++ b/src/bin/calaos_server/IO/WIDigitalTriple.h @@ -0,0 +1,77 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WIDigitalTriple_H +#define S_WIDigitalTriple_H + +#include +#include +#include +#include + +namespace Calaos +{ + +class WIDigitalTriple : public Input, public sigc::trackable +{ + protected: + type_signal_wago::iterator iter; + + int address; + std::string host; + int port; + + int count; + bool udp_value; + double value; + + EcoreTimer *timer; + + void TimerDone(); + void resetInput(); + + void WagoReadCallback(bool status, UWord address, int count, vector &values); + + public: + WIDigitalTriple(Params &p); + ~WIDigitalTriple(); + + virtual DATA_TYPE get_type() { return TINT; } + + /* renvoie le numero de l'action: + -1: rien + 1: action 1 + 2: action 2 + 3: action 3 + */ + virtual double get_value_double() { return value; } + virtual void force_input_double(double v) + { + value = v; + EmitSignalInput(); + } + + virtual void hasChanged(); + virtual void ReceiveFromWago(std::string ip, int addr, bool val, std::string intype); +}; + +} + +#endif diff --git a/src/bin/calaos_server/IO/WITemp.cpp b/src/bin/calaos_server/IO/WITemp.cpp new file mode 100644 index 00000000..39d9fdb7 --- /dev/null +++ b/src/bin/calaos_server/IO/WITemp.cpp @@ -0,0 +1,141 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +WITemp::WITemp(Params &p): + Input(p), + port(502), + value(0.0), + timer(0.0), + requestInProgress(false) +{ + host = get_param("host"); + Utils::from_string(get_param("offset"), offset); + + Utils::from_string(get_param("var"), address); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + ListeRule::Instance().Add(this); //add this specific input to the EventLoop + + requestInProgress = true; + WagoMap::Instance(host, port).read_words((UWord)address, 1, sigc::mem_fun(*this, &WITemp::WagoReadCallback)); + + Calaos::StartReadRules::Instance().addIO(); + + Utils::logger("input") << Priority::INFO << "WITemp::WITemp(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WITemp::~WITemp() +{ + Utils::logger("input") << Priority::INFO << "WITemp::~WITemp(): Ok" << log4cpp::eol; +} + +void WITemp::WagoReadCallback(bool status, UWord address, int count, vector &values) +{ + requestInProgress = false; + + if (!status) + { + Utils::logger("input") << Priority::ERROR << "WITemp(" << get_param("id") << "): Failed to read value" << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + double val = value; + + if (!values.empty()) + val = (short int)values[0] / 10.0; + + if (val != value) + { + Utils::logger("input") << Priority::INFO << "WITemp:changed(" << get_param("id") << ") : " << get_value_double() << " °C" << log4cpp::eol; + + value = val; + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(get_value_double())); + IPC::Instance().SendEvent("events", sig); + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WITemp::hasChanged() +{ + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + double sec = ecore_time_get() - timer; + if (sec >= 15) + { + timer = ecore_time_get(); + + if (!requestInProgress) + { + requestInProgress = true; + WagoMap::Instance(host, port).read_words((UWord)address, 1, sigc::mem_fun(*this, &WITemp::WagoReadCallback)); + } + } +} + +double WITemp::get_value_double() +{ + double v; + + if (get_params().Exists("offset")) + { + Utils::from_string(get_param("offset"), offset); + + if (offset < 100 && offset > -100) + v = value - offset; + else + v = value; + } + else + { + v = value; + } + + return v; +} + +void WITemp::force_input_double(double v) +{ + value = v; + EmitSignalInput(); + + string sig = "input "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + to_string(get_value_double())); + IPC::Instance().SendEvent("events", sig); +} diff --git a/src/bin/calaos_server/IO/WITemp.h b/src/bin/calaos_server/IO/WITemp.h new file mode 100644 index 00000000..b5184542 --- /dev/null +++ b/src/bin/calaos_server/IO/WITemp.h @@ -0,0 +1,62 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WITemp_H +#define S_WITemp_H + +#include +#include +#include +#include + +namespace Calaos +{ + +class WITemp : public Input +{ + protected: + int address; + + std::string host; + int port; + + double value; + double timer; + double offset; + + bool requestInProgress; + + void WagoReadCallback(bool status, UWord address, int count, vector &values); + + public: + WITemp(Params &p); + ~WITemp(); + + virtual DATA_TYPE get_type() { return TINT; } + + virtual void force_input_double(double v); + + virtual double get_value_double(); + + virtual void hasChanged(); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WOAnalog.cpp b/src/bin/calaos_server/IO/WOAnalog.cpp new file mode 100644 index 00000000..fe3d28bc --- /dev/null +++ b/src/bin/calaos_server/IO/WOAnalog.cpp @@ -0,0 +1,136 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; +using namespace Utils; + +WOAnalog::WOAnalog(Params &p): + Output(p), + port(502), + value(-1), + real_value_max(0.0), + wago_value_max(0.0) +{ + readConfig(); + + WagoMap::Instance(host, port).read_words((UWord)address + 0x200, 1, sigc::mem_fun(*this, &WOAnalog::WagoReadCallback)); + + Calaos::StartReadRules::Instance().addIO(); + + Utils::logger("output") << Priority::INFO << "WOAnalog::WOAnalog(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WOAnalog::~WOAnalog() +{ + Utils::logger("output") << Priority::INFO << "WOAnalog::~WOAnalog(): Ok" << log4cpp::eol; +} + +void WOAnalog::readConfig() +{ + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_params().Exists("real_max")) Utils::from_string(get_param("real_max"), real_value_max); + if (get_params().Exists("wago_max")) Utils::from_string(get_param("wago_max"), wago_value_max); + + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "true"); +} + +double WOAnalog::get_value_double() +{ + readConfig(); + + if (wago_value_max > 0 && real_value_max > 0) + return Utils::roundValue(value * real_value_max / wago_value_max); + else + return Utils::roundValue(value); +} + +void WOAnalog::WagoReadCallback(bool status, UWord address, int count, vector &values) +{ + if (!status) + { + Utils::logger("output") << Priority::ERROR << "WOAnalog(" << get_param("id") << "): Failed to read value" << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + if (!values.empty()) value = values[0]; + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + Utils::to_string(value)); + IPC::Instance().SendEvent("events", sig); + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WOAnalog::WagoWriteCallback(bool status, UWord address, UWord _value) +{ + if (!status) + { + Utils::logger("output") << Priority::ERROR << "WOAnalog(" << get_param("id") << "): Failed to write value" << log4cpp::eol; + return; + } + + value = _value; + + UWord v; + + readConfig(); + + if (wago_value_max > 0 && real_value_max > 0) + v = (UWord)(value * wago_value_max / real_value_max); + else + v = (UWord)(value); + + Utils::logger("output") << Priority::INFO << "WOAnalog(" << get_param("id") << "), executed action " << value << " (" << v << ")" << log4cpp::eol; +} + +bool WOAnalog::set_value(double val) +{ + UWord v; + + readConfig(); + + if (wago_value_max > 0 && real_value_max > 0) + v = (UWord)(val * wago_value_max / real_value_max); + else + v = (UWord)(val); + + WagoMap::Instance(host, port).write_single_word((UWord)address, v, sigc::mem_fun(*this, &WOAnalog::WagoWriteCallback)); + + value = val; + + EmitSignalOutput(); + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + Utils::to_string(value)); + IPC::Instance().SendEvent("events", sig); + + return true; +} diff --git a/src/bin/calaos_server/IO/WOAnalog.h b/src/bin/calaos_server/IO/WOAnalog.h new file mode 100644 index 00000000..c1a012ae --- /dev/null +++ b/src/bin/calaos_server/IO/WOAnalog.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2007-2010, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WOAnalog_H +#define S_WOAnalog_H + +#include +#include +#include + +namespace Calaos +{ + +class WOAnalog : public Output +{ + private: + double value; + double real_value_max; + double wago_value_max; + + int address; + + std::string host; + int port; + + void readConfig(); + + void WagoReadCallback(bool status, UWord address, int count, vector &values); + void WagoWriteCallback(bool status, UWord address, UWord value); + + public: + WOAnalog(Params &p); + ~WOAnalog(); + + DATA_TYPE get_type() { return TINT; } + + virtual bool set_value(double val); + virtual double get_value_double(); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WODali.cpp b/src/bin/calaos_server/IO/WODali.cpp new file mode 100644 index 00000000..bb0b16ad --- /dev/null +++ b/src/bin/calaos_server/IO/WODali.cpp @@ -0,0 +1,294 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WODali::WODali(Params &_p): + Output(_p), + value(0), + old_value(100), + port(502), + hold_timer(NULL), + press_sens(false), + press_detected(false), + stop_after_press(false) +{ + host = get_param("host"); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + string cmd = "WAGO_DALI_GET " + get_param("line") + " " + get_param("address"); + WagoMap::Instance(host, port).SendUDPCommand(cmd, sigc::mem_fun(*this, &WODali::WagoUDPCommand_cb)); + + Calaos::StartReadRules::Instance().addIO(); + Utils::logger("output") << Priority::INFO << "WODali::WODali(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WODali::~WODali() +{ + Utils::logger("output") << Priority::INFO << "WODali::WODali(): Ok" << log4cpp::eol; +} + +void WODali::WagoUDPCommand_cb(bool status, string command, string result) +{ + if (!status) + { + Utils::logger("output") << Priority::INFO << "WODali::WagoUdpCommand(): Error with request " << command << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + if (command.find("WAGO_DALI_GET") != string::npos) + { + vector tokens; + split(result, tokens); + if (tokens.size() >= 3) + { + //get the status of the ballast + if (tokens[1] == "0") + { + value = 0; + old_value = 100; + } + else + { + value = 100; + old_value = 0; + } + } + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +/* List of actions where value is in percent +** set +** set off +** up +** down +** on +** off +** toggle +** hold press +** hold stop +*/ +bool WODali::set_value(std::string val) +{ + bool ret = true; + + Utils::logger("output") << Priority::INFO << "WODali(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + host = get_param("host"); + from_string(get_param("port"), port); + + if (val == "on" || val == "true") + { + //switch the light on only if value == 0 + if (value == 0) + { + string cmd = "WAGO_DALI_SET " + get_param("line") + " " + get_param("group") + + " " + get_param("address") + " " + Utils::to_string(old_value) + + " " + get_param("fade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + value = old_value; + + cmd_state = "on"; + } + } + else if (val == "off" || val == "false") + { + //switch the light off only if value > 0 + if (value > 0) + { + string cmd = "WAGO_DALI_SET " + get_param("line") + " " + get_param("group") + + " " + get_param("address") + " 0 " + get_param("fade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + old_value = value; + value = 0; + + cmd_state = "off"; + } + } + else if (val == "toggle") + { + if (value == 0) + set_value(true); + else + set_value(false); + } + else if (val.compare(0, 8, "set off ") == 0) + { + val.erase(0, 8); + int percent; + Utils::from_string(val, percent); + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "set off " + Utils::to_string(percent); + + string cmd = "WAGO_DALI_SET " + get_param("line") + " " + get_param("group") + + " " + get_param("address") + " " + Utils::to_string(percent) + + " " + get_param("fade_time"); + if (value > 0) + { + WagoMap::Instance(host, port).SendUDPCommand(cmd); + value = percent; + } + else + { + old_value = percent; + } + } + else if (val.compare(0, 4, "set ") == 0) + { + val.erase(0, 4); + int percent; + Utils::from_string(val, percent); + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "set " + Utils::to_string(percent); + + string cmd = "WAGO_DALI_SET " + get_param("line") + " " + get_param("group") + + " " + get_param("address") + " " + Utils::to_string(percent) + + " " + get_param("fade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + value = percent; + } + else if (val.compare(0, 3, "up ") == 0) + { + val.erase(0, 3); + int percent; + Utils::from_string(val, percent); + percent += value; + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "up " + val; + + string cmd = "WAGO_DALI_SET " + get_param("line") + " " + get_param("group") + + " " + get_param("address") + " " + Utils::to_string(percent) + + " " + get_param("fade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + value = percent; + } + else if (val.compare(0, 5, "down ") == 0) + { + val.erase(0, 5); + int percent; + Utils::from_string(val, percent); + percent = value - percent; + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "down " + val; + + string cmd = "WAGO_DALI_SET " + get_param("line") + " " + get_param("group") + + " " + get_param("address") + " " + Utils::to_string(percent) + + " " + get_param("fade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + value = percent; + } + else if (val == "hold press") + { + if (hold_timer) + { + //reset hold detection + delete hold_timer; + } + + press_detected = false; + stop_after_press = true; + hold_timer = new EcoreTimer(0.5, (sigc::slot)sigc::mem_fun(*this, &WODali::HoldPress_cb)); + } + else if (val == "hold stop") + { + //only toggle after a press and if long press is not detected + if (!press_detected && stop_after_press) + { + ret = set_value(string("toggle")); + } + + stop_after_press = false; + + if (hold_timer) + { + delete hold_timer; + hold_timer = NULL; + press_detected = false; + } + } + + EmitSignalOutput(); + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + + return ret; +} + +void WODali::HoldPress_cb() +{ + // press is detect the first timer with 500ms + if (!press_detected) + { + press_detected = true; + delete hold_timer; + hold_timer = new EcoreTimer(1.0, (sigc::slot)sigc::mem_fun(*this, &WODali::HoldPress_cb)); + } + + int v = 0; + + if (press_sens) + { + v = value - 10; + if (v < 0) + { + press_sens = false; + v = 0; + } + } + else + { + v = value + 10; + if (v > 100) + { + press_sens = true; + v = 100; + } + } + + string cmd = "set "; + cmd += to_string(v); + set_value(cmd); +} diff --git a/src/bin/calaos_server/IO/WODali.h b/src/bin/calaos_server/IO/WODali.h new file mode 100644 index 00000000..41a0a550 --- /dev/null +++ b/src/bin/calaos_server/IO/WODali.h @@ -0,0 +1,69 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WODali_H +#define S_WODali_H + +#include +#include +#include +#include + +namespace Calaos +{ + +class WODali : public Output +{ + private: + int value; + int old_value; + + std::string host; + int port; + + EcoreTimer *hold_timer; + + std::string cmd_state; + bool press_detected; + bool press_sens; + bool stop_after_press; + + void HoldPress_cb(); + + void WagoUDPCommand_cb(bool status, string command, string result); + + public: + //two address for this output, one for the on/off action and the other for the dim + WODali(Params &p); + ~WODali(); + + DATA_TYPE get_type() { return TSTRING; } + + bool set_value(std::string val); + bool set_value(bool val) + { if (val) set_value(std::string("on")); else set_value(std::string("off")); return true; } + std::string get_value_string() { return Utils::to_string(value); } + bool get_value_bool() { if (value == 0) return false; else return true; } + + virtual std::string get_command_string() { return cmd_state; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WODaliRVB.cpp b/src/bin/calaos_server/IO/WODaliRVB.cpp new file mode 100644 index 00000000..f2c83155 --- /dev/null +++ b/src/bin/calaos_server/IO/WODaliRVB.cpp @@ -0,0 +1,434 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WODaliRVB::WODaliRVB(Params &_p): + Output(_p), + value(0), + old_value(100), + port(502) +{ + host = get_param("host"); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + string cmd; + cmd = "WAGO_DALI_GET " + get_param("rline") + " " + get_param("raddress"); + WagoMap::Instance(host, port).SendUDPCommand(cmd, sigc::mem_fun(*this, &WODaliRVB::WagoUDPCommandRed_cb)); + cmd = "WAGO_DALI_GET " + get_param("gline") + " " + get_param("gaddress"); + WagoMap::Instance(host, port).SendUDPCommand(cmd, sigc::mem_fun(*this, &WODaliRVB::WagoUDPCommandGreen_cb)); + cmd = "WAGO_DALI_GET " + get_param("bline") + " " + get_param("baddress"); + WagoMap::Instance(host, port).SendUDPCommand(cmd, sigc::mem_fun(*this, &WODaliRVB::WagoUDPCommandBlue_cb)); + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + + Calaos::StartReadRules::Instance().addIO(); + Calaos::StartReadRules::Instance().addIO(); + Calaos::StartReadRules::Instance().addIO(); + + Utils::logger("output") << Priority::INFO << "WODaliRVB::WODaliRVB(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WODaliRVB::~WODaliRVB() +{ + Utils::logger("output") << Priority::INFO << "WODaliRVB::~WODaliRVB(): Ok" << log4cpp::eol; +} + +void WODaliRVB::WagoUDPCommandRed_cb(bool status, string command, string result) +{ + if (!status) + { + Utils::logger("output") << Priority::INFO << "WODaliRVB::WagoUdpCommandRed(): Error with request " << command << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + vector tokens; + split(result, tokens); + if (tokens.size() >= 3) + { + from_string(tokens[2], red); + red = (red * 255) / 100; + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WODaliRVB::WagoUDPCommandGreen_cb(bool status, string command, string result) +{ + if (!status) + { + Utils::logger("output") << Priority::INFO << "WODaliRVB::WagoUdpCommandGreen(): Error with request " << command << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + vector tokens; + split(result, tokens); + if (tokens.size() >= 3) + { + from_string(tokens[2], green); + green = (green * 255) / 100; + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WODaliRVB::WagoUDPCommandBlue_cb(bool status, string command, string result) +{ + if (!status) + { + Utils::logger("output") << Priority::INFO << "WODaliRVB::WagoUdpCommandBlue(): Error with request " << command << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + vector tokens; + split(result, tokens); + if (tokens.size() >= 3) + { + from_string(tokens[2], blue); + blue = (blue * 255) / 100; + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WODaliRVB::WagoUDPCommand_cb(bool status, string command, string result) +{ + if (!status) + { + Utils::logger("output") << Priority::INFO << "WODaliRVB::WagoUdpCommand(): Error with request " << command << log4cpp::eol; + + return; + } +} + +/* List of actions where value is in percent +** set +** on +** off +** toggle +*/ +bool WODaliRVB::set_value(std::string val) +{ + bool ret = true; + + Utils::logger("output") << Priority::INFO << "WODaliRVB(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + host = get_param("host"); + from_string(get_param("port"), port); + + struct timespec t; + t.tv_sec = 0; + t.tv_nsec = 50 * 1000000; //50ms + + if (val == "on" || val == "true") + { + //switch the light on only if value == 0 + if (value == 0) + { + if (red == 0 && green == 0 && blue == 0) + { + red = 255; green = 255; blue = 255; + } + + //red + string cmd = "WAGO_DALI_SET " + get_param("rline") + " " + get_param("rgroup") + + " " + get_param("raddress") + " " + to_string((red * 100) / 255) + + " " + get_param("rfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + //green + cmd = "WAGO_DALI_SET " + get_param("gline") + " " + get_param("ggroup") + + " " + get_param("gaddress") + " " + to_string((green * 100) / 255) + + " " + get_param("gfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + //blue + cmd = "WAGO_DALI_SET " + get_param("bline") + " " + get_param("bgroup") + + " " + get_param("baddress") + " " + to_string((blue * 100) / 255) + + " " + get_param("bfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + + cmd_state = "on"; + } + } + else if (val == "off" || val == "false") + { + //switch the light off only if value > 0 + if (value > 0) + { + //red + string cmd = "WAGO_DALI_SET " + get_param("rline") + " " + get_param("rgroup") + + " " + get_param("raddress") + " 0 " + + get_param("rfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + //green + cmd = "WAGO_DALI_SET " + get_param("gline") + " " + get_param("ggroup") + + " " + get_param("gaddress") + " 0 " + + get_param("gfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + //blue + cmd = "WAGO_DALI_SET " + get_param("bline") + " " + get_param("bgroup") + + " " + get_param("baddress") + " 0 " + + get_param("bfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + old_value = value; + value = 0; + + cmd_state = "off"; + } + } + else if (val.compare(0, 8, "set off ") == 0) + { + val.erase(0, 4); + int percent; + from_string(val, percent); + red = percent >> 16; + green = (percent >> 8) & 0x0000FF; + blue = percent & 0x0000FF; + if (red < 0) red = 0; + if (red > 255) red = 255; + if (green < 0) green = 0; + if (green > 255) green = 255; + if (blue < 0) blue = 0; + if (blue > 255) blue = 255; + + cmd_state = "set off " + Utils::to_string(percent); + + if (value > 0) + { + string cmd = "WAGO_DALI_SET " + get_param("rline") + " " + get_param("rgroup") + + " " + get_param("raddress") + " " + to_string((red * 100) / 255) + + " " + get_param("rfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + cmd = "WAGO_DALI_SET " + get_param("gline") + " " + get_param("ggroup") + + " " + get_param("gaddress") + " " + to_string((green * 100) / 255) + + " " + get_param("gfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + cmd = "WAGO_DALI_SET " + get_param("bline") + " " + get_param("bgroup") + + " " + get_param("baddress") + " " + to_string((blue * 100) / 255) + + " " + get_param("bfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + } + else + { + old_value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + } + } + else if (val == "toggle") + { + if (value == 0) + set_value(true); + else + set_value(false); + } + else if (val.compare(0, 4, "set ") == 0) + { + val.erase(0, 4); + int percent; + from_string(val, percent); + red = percent >> 16; + green = (percent >> 8) & 0x0000FF; + blue = percent & 0x0000FF; + if (red < 0) red = 0; + if (red > 255) red = 255; + if (green < 0) green = 0; + if (green > 255) green = 255; + if (blue < 0) blue = 0; + if (blue > 255) blue = 255; + + cmd_state = "set " + Utils::to_string(percent); + + string cmd = "WAGO_DALI_SET " + get_param("rline") + " " + get_param("rgroup") + + " " + get_param("raddress") + " " + to_string((red * 100) / 255) + + " " + get_param("rfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + cmd = "WAGO_DALI_SET " + get_param("gline") + " " + get_param("ggroup") + + " " + get_param("gaddress") + " " + to_string((green * 100) / 255) + + " " + get_param("gfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + cmd = "WAGO_DALI_SET " + get_param("bline") + " " + get_param("bgroup") + + " " + get_param("baddress") + " " + to_string((blue * 100) / 255) + + " " + get_param("bfade_time"); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + + value = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + } + else if (val.compare(0, 8, "set_red ") == 0) + { + val.erase(0, 8); + int percent; + from_string(val, percent); + red = percent; + if (red < 0) red = 0; + if (red > 255) red = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 10, "set_green ") == 0) + { + val.erase(0, 10); + int percent; + from_string(val, percent); + green = percent; + if (green < 0) green = 0; + if (green > 255) green = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 9, "set_blue ") == 0) + { + val.erase(0, 9); + int percent; + from_string(val, percent); + blue = percent; + if (blue < 0) blue = 0; + if (blue > 255) blue = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 7, "up_red ") == 0) + { + val.erase(0, 7); + int percent; + from_string(val, percent); + red += percent; + if (red < 0) red = 0; + if (red > 255) red = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 9, "down_red ") == 0) + { + val.erase(0, 9); + int percent; + from_string(val, percent); + red -= percent; + if (red < 0) red = 0; + if (red > 255) red = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 9, "up_green ") == 0) + { + val.erase(0, 9); + int percent; + from_string(val, percent); + green += percent; + if (green < 0) green = 0; + if (green > 255) green = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 11, "down_green ") == 0) + { + val.erase(0, 11); + int percent; + from_string(val, percent); + green -= percent; + if (green < 0) green = 0; + if (green > 255) green = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 8, "up_blue ") == 0) + { + val.erase(0, 8); + int percent; + from_string(val, percent); + blue += percent; + if (blue < 0) blue = 0; + if (blue > 255) blue = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + else if (val.compare(0, 10, "down_blue ") == 0) + { + val.erase(0, 10); + int percent; + from_string(val, percent); + blue -= percent; + if (blue < 0) blue = 0; + if (blue > 255) blue = 255; + + int v = ((red << 16) & 0xFF0000) + ((green << 8) & 0x00FF00) + blue; + set_value("set " + to_string(v)); + } + + EmitSignalOutput(); + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + + return ret; +} diff --git a/src/bin/calaos_server/IO/WODaliRVB.h b/src/bin/calaos_server/IO/WODaliRVB.h new file mode 100644 index 00000000..7354ee0a --- /dev/null +++ b/src/bin/calaos_server/IO/WODaliRVB.h @@ -0,0 +1,65 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WODaliRVB_H +#define S_WODaliRVB_H + +#include +#include +#include + +namespace Calaos +{ + +class WODaliRVB : public Output +{ + private: + int value; + int old_value; + int red, green, blue; + + std::string host; + int port; + + std::string cmd_state; + + void WagoUDPCommandRed_cb(bool status, string command, string result); + void WagoUDPCommandGreen_cb(bool status, string command, string result); + void WagoUDPCommandBlue_cb(bool status, string command, string result); + void WagoUDPCommand_cb(bool status, string command, string result); + + public: + //3 Dali address for this output, one for red, one for blue, one for green + WODaliRVB(Params &p); + ~WODaliRVB(); + + DATA_TYPE get_type() { return TSTRING; } + + bool set_value(std::string val); + bool set_value(bool val) + { if (val) set_value(std::string("on")); else set_value(std::string("off")); return true; } + std::string get_value_string() { return Utils::to_string(value); } + bool get_value_bool() { if (value == 0) return false; else return true; } + + virtual std::string get_command_string() { return cmd_state; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WODigital.cpp b/src/bin/calaos_server/IO/WODigital.cpp new file mode 100644 index 00000000..e91dd147 --- /dev/null +++ b/src/bin/calaos_server/IO/WODigital.cpp @@ -0,0 +1,282 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WODigital::WODigital(Params &p): + Output(p), + port(502), + value(false), + timer(NULL) +{ + host = get_param("host"); + + from_string(get_param("var"), address); + + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + if (!get_params().Exists("visible")) set_param("visible", "true"); + + if (get_param("knx") == "true") + address += WAGO_KNX_START_ADDRESS; + + //Do this before translating address to 841/849 + WagoMap::Instance(host, port).read_output_bits((UWord)address, 1, sigc::mem_fun(*this, &WODigital::WagoReadCallback)); + + if (get_param("wago_841") == "true" && get_param("knx") != "true") + address += WAGO_841_START_ADDRESS; + + Calaos::StartReadRules::Instance().addIO(); + + Utils::logger("output") << Priority::INFO << "WODigital::WODigital(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WODigital::~WODigital() +{ + if (timer) + { + delete timer; + timer = NULL; + } + + Utils::logger("output") << Priority::INFO << "WODigital::~WODigital(): Ok" << log4cpp::eol; +} + +void WODigital::WagoReadCallback(bool status, UWord address, int count, vector &values) +{ + if (!status) + { + Utils::logger("output") << Priority::ERROR << "WODigital(" << get_param("id") << "): Failed to read value" << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + if (!values.empty()) + value = values[0]; + + Utils::logger("output") << Priority::INFO << "WODigital(" << get_param("id") << "): Reading initial value: " << (value?"true":"false") << log4cpp::eol; + + string sig = "output "; + sig += get_param("id") + " "; + if (value) + sig += Utils::url_encode("state:true"); + else + sig += Utils::url_encode("state:false"); + IPC::Instance().SendEvent("events", sig); + + Calaos::StartReadRules::Instance().ioRead(); +} + +void WODigital::WagoWriteCallback(bool status, UWord address, bool _value) +{ + if (!status) + { + Utils::logger("output") << Priority::ERROR << "WODigital(" << get_param("id") << "): Failed to write value" << log4cpp::eol; + return; + } +} + +bool WODigital::set_value(bool val) +{ + // Setting a new value will also stop any running impulse actions + if (timer) + { + delete timer; + timer = NULL; + } + + return _set_value(val); +} + +bool WODigital::_set_value(bool val) +{ + bool ret; + + Utils::logger("output") << Priority::INFO << "WODigital(" << get_param("id") + << "): got action, " << ((val)?"True":"False") << log4cpp::eol; + + host = get_param("host"); + Utils::from_string(get_param("var"), address); + if (get_param("knx") == "true") + address += WAGO_KNX_START_ADDRESS; + if (get_param("wago_841") == "true" && get_param("knx") != "true") + address += WAGO_841_START_ADDRESS; + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + WagoMap::Instance(host, port).write_single_bit((UWord)address, val, sigc::mem_fun(*this, &WODigital::WagoWriteCallback)); + + value = val; + + EmitSignalOutput(); + + string sig = "output "; + sig += get_param("id") + " "; + if (value) + sig += Utils::url_encode("state:true"); + else + sig += Utils::url_encode("state:false"); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +void WODigital::impulse(int _time) +{ + Utils::logger("output") << Priority::INFO << "WODigital(" << get_param("id") + << "): got impulse action, staying true for " + << _time << "ms" << log4cpp::eol; + + time = _time; + set_value(true); + + if (timer) delete timer; + timer = new EcoreTimer((double)time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WODigital::TimerImpulse) ); +} + +void WODigital::TimerImpulse() +{ + _set_value(false); + + if (timer) + { + delete timer; + timer = NULL; + } +} + +void WODigital::impulse_extended(string pattern) +{ + /* Extended impulse to do blinking. + * It uses a pattern like this one: + * - " " + * - "loop " + * - "old" (switch to the old value) + * they can be combined together to create different blinking effects + */ + + if (timer) + { + delete timer; + timer = NULL; + } + blinks.clear(); + + Utils::logger("output") << Priority::INFO << "WODigital(" << get_param("id") + << "): got extended impulse action, parsing blinking pattern..." << log4cpp::eol; + + //Parse the string + vector tokens; + split(pattern, tokens); + + bool state = true; + int loop = -1; + for (int i = 0;i < tokens.size();i++) + { + if (is_of_type(tokens[i])) + { + int blinktime; + from_string(tokens[i], blinktime); + + BlinkInfo binfo; + binfo.state = state; + binfo.duration = blinktime; + binfo.next = blinks.size() + 1; + + blinks.push_back(binfo); + + Utils::logger("output") << Priority::DEBUG << "WODigital(" << get_param("id") + << ")::Parse : Add blink step " << ((binfo.state)?"True":"False") + << " for " << binfo.duration << "ms" << log4cpp::eol; + + state = !state; + } + else if (tokens[i] == "loop" && loop < 0) + { + //set loop mode to the next item + loop = blinks.size(); + + Utils::logger("output") << Priority::DEBUG << "WODigital(" + << get_param("id") << ")::Parse : Loop all next steps." << log4cpp::eol; + } + else if (tokens[i] == "old") + { + BlinkInfo binfo; + binfo.state = get_value_bool(); + binfo.duration = 0; + binfo.next = blinks.size() + 1; + + blinks.push_back(binfo); + + Utils::logger("output") << Priority::DEBUG << "WODigital(" << get_param("id") + << ")::Parse : Add blink step " << ((binfo.state)?"True":"False") + << log4cpp::eol; + } + } + + if (loop >= 0) + { + //tell the last item to loop + if (blinks.size() > loop) + blinks[blinks.size() - 1].next = loop; + } + + current_blink = 0; + + if (blinks.size() > 0) + { + _set_value(blinks[current_blink].state); + + timer = new EcoreTimer((double)blinks[current_blink].duration / 1000., + (sigc::slot)sigc::mem_fun(*this, &WODigital::TimerImpulseExtended) ); + } +} + +void WODigital::TimerImpulseExtended() +{ + //Stop timer + if (timer) + { + delete timer; + timer = NULL; + } + + //safety checks + if (current_blink < 0 || current_blink >= blinks.size()) + return; //Stops blinking + + current_blink = blinks[current_blink].next; + + //safety checks for new value + if (current_blink < 0 || current_blink >= blinks.size()) + return; //Stops blinking + + //Set new output state + _set_value(blinks[current_blink].state); + + //restart timer + timer = new EcoreTimer((double)blinks[current_blink].duration / 1000., + (sigc::slot)sigc::mem_fun(*this, &WODigital::TimerImpulseExtended) ); +} diff --git a/src/bin/calaos_server/IO/WODigital.h b/src/bin/calaos_server/IO/WODigital.h new file mode 100644 index 00000000..e9184238 --- /dev/null +++ b/src/bin/calaos_server/IO/WODigital.h @@ -0,0 +1,78 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WODigital_H +#define S_WODigital_H + +#include +#include +#include + +namespace Calaos +{ + +typedef struct _BlinkInfo +{ + bool state; + int duration; + int next; +} BlinkInfo; + +class WODigital : public Output +{ + private: + bool value; + int address; + + std::string host; + int port; + + EcoreTimer *timer; + int time; + + vector blinks; + int current_blink; + + void TimerImpulse(); + void TimerImpulseExtended(); + + bool _set_value(bool val); + + void WagoReadCallback(bool status, UWord address, int count, vector &values); + void WagoWriteCallback(bool status, UWord address, bool value); + + public: + WODigital(Params &p); + ~WODigital(); + + DATA_TYPE get_type() { return TBOOL; } + + bool set_value(bool val); + bool get_value_bool() { return value; } + + //impulse, time is in ms + void impulse(int time); + + // extended impulse using pattern + void impulse_extended(string pattern); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WOVolet.cpp b/src/bin/calaos_server/IO/WOVolet.cpp new file mode 100644 index 00000000..070868f2 --- /dev/null +++ b/src/bin/calaos_server/IO/WOVolet.cpp @@ -0,0 +1,376 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WOVolet::WOVolet(Params &p): + Output(p), + port(502), + sens(VSTOP), + old_sens(VUP), + state_volet("true"), + timer_impulse(NULL), + timer_end(NULL), + timer_up(NULL), + timer_down(NULL) +{ + host = get_param("host"); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + Utils::logger("output") << Priority::INFO << "WOVolet::WOVolet(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WOVolet::~WOVolet() +{ + if (timer_end) delete timer_end; + if (timer_impulse) delete timer_impulse; + if (timer_up) delete timer_up; + if (timer_down) delete timer_down; + + Utils::logger("output") << Priority::INFO << "WOVolet::~WOVolet(): Ok" << log4cpp::eol; +} + +/* List of actions where value is in percent +** up +** down +** stop +** toggle +** impulse up +** impulse down +*/ +bool WOVolet::set_value(std::string val) +{ + Utils::logger("output") << Priority::INFO << "WOVolet(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + Utils::from_string(get_param("var_up"), up_address); + Utils::from_string(get_param("var_down"), down_address); + Utils::from_string(get_param("time"), time); + + is_impulse_action = false; + + //handle knx and 841/849 + if (get_param("knx") == "true") + { + up_address += WAGO_KNX_START_ADDRESS; + down_address += WAGO_KNX_START_ADDRESS; + } + if (get_param("wago_841") == "true" && get_param("knx") != "true") + { + up_address += WAGO_841_START_ADDRESS; + down_address += WAGO_841_START_ADDRESS; + } + + if (get_params().Exists("impulse_time")) + Utils::from_string(get_param("impulse_time"), impulse_time); + else + impulse_time = -1; + + if (val == "up") + { + UpWait(); + } + else if (val == "down") + { + DownWait(); + } + else if (val == "toggle") + { + if (sens == VUP) + { + old_sens = VUP; + Down(); + } + else if (sens == VDOWN) + { + old_sens = VDOWN; + Up(); + } + else if (sens == VSTOP) + { + if (old_sens == VUP) + Down(); + else + Up(); + } + } + else if (val == "stop") + { + Stop(); + } + else if (val.compare(0, 11, "impulse up ") == 0) + { + is_impulse_action = true; + val.erase(0, 11); + Utils::from_string(val, impulse_action_time); + UpWait(); + cmd_state = "impulse up " + to_string(impulse_action_time); + } + else if (val.compare(0, 13, "impulse down ") == 0) + { + is_impulse_action = true; + val.erase(0, 13); + Utils::from_string(val, impulse_action_time); + DownWait(); + cmd_state = "impulse down " + to_string(impulse_action_time); + } + + EmitSignalOutput(); + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +void WOVolet::Up() +{ + if (sens != VSTOP) + { + Stop(); + return; + } + + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + sens = VUP; + + if (impulse_time > 0) + { + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVolet::TimerImpulse) ); + } + + if (is_impulse_action) + { + //We want to do an impulse action here + //We check if down time is bigger than impulse_action_time before firing + //the timer. + + if (impulse_action_time + impulse_time < time * 1000) + { + double _t = (double)(impulse_action_time + impulse_time) / 1000.; + EcoreTimer::singleShot(_t, sigc::mem_fun(*this, &WOVolet::Stop)); + } + } + else + { + //Only change cmd_state if are not in impulse_action mode + cmd_state = "up"; + } + + if (timer_up) delete timer_up; + timer_up = NULL; + + if (timer_end) delete timer_end; + timer_end = new EcoreTimer((double)time, + (sigc::slot)sigc::mem_fun(*this, &WOVolet::TimerEnd) ); +} + +void WOVolet::Down() +{ + if (sens != VSTOP) + { + Stop(); + return; + } + + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, true, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + sens = VDOWN; + + if (impulse_time > 0) + { + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVolet::TimerImpulse) ); + } + + if (is_impulse_action) + { + //We want to do an impulse action here + //We check if down time is bigger than impulse_action_time before firing + //the timer. + + if (impulse_action_time + impulse_time < time * 1000) + { + double _t = (double)(impulse_action_time + impulse_time) / 1000.; + EcoreTimer::singleShot(_t, sigc::mem_fun(*this, &WOVolet::Stop)); + } + } + else + { + //Only change cmd_state if are not in impulse_action mode + cmd_state = "down"; + } + + if (timer_down) delete timer_down; + timer_down = NULL; + + if (timer_end) delete timer_end; + timer_end = new EcoreTimer((double)time, + (sigc::slot)sigc::mem_fun(*this, &WOVolet::TimerEnd) ); +} + +void WOVolet::DownWait() +{ + if (sens != VSTOP) + { + if (sens == VDOWN) + { + Stop(); + return; + } + else + { + Stop(); + + cmd_state = "down"; + + double _t = 200; + if (impulse_time >= 0) _t += impulse_time; + timer_down = new EcoreTimer(_t / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVolet::Down) ); + } + + return; + } + + Down(); +} + +void WOVolet::UpWait() +{ + if (sens != VSTOP) + { + if (sens == VUP) + { + Stop(); + return; + } + else + { + Stop(); + + cmd_state = "up"; + + double _t = 200; + if (impulse_time >= 0) _t += impulse_time; + timer_up = new EcoreTimer(_t / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVolet::Up) ); + } + + return; + } + + Up(); +} + +void WOVolet::Stop() +{ + cmd_state = "stop"; + if (sens == VSTOP) return; + + if (impulse_time > 0) + { + if (get_param("stop_both") != "false") + { + //It seems that most shutter will stop with impulsion on both up and down + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, true, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + } + else + { + if (sens == VUP) + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + else + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, true, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + } + + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVolet::TimerImpulse) ); + } + else + { + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + } + + sens = VSTOP; + + if (timer_end) + { + delete timer_end; + timer_end = NULL; + } +} + +void WOVolet::TimerEnd() +{ + if (sens == VUP) + { + old_sens = VUP; + state_volet = "true"; + } + else if (sens == VDOWN) + { + old_sens = VDOWN; + state_volet = "false"; + } + + string t = cmd_state; + Stop(); + cmd_state = t; + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); +} + +void WOVolet::TimerImpulse() +{ + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVolet::WagoWriteCallback)); + + if (timer_impulse) + { + delete timer_impulse; + timer_impulse = NULL; + } +} + +void WOVolet::WagoWriteCallback(bool status, UWord address, bool value) +{ + if (!status) + { + Utils::logger("output") << Priority::ERROR << "WOVolet(" << get_param("id") << "): Failed to write value" << log4cpp::eol; + return; + } +} diff --git a/src/bin/calaos_server/IO/WOVolet.h b/src/bin/calaos_server/IO/WOVolet.h new file mode 100644 index 00000000..ab80aaf0 --- /dev/null +++ b/src/bin/calaos_server/IO/WOVolet.h @@ -0,0 +1,75 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WOVolet_H +#define S_WOVolet_H + +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class WOVolet : public Output +{ + private: + int up_address, down_address; + int time; + int sens, old_sens; + + std::string host; + int port; + + EcoreTimer *timer_end, *timer_impulse; + EcoreTimer *timer_up, *timer_down; + bool is_impulse_action; + int impulse_action_time; + int impulse_time; + + std::string state_volet, cmd_state; + + void TimerEnd(); + void TimerImpulse(); + + void Up(); + void Down(); + void UpWait(); + void DownWait(); + void Stop(); + + void WagoWriteCallback(bool status, UWord address, bool value); + + public: + WOVolet(Params &p); + ~WOVolet(); + + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual bool set_value(std::string val); + virtual std::string get_value_string() { return state_volet; } + + virtual std::string get_command_string() { return cmd_state; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WOVoletSmart.cpp b/src/bin/calaos_server/IO/WOVoletSmart.cpp new file mode 100644 index 00000000..8006d5bc --- /dev/null +++ b/src/bin/calaos_server/IO/WOVoletSmart.cpp @@ -0,0 +1,645 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +WOVoletSmart::WOVoletSmart(Params &p): + Output(p), + port(502), + sens(VSTOP), + old_sens(VUP), + timer_end(NULL), + timer_update(NULL), + timer_impulse(NULL), + timer_up(NULL), + timer_down(NULL), + calibrate(false), + timer_calib(NULL), + total_time(0), + time_up(0), + time_down(0), + position(0.0) +{ + host = get_param("host"); + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + + Utils::from_string(get_param("time"), total_time); + + if (!get_params().Exists("time_up")) + time_up = total_time; + else + Utils::from_string(get_param("time_up"), time_up); + + if (!get_params().Exists("time_down")) + time_down = total_time - 2; + else + Utils::from_string(get_param("time_down"), time_down); + + if (total_time < time_up) + total_time = time_up; + + if (get_params().Exists("var_save")) + { + Utils::logger("output") << Priority::INFO << "WOVoletSmart::WOVoletSmart(" << get_param("id") << "): Reading initial value" << log4cpp::eol; + + string cmd = "WAGO_INFO_VOLET_GET " + get_param("var_save"); + WagoMap::Instance(host, port).SendUDPCommand(cmd, sigc::mem_fun(*this, &WOVoletSmart::WagoUDPCommand_cb)); + + Calaos::StartReadRules::Instance().addIO(); + } + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + Utils::logger("output") << Priority::INFO << "WOVoletSmart::WOVoletSmart(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +WOVoletSmart::~WOVoletSmart() +{ + if (timer_end) delete timer_end; + if (timer_update) delete timer_update; + if (timer_impulse) delete timer_impulse; + if (timer_up) delete timer_up; + if (timer_down) delete timer_down; + + Utils::logger("output") << Priority::INFO << "WOVoletSmart::~WOVoletSmart(): Ok" << log4cpp::eol; +} + +void WOVoletSmart::WagoUDPCommand_cb(bool status, string command, string result) +{ + if (!status) + { + Utils::logger("output") << Priority::INFO << "WODali::WagoUdpCommand(): Error with request " << command << log4cpp::eol; + Calaos::StartReadRules::Instance().ioRead(); + + return; + } + + if (command.find("WAGO_INFO_VOLET_GET") != string::npos) + { + vector tokens; + split(result, tokens); + if (tokens.size() >= 3) + { + int _position; + from_string(tokens[2], _position); + writePosition((double)_position / 1000000.); + + if (position >= total_time) old_sens = VDOWN; + } + + string sig = "output "; + sig += get_param("id") + " "; + sig += Utils::url_encode(string("state:") + get_value_string()); + IPC::Instance().SendEvent("events", sig); + } + + Calaos::StartReadRules::Instance().ioRead(); +} + +/* List of actions where value is in percent +** up +** down +** stop +** set +** up +** down +** toggle +** impulse up +** impulse down +** calibrate +*/ +bool WOVoletSmart::set_value(std::string val) +{ + host = get_param("host"); + Utils::from_string(get_param("var_up"), up_address); + Utils::from_string(get_param("var_down"), down_address); + Utils::from_string(get_param("time"), total_time); + + Utils::logger("output") << Priority::INFO << "WOVoletSmart(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + //handle knx and 841/849 + if (get_param("knx") == "true") + { + up_address += WAGO_KNX_START_ADDRESS; + down_address += WAGO_KNX_START_ADDRESS; + } + if (get_param("wago_841") == "true" && get_param("knx") != "true") + { + up_address += WAGO_841_START_ADDRESS; + down_address += WAGO_841_START_ADDRESS; + } + + if (!get_params().Exists("time_up")) + time_up = total_time; + else + Utils::from_string(get_param("time_up"), time_up); + + if (!get_params().Exists("time_down")) + time_down = total_time - 2; + else + Utils::from_string(get_param("time_down"), time_down); + + if (get_params().Exists("port")) + Utils::from_string(get_param("port"), port); + if (get_params().Exists("impulse_time")) + Utils::from_string(get_param("impulse_time"), impulse_time); + else + impulse_time = -1; + + if (calibrate) return false; + + is_impulse_action = false; + + if (val == "up") + { + UpWait(); + } + else if (val == "down") + { + DownWait(); + } + else if (val == "toggle") + { + if (sens == VUP) + { + old_sens = VUP; + Down(); + } + else if (sens == VDOWN) + { + old_sens = VDOWN; + Up(); + } + else if (sens == VSTOP) + { + if (old_sens == VUP) + Down(); + else + Up(); + } + } + else if (val == "stop") + { + Stop(); + } + else if (val.compare(0, 11, "impulse up ") == 0) + { + is_impulse_action = true; + val.erase(0, 11); + from_string(val, impulse_action_time); + UpWait(); + cmd_state = "impulse up " + to_string(impulse_action_time); + } + else if (val.compare(0, 13, "impulse down ") == 0) + { + is_impulse_action = true; + val.erase(0, 13); + from_string(val, impulse_action_time); + DownWait(); + cmd_state = "impulse down " + to_string(impulse_action_time); + } + else if (val.compare(0, 4, "set ") == 0) + { + val.erase(0, 4); + int percent; + double new_position; + from_string(val, percent); + + cmd_state = "set " + to_string(percent); + + new_position = (double)percent * (double)time_up / 100.; + + if (new_position < readPosition()) + Up(new_position); + else if (new_position > readPosition()) + Down(new_position); + } + else if (val.compare(0, 3, "up ") == 0) + { + val.erase(0, 3); + int percent; + double new_position; + from_string(val, percent); + + cmd_state = "up " + to_string(percent); + + new_position = (double)percent * (double)time_up / 100.; + + Up(readPosition() - new_position); + } + else if (val.compare(0, 5, "down ") == 0) + { + val.erase(0, 5); + int percent; + double new_position; + from_string(val, percent); + + cmd_state = "down " + to_string(percent); + + new_position = (double)percent * (double)time_up / 100.; + + Down(readPosition() + new_position); + } + else if (val == "calibrate") + { + calibrate = true; + + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + + if (impulse_time >= 0) + { + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerImpulse) ); + } + + timer_calib = new EcoreTimer((double)total_time, + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerCalibrate) ); + } + + EmitSignalOutput(); + + string sig = "output "; + sig += get_param("id") + " "; + sig += string("state:") + url_encode(get_value_string()); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +void WOVoletSmart::Up(double new_value) +{ + if (calibrate) return; + + if (sens != VSTOP) + { + Stop(); + return; + } + + //calculate position and total_time for up_time range + double pos = readPosition(); + total_time = time_up; + + if (pos <= 0) return; + + if (timer_end) delete timer_end; + if (timer_update) delete timer_update; + + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + sens = VUP; + + start_time = ecore_time_get(); + start_position = pos; + + if (new_value < 0) + { + timer_end = new EcoreTimer(pos, + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerEnd) ); + } + else + { + timer_end = new EcoreTimer(pos - new_value, + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerEnd) ); + } + timer_update = new EcoreTimer((1. * (double)total_time / 100.), + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerUpdate) ); + + if (impulse_time > 0) + { + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerImpulse) ); + } + + if (is_impulse_action) + { + //We want to do an impulse action here + //We check if down time is bigger than impulse_action_time before firing + //the timer. + + double _t = pos; + if (new_value > 0) _t -= new_value; + if (impulse_action_time + impulse_time < _t * 1000) + { + double _t = (double)(impulse_action_time + impulse_time) / 1000.; + EcoreTimer::singleShot(_t, sigc::mem_fun(*this, &WOVoletSmart::Stop)); + } + } + else + { + //Only change cmd_state if are not in impulse_action mode + cmd_state = "up"; + } + + if (timer_up) delete timer_up; + timer_up = NULL; +} + +void WOVoletSmart::Down(double new_value) +{ + if (calibrate) return; + + if (sens != VSTOP) + { + Stop(); + return; + } + + //calculate position and total_time for down_time range + double pos = (readPosition() * (double)time_down) / (double) time_up; + total_time = time_down; + new_value = (new_value * (double)time_down) / (double) time_up; + + if (pos >= total_time) return; + + if (timer_end) delete timer_end; + if (timer_update) delete timer_update; + + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + sens = VDOWN; + + start_time = ecore_time_get(); + start_position = pos; + + if (new_value < 0) + { + timer_end = new EcoreTimer((double)total_time - pos, + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerEnd) ); + } + else + { + timer_end = new EcoreTimer(new_value - pos, + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerEnd) ); + } + timer_update = new EcoreTimer((1. * (double)total_time / 100.), + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerUpdate) ); + + if (impulse_time > 0) + { + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerImpulse) ); + } + + if (is_impulse_action) + { + //We want to do an impulse action here + //We check if down time is bigger than impulse_action_time before firing + //the timer. + + double _t = (double)total_time - pos; + if (new_value > 0) _t -= new_value; + if (impulse_action_time + impulse_time < _t * 1000) + { + double _t = (double)(impulse_action_time + impulse_time) / 1000.; + EcoreTimer::singleShot(_t, sigc::mem_fun(*this, &WOVoletSmart::Stop)); + } + } + else + { + //Only change cmd_state if are not in impulse_action mode + cmd_state = "down"; + } + + if (timer_down) delete timer_down; + timer_down = NULL; +} + +void WOVoletSmart::DownWait() +{ + if (calibrate) return; + + if (sens != VSTOP) + { + if (sens == VDOWN) + Stop(); + else + { + Stop(); + + cmd_state = "down"; + + double _t = 200; + if (impulse_time >= 0) _t += impulse_time; + timer_down = new EcoreTimer(_t / 1000., + (sigc::slot)sigc::bind(sigc::mem_fun(*this, &WOVoletSmart::Down), -1) ); + } + + return; + } + + Down(); +} + +void WOVoletSmart::UpWait() +{ + if (calibrate) return; + + if (sens != VSTOP) + { + if (sens == VUP) + Stop(); + else + { + Stop(); + + cmd_state = "up"; + + double _t = 200; + if (impulse_time >= 0) _t += impulse_time; + timer_up = new EcoreTimer(_t / 1000., + (sigc::slot)sigc::bind(sigc::mem_fun(*this, &WOVoletSmart::Up), -1) ); + } + + return; + } + + Up(); +} + +void WOVoletSmart::Stop() +{ + if (calibrate) return; + + cmd_state = "stop"; + if (sens == VSTOP) return; + + if (impulse_time > 0) + { + if (get_param("stop_both") != "false") + { + //It seems that most shutter will stop with impulsion on both up and down + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + } + else + { + if (sens == VUP) + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + else + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, true, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + } + + if (timer_impulse) delete timer_impulse; + timer_impulse = new EcoreTimer((double)impulse_time / 1000., + (sigc::slot)sigc::mem_fun(*this, &WOVoletSmart::TimerImpulse) ); + } + else + { + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + } + + if (timer_end) delete timer_end; + timer_end = NULL; + if (timer_update) delete timer_update; + timer_update = NULL; + + TimerUpdate(); + + sens = VSTOP; +} + +void WOVoletSmart::TimerUpdate() +{ + if (sens == VUP) + { + //set new position + double _t = start_position; + _t -= (ecore_time_get() - start_time); + writePosition(_t); + } + else if (sens == VDOWN) + { + //set new position and conver it to time_up range + double _t = start_position; + _t += (ecore_time_get() - start_time); + _t = (_t * (double)time_up) / (double)time_down; + writePosition(_t); + } + + string sig = "output "; + sig += get_param("id") + " "; + sig += string("state:") + url_encode(get_value_string()); + IPC::Instance().SendEvent("events", sig); +} + +void WOVoletSmart::TimerEnd() +{ + if (sens == VUP) + old_sens = VUP; + else if (sens == VDOWN) + old_sens = VDOWN; + + string t = cmd_state; + Stop(); + cmd_state = t; + + string sig = "output "; + sig += get_param("id") + " "; + sig += string("state:") + url_encode(get_value_string()); + IPC::Instance().SendEvent("events", sig); +} + +void WOVoletSmart::TimerImpulse() +{ + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + + if (timer_impulse) + { + delete timer_impulse; + timer_impulse = NULL; + } +} + +void WOVoletSmart::TimerCalibrate() +{ + WagoMap::Instance(host, port).write_single_bit((UWord)up_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + WagoMap::Instance(host, port).write_single_bit((UWord)down_address, false, sigc::mem_fun(*this, &WOVoletSmart::WagoWriteCallback)); + + if (timer_calib) + { + delete timer_calib; + timer_calib = NULL; + } + + writePosition(0.); + + calibrate = false; + + string sig = "output "; + sig += get_param("id") + " "; + sig += string("state:") + url_encode(get_value_string()); + IPC::Instance().SendEvent("events", sig); +} + +double WOVoletSmart::readPosition() +{ + return position; +} + +void WOVoletSmart::writePosition(double p) +{ + position = p; + + if (position < 0) position = 0; + if (position > time_up) position = time_up; + + if (get_params().Exists("var_save")) + { + string cmd = "WAGO_INFO_VOLET_SET " + get_param("var_save") + " " + to_string((int)(position * 1000000)); + WagoMap::Instance(host, port).SendUDPCommand(cmd); + } +} + +std::string WOVoletSmart::get_value_string() +{ + if (calibrate) + return "calibration"; + + if (sens == VUP) + return "up " + to_string(get_value_double()); + + if (sens == VDOWN) + return "down " + to_string(get_value_double()); + + if (sens == VSTOP) + return "stop " + to_string(get_value_double()); + + return " " + to_string(get_value_double()); +} + +void WOVoletSmart::WagoWriteCallback(bool status, UWord address, bool value) +{ + if (!status) + { + Utils::logger("output") << Priority::ERROR << "WOVoletSmart(" << get_param("id") << "): Failed to write value" << log4cpp::eol; + return; + } +} diff --git a/src/bin/calaos_server/IO/WOVoletSmart.h b/src/bin/calaos_server/IO/WOVoletSmart.h new file mode 100644 index 00000000..f279e726 --- /dev/null +++ b/src/bin/calaos_server/IO/WOVoletSmart.h @@ -0,0 +1,86 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WOVoletSmart_H +#define S_WOVoletSmart_H + +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class WOVoletSmart : public Output +{ + private: + std::string host; + int port; + + int total_time, time_up, time_down; + int up_address, down_address; + int sens, old_sens; + double position; // range: [0..100] + + EcoreTimer *timer_end, *timer_update, *timer_impulse; + EcoreTimer *timer_up, *timer_down, *timer_calib; + double start_time; + double start_position; + bool is_impulse_action; + int impulse_action_time; + int impulse_time; + bool calibrate; + + std::string cmd_state; + + void Up(double new_value = -1); + void Down(double new_value = -1); + void UpWait(); + void DownWait(); + void Stop(); + + double readPosition(); + void writePosition(double p); + + void TimerEnd(); + void TimerUpdate(); + void TimerImpulse(); + void TimerCalibrate(); + + void WagoWriteCallback(bool status, UWord address, bool value); + void WagoUDPCommand_cb(bool status, string command, string result); + + public: + //two address for this output, for the up and down + WOVoletSmart(Params &p); + ~WOVoletSmart(); + + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual bool set_value(std::string val); + virtual std::string get_value_string(); + virtual double get_value_double() { return (int)(readPosition() * 100. / (double)time_up); } + virtual std::string get_command_string() { return cmd_state; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WagoCtrl.cpp b/src/bin/calaos_server/IO/WagoCtrl.cpp new file mode 100644 index 00000000..79b0c323 --- /dev/null +++ b/src/bin/calaos_server/IO/WagoCtrl.cpp @@ -0,0 +1,243 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; +using namespace Utils; + +WagoCtrl::WagoCtrl(std::string h, int p): host(h), port(p) +{ + mbus = mbus_init(NULL); + if (host == "") host = "127.0.0.1"; + + if (!mbus) + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::WagoCtrl(" << host << ", " << port << "): Cant init modbus structure !" << log4cpp::eol; + + Utils::logger("wago") << Priority::INFO << "WagoCtrl::WagoCtrl(" << host << ", " << port << "): Ok" << log4cpp::eol; +} + +WagoCtrl::~WagoCtrl() +{ + if (is_connected()) + Disconnect(); + if (mbus) + mbus_free(mbus); + + Utils::logger("wago") << Priority::INFO << "WagoCtrl::~WagoCtrl(): Ok" << log4cpp::eol; +} + +bool WagoCtrl::getBit(unsigned char mot, int pos) +{ + return ((mot >> pos) & 0x01); +} + +void WagoCtrl::setBit(unsigned char &mot, int pos, bool val) +{ + if (val) + mot = mot | (0x01 << pos); + else + { + if (getBit(mot, pos)) + mot = mot ^ (0x01 << pos); + } +} + +bool WagoCtrl::Connect() +{ + if (is_connected()) mbus_close(mbus); + if (mbus_connect(mbus, host.c_str(), (mbus_uword)port, 0)) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::Connect(): Can't connect..." << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::Connect(): Ok" << log4cpp::eol; + return true; + } +} + +void WagoCtrl::Disconnect() +{ + mbus_close(mbus); + Utils::logger("wago") << Priority::INFO << "WagoCtrl::Disconnect(): Ok" << log4cpp::eol; +} + +bool WagoCtrl::is_connected() +{ + if (mbus_connected(mbus) == 1) + return true; + else + return false; +} + +bool WagoCtrl::read_bits(UWord address, int nb, vector &values) +{ + if (!is_connected()) return false; + + int data_size = nb / 8 + nb % 8; + mbus_ubyte *data = new mbus_ubyte[data_size]; + memset(data, 0, sizeof(mbus_ubyte) * data_size); + int ret = mbus_cmd_read_coil_status(mbus, 1, (mbus_uword)address, (mbus_uword)nb, data); + + for (int i = 0;i < nb;i++) + values.push_back(getBit(*(data + i / 8), i % 8)); + + delete[] data; + + if (ret != 0) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::read_bits(): Error reading bits!" << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::read_bits(" << address << "," << nb <<"): Ok" << log4cpp::eol; + return true; + } +} + +bool WagoCtrl::write_single_bit(UWord address, bool val) +{ + if (!is_connected()) return false; + + mbus_uword data = 0x0000; + + if (val) data = 0xFF00; + + int ret = mbus_cmd_force_single_coil(mbus, 1, (mbus_uword)address, data); + + if (ret != 0) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::write_single_bit(): Error writing single bit!" << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::write_single_bit(): Ok" << log4cpp::eol; + return true; + } +} + +bool WagoCtrl::read_single_output_bit(UWord address) +{ + vector v; + + if (!read_bits(address + 0x200, 1, v)) + return false; + + if (!v.empty()) + return v[0]; + + return false; +} + +bool WagoCtrl::write_multiple_bits(UWord address, int nb, vector &values) +{ + if (!is_connected()) return false; + + mbus_ubyte *data = new mbus_ubyte[nb / 8 + nb % 8]; + memset(data, '\0', nb/8); + + for (int i = 0;i < nb;i++) + setBit(*data, i, values[i]); + + int ret = mbus_cmd_force_multiple_coils(mbus, 1, (mbus_uword)address, (mbus_uword)nb, data); + + delete[] data; + + if (ret != 0) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::write_multiple_bits(): Error writing multiple words... !" << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::write_multiple_bits(): Ok" << log4cpp::eol; + return true; + } +} + +bool WagoCtrl::read_words(UWord address, int nb, vector &values) +{ + if (!is_connected()) return false; + + mbus_uword *data = new mbus_uword[nb]; + int ret = mbus_cmd_read_holding_registers(mbus, 1, (mbus_uword)address, (mbus_uword)nb, data); + + for (int i = 0;i < nb;i++) + values.push_back(data[i]); + + delete[] data; + + if (ret != 0) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::read_words(): Error reading words... !" << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::read_words(): Ok" << log4cpp::eol; + return true; + } +} + +bool WagoCtrl::write_single_word(UWord address, UWord val) +{ + if (!is_connected()) return false; + + int ret = mbus_cmd_preset_single_register(mbus, 1, (mbus_uword)address, val); + + if (ret != 0) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::write_single_word(): Error writing single word... !" << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::write_single_word(): Ok" << log4cpp::eol; + return true; + } +} + +bool WagoCtrl::write_multiple_words(UWord address, int nb, vector &values) +{ + if (!is_connected()) return false; + + mbus_uword *data = new mbus_uword[nb]; + for (int i = 0;i < nb;i++) + data[i] = values[i]; + + int ret = mbus_cmd_preset_multiple_registers(mbus, 1, (mbus_uword)address, (mbus_uword)nb, data); + + delete[] data; + + if (ret != 0) + { + Utils::logger("wago") << Priority::ERROR << "WagoCtrl::write_multiple_words(): Error writing multiple words... !" << log4cpp::eol; + return false; + } + else + { + Utils::logger("wago") << Priority::INFO << "WagoCtrl::write_multiple_words(): Ok" << log4cpp::eol; + return true; + } +} diff --git a/src/bin/calaos_server/IO/WagoCtrl.h b/src/bin/calaos_server/IO/WagoCtrl.h new file mode 100644 index 00000000..54552ef3 --- /dev/null +++ b/src/bin/calaos_server/IO/WagoCtrl.h @@ -0,0 +1,66 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WAGOCTRL_H +#define S_WAGOCTRL_H + +#include +#include + +namespace Calaos +{ + +class WagoCtrl +{ + protected: + std::string host; + int port; + + mbus_struct *mbus; + + bool getBit(unsigned char mot, int pos); + void setBit(unsigned char &mot, int pos, bool val); + public: + WagoCtrl(std::string host, int port = 502); + ~WagoCtrl(); + + bool Connect(); + void Disconnect(); + bool is_connected(); + + //bits + bool read_bits(Utils::UWord address, int nb, vector &values); + bool write_single_bit(Utils::UWord address, bool val); + bool read_single_output_bit(Utils::UWord address); + bool write_multiple_bits(Utils::UWord address, int nb, vector &values); + + //Words + bool read_words(Utils::UWord address, int nb, vector &values); + bool write_single_word(Utils::UWord address, Utils::UWord val); + bool write_multiple_words(Utils::UWord address, int nb, vector &values); + + void set_host(std::string &h) { host = h; } + std::string get_host() { return host; } + void set_port(int p) { port = p; } + int get_port() { return port; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/WagoMap.cpp b/src/bin/calaos_server/IO/WagoMap.cpp new file mode 100644 index 00000000..8bec2bdd --- /dev/null +++ b/src/bin/calaos_server/IO/WagoMap.cpp @@ -0,0 +1,629 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include + +using namespace Utils; +using namespace Calaos; +using namespace CalaosNetwork; + +static Eina_Bool _ecore_con_handler_data_get(void *data, int type, Ecore_Con_Event_Server_Data *ev); + +WagoMapManager WagoMap::wagomaps; + +WagoMap::WagoMap(std::string h, int p): + host(h), + port(p), + quit_thread(false), + mutex_queue(false), + mutex_lock(false), + udp_timer(NULL), + udp_timeout_timer(NULL), + econ(NULL) +{ + input_bits.resize(MBUS_MAX_BITS, false); + output_bits.resize(MBUS_MAX_BITS, false); + input_words.resize(MBUS_MAX_WORDS, 0); + output_words.resize(MBUS_MAX_WORDS, 0); + + sigIPC.connect(sigc::mem_fun(*this, &WagoMap::IPCCallbacks)); + IPC::Instance().AddHandler("WagoMap", "*", sigIPC, NULL); + + event_handler_data_get = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_ecore_con_handler_data_get, this); + + econ = ecore_con_server_connect(ECORE_CON_REMOTE_UDP, + host.c_str(), + WAGO_LISTEN_PORT, + this); + ecore_con_server_data_set(econ, this); + + heartbeat_timer = new EcoreTimer(0.1, (sigc::slot)sigc::mem_fun(*this, &WagoMap::WagoHeartBeatTick)); + mbus_heartbeat_timer = new EcoreTimer(10.0, (sigc::slot)sigc::mem_fun(*this, &WagoMap::WagoModbusHeartBeatTick)); + + Start(); + + Utils::logger("wago") << Priority::INFO << "WagoMap::WagoMap(" << host << "," << port << "): Ok" << log4cpp::eol; +} + +WagoMap::~WagoMap() +{ + quit_thread = true; + mutex_lock.condition_wake(); + + ecore_event_handler_del(event_handler_data_get); + ecore_con_server_del(econ); + + delete heartbeat_timer; + delete mbus_heartbeat_timer; + + End(); + + Utils::logger("wago") << Priority::INFO << "WagoMap::~WagoMap(): Ok" << log4cpp::eol; +} + +WagoMap &WagoMap::Instance(std::string h, int p) +{ + for (int i = 0;i < wagomaps.maps.size();i++) + { + if (wagomaps.maps[i]->get_host() == h && + wagomaps.maps[i]->get_port() == p) + { + return *wagomaps.maps[i]; + } + } + + // Create a new wago mapping object + WagoMap *mwago = new WagoMap(h, p); + wagomaps.maps.push_back(mwago); + + return *wagomaps.maps[wagomaps.maps.size() - 1]; +} + +void WagoMap::stopAllWagoMaps() +{ + std::for_each(wagomaps.maps.begin(), wagomaps.maps.end(), Delete()); + wagomaps.maps.clear(); +} + +void WagoMap::WagoModbusHeartBeatTick() +{ + read_bits(0, 1, sigc::mem_fun(*this, &WagoMap::WagoModbusReadHeartbeatCallback)); +} + +void WagoMap::WagoModbusReadHeartbeatCallback(bool status, UWord address, int count, vector &values) +{ + if (!status) + Utils::logger("wago") << Priority::ERROR << "WagoMap::WagoModbusReadHeartbeatCallback(): failed to read !" << log4cpp::eol; +} + +void WagoMap::IPCCallbacks(string source, string emission, void *listener_data, void *sender_data) +{ + if (source != "WagoMap") return; + + WagoMapCmd *cmd = reinterpret_cast(sender_data); + if (!cmd) return; + + if (emission == "mbus,read,bits") + { + MultiBits_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->multiBits_cb); + sig.emit(cmd->status, cmd->address, cmd->count, cmd->values_bits); + } + else if (emission == "mbus,read,outbits") + { + MultiBits_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->multiBits_cb); + sig.emit(cmd->status, cmd->address, cmd->count, cmd->values_bits); + } + else if (emission == "mbus,write,bit") + { + SingleBit_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->singleBit_cb); + sig.emit(cmd->status, cmd->address, cmd->value_bit); + } + else if (emission == "mbus,write,bits") + { + MultiBits_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->multiBits_cb); + sig.emit(cmd->status, cmd->address, cmd->count, cmd->values_bits); + } + if (emission == "mbus,read,words") + { + MultiWords_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->multiWords_cb); + sig.emit(cmd->status, cmd->address, cmd->count, cmd->values_words); + } + else if (emission == "mbus,read,outwords") + { + MultiWords_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->multiWords_cb); + sig.emit(cmd->status, cmd->address, cmd->count, cmd->values_words); + } + else if (emission == "mbus,write,word") + { + SingleBit_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->singleBit_cb); + sig.emit(cmd->status, cmd->address, cmd->value_bit); + } + else if (emission == "mbus,write,words") + { + MultiWords_signal sig; + if (cmd->mapSignals) + sig.connect(cmd->mapSignals->multiWords_cb); + sig.emit(cmd->status, cmd->address, cmd->count, cmd->values_words); + } + + cmd->deleteSignals(); +} + +void WagoMap::read_bits(UWord address, int nb, MultiBits_cb callback) +{ + WagoMapCmd cmd(MBUS_READ_BITS, address); + cmd.createSignals(); + + cmd.count = nb; + cmd.mapSignals->multiBits_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::read_output_bits(UWord address, int nb, MultiBits_cb callback) +{ + WagoMapCmd cmd(MBUS_READ_OUTBITS, address); + cmd.createSignals(); + + cmd.count = nb; + cmd.mapSignals->multiBits_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::write_single_bit(UWord address, bool val, SingleBit_cb callback) +{ + WagoMapCmd cmd(MBUS_WRITE_BIT, address); + cmd.createSignals(); + + cmd.value_bit = val; + cmd.mapSignals->singleBit_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::write_multiple_bits(UWord address, int nb, vector &values, MultiBits_cb callback) +{ + WagoMapCmd cmd(MBUS_WRITE_BITS, address); + cmd.createSignals(); + + cmd.values_bits = values; + cmd.count = nb; + cmd.mapSignals->multiBits_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::read_words(UWord address, int nb, MultiWords_cb callback) +{ + WagoMapCmd cmd(MBUS_READ_WORDS, address); + cmd.createSignals(); + + cmd.count = nb; + cmd.mapSignals->multiWords_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::read_output_words(UWord address, int nb, MultiWords_cb callback) +{ + WagoMapCmd cmd(MBUS_READ_OUTWORDS, address); + cmd.createSignals(); + + cmd.count = nb; + cmd.mapSignals->multiWords_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::write_single_word(UWord address, UWord val, SingleWord_cb callback) +{ + WagoMapCmd cmd(MBUS_WRITE_WORD, address); + cmd.createSignals(); + + cmd.value_word = val; + cmd.mapSignals->singleWord_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::write_multiple_words(UWord address, int nb, vector &values, MultiWords_cb callback) +{ + WagoMapCmd cmd(MBUS_WRITE_WORDS, address); + cmd.createSignals(); + + cmd.values_words = values; + cmd.count = nb; + cmd.mapSignals->multiWords_cb = callback; + + queueAndSendCommand(cmd); +} + +void WagoMap::queueAndSendCommand(WagoMapCmd cmd) +{ + mutex_queue.lock(); + mbus_commands.push(cmd); + mutex_queue.unlock(); + + mutex_lock.condition_wake(); +} + +void WagoMap::ThreadProc() +{ + WagoCtrl wago(host, port); + + while (true) + { + mutex_queue.lock(); + int queue_count = mbus_commands.size(); + mutex_queue.unlock(); + + if (queue_count <= 0) + mutex_lock.condition_wait(); + + if (quit_thread) + break; + + if (!wago.is_connected()) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, Connecting to " << host << log4cpp::eol; + wago.Connect(); + } + + mutex_queue.lock(); + if (mbus_commands.size() <= 0) + { + mutex_queue.unlock(); + continue; + } + WagoMapCmd cmd = mbus_commands.front(); + mbus_commands.pop(); + mutex_queue.unlock(); + + switch(cmd.command) + { + case MBUS_READ_BITS: + { + cmd.status = true; + if (!wago.read_bits(cmd.address, cmd.count, cmd.values_bits)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.read_bits(cmd.address, cmd.count, cmd.values_bits)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,read,bits", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_READ_OUTBITS: + { + cmd.status = true; + if (!wago.read_bits(cmd.address + 0x200, cmd.count, cmd.values_bits)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.read_bits(cmd.address + 0x200, cmd.count, cmd.values_bits)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,read,outbits", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_WRITE_BIT: + { + cmd.status = true; + if (!wago.write_single_bit(cmd.address, cmd.value_bit)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.write_single_bit(cmd.address, cmd.value_bit)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,write,bit", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_WRITE_BITS: + { + cmd.status = true; + if (!wago.write_multiple_bits(cmd.address, cmd.count, cmd.values_bits)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.write_multiple_bits(cmd.address, cmd.count, cmd.values_bits)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,write,bits", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_READ_WORDS: + { + cmd.status = true; + if (!wago.read_words(cmd.address, cmd.count, cmd.values_words)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.read_words(cmd.address, cmd.count, cmd.values_words)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,read,words", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_READ_OUTWORDS: + { + cmd.status = true; + if (!wago.read_words(cmd.address + 0x200, cmd.count, cmd.values_words)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.read_words(cmd.address + 0x200, cmd.count, cmd.values_words)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,read,outwords", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_WRITE_WORD: + { + cmd.status = true; + if (!wago.write_single_word(cmd.address, cmd.value_word)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.write_single_word(cmd.address, cmd.value_word)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,write,word", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + case MBUS_WRITE_WORDS: + { + cmd.status = true; + if (!wago.write_multiple_words(cmd.address, cmd.count, cmd.values_words)) + { + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, reconnecting to " << host << log4cpp::eol; + wago.Connect(); + if (!wago.write_multiple_words(cmd.address, cmd.count, cmd.values_words)) + { + cmd.status = false; + Utils::logger("wago") << Priority::DEBUG << "WagoMap: MBUS, failed to send request" << log4cpp::eol; + } + } + + IPC::Instance().SendEvent("WagoMap", "mbus,write,words", IPCData(new WagoMapCmd(cmd), new DeletorT), true); + } + break; + } + } +} + +Eina_Bool _ecore_con_handler_data_get(void *data, int type, Ecore_Con_Event_Server_Data *ev) +{ + WagoMap *w = reinterpret_cast(data); + + if (ev && ev->server && (w != ecore_con_server_data_get(ev->server))) + { + return ECORE_CALLBACK_PASS_ON; + } + + if (w) + { + string d((char *)ev->data, ev->size); + + w->udpRequest_cb(true, d); + } + else + { + Utils::logger("wago") << Priority::CRIT + << "WagoMap:(): _ecore_con_handler_data_get, failed to get WagoMap object !" + << log4cpp::eol; + } + + return ECORE_CALLBACK_RENEW; +} + +void WagoMap::SendUDPCommand(string command, WagoUdp_cb callback) +{ + bool restart_timer = false; + + Utils::logger("wago") << Priority::DEBUG << "WagoMap: UDP, sending command: " << command << log4cpp::eol; + + if (udp_commands.empty()) + restart_timer = true; + + WagoMapCmd cmd(CALAOS_UDP_SEND, 0); + cmd.createSignals(); + + cmd.udp_command = command; + cmd.mapSignals->wagoUdp_cb = callback; + + udp_commands.push(cmd); + + if (restart_timer) + { + if (udp_timer) delete udp_timer; + udp_timer = new EcoreTimer(50. / 1000., (sigc::slot)sigc::mem_fun(*this, &WagoMap::UDPCommand_cb)); + } +} + +void WagoMap::SendUDPCommand(string command) +{ + bool restart_timer = false; + + Utils::logger("wago") << Priority::DEBUG << "WagoMap: UDP, sending command: " << command << log4cpp::eol; + + if (udp_commands.empty()) + restart_timer = true; + + WagoMapCmd cmd(CALAOS_UDP_SEND, 0); + + cmd.no_callback = true; + cmd.udp_command = command; + + udp_commands.push(cmd); + + if (restart_timer) + { + if (udp_timer) delete udp_timer; + udp_timer = new EcoreTimer(50. / 1000., (sigc::slot)sigc::mem_fun(*this, &WagoMap::UDPCommand_cb)); + } +} + +void WagoMap::udpRequest_cb(bool status, string res) +{ + if (udp_timeout_timer) + { + delete udp_timeout_timer; + udp_timeout_timer = NULL; + } + + WagoMapCmd &cmd = udp_commands.front(); + Utils::logger("wago") << Priority::DEBUG << "WagoMap: UDP, getting result for command " << cmd.udp_command << log4cpp::eol; + + cmd.udp_result = res; + + WagoUdp_signal sig; + if (cmd.mapSignals) + sig.connect(cmd.mapSignals->wagoUdp_cb); + sig.emit(status, cmd.udp_command, cmd.udp_result); + + udp_commands.pop(); +} + +void WagoMap::UDPCommandTimeout_cb() +{ + Utils::logger("wago") << Priority::DEBUG << "WagoMap: UDP, Timeout ! " << log4cpp::eol; + + udpRequest_cb(false, ""); +} + +void WagoMap::UDPCommand_cb() +{ + if (!udp_commands.empty() && udp_commands.front().inProgress) + return; + + if (udp_commands.empty()) + { + delete udp_timer; + udp_timer = NULL; + + return; + } + + WagoMapCmd &cmd = udp_commands.front(); + + cmd.inProgress = true; + + Utils::logger("wago") << Priority::DEBUG << "WagoMap: UDP, real sending command: " << cmd.udp_command << log4cpp::eol; + + if (!udp_timeout_timer && !cmd.no_callback) + udp_timeout_timer = new EcoreTimer(2.0, (sigc::slot)sigc::mem_fun(*this, &WagoMap::UDPCommandTimeout_cb)); + + ecore_con_server_send(econ, cmd.udp_command.c_str(), cmd.udp_command.length() + 1); + + if (cmd.no_callback) + udp_commands.pop(); +} + +void WagoMap::WagoHeartBeatTick() +{ + if (heartbeat_timer->getTime() < 10.0) + heartbeat_timer->Reset(10.0); + + bool found_ip = false; + string ip; + for (int j = 0;j < 4 && !found_ip;j++) + { + if (j == 3) + ip = TCPSocket::GetLocalIP("lo"); //This is only for wago_simulator + else + ip = TCPSocket::GetLocalIP("eth" + Utils::to_string(j)); + + if (ip == "") continue; + vector splitter, splitter2; + Utils::split(ip, splitter, ".", 4); + Utils::split(get_host(), splitter2, ".", 4); + if (splitter[0] == splitter2[0] && + splitter[1] == splitter2[1] && + splitter[2] == splitter2[2]) + found_ip = true; + } + + if (found_ip) + { + string cmd = "WAGO_SET_SERVER_IP "; + cmd += ip; + + SendUDPCommand(cmd); + + cmd = "WAGO_HEARTBEAT"; + SendUDPCommand(cmd); + } + else + { + Utils::logger("root") << Priority::DEBUG + << "WagoHeartbeat: No interface found corresponding to network : " + << get_host() << log4cpp::eol; + } + + +} diff --git a/src/bin/calaos_server/IO/WagoMap.h b/src/bin/calaos_server/IO/WagoMap.h new file mode 100644 index 00000000..4ddcddc0 --- /dev/null +++ b/src/bin/calaos_server/IO/WagoMap.h @@ -0,0 +1,199 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_WAGOMAP_H +#define S_WAGOMAP_H + +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +typedef sigc::slot &> MultiBits_cb; +typedef sigc::signal &> MultiBits_signal; + +typedef sigc::slot SingleBit_cb; +typedef sigc::signal SingleBit_signal; + +typedef sigc::slot &> MultiWords_cb; +typedef sigc::signal &> MultiWords_signal; + +typedef sigc::slot SingleWord_cb; +typedef sigc::signal SingleWord_signal; + +typedef sigc::slot WagoUdp_cb; +typedef sigc::signal WagoUdp_signal; + +enum { MBUS_NONE = 0, MBUS_READ_BITS, MBUS_READ_OUTBITS, MBUS_WRITE_BIT, MBUS_WRITE_BITS, + MBUS_READ_WORDS, MBUS_READ_OUTWORDS, MBUS_WRITE_WORD, MBUS_WRITE_WORDS, + CALAOS_UDP_SEND }; + +#define MBUS_MAX_BITS 512 +#define MBUS_MAX_WORDS 512 + +class WagoMapSignals: public sigc::trackable +{ + public: + WagoMapSignals() + { } + + MultiBits_cb multiBits_cb; + SingleBit_cb singleBit_cb; + MultiWords_cb multiWords_cb; + SingleWord_cb singleWord_cb; + + WagoUdp_cb wagoUdp_cb; +}; + +class WagoMapCmd +{ + public: + WagoMapCmd(int _command, UWord _address): + command(_command), + address(_address), + no_callback(false), + inProgress(false), + mapSignals(NULL) + { } + + int command; + + bool status; + + UWord address; + int count; + + bool value_bit; + vector values_bits; + UWord value_word; + vector values_words; + + bool no_callback; + string udp_command; + string udp_result; + bool inProgress; + + WagoMapSignals *mapSignals; + + void createSignals() { if (!mapSignals) mapSignals = new WagoMapSignals(); } + void deleteSignals() { DELETE_NULL(mapSignals); } +}; + +class WagoMap; +class WagoMapManager +{ + public: + ~WagoMapManager() + { + std::for_each(maps.begin(), maps.end(), Delete()); + maps.clear(); + } + + vector maps; +}; + +class WagoMap: public CThread +{ + + protected: + std::string host; + int port; + + bool quit_thread; + + vector input_bits; + vector output_bits; + + vector input_words; + vector output_words; + + WagoMap(std::string host, int port); + + static WagoMapManager wagomaps; + + queue mbus_commands; + Mutex mutex_queue; + Mutex mutex_lock; + sigc::signal sigIPC; + + /* Heartbeat timer that do a modbus query to avoid TCP disconnection with the Wago */ + EcoreTimer *mbus_heartbeat_timer; + + queue udp_commands; + EcoreTimer *udp_timer; + EcoreTimer *udp_timeout_timer; + Ecore_Con_Server *econ; + Ecore_Event_Handler *event_handler_data_get; + + void queueAndSendCommand(WagoMapCmd cmd); + + /* Timer callback for udp commands */ + void UDPCommand_cb(); + void UDPCommandTimeout_cb(); + + EcoreTimer *heartbeat_timer; + + void WagoHeartBeatTick(); + void WagoModbusHeartBeatTick(); + + void WagoModbusReadHeartbeatCallback(bool status, UWord address, int count, vector &values); + + public: + ~WagoMap(); + + void IPCCallbacks(string source, string emission, void *listener_data, void *sender_data); + + //Singleton + static WagoMap &Instance(std::string host, int port); + static vector &get_maps() { return wagomaps.maps; } + static void stopAllWagoMaps(); + + //bits + void read_bits(UWord address, int nb, MultiBits_cb callback); + void read_output_bits(UWord address, int nb, MultiBits_cb callback); + void write_single_bit(UWord address, bool val, SingleBit_cb callback); + void write_multiple_bits(UWord address, int nb, vector &values, MultiBits_cb callback); + + //Words + void read_words(UWord address, int nb, MultiWords_cb callback); + void read_output_words(UWord address, int nb, MultiWords_cb callback); + void write_single_word(UWord address, UWord val, SingleWord_cb callback); + void write_multiple_words(UWord address, int nb, vector &values, MultiWords_cb callback); + + std::string get_host() { return host; } + int get_port() { return port; } + + //Send a command through the timer + void SendUDPCommand(string cmd, WagoUdp_cb callback); + void SendUDPCommand(string cmd); + + /* Private stuff used by C callbacks */ + void udpRequest_cb(bool status, string res); + + virtual void ThreadProc(); +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/X10Output.cpp b/src/bin/calaos_server/IO/X10Output.cpp new file mode 100644 index 00000000..1810d9a8 --- /dev/null +++ b/src/bin/calaos_server/IO/X10Output.cpp @@ -0,0 +1,253 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +X10Output::X10Output(Params &p): + Output(p), + state_value(false), + old_value(-1), + value(-1) +{ + housecode = get_param("code"); + state_value = X10Command("onstate"); + int _val; + X10Command("dimstate", &_val); + _val = 22 - _val + 1; + if (state_value) + { + value = (int)((double)(_val * 101.) / 22.); + value--; + } + else + { + old_value = (int)((double)(_val * 101.) / 22.); + old_value--; + } + + if (!get_params().Exists("visible")) set_param("visible", "true"); + + Utils::logger("output") << Priority::INFO << "X10Output::X10Output(" << get_param("id") << "): Ok" << log4cpp::eol; +} + +X10Output::~X10Output() +{ + Utils::logger("output") << Priority::INFO << "X10Output::~X10Output(): Ok" << log4cpp::eol; +} + +/* List of actions where value is in percent +** set +** up +** down +** on +** off +** toggle +*/ +bool X10Output::set_value(std::string val) +{ + bool ret; + housecode = get_param("code"); + + Utils::logger("output") << Priority::INFO << "X10Output(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + if (val == "on" || val == "true") + { + ret = X10Command("on"); + state_value = true; + if (ret && state_value) + { + if (old_value == -1) + value = 0; + else + value = old_value; + } + + cmd_state = "on"; + } + else if (val == "off" || val == "false") + { + ret = X10Command("off"); + state_value = false; + + cmd_state = "off"; + } + else if (val == "toggle") + { + if (state_value) state_value = false; else state_value = true; + if (state_value) + { + ret = X10Command("on"); + cmd_state = "on"; + } + else + { + ret = X10Command("off"); + cmd_state = "off"; + } + if (ret && state_value) + { + if (old_value == -1) + value = 0; + else + value = old_value; + } + } + else if (val.compare(0, 4, "set ") == 0) + { + val.erase(0, 4); + int percent = atoi(val.c_str()); + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "set " + Utils::to_string(percent); + + int v = (int)(((double)(percent + 1.) * 22.) / 101.); + v = 22 - v + 1; + if (v < 1) v = 1; if (v > 22) v = 22; + ret = X10Command("dimb", &v); + if (ret) value = percent; + } + else if (val.compare(0, 3, "up ") == 0) + { + val.erase(0, 3); + int percent = atoi(val.c_str()); + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "up " + Utils::to_string(percent); + + int v = (int)(((double)(percent + 1.) * 22.) / 101.); + v = 22 - v + 1; + if (v < 1) v = 1; if (v > 22) v = 22; + ret = X10Command("bright", &v); + if (ret) value = percent; + } + else if (val.compare(0, 5, "down ") == 0) + { + val.erase(0, 5); + int percent = atoi(val.c_str()); + if (percent < 0) percent = 0; + if (percent > 100) percent = 100; + + cmd_state = "down " + Utils::to_string(percent); + + int v = (int)(((double)(percent + 1.) * 22.) / 101.); + v = 22 - v + 1; + if (v < 1) v = 1; if (v > 22) v = 22; + ret = X10Command("dim", &v); + if (ret) value = percent; + } + + if (state_value == false) + { + old_value = value; + value = -1; + } + else if (value == -1) + value = old_value; + + return ret; +} + +bool X10Output::X10Command(std::string cmd, int *dval) +{ + vector argv; + + if (cmd == "on") + { + string cmd_line = "heyu on " + housecode; + ecore_exe_run(cmd_line.c_str(), NULL); + } + else if (cmd == "off") + { + string cmd_line = "heyu off " + housecode; + ecore_exe_run(cmd_line.c_str(), NULL); + } + else if (cmd == "dimb") + { + string cmd_line = "heyu dimb " + housecode + " " + Utils::to_string(*dval); + ecore_exe_run(cmd_line.c_str(), NULL); + } + else if (cmd == "bright") + { + string cmd_line = "heyu bright " + housecode + " " + Utils::to_string(*dval); + ecore_exe_run(cmd_line.c_str(), NULL); + } + else if (cmd == "dim") + { + string cmd_line = "heyu dim " + housecode + " " + Utils::to_string(*dval); + ecore_exe_run(cmd_line.c_str(), NULL); + } + else if (cmd == "onstate") + { + //setup params for heyu + string cmd = "heyu onstate " + housecode; + string std_out; + int _ret = -1; + + //TO FIX: Need to fix that using ecore_exe... + //Glib::spawn_command_line_sync(cmd, &std_out, NULL, &_ret); + + if (_ret != 0) + { + //reload the heyu engine + string cmd_line = "heyu engine"; + ecore_exe_run(cmd_line.c_str(), NULL); + + //then try again + // Glib::spawn_command_line_sync(cmd, &std_out, NULL, &_ret); + } + + if (std_out.empty()) return false; + if (std_out.compare(0, 1, "1") == 0) + return true; + else + return false; + } + else if (cmd == "dimstate") + { + //setup params for heyu + string cmd = "heyu dimstate " + housecode; + string std_out; + int _ret = -1; + + //TO FIX: Need to fix that using ecore_exe... + //Glib::spawn_command_line_sync(cmd, &std_out, NULL, &_ret); + + if (_ret != 0) + { + //reload the heyu engine + string cmd_line = "heyu engine"; + ecore_exe_run(cmd_line.c_str(), NULL); + + //then try again + //Glib::spawn_command_line_sync(cmd, &std_out, NULL, &_ret); + } + + *dval = 22; + if (std_out.empty()) return false; + *dval = atoi(std_out.c_str()); + } + + return true; +} diff --git a/src/bin/calaos_server/IO/X10Output.h b/src/bin/calaos_server/IO/X10Output.h new file mode 100644 index 00000000..2564aaa7 --- /dev/null +++ b/src/bin/calaos_server/IO/X10Output.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_X10OUTPUT_H +#define S_X10OUTPUT_H + +#include +#include + +namespace Calaos +{ + +class X10Output : public Output +{ + private: + std::string housecode; + + int value; + bool state_value; + int address, relay_addr; + int old_value; + + std::string cmd_state; + + bool X10Command(std::string cmd, int *dval = NULL); + + public: + X10Output(Params &p); + ~X10Output(); + + DATA_TYPE get_type() { return TSTRING; } + + bool set_value(std::string val); + bool set_value(bool val) { if (val) set_value(std::string("on")); else set_value(std::string("off")); return true; } + std::string get_value_string() { if (value == -1) return "off"; else return Utils::to_string(value); } + bool get_value_bool() { return state_value; } + + virtual std::string get_command_string() { return cmd_state; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IO/libmbus/mbus.c b/src/bin/calaos_server/IO/libmbus/mbus.c new file mode 100644 index 00000000..f07fb6f6 --- /dev/null +++ b/src/bin/calaos_server/IO/libmbus/mbus.c @@ -0,0 +1,196 @@ +/* + * mbus.c - general purpose libmbus functions + * + * Copyright (c) 2003, Victor Antonovich (avmlink@vlink.ru) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: mbus.c,v 1.1.1.1 2003/09/16 08:33:28 kapyar Exp $ + */ + +#include "mbus.h" + +extern int mbus_sock_create_client(const char *server_addr, + mbus_uword server_port, int blkmode); + +#define MBUS_CHECK_INIT(p) \ + do { if ((p)->is_initialized != MBUS_FL_IS_INITIALIZED) \ + return -1; } while (0); + +/* + * Get library version info + * + * Returns: pointer to library version internal string. + */ +char * +mbus_version +( + mbus_struct *mbus /* pointer to MODBUS structure */ +) +{ + mbus = mbus; /* prevent compiler warning */ + return ("\n libmbus version " LIBMBUS_VERSION "\n" + " Copyright (c) 2003 Victor Antonovich\n"); +} + +/* + * Initialization of MBUS structure + * + * Returns: Pointer to structure (NULL in case of error). + * + * Note: This function must be called before any call to + * the library just once for each MBUS stucture + */ +mbus_struct * +mbus_init +( + mbus_struct *mbus /* Pointer to structure to be initialized + (if NULL - the memory will be allocated + for the structure before initializing) */ +) +{ + if (mbus == NULL) + { /* mbus structure yet isn't exist, create it */ + if ((mbus = + (mbus_struct *)malloc(sizeof(mbus_struct))) != NULL) + { /* initialize created structure */ + memset((void *)mbus, 0, sizeof(mbus_struct)); + mbus->flags |= MBUS_FL_FREE_ON_EXIT; + } + else return NULL; + } + else + mbus->flags = 0; /* zero all flags */ + mbus->sd = -1; + mbus->timeout = MBUS_SOCK_TIMEOUT; + mbus->is_initialized = MBUS_FL_IS_INITIALIZED; + /* initialized successfully */ + return mbus; +} + +/* + * Connect to mbusd server + * + * Returns: 0 if successfully connected; + * -1 in case of error. + */ +int +mbus_connect +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + const char *host_addr, /* mbusd server host address (DNS or canonical form) */ + mbus_uword host_port, /* mbusd IP port (1-65535) */ + mbus_uword flags /* Additional flags (isn't used in this version) */ +) +{ + MBUS_CHECK_INIT(mbus); + if (mbus->sd >= 0) + return mbus_reconnect(mbus); + (void)strncpy(mbus->host_addr, host_addr, MBUS_HOSTNAME_LENGTH); + mbus->host_port = host_port; + mbus->flags = flags; + mbus->sd = + mbus_sock_create_client(mbus->host_addr, mbus->host_port, 0); + return (mbus->sd == -1) ? -1 : 0; +} + +/* + * Reconnect to mbusd server + * + * Returns: 0 if successfully reconnected; + * -1 in case of error. + */ +int +mbus_reconnect +( + mbus_struct *mbus /* Pointer to MBUS structure */ +) +{ + MBUS_CHECK_INIT(mbus); + if (mbus->sd < 0) + return -1; /* not connected yet */ + close(mbus->sd); + mbus->sd = + mbus_sock_create_client(mbus->host_addr, mbus->host_port, 0); + return (mbus->sd == -1) ? -1 : 0; +} + +/* + * Disconnect from mbusd server + * + * Returns: 0 if connection successfully closed; + * -1 in case of error. + */ +int +mbus_close +( + mbus_struct *mbus /* Pointer to MBUS structure */ +) +{ + MBUS_CHECK_INIT(mbus); + if (mbus->sd >= 0) + close(mbus->sd); + mbus->sd = -1; + return 0; +} + +int mbus_free(mbus_struct *mbus) +{ + MBUS_CHECK_INIT(mbus); + if (mbus->flags & MBUS_FL_FREE_ON_EXIT) + free((void *)mbus); + return 0; +} + +/* + * Get last request exception code + * + * Returns: Exception code (0-255). + */ +mbus_ubyte +mbus_excode +( + mbus_struct *mbus /* Pointer to MBUS structure */ +) +{ + MBUS_CHECK_INIT(mbus); + return mbus->ex_code; +} + +/* + * Get connection status code + * + * Returns: -1 if structure is not initialized; + * 0 if connection is not established; + * 1 if successfully connected. + */ +int +mbus_connected +( + mbus_struct *mbus /* Pointer to MBUS structure */ +) +{ + MBUS_CHECK_INIT(mbus); + return (mbus->sd >= 0) ? 1 : 0; +} diff --git a/src/bin/calaos_server/IO/libmbus/mbus.h b/src/bin/calaos_server/IO/libmbus/mbus.h new file mode 100644 index 00000000..57ef05cb --- /dev/null +++ b/src/bin/calaos_server/IO/libmbus/mbus.h @@ -0,0 +1,133 @@ +/* + * mbus.h - general header file for mbus library + * + * Copyright (c) 2003, Victor Antonovich (avmlink@vlink.ru) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: mbus.h,v 1.1.1.1 2003/09/16 08:33:28 kapyar Exp $ + */ + +#ifndef _MBUS_H +#define _MBUS_H + +#include "mbus_conf.h" + +#define LIBMBUS_VERSION "0.1.1" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifdef LIBMBUS + +#ifndef DEBUG +/* Uncommenting this line forces debug output */ +/* #define DEBUG */ +#endif + +#ifdef DEBUG +#define DBG(a, b, c) fprintf(stderr, \ + "libmbus: " c " (file %s, line %d)\n", a, b) +#else +#define DBG(a, b, c) do {} while (0) /* do nothing */ +#endif + +#endif + +/* + * Macros for access header OpenMODBUS/TCP packet + * p - pointer to the packet, + * d - displacement in the header + */ +#define MBUS_HDR(p, d) (*(p + d)) + +/* + * OpenMODBUS/TCP packet structure + */ +#define MBUS_TRANS_ID_H 0 /* transaction ID high byte */ +#define MBUS_TRANS_ID_L 1 /* transaction ID low byte */ +#define MBUS_PROTO_ID_H 2 /* protocol ID high byte */ +#define MBUS_PROTO_ID_L 3 /* protocol ID low byte */ +#define MBUS_LENGTH_H 4 /* length field high byte */ +#define MBUS_LENGTH_L 5 /* length field low byte */ +#define MBUS_UNIT_ID 6 /* unit identifier */ +#define MBUS_FCODE 7 /* function code */ +#define MBUS_DATA 8 /* MODBUS data */ +#define MBUS_HDR_LEN 6 /* OpenMODBUS/TCP header length */ +#define MBUS_DATA_LEN 254 /* OpenMODBUS/TCP data length */ + +/* flag values */ +#define MBUS_FL_FREE_ON_EXIT 0x01 /* free structure on exit */ +#define MBUS_FL_IS_INITIALIZED 0x1eac /* is structure initialized */ + +typedef struct mbus_t +{ + int sd; /* link socket descriptor */ + char host_addr[MBUS_HOSTNAME_LENGTH + 1]; /* mbusd server hostname */ + mbus_uword host_port; /* mbusd server IP port */ + mbus_uword host_flags; /* host connection flags */ + int timeout; /* socket timeout value, seconds */ + int flags; /* internal flags */ + int is_initialized; /* initialization flag */ + mbus_ubyte ex_code; /* last query exception code */ + mbus_ubyte buf[MBUS_HDR_LEN + MBUS_DATA_LEN]; +} mbus_struct; + +char *mbus_version(mbus_struct *mbus); +mbus_struct *mbus_init(mbus_struct *mbus); +int mbus_connect(mbus_struct *mbus, const char *host_addr, + mbus_uword host_port, mbus_uword flags); +int mbus_reconnect(mbus_struct *mbus); +int mbus_close(mbus_struct *mbus); +mbus_ubyte mbus_excode(mbus_struct *mbus); +int mbus_connected(mbus_struct *mbus); +int mbus_free(mbus_struct *mbus); + +int mbus_cmd_read_coil_status(mbus_struct *mbus, mbus_ubyte slave_addr, + mbus_uword coils_addr, mbus_uword coils_num, mbus_ubyte *coils_data); +int mbus_cmd_read_holding_registers(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_uword start_addr, + mbus_uword points_num, mbus_uword *data); +int mbus_cmd_force_single_coil(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_uword coil_addr, mbus_uword data); +int mbus_cmd_preset_single_register(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_uword register_addr, + mbus_uword preset_data); +int mbus_cmd_diagnostics(mbus_struct *mbus, + mbus_ubyte address, mbus_uword subfunction, mbus_uword *data); +int mbus_cmd_force_multiple_coils(mbus_struct *mbus, mbus_ubyte slave_addr, + mbus_uword coils_addr, mbus_uword coils_num, mbus_ubyte *coils_data); +int mbus_cmd_report_slave_id(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_ubyte *data_count, mbus_ubyte *slave_data); +int mbus_cmd_preset_multiple_registers(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_uword start_addr, + mbus_uword points_num, mbus_uword *data); + +#ifdef __cplusplus +} +#endif + +#endif /* _MBUS_H */ diff --git a/src/bin/calaos_server/IO/libmbus/mbus_cmd.c b/src/bin/calaos_server/IO/libmbus/mbus_cmd.c new file mode 100644 index 00000000..1977b201 --- /dev/null +++ b/src/bin/calaos_server/IO/libmbus/mbus_cmd.c @@ -0,0 +1,529 @@ +/* + * mbus_cmd.c - MODBUS commands routines + * + * Copyright (c) 2003, Victor Antonovich (avmlink@vlink.ru) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: mbus_cmd.c,v 1.1.1.1 2003/09/16 08:33:33 kapyar Exp $ + */ + +#include "mbus.h" + +#define MBUS_BYTE_WR(p, b) \ + (*(p++) = (mbus_ubyte)(b)) +#define MBUS_BYTE_RD(p) \ + ((mbus_ubyte)*(p++)) +#define MBUS_WORD_WR(p, w) \ + do \ + { MBUS_BYTE_WR(p, ((w) >> 8) & 0xff); \ + MBUS_BYTE_WR(p, ((w) & 0xff)); } \ + while (0) +#define MBUS_WORD_RD(p, w) \ + do \ + { w = ((mbus_uword)*(p++) << 8) & 0xff00; \ + w |= *(p++) & 0xff; } \ + while (0) + +#define MBUS_CHECK_ADDR(a, m) \ + if ((m && !(a)) || (a) > MBUS_ADDR_MAX) return -1 + +#define MBUS_FC_READCOILSTATUS 1 +#define MBUS_FC_READINPUTSTATUS 2 +#define MBUS_FC_READHOLDINGREGISTERS 3 +#define MBUS_FC_READINPUTREGISTERS 4 +#define MBUS_FC_FORCESINGLECOIL 5 +#define MBUS_FC_PRESETSINGLEREGISTER 6 +#define MBUS_FC_READEXCEPTIONSTATUS 7 +#define MBUS_FC_DIAGNOSTICS 8 +#define MBUS_FC_PROGRAM484 9 +#define MBUS_FC_POLL484 10 +#define MBUS_FC_FETCHCOMMEVENTCTR 11 +#define MBUS_FC_FETCHCOMMEVENTLOG 12 +#define MBUS_FC_PROGRAMCONTROLLER 13 +#define MBUS_FC_POLLCONTROLLER 14 +#define MBUS_FC_FORCEMULTIPLECOILS 15 +#define MBUS_FC_PRESETMULTIPLEREGISTERS 16 +#define MBUS_FC_REPORTSLAVEID 17 + +extern int mbus_rqst(mbus_struct *mbus, mbus_ubyte len); +extern void dump(mbus_ubyte *buf, mbus_ubyte len); + +/* internal functions prototypes */ +int mbus_cmd_check_response(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_ubyte funct_code); +int mbus_cmd_nodata(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_ubyte funct_code); +int mbus_cmd_addr_wdata(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_ubyte funct_code, + mbus_uword addr, mbus_uword data); +int mbus_cmd_addr_mdata(mbus_struct *mbus, + mbus_ubyte slave_addr, mbus_ubyte funct_code, + mbus_uword addr, mbus_ubyte *data, + mbus_ubyte data_size, mbus_word data_count); + +/* + * Check MODBUS response for errors and exception + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_check_response +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (1-247) */ + mbus_ubyte funct_code /* Function code (1-255) */ +) +{ + mbus_ubyte resp_fc; + mbus_ubyte *bufptr = mbus->buf + MBUS_HDR_LEN; + if (MBUS_BYTE_RD(bufptr) != slave_addr) + return -1; /* error, returning */ + if ((resp_fc = + MBUS_BYTE_RD(bufptr)) != funct_code) + { /* checking for exception */ + if (resp_fc == (funct_code | 0x80)) + { /* report about exception */ + mbus->ex_code = MBUS_BYTE_RD(bufptr); + return 1; + } + else return -1; /* response is incorrect */ + }; + mbus->ex_code = 0; + return 0; +} + +/* + * Make OpenMODBUS request witout data field + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_nodata +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_ubyte funct_code /* Function code (1-255) */ +) +{ + mbus_ubyte *bufptr = mbus->buf + MBUS_HDR_LEN; + + /* make body request */ + MBUS_BYTE_WR(bufptr, slave_addr); + MBUS_BYTE_WR(bufptr, funct_code); + + /* send request to the server and receive response */ + return (mbus_rqst(mbus, 2) < 0) ? + -1 : mbus_cmd_check_response(mbus, slave_addr, funct_code); +} + +/* + * Make OpenMODBUS request with address and one word data + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_addr_wdata +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_ubyte funct_code, /* Function code (1-255) */ + mbus_uword addr, /* Data address (0-65535) */ + mbus_uword data /* Query data (0-65535) */ +) +{ + mbus_ubyte *bufptr = mbus->buf + MBUS_HDR_LEN; + + /* make body request */ + MBUS_BYTE_WR(bufptr, slave_addr); + MBUS_BYTE_WR(bufptr, funct_code); + MBUS_WORD_WR(bufptr, addr); + MBUS_WORD_WR(bufptr, data); + + /* send request to the server and receive response */ + return (mbus_rqst(mbus, 6) < 0) ? + -1 : mbus_cmd_check_response(mbus, slave_addr, funct_code); +} + +/* + * Make OpenMODBUS request with address and multiple word data + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_addr_mdata +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_ubyte funct_code, /* Function code (1-255) */ + mbus_uword addr, /* Data address (0-65535) */ + mbus_ubyte *data, /* Pointer to the query data */ + mbus_ubyte data_size, /* 0 for coils, non-zero for registers */ + mbus_word data_count /* Number of data values */ +) +{ + mbus_ubyte byte_count, counter; + mbus_ubyte *bufptr = mbus->buf + MBUS_HDR_LEN; + mbus_uword word_buf; + + /* make request body */ + MBUS_BYTE_WR(bufptr, slave_addr); + MBUS_BYTE_WR(bufptr, funct_code); + MBUS_WORD_WR(bufptr, addr); + MBUS_WORD_WR(bufptr, data_count); + if (data_size) + /* each data value is 16 bit length */ + byte_count = (mbus_ubyte)((data_count * 2) & 0xff); + else + /* each byte consist from max. eigth coils */ + byte_count = (mbus_ubyte)((data_count + 7) >> 3); + MBUS_BYTE_WR(bufptr, byte_count); + /* copy data to request */ + counter = byte_count; + if (data_size) + { /* 16-bit wide data */ + counter >>= 1; + while (counter--) + { /* copy data to buffer */ + word_buf = *((mbus_uword *)data); + MBUS_WORD_WR(bufptr, word_buf); + data += 2; + } + } + else + /* 8-bit wide data */ + while (counter--) + MBUS_BYTE_WR(bufptr, *data++); + + /* send request to the server and receive response */ + return (mbus_rqst(mbus, 7 + byte_count) < 0) ? + -1 : mbus_cmd_check_response(mbus, slave_addr, funct_code); +} + +/* + * MODBUS command - Function Code 01 (Read Coil Status) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_read_coil_status +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (1-247) */ + mbus_uword coils_addr, /* Coils address (0-65535) */ + mbus_uword coils_num, /* Number of coils to read (0-65535) */ + mbus_ubyte *coils_data /* Pointer to readed data buffer */ +) +{ + int rc; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA, byte_count; + + MBUS_CHECK_ADDR(slave_addr, 1); + /* make request */ + if ((rc = mbus_cmd_addr_wdata(mbus, slave_addr, + MBUS_FC_READCOILSTATUS, + coils_addr, coils_num)) != 0) + return rc; + + /* take bytecount */ + byte_count = MBUS_BYTE_RD(bufptr); + if (!byte_count) + return -1; /* invalid value of bytecount */ + /* copy received data */ + while (byte_count--) + MBUS_BYTE_WR(coils_data, *bufptr++); + return 0; +} + +/* + * MODBUS command - Function Code 03 (Read Holding Registers) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_read_holding_registers +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (1-247) */ + mbus_uword start_addr, /* Starting register address (0-65535) */ + mbus_uword points_num, /* Quantity of registers to read (1-65535) */ + mbus_uword *data /* Pointer to readed data buffer */ +) +{ + int rc; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA, data_count; + mbus_uword word_buf; + + MBUS_CHECK_ADDR(slave_addr, 1); + /* make request */ + if ((rc = mbus_cmd_addr_wdata(mbus, slave_addr, + MBUS_FC_READHOLDINGREGISTERS, + start_addr, points_num)) != 0) + return rc; + + /* take bytecount divided by 2 */ + data_count = MBUS_BYTE_RD(bufptr) / 2; + if (!data_count) + return -1; /* invalid value of bytecount */ + /* copy received data */ + while (data_count--) + { + MBUS_WORD_RD(bufptr, word_buf); + *data++ = word_buf; + } + return 0; +} + +/* + * MODBUS command - Function Code 05 (Force Single Coil) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_force_single_coil +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_uword coil_addr, /* Coil address (0-65535) */ + mbus_uword data /* Force data */ +) +{ + int rc; + mbus_uword resp_data; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA; + + MBUS_CHECK_ADDR(slave_addr, 0); + /* make request */ + if((rc = mbus_cmd_addr_wdata(mbus, slave_addr, + MBUS_FC_FORCESINGLECOIL, + coil_addr, data)) != 0) + return rc; + + /* check response coil address */ + MBUS_WORD_RD(bufptr, resp_data); + if (resp_data!= coil_addr) + return -1; /* coil_address is incorrect */ + /* check response data */ + MBUS_WORD_RD(bufptr, resp_data); + return (resp_data == data) ? 0 : -1; +} + +/* + * MODBUS command - Function Code 06 (Preset Single Register) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_preset_single_register +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_uword register_addr, /* Starting register address (0-65535) */ + mbus_uword preset_data /* Register preset data (0-65535) */ +) +{ + int rc; + mbus_uword resp_data; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA; + + MBUS_CHECK_ADDR(slave_addr, 0); + /* make request */ + if((rc = mbus_cmd_addr_wdata(mbus, slave_addr, + MBUS_FC_PRESETSINGLEREGISTER, + register_addr, preset_data)) != 0) + return rc; + + /* check response register address */ + MBUS_WORD_RD(bufptr, resp_data); + if (resp_data!= register_addr) + return -1; /* register address is incorrect */ + /* check response data */ + MBUS_WORD_RD(bufptr, resp_data); + return (resp_data == preset_data) ? 0 : -1; +} + +/* + * MODBUS command - Function Code 08 (Diagnostics) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_diagnostics +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (1-247) */ + mbus_uword subfunction, /* Subfunction code (0-65535) */ + mbus_uword *data /* Pointer to the query data + (replaced by response data in case of success) */ +) +{ + int rc; + mbus_uword resp_subfunction; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA; + + MBUS_CHECK_ADDR(slave_addr, 1); + /* make request */ + if((rc = mbus_cmd_addr_wdata(mbus, slave_addr, + MBUS_FC_DIAGNOSTICS, + subfunction, *data)) != 0) + return rc; + + /* check response subfunction code */ + MBUS_WORD_RD(bufptr, resp_subfunction); + if (resp_subfunction != subfunction) + return -1; /* subfunction code is incorrect */ + /* read response data */ + MBUS_WORD_RD(bufptr, *data); + return 0; +} + +/* + * MODBUS command - Function Code 15 (Force Multiple Coils) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_force_multiple_coils +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_uword coils_addr, /* Coils address (0-65535) */ + mbus_uword coils_num, /* Number of coils to force (0-65535) */ + mbus_ubyte *coils_data /* Pointer to coils force data */ +) +{ + int rc; + mbus_uword resp_data; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA; + + MBUS_CHECK_ADDR(slave_addr, 0); + /* make request */ + if((rc = mbus_cmd_addr_mdata(mbus, + slave_addr, MBUS_FC_FORCEMULTIPLECOILS, + coils_addr, coils_data, + 0, coils_num)) != 0) + return rc; + + /* check response coil address */ + MBUS_WORD_RD(bufptr, resp_data); + if (resp_data!= coils_addr) + return -1; /* coil_address is incorrect */ + /* check response quantity */ + MBUS_WORD_RD(bufptr, resp_data); + return (resp_data == coils_num) ? 0 : -1; +} + +/* + * MODBUS command - Function Code 16 (Preset Multiple Registers) + * + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_preset_multiple_registers +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (0-247) */ + mbus_uword start_addr, /* Registers starting address (0-65535) */ + mbus_uword points_num, /* Number of registers to preset (0-65535) */ + mbus_uword *data /* Pointer to registers preset data */ +) +{ + int rc; + mbus_uword resp_data; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA; + + MBUS_CHECK_ADDR(slave_addr, 0); + /* make request */ + if((rc = mbus_cmd_addr_mdata(mbus, slave_addr, + MBUS_FC_PRESETMULTIPLEREGISTERS, + start_addr, (mbus_ubyte *)data, + 1, points_num)) != 0) + return rc; + + /* check response registers starting address */ + MBUS_WORD_RD(bufptr, resp_data); + if (resp_data != start_addr) + return -1; /* registers address is incorrect */ + /* check response quantity */ + MBUS_WORD_RD(bufptr, resp_data); + return (resp_data == points_num) ? 0 : -1; +} + +/* + * MODBUS command - Function Code 17 (Report Slave ID) + * Returns: 1 if exception code returned, + * 0 if response received successfully, + * -1 in case of error. + */ +int +mbus_cmd_report_slave_id +( + mbus_struct *mbus, /* Pointer to MBUS structure */ + mbus_ubyte slave_addr, /* MODBUS device address (1-247) */ + mbus_ubyte *data_count, /* Readed slave ID data count */ + mbus_ubyte *slave_data /* Pointer to readed slave ID data buffer */ +) +{ + int rc; + mbus_ubyte byte_count; + mbus_ubyte *bufptr = mbus->buf + MBUS_DATA; + + MBUS_CHECK_ADDR(slave_addr, 1); + /* make request */ + if((rc = mbus_cmd_nodata(mbus, slave_addr, + MBUS_FC_REPORTSLAVEID)) != 0) + return rc; + + /* take bytecount */ + byte_count = MBUS_BYTE_RD(bufptr); + *data_count = byte_count; + if (!byte_count) + return -1; /* invalid value of bytecount */ + /* copy received data */ + while (byte_count--) + MBUS_BYTE_WR(slave_data, *bufptr++); + return 0; +} diff --git a/src/bin/calaos_server/IO/libmbus/mbus_conf.h b/src/bin/calaos_server/IO/libmbus/mbus_conf.h new file mode 100644 index 00000000..287b190a --- /dev/null +++ b/src/bin/calaos_server/IO/libmbus/mbus_conf.h @@ -0,0 +1,71 @@ +/* + * mbus_conf.h - configuration header file for mbus library + * + * Copyright (c) 2003, Victor Antonovich (avmlink@vlink.ru) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: mbus_conf.h,v 1.1.1.1 2003/09/16 08:33:33 kapyar Exp $ + */ + +#ifndef _MBUS_CONF_H +#define _MBUS_CONF_H + +#include + +#ifdef LIBMBUS + +#include /* connect(), setsockopt(), socket() */ +#include +#include /* inet_addr() */ +#include /* struct timeval */ +#include /* gethostbyname() */ +#include +#include +#include /* read(), write(), select(), close() */ +#include /* bzero(), strncpy() */ +#include /* free(), malloc() */ +#include /* fprintf() */ + +#endif + +/* + * General types + */ +typedef unsigned long mbus_ulong; +typedef long mbus_long; +typedef unsigned short mbus_uword; +typedef short mbus_word; +typedef unsigned char mbus_ubyte; + +/* Default socket timeout (in seconds) */ +#define MBUS_SOCK_TIMEOUT 2 + +/* Host name maximum length */ +#define MBUS_HOSTNAME_LENGTH 255 + +/* Maximum MODBUS address value */ +#define MBUS_ADDR_MAX 247 + +#endif /* _MBUS_CONF_H */ diff --git a/src/bin/calaos_server/IO/libmbus/mbus_rqst.c b/src/bin/calaos_server/IO/libmbus/mbus_rqst.c new file mode 100644 index 00000000..2ff1b107 --- /dev/null +++ b/src/bin/calaos_server/IO/libmbus/mbus_rqst.c @@ -0,0 +1,90 @@ +/* + * mbus_rqst.c - request / response routines + * + * Copyright (c) 2003, Victor Antonovich (avmlink@vlink.ru) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: mbus_rqst.c,v 1.1.1.1 2003/09/16 08:33:33 kapyar Exp $ + */ + +#include "mbus.h" + +extern int mbus_sock_read(int sd, mbus_ubyte *buf, int len, int timeout); +extern int mbus_sock_write(int sd, mbus_ubyte *buf, int len, int timeout); + +/* prototypes */ +int mbus_rqst(mbus_struct *mbus, mbus_ubyte len); + +/* + * Description: + * Send request to mbusd server and receive response + * Parameters: + * mbus - pointer to mbus structure (must be initialized first!); + * len - request length + * Return: + * 0 if response successfully received; + * -1 in case of error. + */ +int +mbus_rqst(mbus_struct *mbus, mbus_ubyte len) +{ + /* header fields initialization */ + memset((void *)mbus->buf, 0, MBUS_HDR_LEN); + MBUS_HDR(mbus->buf, MBUS_LENGTH_L) = len; + + /* send request to the server */ + if (mbus_sock_write(mbus->sd, mbus->buf, + MBUS_HDR_LEN + len, + mbus->timeout) < (MBUS_HDR_LEN + len)) + { + DBG(__FILE__, __LINE__, + "mbus_sock_write(): can't write request"); + return -1; + } + + /* receive response header from server */ + if (mbus_sock_read(mbus->sd, mbus->buf, + MBUS_HDR_LEN, + mbus->timeout) < MBUS_HDR_LEN) + { + DBG(__FILE__, __LINE__, + "mbus_sock_read(): can't read response header"); + return -1; + } + + /* receive response body from server */ + if (mbus_sock_read(mbus->sd, + mbus->buf + MBUS_HDR_LEN, + MBUS_HDR(mbus->buf, MBUS_LENGTH_L), + mbus->timeout) < MBUS_HDR(mbus->buf, MBUS_LENGTH_L)) + { + DBG(__FILE__, __LINE__, + "mbus_sock_read(): can't read response body"); + return -1; + } + + /* response received successfully */ + return 0; +} diff --git a/src/bin/calaos_server/IO/libmbus/mbus_sock.c b/src/bin/calaos_server/IO/libmbus/mbus_sock.c new file mode 100644 index 00000000..f11ecd49 --- /dev/null +++ b/src/bin/calaos_server/IO/libmbus/mbus_sock.c @@ -0,0 +1,278 @@ +/* + * mbus_sock.c - socket manipulation routines + * + * Copyright (c) 2003, Victor Antonovich (avmlink@vlink.ru) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: mbus_sock.c,v 1.1.1.1 2003/09/16 08:33:37 kapyar Exp $ + */ + +#include "mbus.h" + +int mbus_sock_create(int blkmode); +int mbus_sock_create_client(const char *server_addr, + mbus_uword server_port, int blkmode); +int mbus_sock_select(int sd, int timeout, int wrmode); +int mbus_sock_read(int sd, mbus_ubyte *buf, int len, int timeout); +int mbus_sock_write(int sd, mbus_ubyte *buf, int len, int timeout); + +/* + * Description: + * Create new IP socket + * Parameters: + * blkmode - socket mode (nonblocking if non-zero); + * Return: + * Socket descriptor, or -1 in case of error. + */ +int +mbus_sock_create(int blkmode) +{ + int sock, flags; + + /* create socket */ + if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) + { + DBG(__FILE__, __LINE__, + "socket(): unable to create socket"); + return -1; + } + + /* set socket to desired blocking mode */ + if ((flags = fcntl(sock, F_GETFL)) == -1) + { + DBG(__FILE__, __LINE__, + "fcntl(): unable to get flags"); + close(sock); + return -1; + } + flags = blkmode ? (flags | O_NONBLOCK) : (flags & ~O_NONBLOCK); + if ((flags = fcntl(sock, F_SETFL, flags)) == -1) + { + DBG(__FILE__, __LINE__, + "fcntl(): unable to set flags"); + close(sock); + return -1; + } + /* all OK, return socket descriptor */ + return sock; +} + +/* + * Description: + * Create new IP client socket + * Parameters: + * server_port - IP port (0-65535) + * server_addr - IP address (DNS or canonical form) + * blkmode - socket mode (nonblocking if non-zero);) + * Return: + * Socket descriptor, or -1 in case of error. + */ +int +mbus_sock_create_client(const char *server_addr, + mbus_uword server_port, int blkmode) +{ + struct sockaddr_in client_sockaddr; + struct hostent *server_host; + static struct in_addr srvaddr; + int sock_opt = 1; + int client_s; + + /* create socket in desired blocking mode */ + client_s = mbus_sock_create(blkmode); + if (client_s < 0) return client_s; + +#ifndef NO_COE + /* set to close socket on exec() */ + if (fcntl(client_s, F_SETFD, 1) < 0) + { + DBG(__FILE__, __LINE__, + "fcntl(): can't set close-on-exec flag"); + close(client_s); + return -1; + } +#endif + + /* set reuse socket address flag */ + if ((setsockopt(client_s, SOL_SOCKET, SO_REUSEADDR, + (void *)&sock_opt, sizeof(sock_opt))) < 0) + { + DBG(__FILE__, __LINE__, + "setsockopt(): can't set SO_REUSEADDR flag"); + close(client_s); + return -1; + } + + memset(&client_sockaddr, 0, sizeof(client_sockaddr)); + + client_sockaddr.sin_family = AF_INET; + client_sockaddr.sin_port = htons(server_port); + + srvaddr.s_addr = inet_addr(server_addr); + if (srvaddr.s_addr == INADDR_NONE) + { + server_host = gethostbyname(server_addr); + if (server_host != NULL) + { + if ((unsigned)server_host->h_length > + sizeof(client_sockaddr.sin_addr) || + server_host->h_length < 0) + { + DBG(__FILE__, __LINE__, + "gethostbyname(): illegal address"); + close(client_s); + return -1; + } + memcpy(&client_sockaddr.sin_addr, + server_host->h_addr_list[0], + sizeof(client_sockaddr.sin_addr)); + } + else + { + DBG(__FILE__, __LINE__, + "gethostbyname(): can't understand specified address"); + close(client_s); + return -1; + } + } + else + memcpy(&client_sockaddr.sin_addr, + &srvaddr.s_addr, sizeof(srvaddr.s_addr)); + + /* let's connect */ + if (connect(client_s, + (struct sockaddr *)&client_sockaddr, + sizeof(client_sockaddr)) < 0) + { + DBG(__FILE__, __LINE__, \ + "connect(): unable to connect to specified address"); + close(client_s); + return -1; + } + /* successfully connected */ + return client_s; +} + +/* + * Description: + * Wait for socket descriptor to be readable + * Parameters: + * sd - socket descriptor; + * timeout - the timeout in seconds; + * wrmode - if is non-zero, checks for sd being writable instead + * Return: + * 1 if sd is accessible, 0 if timeout and -1 if error in select(). + */ +int +mbus_sock_select(int sd, int timeout, int wrmode) +{ + fd_set fds, exceptfds; + struct timeval t_out; + + FD_ZERO(&fds); + FD_SET(sd, &fds); + FD_ZERO(&exceptfds); + FD_SET(sd, &exceptfds); + t_out.tv_sec = timeout; + t_out.tv_usec = 0; + return select(sd + 1, + wrmode ? NULL : &fds, wrmode ? &fds : NULL, + &exceptfds, &t_out); +} + +/* + * Description: + * Read data from socket to buffer with timeout + * Parameters: + * sd - socket descriptor; + * len - number of bytes to read; + * buf - pointer to the data buffer; + * timeout - the timeout in seconds + * Return: + * Number of successfully readed bytes or + * -1 if error caused. + */ +int +mbus_sock_read(int sd, mbus_ubyte *buf, int len, int timeout) +{ + int res = 0, rd_len = 0; + while (rd_len < len) + { + do + { + if (timeout) + { + do + { + res = mbus_sock_select(sd, timeout, 0); + } while (res == -1 && errno == EINTR); + if (res <= 0) break; + } + /*res = read(sd, buf, len - rd_len);*/ + res = recv(sd, buf, len - rd_len, MSG_NOSIGNAL); + } while (res == -1 && errno == EINTR); + if (res <= 0) break; + buf += res; + rd_len += res; + } + return (res >= 0) ? rd_len : -1; +} + +/* + * Description: + * Write data from buffer to socket with timeout + * Parameters: + * sd - socket descriptor; + * len - number of bytes to read; + * buf - pointer to the data buffer; + * timeout - the timeout in seconds + * Return: + * Number of successfully written bytes or + * -1 if error caused. + */ +int +mbus_sock_write(int sd, mbus_ubyte *buf, int len, int timeout) +{ + int res = 0, wr_len = 0; + while (wr_len < len) + { + do + { + if (timeout) + { + do + { + res = mbus_sock_select(sd, timeout, 1); + } while (res == -1 && errno == EINTR); + if (res <= 0) break; + } + /*res = write(sd, buf, len - wr_len);*/ + res = send(sd, buf, len - wr_len, MSG_NOSIGNAL); + } while (res == -1 && errno == EINTR); + if (res <= 0) break; + buf += res; + wr_len += res; + } + return (res >= 0) ? wr_len : -1; +} diff --git a/src/bin/calaos_server/IO/sunset.c b/src/bin/calaos_server/IO/sunset.c new file mode 100644 index 00000000..1d44def3 --- /dev/null +++ b/src/bin/calaos_server/IO/sunset.c @@ -0,0 +1,529 @@ + +/* + +SUNRISET.C - computes Sun rise/set times, start/end of twilight, and + the length of the day at any date and latitude + +Written as DAYLEN.C, 1989-08-16 + +Modified to SUNRISET.C, 1992-12-01 + +(c) Paul Schlyter, 1989, 1992 + +Released to the public domain by Paul Schlyter, December 1992 + +Portions Modified to SUNDOWN.NLM by Cliff Haas 98-05-22 + +*/ + +#include +#include +#include +#include +#include + +/* A macro to compute the number of days elapsed since 2000 Jan 0.0 */ +/* (which is equal to 1999 Dec 31, 0h UT) */ + +#define days_since_2000_Jan_0(y,m,d) \ + (367L*(y)-((7*((y)+(((m)+9)/12)))/4)+((275*(m))/9)+(d)-730530L) + +/* Some conversion factors between radians and degrees */ + +#ifndef PI + #define PI 3.1415926535897932384 +#endif + +#define RADEG ( 180.0 / PI ) +#define DEGRAD ( PI / 180.0 ) + +/* The trigonometric functions in degrees */ + +#define sind(x) sin((x)*DEGRAD) +#define cosd(x) cos((x)*DEGRAD) +#define tand(x) tan((x)*DEGRAD) + +#define atand(x) (RADEG*atan(x)) +#define asind(x) (RADEG*asin(x)) +#define acosd(x) (RADEG*acos(x)) +#define atan2d(y,x) (RADEG*atan2(y,x)) + +#define hours(x) (((int)(x))%24) +#define minutes(x) (((int)(((x)-hours(x))*60))%60) + +/* Following are some macros around the "workhorse" function __daylen__ */ +/* They mainly fill in the desired values for the reference altitude */ +/* below the horizon, and also selects whether this altitude should */ +/* refer to the Sun's center or its upper limb. */ + + +/* This macro computes the length of the day, from sunrise to sunset. */ +/* Sunrise/set is considered to occur when the Sun's upper limb is */ +/* 35 arc minutes below the horizon (this accounts for the refraction */ +/* of the Earth's atmosphere). */ +#define day_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -35.0/60.0, 1 ) + +/* This macro computes the length of the day, including civil twilight. */ +/* Civil twilight starts/ends when the Sun's center is 6 degrees below */ +/* the horizon. */ +#define day_civil_twilight_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -6.0, 0 ) + +/* This macro computes the length of the day, incl. nautical twilight. */ +/* Nautical twilight starts/ends when the Sun's center is 12 degrees */ +/* below the horizon. */ +#define day_nautical_twilight_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -12.0, 0 ) + +/* This macro computes the length of the day, incl. astronomical twilight. +*/ +/* Astronomical twilight starts/ends when the Sun's center is 18 degrees +*/ +/* below the horizon. +*/ +#define day_astronomical_twilight_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -18.0, 0 ) + + +/* This macro computes times for sunrise/sunset. */ +/* Sunrise/set is considered to occur when the Sun's upper limb is */ +/* 35 arc minutes below the horizon (this accounts for the refraction */ +/* of the Earth's atmosphere). */ +#define sun_rise_set(year,month,day,lon,lat,rise,set) \ + __sunriset__( year, month, day, lon, lat, -35.0/60.0, 1, rise, set ) + +/* This macro computes the start and end times of civil twilight. */ +/* Civil twilight starts/ends when the Sun's center is 6 degrees below */ +/* the horizon. */ +#define civil_twilight(year,month,day,lon,lat,start,end) \ + __sunriset__( year, month, day, lon, lat, -6.0, 0, start, end ) + +/* This macro computes the start and end times of nautical twilight. */ +/* Nautical twilight starts/ends when the Sun's center is 12 degrees */ +/* below the horizon. */ +#define nautical_twilight(year,month,day,lon,lat,start,end) \ + __sunriset__( year, month, day, lon, lat, -12.0, 0, start, end ) + +/* This macro computes the start and end times of astronomical twilight. +*/ +/* Astronomical twilight starts/ends when the Sun's center is 18 degrees +*/ +/* below the horizon. +*/ +#define astronomical_twilight(year,month,day,lon,lat,start,end) \ + __sunriset__( year, month, day, lon, lat, -18.0, 0, start, end ) + + +/* Function prototypes */ + +double __daylen__( int year, int month, int day, double lon, double lat, + double altit, int upper_limb ); + +int __sunriset__( int year, int month, int day, double lon, double lat, + double altit, int upper_limb, double *rise, double *set +); + +void sunpos( double d, double *lon, double *r ); + +void sun_RA_dec( double d, double *RA, double *dec, double *r ); + +double revolution( double x ); + +double rev180( double x ); + +double GMST0( double d ); + + + +/* A small test program */ +/* +void main(void) +{ + int year,month,day; + double lon, lat; + double daylen, civlen, nautlen, astrlen; + double rise, set, civ_start, civ_end, naut_start, naut_end, + astr_start, astr_end; + int rs, civ, naut, astr; + + printf( "Longitude (+ is east) and latitude (+ is north) : " ); + scanf( "%lf %lf", &lon, &lat ); + + for(;;) + { + printf( "Input date ( yyyy mm dd ) (ctrl-C exits): " ); + scanf( "%d %d %d", &year, &month, &day ); + + daylen = day_length(year,month,day,lon,lat); + civlen = day_civil_twilight_length(year,month,day,lon,lat); + nautlen = day_nautical_twilight_length(year,month,day,lon,lat); + astrlen = day_astronomical_twilight_length(year,month,day, + lon,lat); + + printf( "Day length: %5.2f hours\n", daylen ); + printf( "With civil twilight %5.2f hours\n", civlen ); + printf( "With nautical twilight %5.2f hours\n", nautlen ); + printf( "With astronomical twilight %5.2f hours\n", astrlen ); + printf( "Length of twilight: civil %5.2f hours\n", + (civlen-daylen)/2.0); + printf( " nautical %5.2f hours\n", + (nautlen-daylen)/2.0); + printf( " astronomical %5.2f hours\n", + (astrlen-daylen)/2.0); + + rs = sun_rise_set ( year, month, day, lon, lat, + &rise, &set ); + civ = civil_twilight ( year, month, day, lon, lat, + &civ_start, &civ_end ); + naut = nautical_twilight ( year, month, day, lon, lat, + &naut_start, &naut_end ); + astr = astronomical_twilight( year, month, day, lon, lat, + &astr_start, &astr_end ); + + printf( "Sun at south %5.2fh UT\n", (rise+set)/2.0 ); + + switch( rs ) + { + case 0: + printf( "Sun rises %5.2fh UT, sets %5.2fh UT\n", + rise, set ); + break; + case +1: + printf( "Sun above horizon\n" ); + break; + case -1: + printf( "Sun below horizon\n" ); + break; + } + + switch( civ ) + { + case 0: + printf( "Civil twilight starts %5.2fh, " + "ends %5.2fh UT\n", civ_start, civ_end ); + break; + case +1: + printf( "Never darker than civil twilight\n" ); + break; + case -1: + printf( "Never as bright as civil twilight\n" ); + break; + } + + switch( naut ) + { + case 0: + printf( "Nautical twilight starts %5.2fh, " + "ends %5.2fh UT\n", naut_start, naut_end ); + break; + case +1: + printf( "Never darker than nautical twilight\n" ); + break; + case -1: + printf( "Never as bright as nautical twilight\n" ); + break; + } + + switch( astr ) + { + case 0: + printf( "Astronomical twilight starts %5.2fh, " + "ends %5.2fh UT\n", astr_start, astr_end ); + break; + case +1: + printf( "Never darker than astronomical twilight\n" ); + break; + case -1: + printf( "Never as bright as astronomical twilight\n" ); + break; + } + + } +} +*/ + +/* The "workhorse" function for sun rise/set times */ + +int __sunriset__( int year, int month, int day, double lon, double lat, + double altit, int upper_limb, double *trise, double *tset +) +/***************************************************************************/ +/* Note: year,month,date = calendar date, 1801-2099 only. */ +/* Eastern longitude positive, Western longitude negative */ +/* Northern latitude positive, Southern latitude negative */ +/* The longitude value IS critical in this function! */ +/* altit = the altitude which the Sun should cross */ +/* Set to -35/60 degrees for rise/set, -6 degrees */ +/* for civil, -12 degrees for nautical and -18 */ +/* degrees for astronomical twilight. */ +/* upper_limb: non-zero -> upper limb, zero -> center */ +/* Set to non-zero (e.g. 1) when computing rise/set */ +/* times, and to zero when computing start/end of */ +/* twilight. */ +/* *rise = where to store the rise time */ +/* *set = where to store the set time */ +/* Both times are relative to the specified altitude, */ +/* and thus this function can be used to comupte */ +/* various twilight times, as well as rise/set times */ +/* Return value: 0 = sun rises/sets this day, times stored at */ +/* *trise and *tset. */ +/* +1 = sun above the specified "horizon" 24 hours. */ +/* *trise set to time when the sun is at south, */ +/* minus 12 hours while *tset is set to the south */ +/* time plus 12 hours. "Day" length = 24 hours */ +/* -1 = sun is below the specified "horizon" 24 hours */ +/* "Day" length = 0 hours, *trise and *tset are */ +/* both set to the time when the sun is at south. */ +/* */ +/**********************************************************************/ +{ + double d, /* Days since 2000 Jan 0.0 (negative before) */ + sr, /* Solar distance, astronomical units */ + sRA, /* Sun's Right Ascension */ + sdec, /* Sun's declination */ + sradius, /* Sun's apparent radius */ + t, /* Diurnal arc */ + tsouth, /* Time when Sun is at south */ + sidtime; /* Local sidereal time */ + + int rc = 0; /* Return cde from function - usually 0 */ + + /* Compute d of 12h local mean solar time */ + d = days_since_2000_Jan_0(year, month, day); +// printf("Days: %lf\n\n", d); + d = days_since_2000_Jan_0(year,month,day) + 0.5 - lon/360.0; + + /* Compute local sideral time of this moment */ + sidtime = revolution( GMST0(d) + 180.0 + lon ); + + /* Compute Sun's RA + Decl at this moment */ + sun_RA_dec( d, &sRA, &sdec, &sr ); + + /* Compute time when Sun is at south - in hours UT */ + tsouth = 12.0 - rev180(sidtime - sRA)/15.0; + + /* Compute the Sun's apparent radius, degrees */ + sradius = 0.2666 / sr; + + /* Do correction to upper limb, if necessary */ + if ( upper_limb ) + altit -= sradius; + + /* Compute the diurnal arc that the Sun traverses to reach */ + /* the specified altitide altit: */ + { + double cost; + cost = ( sind(altit) - sind(lat) * sind(sdec) ) / + ( cosd(lat) * cosd(sdec) ); + if ( cost >= 1.0 ) + rc = -1, t = 0.0; /* Sun always below altit */ + else if ( cost <= -1.0 ) + rc = +1, t = 12.0; /* Sun always above altit */ + else + t = acosd(cost)/15.0; /* The diurnal arc, hours */ + } + + /* Store rise and set times - in hours UT */ + *trise = tsouth - t; + *tset = tsouth + t; + + return rc; +} /* __sunriset__ */ + + + +/* The "workhorse" function */ + + +double __daylen__( int year, int month, int day, double lon, double lat, + double altit, int upper_limb ) +/**********************************************************************/ +/* Note: year,month,date = calendar date, 1801-2099 only. */ +/* Eastern longitude positive, Western longitude negative */ +/* Northern latitude positive, Southern latitude negative */ +/* The longitude value is not critical. Set it to the correct */ +/* longitude if you're picky, otherwise set to to, say, 0.0 */ +/* The latitude however IS critical - be sure to get it correct */ +/* altit = the altitude which the Sun should cross */ +/* Set to -35/60 degrees for rise/set, -6 degrees */ +/* for civil, -12 degrees for nautical and -18 */ +/* degrees for astronomical twilight. */ +/* upper_limb: non-zero -> upper limb, zero -> center */ +/* Set to non-zero (e.g. 1) when computing day length */ +/* and to zero when computing day+twilight length. */ +/**********************************************************************/ +{ + double d, /* Days since 2000 Jan 0.0 (negative before) */ + obl_ecl, /* Obliquity (inclination) of Earth's axis */ + sr, /* Solar distance, astronomical units */ + slon, /* True solar longitude */ + sin_sdecl, /* Sine of Sun's declination */ + cos_sdecl, /* Cosine of Sun's declination */ + sradius, /* Sun's apparent radius */ + t; /* Diurnal arc */ + + /* Compute d of 12h local mean solar time */ + d = days_since_2000_Jan_0(year,month,day) + 0.5 - lon/360.0; + + /* Compute obliquity of ecliptic (inclination of Earth's axis) */ + obl_ecl = 23.4393 - 3.563E-7 * d; + + /* Compute Sun's position */ + sunpos( d, &slon, &sr ); + +/*printf*/("Got: slon[%lf] sr[%lf] d[%lf]\n", slon, sr, d); + /* Compute sine and cosine of Sun's declination */ + sin_sdecl = sind(obl_ecl) * sind(slon); + cos_sdecl = sqrt( 1.0 - sin_sdecl * sin_sdecl ); + + /* Compute the Sun's apparent radius, degrees */ + sradius = 0.2666 / sr; + + /* Do correction to upper limb, if necessary */ + if ( upper_limb ) + altit -= sradius; + + /* Compute the diurnal arc that the Sun traverses to reach */ + /* the specified altitide altit: */ + { + double cost; + cost = ( sind(altit) - sind(lat) * sin_sdecl ) / + ( cosd(lat) * cos_sdecl ); +// printf("\n\nCost: %g", cost); + if ( cost >= 1.0 ) + t = 0.0; /* Sun always below altit +*/ + else if ( cost <= -1.0 ) + t = 24.0; /* Sun always above altit +*/ + else t = (2.0/15.0) * acosd(cost); /* The diurnal arc, hours +*/ + } + return t; +} /* __daylen__ */ + + +/* This function computes the Sun's position at any instant */ + +void sunpos( double d, double *lon, double *r ) +/******************************************************/ +/* Computes the Sun's ecliptic longitude and distance */ +/* at an instant given in d, number of days since */ +/* 2000 Jan 0.0. The Sun's ecliptic latitude is not */ +/* computed, since it's always very near 0. */ +/******************************************************/ +{ + double M, /* Mean anomaly of the Sun */ + w, /* Mean longitude of perihelion */ + /* Note: Sun's mean longitude = M + w */ + e, /* Eccentricity of Earth's orbit */ + E, /* Eccentric anomaly */ + x, y, /* x, y coordinates in orbit */ + v; /* True anomaly */ + + /* Compute mean elements */ + M = revolution( 356.0470 + 0.9856002585 * d ); + w = 282.9404 + 4.70935E-5 * d; + e = 0.016709 - 1.151E-9 * d; + + /* Compute true longitude and radius vector */ + E = M + e * RADEG * sind(M) * ( 1.0 + e * cosd(M) ); + x = cosd(E) - e; + y = sqrt( 1.0 - e*e ) * sind(E); + *r = sqrt( x*x + y*y ); /* Solar distance */ + v = atan2d( y, x ); /* True anomaly */ + *lon = v + w; /* True solar longitude */ + if ( *lon >= 360.0 ) + *lon -= 360.0; /* Make it 0..360 degrees */ +} + +void sun_RA_dec( double d, double *RA, double *dec, double *r ) +{ + double lon, obl_ecl, x, y, z; + + /* Compute Sun's ecliptical coordinates */ + sunpos( d, &lon, r ); + + /* Compute ecliptic rectangular coordinates (z=0) */ + x = *r * cosd(lon); + y = *r * sind(lon); + + /* Compute obliquity of ecliptic (inclination of Earth's axis) */ + obl_ecl = 23.4393 - 3.563E-7 * d; + + /* Convert to equatorial rectangular coordinates - x is uchanged */ + z = y * sind(obl_ecl); + y = y * cosd(obl_ecl); + + /* Convert to spherical coordinates */ + *RA = atan2d( y, x ); + *dec = atan2d( z, sqrt(x*x + y*y) ); + +} /* sun_RA_dec */ + + +/******************************************************************/ +/* This function reduces any angle to within the first revolution */ +/* by subtracting or adding even multiples of 360.0 until the */ +/* result is >= 0.0 and < 360.0 */ +/******************************************************************/ + +#define INV360 ( 1.0 / 360.0 ) + +double revolution( double x ) +/*****************************************/ +/* Reduce angle to within 0..360 degrees */ +/*****************************************/ +{ + return( x - 360.0 * floor( x * INV360 ) ); +} /* revolution */ + +double rev180( double x ) +/*********************************************/ +/* Reduce angle to within +180..+180 degrees */ +/*********************************************/ +{ + return( x - 360.0 * floor( x * INV360 + 0.5 ) ); +} /* revolution */ + + +/*******************************************************************/ +/* This function computes GMST0, the Greenwhich Mean Sidereal Time */ +/* at 0h UT (i.e. the sidereal time at the Greenwhich meridian at */ +/* 0h UT). GMST is then the sidereal time at Greenwich at any */ +/* time of the day. I've generelized GMST0 as well, and define it */ +/* as: GMST0 = GMST - UT -- this allows GMST0 to be computed at */ +/* other times than 0h UT as well. While this sounds somewhat */ +/* contradictory, it is very practical: instead of computing */ +/* GMST like: */ +/* */ +/* GMST = (GMST0) + UT * (366.2422/365.2422) */ +/* */ +/* where (GMST0) is the GMST last time UT was 0 hours, one simply */ +/* computes: */ +/* */ +/* GMST = GMST0 + UT */ +/* */ +/* where GMST0 is the GMST "at 0h UT" but at the current moment! */ +/* Defined in this way, GMST0 will increase with about 4 min a */ +/* day. It also happens that GMST0 (in degrees, 1 hr = 15 degr) */ +/* is equal to the Sun's mean longitude plus/minus 180 degrees! */ +/* (if we neglect aberration, which amounts to 20 seconds of arc */ +/* or 1.33 seconds of time) */ +/* */ +/*******************************************************************/ + +double GMST0( double d ) +{ + double sidtim0; + /* Sidtime at 0h UT = L (Sun's mean longitude) + 180.0 degr */ + /* L = M + w, as defined in sunpos(). Since I'm too lazy to */ + /* add these numbers, I'll let the C compiler do it for me. */ + /* Any decent C compiler will add the constants at compile */ + /* time, imposing no runtime or code overhead. */ + sidtim0 = revolution( ( 180.0 + 356.0470 + 282.9404 ) + + ( 0.9856002585 + 4.70935E-5 ) * d ); + return sidtim0; +} /* GMST0 */ + diff --git a/src/bin/calaos_server/IOBase.h b/src/bin/calaos_server/IOBase.h new file mode 100644 index 00000000..40173f5c --- /dev/null +++ b/src/bin/calaos_server/IOBase.h @@ -0,0 +1,72 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_IOBASE_H +#define S_IOBASE_H + +#include + +namespace Calaos +{ + +class IOBase +{ + private: + //we store all params here + Params param; + + bool auto_sc_mark; + + public: + IOBase(Params &p): param(p), auto_sc_mark(false) { /* nothing */ } + virtual ~IOBase() { /* nothing */ } + + virtual DATA_TYPE get_type() = 0; + + virtual bool get_value_bool() { return false; } + virtual map get_all_values_bool() { map m; return m; } + + virtual double get_value_double() { return 0.0; } + virtual map get_all_values_double() { map m; return m; } + + virtual std::string get_value_string() { return ""; } + virtual map get_all_values_string() { map m; return m; } + + virtual map query_param(string param) { map m; return m; } + + virtual void set_param(std::string opt, std::string val) + { param.Add(opt, val); } + virtual std::string get_param(std::string opt) + { return param[opt]; } + virtual Params &get_params() + { return param; } + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node) + { return false; } + + bool isAutoScenario() { return auto_sc_mark; } + void setAutoScenario(bool m) { auto_sc_mark = m; } +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/Axis.cpp b/src/bin/calaos_server/IPCam/Axis.cpp new file mode 100644 index 00000000..86c46320 --- /dev/null +++ b/src/bin/calaos_server/IPCam/Axis.cpp @@ -0,0 +1,218 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +Axis::Axis(Params &p): IPCam(p), quality("30"), camera("1") +{ + caps.Add("resolution", "176x144 320x240 640x480"); + caps.Add("quality", "100"); + if (param["model"] != "") camera = param["model"]; + if (param["ptz"] == "1" || param["ptz"] == "true") + { + caps.Add("ptz", "true"); + caps.Add("position", "8"); + } + if (param.Exists("zoom_step")) + { + caps.Add("zoom", "true"); + } + if (param.Exists("pan_framesize") && param.Exists("tilt_framesize")) + { + caps.Add("moveclick", "true"); + } + if (param.Exists("resolution")) + { + resolution = param["resolution"]; + } +} + +Axis::~Axis() +{ +} + +std::string Axis::get_mpeg_stream() +{ + string user; + + if (param["model"] != "") camera = param["model"]; + + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + std::string url; + url = "rtsp://" + user + param["host"]; + url += "/mpeg4/media.amp"; + url += "?compression=" + quality; + url += "&camera=" + camera; + if (!resolution.empty()) + url += "&resolution=" + resolution; + + return url; +} + +std::string Axis::get_mjpeg_stream() +{ + string user; + + if (param["model"] != "") camera = param["model"]; + + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + std::string url; + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/mjpg/video.cgi"; + url += "?quality=" + quality; + url += "&camera=" + camera; + if (!resolution.empty()) + url += "&resolution=" + resolution; + + return url; +} + +std::string Axis::get_picture() +{ + string user; + + if (param["model"] != "") camera = param["model"]; + + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + + std::string url; + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/jpg/image.cgi"; + url += "?quality=" + quality; + url += "&camera=" + camera; + if (!resolution.empty()) + url += "&resolution=" + resolution; + + return url; +} + +void Axis::activateCapabilities(std::string cap, std::string cmd, std::string value) +{ + if (!caps.Exists(cap)) return; + + string user; + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + if (cap == "resolution" && cmd == "set") + { + vector res; + Utils::split(caps["resolution"], res, " "); + for (int i = 0;i < res.size();i++) + { + if (value == res[i]) + resolution = value; + } + } + else if (cap == "quality" && cmd == "set") + { + int _q, q; + from_string(caps["quality"], _q); + from_string(value, q); + + if (q >= 0 && q <= _q) + quality = value; + } + else if (cap == "ptz" && cmd == "move") + { + string url; + + if (value == "zoomin" || value == "zoomout") + { + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/com/ptz.cgi?"; + url += "camera=" + camera; + url += "&rzoom=" + string((value == "zoomout")?"-":"") + param["zoom_step"]; + } + else + { + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/com/ptz.cgi?"; + url += "camera=" + camera; + url += "&move=" + value; + } + + Calaos::CallUrl(url); + } + else if (cap == "moveclick" && cmd == "set") + { + //rpan == 68 + //rtilt == 57 + + if (!param.Exists("pan_framesize") || !param.Exists("tilt_framesize")) + return; + + //Parse pan/tilt values + vector tok; + split(value, tok, ","); + if (tok.size() != 2) return; + + double pan, tilt, pan_framesize, tilt_framesize; + + from_string(tok[0], pan); + from_string(tok[1], tilt); + from_string(param["pan_framesize"], pan_framesize); + from_string(param["tilt_framesize"], tilt_framesize); + + //Center coordinates + pan -= 320.0; + tilt -= 240.0; + + //Invert coordinates + pan = 0 - pan; + tilt = 0 - tilt; + + pan = (pan * pan_framesize) / 320.0; + tilt = (tilt * tilt_framesize) / 240.0; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/com/ptz.cgi?"; + url += "camera=" + camera; + url += "&rpan=" + to_string(-pan) + "&rtilt=" + to_string(tilt); + + Calaos::CallUrl(url); + } + else if (cap == "position" && cmd == "recall") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/com/ptz.cgi?"; + url += "camera=" + camera; + url += "&gotoserverpresetno=" + value; + + Calaos::CallUrl(url); + } + else if (cap == "position" && cmd == "save") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/axis-cgi/com/ptz.cgi?"; + url += "camera=" + camera; + url += "&setserverpresetno=" + value; + + Calaos::CallUrl(url); + } +} diff --git a/src/bin/calaos_server/IPCam/Axis.h b/src/bin/calaos_server/IPCam/Axis.h new file mode 100644 index 00000000..346f21b9 --- /dev/null +++ b/src/bin/calaos_server/IPCam/Axis.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_AXIS_H +#define S_AXIS_H + +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class Axis: public IPCam +{ + protected: + string resolution, quality, camera; + + public: + Axis(Params &p); + ~Axis(); + + //Standard IPCam functions. + std::string get_mpeg_stream(); //return the mpeg4 url stream (if any) + std::string get_mjpeg_stream(); //return the mpeg url stream + std::string get_picture(); //return the url for a single frame + + virtual void activateCapabilities(std::string cap, std::string cmd, std::string value); +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/CamConnection.cpp b/src/bin/calaos_server/IPCam/CamConnection.cpp new file mode 100644 index 00000000..f2cf2533 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamConnection.cpp @@ -0,0 +1,288 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +static int _CamConnection_CURL_write_callback(void *buffer, size_t size, size_t nmemb, void *stream); + +CamConnection::CamConnection(TCPSocket s): socket(s), end_conn(false), login(false), + pict_buffer(NULL), pict_size(0) +{ + Utils::logger("network") << Priority::DEBUG << "CamConnection::CamConnection(): Ok" << log4cpp::eol; +} + +CamConnection::~CamConnection() +{ + Utils::logger("network") << Priority::DEBUG << "CamConnection::~CamConnection(): Ok" << log4cpp::eol; + if (pict_buffer) + { + free(pict_buffer); + pict_buffer = NULL; + } +} + +void CamConnection::ProcessRequest(string &request) +{ + vector list; + bool streaming = true; + bool header_sent = false; + + split(request, list); + + if (list.size() < 3) + { + Utils::logger("network") << Priority::ERROR << "CamConnection::ProcessRequest(): request too small." << log4cpp::eol; + return; + } + + if (list[0] != "GET") + { + Utils::logger("network") << Priority::ERROR << "CamConnection::ProcessRequest(): Only GET request supported!" << log4cpp::eol; + return; + } + + if (list[1].find ("/GetCamera.cgi?id=", 0) == request.npos && + list[1].find ("/GetPicture.cgi?id=", 0) == request.npos) + { + Utils::logger("network") << Priority::ERROR << "CamConnection::ProcessRequest(): Wrong request! : " << list[1] << log4cpp::eol; + return; + } + + if (list[1].find ("/GetPicture.cgi?id=", 0) != request.npos) + streaming = false; + + string _camid = list[1]; + if (streaming) + _camid.erase(0, 18); + else + _camid.erase(0, 19); + int camid; + Utils::from_string(_camid, camid); + + if (_camid == "" || camid < 0 || camid > CamManager::Instance().get_size() - 1) + { + Utils::logger("network") << Priority::ERROR << "CamConnection::ProcessRequest(): Wrong id!" << log4cpp::eol; + return; + } + + IPCam *camera = CamManager::Instance().get_camera(camid); + string url = camera->get_picture_real(); + + stringstream headers; + + if (streaming) + { + headers << "HTTP/1.0 200 OK\r\n"; + headers << "Server: Calaos/1.0\r\n"; + headers << "Connection: close\r\n"; + headers << "Content-Type: multipart/x-mixed-replace;boundary=CalaosBoundary\r\n"; + headers << "Pragma: no-cache\r\n"; + headers << "Cache-Control: no-cache\r\n"; + headers << "Expires: 01 Jan 1970 00:00:00 GMT\r\n"; + headers << "\r\n"; + } + + unsigned long int cpt = 0; + + CURL *curl; + CURLcode res; + curl = curl_easy_init(); + + while (!end_conn) + { + //Get a picture from the camera + bool ret; + + string _url = url;// + "?dummy=" + to_string(cpt); //force the webserver to reload the picture + + //clear old frame + if (pict_buffer) + { + free(pict_buffer); + pict_buffer = NULL; + pict_size = 0; + } + + if(curl) + { + curl_easy_setopt(curl, CURLOPT_URL, _url.c_str()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _CamConnection_CURL_write_callback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)this); + /* some servers don't like requests that are made without a user-agent + field, so we provide one */ + if (camera->get_param("model") == "ICA-210") + curl_easy_setopt(curl, CURLOPT_USERAGENT, ""); + else + curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0"); + curl_easy_setopt(curl, CURLOPT_ENCODING, "identity"); + curl_easy_setopt(curl, CURLOPT_FRESH_CONNECT, 0); + curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 0); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); + + //timeout for request + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 4); //4 seconds timeout + curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) break; + } + else + break; + + if (!header_sent) + { + //send headers informations + socket.Send(headers.str()); + + header_sent = true; + } + + //Some camera send empty picture, so to avoid a gstreamer crash, jump the frame + if (pict_size <= 0) continue; + + unsigned char *buf = (unsigned char *)pict_buffer; + + if (buf[0] != 0xFF || buf[1] != 0xD8 || + buf[2] != 0xFF) + { + cout << "Error in SOI !!" << endl; + printf("%02X%02X%02X%02X\n", buf[0], buf[1], buf[2], buf[3]); + + continue; + } + + if (streaming) headers.str("\r\n"); + if (streaming) headers << "--CalaosBoundary\r\n"; + if (streaming) headers << "Content-Type: image/jpeg\r\n"; + if (streaming) headers << "\r\n" << endl; + + if (!streaming) + { + headers << "HTTP/1.0 200 OK\r\n"; + headers << "Date: Sat, 01 Feb 2003 12:01:22 GMT\r\n"; + headers << "Server: Calaos/1.0\r\n"; + headers << "Connection: close\r\n"; + headers << "Content-Type: image/jpeg\r\n"; + headers << "Content-Length: " << pict_size << "\r\n"; + headers << "Pragma: no-cache\r\n"; + headers << "Cache-Control: no-cache\r\n"; + headers << "Expires: 01 Jan 1970 00:00:00 GMT\r\n"; + headers << "\r\n"; + } + + //send MIME header + ret = socket.Send(headers.str()); + + //send picture + if (socket.Send(pict_buffer, pict_size) < 0) ret = false; + + cpt++; + if (!ret) end_conn = true; + + if (!streaming) end_conn = true; + } + + curl_easy_cleanup(curl); +} + +void CamConnection::ThreadProc() +{ + quit = false; + + std::string request = ""; + char buffer[4096]; + int status = -1; + + while (request.find ("\n", 0 ) == request.npos || + request.find ("\r", 0 ) == request.npos || + request.find ("\0", 0 ) == request.npos) + { + memset(buffer, 0, 4096); + status = socket.Recv(&buffer, 4096); + + if (status == -1) + { + Utils::logger("network") << Priority::DEBUG << "CamConnection::ThreadProc(): Connection ended..." << log4cpp::eol; + break; + } + else if ( status == 0 ) + break; + else + request += buffer; + } + + vector headers; + split(request, headers, "\n\r"); + + if (status <= 0) + quit = true; + else + { + for (int k = 0;k < headers.size();k++) + { + string s = headers[k]; + int i = s.length() - 1; + while ((s[i] == '\n' || s[i] == '\r' || s[i] == '\0') && i >= 0) i--; + headers[k] = s; + } + + if (headers.size() > 0) + ProcessRequest(headers[0]); + } + + socket.InboundClose(); + end_conn = true; + Utils::logger("network") << Priority::DEBUG << "CamConnection::ThreadProc(): Closing remote connexion !" << log4cpp::eol; +} + +void CamConnection::Clean() +{ + socket.InboundClose(); +} + +//LibCURL callback +int _CamConnection_CURL_write_callback(void *buffer, size_t size, size_t nmemb, void *data) +{ + CamConnection *con = (CamConnection *)data; + char *wbuffer = con->get_buffer(); + unsigned long int wsize = con->get_size(); + + if (!wbuffer) + { + wbuffer = (char *)malloc(size * nmemb); + memcpy(wbuffer, buffer, size * nmemb); + wsize += size * nmemb; + con->set_buffer(wbuffer); + } + else + { + wbuffer = (char *)realloc(wbuffer, wsize + (size * nmemb)); + memcpy(wbuffer + wsize, buffer, size * nmemb); + wsize += size * nmemb; + con->set_buffer(wbuffer); + } + + con->set_size(wsize); + return nmemb; +} diff --git a/src/bin/calaos_server/IPCam/CamConnection.h b/src/bin/calaos_server/IPCam/CamConnection.h new file mode 100644 index 00000000..e5798b52 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamConnection.h @@ -0,0 +1,68 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_CamConnection_H +#define S_CamConnection_H + +#include +#include +#include +#include +#include +#include + +using namespace CalaosNetwork; + +namespace Calaos +{ + +class CamConnection: public CThread +{ + protected: + + TCPSocket socket; + bool end_conn; //fin de connexion + bool login; + bool quit; + + char *pict_buffer; + unsigned long int pict_size; + + void ProcessRequest(string &request); + + public: + CamConnection(TCPSocket socket); //socket to read from + ~CamConnection(); + + virtual void ThreadProc(); //redefined + + bool get_end() { return end_conn; } + + void Clean(); + + //Lib CURL stuff + char *get_buffer() { return pict_buffer; } + void set_buffer(char *b) { pict_buffer = b; } + unsigned long int get_size() { return pict_size; } + void set_size(unsigned long int s) { pict_size = s; } +}; + +} +#endif diff --git a/src/bin/calaos_server/IPCam/CamInput.cpp b/src/bin/calaos_server/IPCam/CamInput.cpp new file mode 100644 index 00000000..501d3b56 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamInput.cpp @@ -0,0 +1,45 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +CamInput::CamInput(Params &p, IPCam *_cam): + cam(_cam), Input(p) +{ + Utils::logger("input") << Priority::INFO << "CamInput::CamInput(): Ok" << log4cpp::eol; +} + +CamInput::~CamInput() +{ + Utils::logger("input") << Priority::INFO << "CamInput::~CamInput(): Ok" << log4cpp::eol; +} + +void CamInput::AcquireData() +{ +} + +std::string CamInput::get_value_string() +{ + return ""; +} diff --git a/src/bin/calaos_server/IPCam/CamInput.h b/src/bin/calaos_server/IPCam/CamInput.h new file mode 100644 index 00000000..70725b95 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamInput.h @@ -0,0 +1,52 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_CAMINPUT_H +#define S_CAMINPUT_H + +#include +#include +#include + +namespace Calaos +{ + +class IPCam; + +class CamInput: public Input +{ + private: + IPCam *cam; + + public: + CamInput(Params &p, IPCam *_cam); + ~CamInput(); + + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual void AcquireData(); + virtual std::string get_value_string(); + + IPCam *get_cam() { return cam; } +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/CamManager.cpp b/src/bin/calaos_server/IPCam/CamManager.cpp new file mode 100644 index 00000000..898cb8f6 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamManager.cpp @@ -0,0 +1,55 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +CamManager::CamManager() +{ +} + +CamManager::~CamManager() +{ + for (int i = 0;i < ip_cams.size();i++) + delete ip_cams[i]; + + ip_cams.clear(); +} + +CamManager &CamManager::Instance() +{ + static CamManager inst; + + return inst; +} + +void CamManager::Add(IPCam *module) +{ + ip_cams.push_back(module); +} + +void CamManager::Delete(int pos) +{ + vector::iterator iter = ip_cams.begin(); + for (int i = 0;i < pos;iter++, i++) ; + delete ip_cams[pos]; + ip_cams.erase(iter); +} diff --git a/src/bin/calaos_server/IPCam/CamManager.h b/src/bin/calaos_server/IPCam/CamManager.h new file mode 100644 index 00000000..643d4a3a --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamManager.h @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_CamManager_H +#define S_CamManager_H + +#include +#include + +namespace Calaos +{ + +class CamManager +{ + private: + CamManager(); + + std::vector ip_cams; + public: + static CamManager &Instance(); //Singleton + ~CamManager(); + + void Add(IPCam *cam); + void Delete(int i); + void Delete(IPCam *obj) + { ip_cams.erase(std::remove(ip_cams.begin(), ip_cams.end(), obj), ip_cams.end()); } + int get_size() { return ip_cams.size(); } //return the number of IP Cameras available + IPCam *get_camera(int i) { return ip_cams[i]; } +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/CamOutput.cpp b/src/bin/calaos_server/IPCam/CamOutput.cpp new file mode 100644 index 00000000..86bc9c07 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamOutput.cpp @@ -0,0 +1,80 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +CamOutput::CamOutput(Params &p, IPCam *_cam): cam(_cam), Output(p) +{ + Utils::logger("output") << Priority::INFO << "CamOutput::CamOutput(): Ok" << log4cpp::eol; +} + +CamOutput::~CamOutput() +{ + Utils::logger("output") << Priority::INFO << "CamOutput::~CamOutput(): Ok" << log4cpp::eol; +} + +bool CamOutput::set_value(std::string val) +{ + Utils::logger("output") << Priority::INFO << "CamOutput(" << get_param("id") << "): got action, " << val << log4cpp::eol; + + if (val == "mpeg_stream?") + { + answer = cam->get_mpeg_stream(); + } + else if (val == "mjpeg_stream?") + { + answer = cam->get_mjpeg_stream(); + } + else if (val == "single_frame?") + { + answer = cam->get_picture(); + } + else if (val.compare(0, 5, "move ") == 0) + { + val.erase(0, 5); + cam->activateCapabilities("ptz", "move", val); + } + else if (val.compare(0, 5, "save ") == 0) + { + val.erase(0, 5); + cam->activateCapabilities("position", "save", val); + } + else if (val.compare(0, 7, "recall ") == 0) + { + val.erase(0, 7); + cam->activateCapabilities("position", "recall", val); + } + + string sig = "output "; + sig += get_param("id") + " "; + sig += url_encode(string("state:") + val); + IPC::Instance().SendEvent("events", sig); + + return true; +} + +std::string CamOutput::get_value_string() +{ + return answer; +} diff --git a/src/bin/calaos_server/IPCam/CamOutput.h b/src/bin/calaos_server/IPCam/CamOutput.h new file mode 100644 index 00000000..5901b368 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamOutput.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +//----------------------------------------------------------------------------- +#ifndef S_CAMOUTPUT_H +#define S_CAMOUTPUT_H +//----------------------------------------------------------------------------- +#include +#include +#include +//----------------------------------------------------------------------------- +namespace Calaos +{ +//----------------------------------------------------------------------------- +class IPCam; +//----------------------------------------------------------------------------- +class CamOutput: public Output +{ + private: + std::string answer; + IPCam *cam; + + public: + CamOutput(Params &p, IPCam *_cam); + ~CamOutput(); + + virtual DATA_TYPE get_type() { return TSTRING; } + + virtual bool set_value(std::string val); + virtual std::string get_value_string(); + + IPCam *get_cam() { return cam; } +}; +//----------------------------------------------------------------------------- +} +//----------------------------------------------------------------------------- +#endif diff --git a/src/bin/calaos_server/IPCam/CamServer.cpp b/src/bin/calaos_server/IPCam/CamServer.cpp new file mode 100644 index 00000000..c1b10597 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamServer.cpp @@ -0,0 +1,85 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +CamServer::CamServer(int p): port(p) +{ + Utils::logger("network") << Priority::DEBUG << "CamServer::CamServer(): Ok" << log4cpp::eol; +} + +CamServer::~CamServer() +{ + delete socket; + socket = NULL; + Utils::logger("network") << Priority::DEBUG << "CamServer::~CamServer(): Ok" << log4cpp::eol; +} + +void CamServer::ThreadProc() +{ + Utils::logger("network") << Priority::DEBUG << "CamServer::ThreadProc(): Init IPCam relay server" << log4cpp::eol; + socket = new TCPSocket(); + + socket->Create(port); + socket->SetReuse(); + socket->Listen(); + Utils::logger("network") << Priority::DEBUG << "CamServer::ThreadProc(): Listening on port " << port << log4cpp::eol; + quit = false; + + while (!quit) + { + socket->Accept(); + + if (quit) break; + + Utils::logger("network") << Priority::DEBUG << "CamServer::ThreadProc(): Got a connection from address " + << socket->GetRemoteIP() << log4cpp::eol; + + vector::iterator iter = connections.begin(); + for (int i = 0;i < connections.size();iter++, i++) + { + //on supprime les connections qui sont finis + if (connections[i]->get_end()) + { + delete connections[i]; + connections.erase(iter); + } + } + + CamConnection *connection = new CamConnection(*socket); + connections.push_back(connection); + connection->Start(); //Start thread + } +} + +void CamServer::Clean() +{ + quit = true; + if (socket) + { + socket->Shutdown(); + socket->Close(); + } + + for(int i = 0;i < connections.size();i++) + connections[i]->Clean(); +} diff --git a/src/bin/calaos_server/IPCam/CamServer.h b/src/bin/calaos_server/IPCam/CamServer.h new file mode 100644 index 00000000..2712dba6 --- /dev/null +++ b/src/bin/calaos_server/IPCam/CamServer.h @@ -0,0 +1,52 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_CAMServer_H +#define S_CAMServer_H + +#include +#include +#include +#include + +using namespace CalaosNetwork; + +namespace Calaos +{ + +class CamServer: public CThread +{ + protected: + int port; + TCPSocket *socket; + vector connections; + bool quit; + + public: + CamServer(int port); //port to listen + ~CamServer(); + + virtual void ThreadProc(); //redefined + + void Clean(); +}; + +} +#endif diff --git a/src/bin/calaos_server/IPCam/Gadspot.cpp b/src/bin/calaos_server/IPCam/Gadspot.cpp new file mode 100644 index 00000000..386acaaf --- /dev/null +++ b/src/bin/calaos_server/IPCam/Gadspot.cpp @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +Gadspot::Gadspot(Params &p): IPCam(p) +{ + caps.Add("resolution", "640x480"); +} + +Gadspot::~Gadspot() +{ +} + +std::string Gadspot::get_mjpeg_stream() +{ + std::string url; + url = "http://" + param["host"] + ":" + param["port"]; + url += "/GetData.cgi"; + + return url; +} + +std::string Gadspot::get_picture() +{ + std::string url; + url = "http://" + param["host"] + ":" + param["port"]; + url += "/Jpeg/CamImg.jpg"; + + return url; +} diff --git a/src/bin/calaos_server/IPCam/Gadspot.h b/src/bin/calaos_server/IPCam/Gadspot.h new file mode 100644 index 00000000..e3324092 --- /dev/null +++ b/src/bin/calaos_server/IPCam/Gadspot.h @@ -0,0 +1,50 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_Gadspot_H +#define S_Gadspot_H + +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class Gadspot: public IPCam +{ + protected: + + public: + Gadspot(Params &p); + ~Gadspot(); + + //Standard IPCam functions. + std::string get_mjpeg_stream(); //return the mpeg url stream + std::string get_picture(); //return the url for a single frame +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/IPCam.cpp b/src/bin/calaos_server/IPCam/IPCam.cpp new file mode 100644 index 00000000..f3aa6079 --- /dev/null +++ b/src/bin/calaos_server/IPCam/IPCam.cpp @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +IPCam::IPCam(Params &p): param(p) +{ + if (!param.Exists("port")) param.Add("port", "80"); + + Params pio = param; + + pio.Add("id", param["oid"]); + pio.Add("type", "CamOutput"); + aoutput = new CamOutput(pio, this); + + pio.Add("id", param["iid"]); + pio.Add("type", "CamInput"); + ainput = new CamInput(pio, this); +} + +IPCam::~IPCam() +{ + delete aoutput; + delete ainput; +} + +bool IPCam::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:camera"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + param.get_item(i, key, value); + cnode->SetAttribute(key, value); + } + + return true; +} diff --git a/src/bin/calaos_server/IPCam/IPCam.h b/src/bin/calaos_server/IPCam/IPCam.h new file mode 100644 index 00000000..c1fbc4ce --- /dev/null +++ b/src/bin/calaos_server/IPCam/IPCam.h @@ -0,0 +1,90 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_IPCam_H +#define S_IPCam_H + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class IPCam +{ + protected: + Params param; + Output *aoutput; + Input *ainput; + Params caps; + + public: + IPCam(Params &p); + virtual ~IPCam(); + + //Standard IPCam functions. + virtual std::string get_cam_url() { return "http://" + param["host"] + ":" + param["port"]; } //return the url of the cam webpage + virtual std::string get_mpeg_stream() { return ""; } //return the mpeg url stream + virtual std::string get_mjpeg_stream() { return ""; } //return the mjpeg url stream + virtual std::string get_picture() { return ""; } //return the url for a single frame + + //this is used for internal purpose (The CamServer relay) + virtual std::string get_picture_real() { return get_picture(); } //return the real url for a single frame + + //Capabilities + /************************************************* + List of capabilities: + * ptz : bool + * position : int (number of memory position. if 0, position is not available) + * resolution : string (list of resolution, space separated) + * led : bool (to activate leds) + * buzzer : bool (to activate buzzer) + * privacy: bool (to activate privacy mode) + * quality: int (range for quality level) + * brightness: int (range) + * contrast: int (range) + * color: int (range) + * saturation: int (range) + * sharpness: int (range) + * hue: int (range) + **************************************************/ + virtual Params getCapabilities() { return caps; } + virtual void activateCapabilities(std::string caps, std::string cmd, std::string value) { } + + std::string get_param(std::string opt) { return param[opt]; } + void set_param(std::string opt, std::string val) { param.Add(opt, val); } + Params &get_params() { return param; } + Output *get_output() { return aoutput; } + Input *get_input() { return ainput; } + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node); +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/Planet.cpp b/src/bin/calaos_server/IPCam/Planet.cpp new file mode 100644 index 00000000..fec9a8b5 --- /dev/null +++ b/src/bin/calaos_server/IPCam/Planet.cpp @@ -0,0 +1,492 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +Planet::Planet(Params &p): IPCam(p), saturation("127"), sharpness("127"), + contrast("127"), hue("127"), brightness("127") +{ + //Set up capabilities + if (param["model"] == "ICA-300" || param["model"] == "ICA-302" || + param["model"] == "ICA-500") + { + caps.Add("resolution", "176x144 352x288 320x240 640x480"); + caps.Add("quality", "5"); + caps.Add("saturation", "256"); + caps.Add("sharpness", "256"); + caps.Add("contrast", "256"); + caps.Add("hue", "256"); + caps.Add("brightness", "256"); + } + + if (param["model"] == "ICA-500") + { + caps.Add("ptz", "true"); + caps.Add("position", "16"); + } + + if (param["model"] == "ICA-210" || param["model"] == "ICA-210W") + { + caps.Add("resolution", "176x144 320x240 640x480"); + caps.Add("quality", "3"); + caps.Add("ptz", "true"); + caps.Add("position", "8"); + caps.Add("led", "true"); + caps.Add("buzzer", "true"); + caps.Add("privacy", "true"); + caps.Add("brightness", "127"); + caps.Add("color", "127"); + caps.Add("contrast", "127"); + caps.Add("sharpness", "11"); + } +} + +Planet::~Planet() +{ +} + +std::string Planet::get_mpeg_stream() +{ + std::string url; + + //model ICA-300, ICA-500, ICA-210* does not support mpgeg stream + + return url; +} + +std::string Planet::get_mjpeg_stream() +{ + std::string url, user; + + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + if (param["model"] == "ICA-300" || param["model"] == "ICA-302" || param["model"] == "ICA-500") + { + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/GetData.cgi"; + } + else if (param["model"] == "ICA-210" || param["model"] == "ICA-210W") + { + //Get id + int id = -1; + for (int i = 0;i < CamManager::Instance().get_size();i++) + { + if (CamManager::Instance().get_camera(i)->get_param("id") == param["id"]) + id = i; + } + + //get local ip + std::string local_ip = TCPSocket::GetLocalIP(); + + url = "http://" + local_ip + ":5050/GetCamera.cgi?id=" + to_string(id); + } + + return url; +} + +std::string Planet::get_picture_real() +{ + std::string url, user; + + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + if (param["model"] == "ICA-300" || param["model"] == "ICA-302" || param["model"] == "ICA-500") + { + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Jpeg/CamImg.jpg"; + } + else + { + url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/video2"; + } + + return url; +} + +std::string Planet::get_picture() +{ + std::string url; + + if (param["model"] == "ICA-210" || param["model"] == "ICA-210W") + { + //Get id + int id = -1; + for (int i = 0;i < CamManager::Instance().get_size();i++) + { + if (CamManager::Instance().get_camera(i)->get_param("id") == param["id"]) + id = i; + } + + //get local ip + std::string local_ip = TCPSocket::GetLocalIP(); + + url = "http://" + local_ip + ":5050/GetPicture.cgi?id=" + to_string(id); + } + else + url = get_picture_real(); + + return url; +} + +void Planet::activateCapabilities(std::string cap, std::string cmd, std::string value) +{ + if (!caps.Exists(cap)) return; + + std::string user; + if (param.Exists("username")) + user = param["username"] + ":" + param["password"] + "@"; + + if (param["model"] == "ICA-300" || param["model"] == "ICA-302" || param["model"] == "ICA-500") + { + if (cap == "resolution" && cmd == "set") + { + if (value == "176x144") resolution = "0"; + if (value == "352x288") resolution = "1"; + if (value == "320x240") resolution = "2"; + if (value == "640x480") resolution = "3"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Change_Resolution.cgi?ResType=" + resolution; + Calaos::CallUrl(url); + } + else if (cap == "quality" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["quality"], _q); + Utils::from_string(value, q); + + if (q >= 0 && q < _q) + quality = value; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Change_Compress_Ratio.cgi?Ratio=" + quality; + Calaos::CallUrl(url); + } + else if (cap == "saturation" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["saturation"], _q); + Utils::from_string(value, q); + + if (q >= 0 && q < _q) + saturation = value; + + string _size; + if (resolution == "0") _size = "176"; + if (resolution == "1") _size = "352"; + if (resolution == "2") _size = "320"; + if (resolution == "3") _size = "640"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Set_Camera.cgi?Saturation=" + saturation; + url += "&Sharpness=" + sharpness; + url += "&Contrast=" + contrast; + url += "&Hue=" + hue; + url += "&Image_Size=" + _size; + url += "&Image_Quality=" + quality; + url += "&CamPan=0&CamTilt=0&Exposure_Mode_AM=0&Display_Mode=0&Camera_Tour=0&Camera_Reset=0"; + Calaos::CallUrl(url); + } + else if (cap == "sharpness" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["sharpness"], _q); + Utils::from_string(value, q); + + if (q >= 0 && q < _q) + sharpness = value; + + string _size; + if (resolution == "0") _size = "176"; + if (resolution == "1") _size = "352"; + if (resolution == "2") _size = "320"; + if (resolution == "3") _size = "640"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Set_Camera.cgi?Saturation=" + saturation; + url += "&Sharpness=" + sharpness; + url += "&Contrast=" + contrast; + url += "&Hue=" + hue; + url += "&Image_Size=" + _size; + url += "&Image_Quality=" + quality; + url += "&CamPan=0&CamTilt=0&Exposure_Mode_AM=0&Display_Mode=0&Camera_Tour=0&Camera_Reset=0"; + Calaos::CallUrl(url); + } + else if (cap == "contrast" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["contrast"], _q); + Utils::from_string(value, q); + + if (q >= 0 && q < _q) + contrast = value; + + string _size; + if (resolution == "0") _size = "176"; + if (resolution == "1") _size = "352"; + if (resolution == "2") _size = "320"; + if (resolution == "3") _size = "640"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Set_Camera.cgi?Saturation=" + saturation; + url += "&Sharpness=" + sharpness; + url += "&Contrast=" + contrast; + url += "&Hue=" + hue; + url += "&Image_Size=" + _size; + url += "&Image_Quality=" + quality; + url += "&CamPan=0&CamTilt=0&Exposure_Mode_AM=0&Display_Mode=0&Camera_Tour=0&Camera_Reset=0"; + Calaos::CallUrl(url); + } + else if (cap == "hue" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["hue"], _q); + Utils::from_string(value, q); + + if (q >= 0 && q < _q) + hue = value; + + string _size; + if (resolution == "0") _size = "176"; + if (resolution == "1") _size = "352"; + if (resolution == "2") _size = "320"; + if (resolution == "3") _size = "640"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Set_Camera.cgi?Saturation=" + saturation; + url += "&Sharpness=" + sharpness; + url += "&Contrast=" + contrast; + url += "&Hue=" + hue; + url += "&Image_Size=" + _size; + url += "&Image_Quality=" + quality; + url += "&CamPan=0&CamTilt=0&Exposure_Mode_AM=0&Display_Mode=0&Camera_Tour=0&Camera_Reset=0"; + Calaos::CallUrl(url); + } + else if (cap == "brightness" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["brightness"], _q); + Utils::from_string(value, q); + + if (q >= 0 && q < _q) + brightness = value; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/Change_Brightness.cgi?Brightness=" + brightness; + Calaos::CallUrl(url); + } + } + + if (param["model"] == "ICA-500") + { + if (cap == "ptz" && cmd == "move") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/MoveCamera.cgi?Dir="; + + if (value == "home") url += "Home"; + if (value == "left") url += "Left"; + if (value == "right") url += "Right"; + if (value == "up") url += "Up"; + if (value == "down") url += "Down"; + + Calaos::CallUrl(url); + } + else if (cap == "position" && cmd == "recall") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/MoveCamera.cgi?Dir=Recall&CameraParam=" + value; + + Calaos::CallUrl(url); + } + else if (cap == "position" && cmd == "save") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/MoveCamera.cgi?Dir=Preset&CameraParam=" + value; + + Calaos::CallUrl(url); + } + } + + if (param["model"] == "ICA-210" || param["model"] == "ICA-210W") + { + if (cap == "resolution" && cmd == "set") + { + if (value == "176x144") resolution = "0"; + if (value == "320x240") resolution = "1"; + if (value == "640x480") resolution = "2"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/resSel?f_ResIdxSel=" + resolution; + Calaos::CallUrl(url); + } + else if (cap == "quality" && cmd == "set") + { + if (value == "0") quality = "4"; + if (value == "1") quality = "2"; + if (value == "2") quality = "0"; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/qualSel?f_quality=" + quality; + Calaos::CallUrl(url); + } + if (cap == "ptz" && cmd == "move") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/ptact?f_mvaction="; + + if (value == "home") url += "2"; + if (value == "left") url += "-3"; + if (value == "right") url += "-4"; + if (value == "up") url += "-1"; + if (value == "down") url += "-2"; + + Calaos::CallUrl(url); + } + else if (cap == "position" && cmd == "recall") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/ptpreset?f_presetact=" + value; + + Calaos::CallUrl(url); + } + else if (cap == "position" && cmd == "save") + { + int pos; + Utils::from_string(value, pos); + pos--; + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/adminptpreset?f_presetidx=" + to_string(pos); + + Calaos::CallUrl(url); + } + else if (cap == "led") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/devact?f_devno=2&f_devact=1"; + + Calaos::CallUrl(url); + } + else if (cap == "buzzer") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/devact?f_devno=1&f_devact=1"; + + Calaos::CallUrl(url); + } + else if (cap == "privacy" && cmd == "set" && value == "true") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/ptact?f_mvaction=1"; + + Calaos::CallUrl(url); + } + else if (cap == "privacy" && cmd == "set" && value == "false") + { + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/privacymode_unset"; + + Calaos::CallUrl(url); + } + else if (cap == "brightness" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["brightness"], _q); + Utils::from_string(value, q); + + if (q > 0 && q <= _q) + brightness = value; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/cameraconfig?brightness=" + brightness; + url += "&contrast=" + contrast; + url += "&color=" + color; + url += "&sharp=" + sharpness; + url += "&quality=" + quality; + url += "&f_resolution=" + resolution; + Calaos::CallUrl(url); + } + else if (cap == "color" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["color"], _q); + Utils::from_string(value, q); + + if (q > 0 && q <= _q) + color = value; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/cameraconfig?brightness=" + brightness; + url += "&contrast=" + contrast; + url += "&color=" + color; + url += "&sharp=" + sharpness; + url += "&quality=" + quality; + url += "&f_resolution=" + resolution; + Calaos::CallUrl(url); + } + else if (cap == "contrast" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["contrast"], _q); + Utils::from_string(value, q); + + if (q > 0 && q <= _q) + contrast = value; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/cameraconfig?brightness=" + brightness; + url += "&contrast=" + contrast; + url += "&color=" + color; + url += "&sharp=" + sharpness; + url += "&quality=" + quality; + url += "&f_resolution=" + resolution; + Calaos::CallUrl(url); + } + else if (cap == "sharpness" && cmd == "set") + { + int _q, q; + Utils::from_string(caps["sharpness"], _q); + Utils::from_string(value, q); + + if (q > 0 && q <= _q) + sharpness = value; + + string url = "http://" + user + param["host"] + ":" + param["port"]; + url += "/goform/cameraconfig?brightness=" + brightness; + url += "&contrast=" + contrast; + url += "&color=" + color; + url += "&sharp=" + sharpness; + url += "&quality=" + quality; + url += "&f_resolution=" + resolution; + Calaos::CallUrl(url); + } + } +} + +//Move ICA-210 click on screen +//http://10.0.0.23/goform/ptmovepos?dx=-314&dy=90&res=2 +//where dx and dy are relative to the center of the current frame diff --git a/src/bin/calaos_server/IPCam/Planet.h b/src/bin/calaos_server/IPCam/Planet.h new file mode 100644 index 00000000..895a91e7 --- /dev/null +++ b/src/bin/calaos_server/IPCam/Planet.h @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_PLANET_H +#define S_PLANET_H + +#include +#include +#include +#include +#include +#include +#include + +using namespace CalaosNetwork; + +namespace Calaos +{ + +class Planet: public IPCam +{ + protected: + string resolution, quality; + string saturation, sharpness, contrast, hue; + string brightness, color; + + public: + Planet(Params &p); + ~Planet(); + + //Standard IPCam functions. + virtual std::string get_mpeg_stream(); //return the mpeg4 url stream (if any) + virtual std::string get_mjpeg_stream(); //return the mpeg url stream + virtual std::string get_picture(); //return the url for a single frame + virtual std::string get_picture_real(); //return the real url for a single frame + + virtual void activateCapabilities(std::string cap, std::string cmd, std::string value); +}; + +} + +#endif diff --git a/src/bin/calaos_server/IPCam/StandardMjpeg.cpp b/src/bin/calaos_server/IPCam/StandardMjpeg.cpp new file mode 100644 index 00000000..0445121c --- /dev/null +++ b/src/bin/calaos_server/IPCam/StandardMjpeg.cpp @@ -0,0 +1,125 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; +using namespace CalaosNetwork; + +StandardMjpeg::StandardMjpeg(Params &p): IPCam(p) +{ + //Nothing + for (int i = 0;i < p.size();i++) + { + std::string a, b; + p.get_item(i, a, b); + cout << a << ":" << b << endl; + } + + //actually this is only for testing UI, it does nothing + if (param.Exists("ptz")) + { + caps.Add("ptz", "true"); + caps.Add("position", "8"); + } + if (param.Exists("zoom")) + { + caps.Add("zoom", "true"); + } +} + +StandardMjpeg::~StandardMjpeg() +{ +} + +std::string StandardMjpeg::get_mpeg_stream() +{ + string url; + if (param["url_mpeg"] != "") url = param["url_mpeg"]; + + return url; +} + +std::string StandardMjpeg::get_picture_real() +{ + std::string url, user; + + if (param["url_jpeg"] != "") url = param["url_jpeg"]; + + return url; +} + +std::string StandardMjpeg::get_mjpeg_stream() +{ + string url; + if (param["url_mjpeg"] != "") + url = param["url_mjpeg"]; + else + { + //Get id + int id = -1; + for (int i = 0;i < CamManager::Instance().get_size();i++) + { + if (CamManager::Instance().get_camera(i)->get_param("id") == param["id"]) + id = i; + } + + //get local ip + std::string local_ip = TCPSocket::GetLocalIP(); + if (local_ip.empty()) + local_ip = TCPSocket::GetLocalIP("eth1"); + + url = "http://" + local_ip + ":5050/GetCamera.cgi?id=" + Utils::to_string(id); + } + + return url; +} + +std::string StandardMjpeg::get_picture() +{ + string url; + if (param["url_mjpeg"] != "") + url = param["url_jpeg"]; + else + { + //Get id + int id = -1; + for (int i = 0;i < CamManager::Instance().get_size();i++) + { + if (CamManager::Instance().get_camera(i)->get_param("id") == param["id"]) + id = i; + } + + //get local ip + string local_ip = TCPSocket::GetLocalIP(); + if (local_ip.empty()) + local_ip = TCPSocket::GetLocalIP("eth1"); + + url = "http://" + local_ip + ":5050/GetPicture.cgi?id=" + Utils::to_string(id); + } + + return url; +} + +void StandardMjpeg::activateCapabilities(std::string cap, std::string cmd, std::string value) +{ + //Nothing +} diff --git a/src/bin/calaos_server/IPCam/StandardMjpeg.h b/src/bin/calaos_server/IPCam/StandardMjpeg.h new file mode 100644 index 00000000..b017bb3f --- /dev/null +++ b/src/bin/calaos_server/IPCam/StandardMjpeg.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_STDMJPEG_H +#define S_STDMJPEG_H + +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +class StandardMjpeg: public IPCam +{ + protected: + + public: + StandardMjpeg(Params &p); + ~StandardMjpeg(); + + //Standard IPCam functions. + virtual std::string get_mpeg_stream(); //return the mpeg4 url stream (if any) + virtual std::string get_mjpeg_stream(); //return the mpeg url stream + virtual std::string get_picture(); //return the url for a single frame + virtual std::string get_picture_real(); //return the real url for a single frame + + virtual void activateCapabilities(std::string cap, std::string cmd, std::string value); +}; + +} + +#endif diff --git a/src/bin/calaos_server/Input.cpp b/src/bin/calaos_server/Input.cpp new file mode 100644 index 00000000..a0bcf8b4 --- /dev/null +++ b/src/bin/calaos_server/Input.cpp @@ -0,0 +1,60 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include + +using namespace Calaos; + +Input::Input(Params &p): + IOBase(p) +{ + iter_input = signal_input.connect(sigc::mem_fun(&ListeRule::Instance(), &ListeRule::ExecuteRuleSignal)); + + ListeRoom::Instance().addInputHash(this); +} + +Input::~Input() +{ + iter_input->disconnect(); + ListeRoom::Instance().delInputHash(this); +} + +void Input::EmitSignalInput() +{ + Utils::logger("input") << Priority::DEBUG << "Input::EmitSignalInput(" << get_param("id") << ")" << log4cpp::eol; + signal_input.emit(get_param("id")); +} + +bool Input::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:input"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + get_params().get_item(i, key, value); + cnode->SetAttribute(key, value); + } + + return true; +} diff --git a/src/bin/calaos_server/Input.h b/src/bin/calaos_server/Input.h new file mode 100644 index 00000000..2b31d017 --- /dev/null +++ b/src/bin/calaos_server/Input.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_INPUT_H +#define S_INPUT_H + +#include +#include + +namespace Calaos +{ + +class Input: public IOBase +{ + protected: + typedef sigc::signal type_signal_input; + type_signal_input signal_input; + type_signal_input::iterator iter_input; + + public: + Input(Params &p); + virtual ~Input(); + + virtual void force_input_bool(bool val) { /* Do nothing */ } + virtual void force_input_double(double val) { /* Do nothing */ } + virtual void force_input_string(std::string val) { /* Do nothing */ } + + virtual void EmitSignalInput(); + virtual void hasChanged() { } + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/ListeRoom.cpp b/src/bin/calaos_server/ListeRoom.cpp new file mode 100644 index 00000000..117e1c0e --- /dev/null +++ b/src/bin/calaos_server/ListeRoom.cpp @@ -0,0 +1,721 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include + +using namespace Calaos; + +ListeRoom &ListeRoom::Instance() +{ + static ListeRoom inst; + + return inst; +} + +ListeRoom::ListeRoom() +{ + eina_init(); + + input_table = eina_hash_string_superfast_new(NULL); + output_table = eina_hash_string_superfast_new(NULL); + + Utils::logger("rooms") << Priority::DEBUG << "ListeRoom::ListeRoom(): Ok" << log4cpp::eol; +} + +ListeRoom::~ListeRoom() +{ + for (int i = 0;i < rooms.size();i++) + delete rooms[i]; + + rooms.clear(); + + eina_hash_free(input_table); + eina_hash_free(output_table); + + eina_shutdown(); + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::~ListeRoom(): Ok" << log4cpp::eol; +} + +void ListeRoom::addInputHash(Input *input) +{ + if (!input) return; + + string id = input->get_param("id"); + if (input->get_param("type") == "CamInput" || + input->get_param("type") == "AudioInput") + { + id = input->get_param("iid"); + } + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::addInputHash(" << id << ")" << log4cpp::eol; + + eina_hash_add(input_table, id.c_str(), input); +} + +void ListeRoom::delInputHash(Input *input) +{ + if (!input) return; + + string id = input->get_param("id"); + if (input->get_param("type") == "CamInput" || + input->get_param("type") == "AudioInput") + { + id = input->get_param("iid"); + } + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::delInputHash(" << id << ")" << log4cpp::eol; + + eina_hash_del(input_table, id.c_str(), NULL); +} + +void ListeRoom::addOutputHash(Output *output) +{ + if (!output) return; + + string id = output->get_param("id"); + if (output->get_param("type") == "CamOutput" || + output->get_param("type") == "AudioOutput") + { + id = output->get_param("oid"); + } + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::addOutputHash(" << id << ")" << log4cpp::eol; + + eina_hash_add(output_table, id.c_str(), output); +} + +void ListeRoom::delOutputHash(Output *output) +{ + if (!output) return; + + string id = output->get_param("id"); + if (output->get_param("type") == "CamOutput" || + output->get_param("type") == "AudioOutput") + { + id = output->get_param("oid"); + } + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::delOutputHash(" << id << ")" << log4cpp::eol; + + eina_hash_del(output_table, id.c_str(), NULL); +} + +void ListeRoom::Add(Room *p) +{ + rooms.push_back(p); + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::Add(" << p->get_name() << "," << p->get_type() << "): Ok" << log4cpp::eol; +} + +void ListeRoom::Remove(int pos) +{ + vector::iterator iter = rooms.begin(); + for (int i = 0;i < pos;iter++, i++) ; + delete rooms[pos]; + rooms.erase(iter); + + Utils::logger("room") << Priority::DEBUG << "ListeRoom::Remove(): Ok" << log4cpp::eol; +} + +Room *ListeRoom::operator[] (int i) const +{ + return rooms[i]; +} + +Room *ListeRoom::get_room(int i) +{ + return rooms[i]; +} + +Input *ListeRoom::get_input(std::string in) +{ + Input *i = reinterpret_cast(eina_hash_find(input_table, in.c_str())); + + Utils::logger("room") << Priority::DEBUG << "Searching inputs for \"" << in << "\" => " << ((i)?"found":"not found") << log4cpp::eol; + + return i; +} + +Output *ListeRoom::get_output(std::string out) +{ + Output *o = reinterpret_cast(eina_hash_find(output_table, out.c_str())); + + Utils::logger("room") << Priority::DEBUG << "Searching outputs for \"" << out << "\" => " << ((o)?"found":"not found") << log4cpp::eol; + + return o; +} + +Input *ListeRoom::get_input(int i) +{ + int cpt = 0; + + for (int j = 0;j < rooms.size();j++) + { + for (int m = 0;m < rooms[j]->get_size_in();m++) + { + Input *in = rooms[j]->get_input(m); + if (cpt == i) + { + return in; + } + + cpt++; + } + } + + return NULL; +} + +Output *ListeRoom::get_output(int i) +{ + int cpt = 0; + + for (int j = 0;j < rooms.size();j++) + { + for (int m = 0;m < rooms[j]->get_size_out();m++) + { + Output *out = rooms[j]->get_output(m); + if (cpt == i) + { + return out; + } + + cpt++; + } + } + + return NULL; +} + +bool ListeRoom::delete_input(Input *input, bool del) +{ + bool done = false; + for (int j = 0;!done && j < rooms.size();j++) + { + for (int m = 0;!done && m < get_room(j)->get_size_in();m++) + { + Input *in = get_room(j)->get_input(m); + if (in == input) + { + get_room(j)->RemoveInput(m, del); + done = true; + } + } + } + + return done; +} + +bool ListeRoom::delete_output(Output *output, bool del) +{ + bool done = false; + for (int j = 0;!done && j < rooms.size();j++) + { + for (int m = 0;!done && m < get_room(j)->get_size_out();m++) + { + Output *out = get_room(j)->get_output(m); + if (out == output) + { + get_room(j)->RemoveOutput(m, del); + done = true; + } + } + } + + return done; +} + +int ListeRoom::get_nb_input() +{ + return eina_hash_population(input_table); +} + +int ListeRoom::get_nb_output() +{ + return eina_hash_population(output_table); +} + +Input *ListeRoom::get_chauffage_var(std::string &chauff_id, ChauffType type) +{ + Utils::logger("room") << Priority::DEBUG << "Searching inputs for chauffage_id \"" << chauff_id << "\"" << log4cpp::eol; + for (int j = 0;j < rooms.size();j++) + { + for (int m = 0;m < rooms[j]->get_size_in();m++) + { + Input *in = rooms[j]->get_input(m); + Utils::logger("room") << Priority::DEBUG << "Comparing \"" << in->get_param("chauffage_id") + << "\" with \"" << chauff_id << "\"" << log4cpp::eol; + if (in->get_param("chauffage_id") == chauff_id) + { + Utils::logger("room") << Priority::DEBUG << "\"" << chauff_id << "\" found !" << log4cpp::eol; + switch (type) + { + case PLAGE_HORAIRE: if (in->get_param("type") == "InPlageHoraire") return in; break; + case CONSIGNE: if (in->get_param("type") == "InternalInt") return in; break; + case ACTIVE: if (in->get_param("type") == "InternalBool") return in; break; + } + } + } + } + + Utils::logger("room") << Priority::DEBUG << "\"" << chauff_id << "\" not found !" << log4cpp::eol; + return NULL; +} + +void ListeRoom::addScenarioCache(Scenario *sc) +{ + auto_scenario_cache.push_back(sc); +} + +void ListeRoom::delScenarioCache(Scenario *sc) +{ + auto_scenario_cache.remove(sc); +} + +list ListeRoom::getAutoScenarios() +{ + Utils::logger("room") << Priority::DEBUG << "getAutoScenario(): Found " << auto_scenario_cache.size() << " auto_scenarios." << log4cpp::eol; + + return auto_scenario_cache; +} + +void ListeRoom::checkAutoScenario() +{ + list::iterator it = auto_scenario_cache.begin(); + + for (;it != auto_scenario_cache.end();it++) + { + Scenario *sc = *it; + if (sc->getAutoScenario()) + sc->getAutoScenario()->checkScenarioRules(); + } + + list to_remove; + for (int i = 0;i < ListeRule::Instance().size();i++) + { + Rule *rule = ListeRule::Instance().get_rule(i); + if (rule->param_exists("auto_scenario") && !rule->isAutoScenario()) + to_remove.push_back(rule); + } + + list::iterator itr = to_remove.begin(); + for (;itr != to_remove.end();itr++) + ListeRule::Instance().Remove(*itr); + + //Resave config, auto scenarios have probably created/deleted ios and rules + Config::Instance().SaveConfigIO(); + Config::Instance().SaveConfigRule(); +} + +Room * ListeRoom::searchRoomByNameAndType(string name, string type) +{ + Room *r = NULL; + vector::iterator itRoom; + + for(itRoom = rooms.begin(); itRoom != rooms.end() && !r; itRoom++) + if( (*itRoom)->get_name() == name && (*itRoom)->get_type() == type) + r = *itRoom; + + return r; +} + +Room *ListeRoom::getRoomByInput(Input *o) +{ + Room *r = NULL; + + for (int j = 0;j < rooms.size() && !r;j++) + { + for (int m = 0;m < rooms[j]->get_size_in() && !r;m++) + { + if (rooms[j]->get_input(m) == o) + r = rooms[j]; + } + } + + return r; +} + +Room *ListeRoom::getRoomByOutput(Output *o) +{ + Room *r = NULL; + + for (int j = 0;j < rooms.size() && !r;j++) + { + for (int m = 0;m < rooms[j]->get_size_out() && !r;m++) + { + if (rooms[j]->get_output(m) == o) + r = rooms[j]; + } + } + + return r; +} + +bool ListeRoom::deleteIO(Input *input, bool modify) +{ + //first delete all rules using "input" + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(input); + + bool done = false; + if (input->get_param("type") == "CamInput" + || input->get_param("type") == "AudioInput" + || input->get_param("type") == "IRInput" + || input->get_param("type") == "CamOutput" + || input->get_param("type") == "AudioOutput" + || input->get_param("type") == "IROutput") + { + CamInput *icam = dynamic_cast(input); + if (icam) + { + IPCam *cam = icam->get_cam(); + delete_input(cam->get_input(), false); + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(cam->get_output()); + delete_output(cam->get_output(), false); + CamManager::Instance().Delete(cam); + done = true; + } + AudioInput *iaudio = dynamic_cast(input); + if (iaudio) + { + AudioPlayer *audio = iaudio->get_player(); + delete_input(audio->get_input(), false); + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(audio->get_output()); + delete_output(audio->get_output(), false); + AudioManager::Instance().Delete(audio); + done = true; + } + } + else + { + if (input->get_param("type") == "InputTime" + || input->get_param("type") == "WITemp" + || input->get_param("type") == "WIAnalog" + || input->get_param("type") == "OWTemp" + || input->get_param("type") == "InPlageHoraire" + || input->get_param("type") == "InputTimer") + ListeRule::Instance().Remove(input); + if (input->get_param("type") == "InputTimer") + { + //also delete the output + InputTimer *tm = dynamic_cast (input); + Output *o = dynamic_cast (tm); + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(o); + if (o) ListeRoom::Instance().delete_output(o, false); + } + + if (input->get_param("type") == "scenario" || input->get_param("type") == "Scenario") + { + //also delete the output + Scenario *sc = dynamic_cast (input); + if (sc) + { + Output *o = dynamic_cast (sc); + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(o); + if (o) + ListeRoom::Instance().delete_output(o, false); + } + } + + if (input->get_param("type") == "InternalBool" || + input->get_param("type") == "InternalInt" || + input->get_param("type") == "InternalString") + { + //also delete the output + Internal *internal = dynamic_cast (input); + + if (internal) + { + Output *o = dynamic_cast (internal); + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(o); + if (o) + ListeRoom::Instance().delete_output(o, false); + } + } + + done = ListeRoom::Instance().delete_input(input); + } + + return done; +} + + +bool ListeRoom::deleteIO(Output *output, bool modify) +{ + //first delete all rules using "output" + if (!modify) //only deletes if modify is not set + ListeRule::Instance().RemoveRule(output); + + bool done = false; + if (output->get_param("type") == "CamInput" + || output->get_param("type") == "AudioInput" + || output->get_param("type") == "IRInput" + || output->get_param("type") == "CamOutput" + || output->get_param("type") == "AudioOutput" + || output->get_param("type") == "IROutput") + { + CamOutput *icam = dynamic_cast(output); + if (icam) + { + IPCam *cam = icam->get_cam(); + ListeRule::Instance().RemoveRule(cam->get_input()); + ListeRoom::Instance().delete_input(cam->get_input(), false); + ListeRoom::Instance().delete_output(cam->get_output(), false); + CamManager::Instance().Delete(cam); + done = true; + } + AudioOutput *iaudio = dynamic_cast(output); + if (iaudio) + { + AudioPlayer *audio = iaudio->get_player(); + ListeRule::Instance().RemoveRule(audio->get_input()); + ListeRoom::Instance().delete_input(audio->get_input(), false); + ListeRoom::Instance().delete_output(audio->get_output(), false); + AudioManager::Instance().Delete(audio); + done = true; + } + } + else if (output->get_param("type") != "OutTouchscreen") + { + if (output->get_param("type") == "InputTimer") + { + //also delete the input + InputTimer *tm = dynamic_cast (output); + Input *in = dynamic_cast (tm); + ListeRule::Instance().RemoveRule(in); + ListeRule::Instance().Remove(in); + if (in) ListeRoom::Instance().delete_input(in, false); + } + + if (output->get_param("type") == "scenario" + || output->get_param("type") == "Scenario") + { + //also delete the input + Scenario *sc = dynamic_cast (output); + if (sc) + { + Input *o = dynamic_cast (sc); + ListeRule::Instance().RemoveRule(o); + if (o) ListeRoom::Instance().delete_input(o, false); + } + } + + if (output->get_param("type") == "InternalBool" || + output->get_param("type") == "InternalInt" || + output->get_param("type") == "InternalString") + { + //also delete the input + Internal *internal = dynamic_cast (output); + if (internal) + { + Input *o = dynamic_cast (internal); + if (o) + { + ListeRule::Instance().RemoveRule(o); + ListeRoom::Instance().delete_input(o, false); + } + } + } + + done = ListeRoom::Instance().delete_output(output); + } + + return done; +} + +Input* ListeRoom::createInput(Params param, Room *room) +{ + Input *input = NULL; + + if (!param.Exists("name")) param.Add("name", "Input"); + if (!param.Exists("type")) param.Add("type", "WIDigital"); + if (param["type"] != "scenario" && param["type"] != "InputTimeDate" && + param["type"] != "InputTime" && param["type"] != "X10Output" && + param["type"] != "InternalInt" && param["type"] != "InternalBool" && + param["type"] != "InternalString" && param["type"] != "InputTimer") + { + if (!param.Exists("var")) param.Add("var", "0"); + if (!param.Exists("host")) param.Add("host", "10.0.0.123"); + if (!param.Exists("port")) param.Add("port", "502"); + } + + if (param["type"] == "InternalBool" || param["type"] == "InternalInt" || param["type"] == "InternalString") + { + if (!param.Exists("id")) param.Add("id", Calaos::get_new_id("intern_")); + } + else + { + if (!param.Exists("id")) param.Add("id", Calaos::get_new_id("input_")); + } + + if (param["type"] == "InputTime" || param["type"] == "InputTimeDate" || + param["type"] == "InputTimer") + { + if (!param.Exists("hour")) param.Add("hour", "0"); + if (!param.Exists("min")) param.Add("min", "0"); + if (!param.Exists("sec")) param.Add("sec", "0"); + } + if (param["type"] == "InputTimeDate") + { + if (!param.Exists("year")) param.Add("year", "0"); + if (!param.Exists("month")) param.Add("month", "0"); + if (!param.Exists("day")) param.Add("day", "0"); + param.Add("type", "InputTime"); + } + + if (param["type"] == "InputTimer") + { + if (!param.Exists("msec")) param.Add("msec", "0"); + std::string type = param["type"]; + input = IOFactory::CreateInput(type, param); + if (input) room->AddInput(input); + + //also add the it as an output + InputTimer *o = dynamic_cast (input); + if (o) room->AddOutput(o); + + string sig = "new_input id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + + //Also new output + sig = "new_output id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + } + else if (param["type"] == "scenario") + { + std::string type = param["type"]; + input = IOFactory::CreateInput(type, param); + if (input) room->AddInput(input); + + //also add it as an output + Scenario *o = dynamic_cast (input); + if (o) room->AddOutput(o); + + string sig = "new_input id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + + //Also new output + sig = "new_output id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + } + else if (param["type"] == "InternalBool" || param["type"] == "InternalInt" || param["type"] == "InternalString") + { + if (!param.Exists("name")) param.Add("name", "Value"); + + std::string type = param["type"]; + input = IOFactory::CreateInput(type, param); + if (input) room->AddInput(input); + + //also add it as an output + Internal *o = dynamic_cast (input); + if (o) room->AddOutput(o); + + string sig = "new_input id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + + //Also new output + sig = "new_output id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + } + else + { + std::string type = param["type"]; + input = IOFactory::CreateInput(type, param); + if (input) room->AddInput(input); + + string sig = "new_input id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + } + + return input; +} + +Output* ListeRoom::createOutput(Params param, Room *room) +{ + Output *output = NULL; + + if (!param.Exists("name")) param.Add("name", "Output"); + if (!param.Exists("type")) param.Add("type", "WODigital"); + if (!param.Exists("host")) param.Add("host", "10.0.0.123"); + if (!param.Exists("port")) param.Add("port", "502"); + if (param["type"] == "WOVolet") + { + if (!param.Exists("var_up")) param.Add("var_up", "0"); + if (!param.Exists("var_down")) param.Add("var_down", "0"); + if (!param.Exists("time")) param.Add("time", "30"); + } + if (param["type"] == "WOVoletSmart") + { + if (!param.Exists("var_up")) param.Add("var_up", "0"); + if (!param.Exists("var_down")) param.Add("var_down", "0"); + if (!param.Exists("time_up")) param.Add("time_up", "30"); + if (!param.Exists("time_down")) param.Add("time_down", "28"); + } + else if (param["type"] == "WONeon") + { + if (!param.Exists("var")) param.Add("var", "0"); + if (!param.Exists("var_relay")) param.Add("var_relay", "0"); + } + else if (param["type"] == "WODali" && (param["type"] == "WODaliRVB")) + if (!param.Exists("var")) param.Add("var", "0"); + if (!param.Exists("id")) param.Add("id", Calaos::get_new_id("output_")); + + std::string type = param["type"]; + output = IOFactory::CreateOutput(type, param); + if (output) room->AddOutput(output); + + string sig = "new_output id:"; + sig += param["id"] + " "; + sig += url_encode(string("room_name:") + room->get_name()) + " "; + sig += url_encode(string("room_type:") + room->get_type()); + IPC::Instance().SendEvent("events", sig); + + return output; +} diff --git a/src/bin/calaos_server/ListeRoom.h b/src/bin/calaos_server/ListeRoom.h new file mode 100644 index 00000000..56ca61ba --- /dev/null +++ b/src/bin/calaos_server/ListeRoom.h @@ -0,0 +1,111 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_ListeRoom_H +#define S_ListeRoom_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Calaos +{ + +typedef enum { PLAGE_HORAIRE, CONSIGNE, ACTIVE } ChauffType; + +class ListeRoom +{ + protected: + std::vector rooms; + Eina_Hash *input_table; + Eina_Hash *output_table; + + list auto_scenario_cache; + + ListeRoom(); + + public: + //singleton + static ListeRoom &Instance(); + + ~ListeRoom(); + + void Add(Room *p); + void Remove(int i); + Room *get_room(int i); + Room *operator[] (int i) const; + + Input *get_input(std::string i); + Output *get_output(std::string i); + + Input *get_input(int i); + Output *get_output(int i); + bool delete_input(Input *in, bool del = true); + bool delete_output(Output *out, bool del = true); + + int get_nb_input(); + int get_nb_output(); + + int size() { return rooms.size(); } + + Input *get_chauffage_var(std::string &chauff_id, ChauffType type); + + //Auto scenarios + + void addScenarioCache(Scenario *sc); + void delScenarioCache(Scenario *sc); + list getAutoScenarios(); + void checkAutoScenario(); + + Room * searchRoomByNameAndType(string name,string type); + + Room *getRoomByInput(Input *o); + Room *getRoomByOutput(Output *o); + + bool deleteIO(Input *input, bool modify = false); + bool deleteIO(Output *output, bool modify = false); + + Input* createInput(Params param, Room *room); + Output* createOutput(Params param, Room *room); + + void addInputHash(Input *input); + void delInputHash(Input *input); + void addOutputHash(Output *output); + void delOutputHash(Output *output); +}; + +} + +#endif diff --git a/src/bin/calaos_server/ListeRule.cpp b/src/bin/calaos_server/ListeRule.cpp new file mode 100644 index 00000000..75b8ba85 --- /dev/null +++ b/src/bin/calaos_server/ListeRule.cpp @@ -0,0 +1,291 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +ListeRule &ListeRule::Instance() +{ + static ListeRule inst; + + return inst; +} + +ListeRule::~ListeRule() +{ + for (int i = 0;i < rules.size();i++) + delete rules[i]; + + rules.clear(); + + Utils::logger("rule") << Priority::DEBUG << "ListeRule::~ListeRule(): Ok" << log4cpp::eol; +} + +void ListeRule::Add(Rule *r) +{ + rules.push_back(r); + + if (r->param_exists("auto_scenario")) + rules_scenarios.push_back(r); + + Utils::logger("rule") << Priority::DEBUG << "ListeRule::Add(" << r->get_name() << "," << r->get_type() << "): Ok" << log4cpp::eol; +} + +void ListeRule::Remove(int pos) +{ + vector::iterator iter = rules.begin(); + for (int i = 0;i < pos;iter++, i++) ; + + if (rules[pos]->param_exists("auto_scenario")) + rules_scenarios.erase(std::remove(rules_scenarios.begin(), rules_scenarios.end(), rules[pos]), rules_scenarios.end()); + + delete rules[pos]; + rules.erase(iter); + + Utils::logger("rule") << Priority::DEBUG << "ListeRule::Remove(): Ok" << log4cpp::eol; +} + +Rule *ListeRule::operator[] (int i) const +{ + return rules[i]; +} + +Rule *ListeRule::get_rule(int i) +{ + return rules[i]; +} + +void ListeRule::RunEventLoop() +{ + if (loop) return; //only one loop at once! + + loop = true; + + //detect events + for (int i = 0;i < in_event.size();i++) + in_event[i]->hasChanged(); + + loop = false; + +// Utils::logger("rule") << Priority::DEBUG << "ListeRule::RunEventLoop(): Loop exited" << log4cpp::eol; +} + +void ListeRule::StopLoop() +{ + loop = false; +} + +Eina_Bool _execute_rule_signal_idler_cb(void *data) +{ + Rule_idler_cb *cb = reinterpret_cast(data); + if (!cb) return ECORE_CALLBACK_CANCEL; + + ListeRule::Instance().ExecuteRuleSignal(cb->input); + + delete cb; + + //delete the ecore_idler + return ECORE_CALLBACK_CANCEL; +} + +void ListeRule::ExecuteRuleSignal(std::string io_id) +{ + if (!mutex.try_lock()) + { + //We can't execute rules for now. Do it later. + Rule_idler_cb *cb = new Rule_idler_cb; + + cb->input = io_id; + cb->idler = ecore_idler_add(_execute_rule_signal_idler_cb, cb); + + Utils::logger("rule") << Priority::DEBUG << "ListeRule::ExecuteRuleSignal(): Mutex locked, execute rule later for input " << io_id << log4cpp::eol; + + return; + } + + Utils::logger("rule") << Priority::DEBUG << "ListeRule::ExecuteRuleSignal(): received signal for id " << io_id << log4cpp::eol; + + for (int i = 0;i < rules.size();i++) + { + Rule *rule = rules[i]; + for (int j = 0;j < rule->get_size_conds();j++) + { + ConditionStd *cond = dynamic_cast(rule->get_condition(j)); + bool exec = false; + for (int k = 0;cond && k < cond->get_size();k++) + { + if (cond->get_input(k)->get_param("id") == io_id) + { + rule->Execute(); + exec = true; + } + } + if (!exec && cond) + { + vector list; + cond->getVarIds(list); + + for (int k = 0;k < list.size();k++) + { + if (list[k]->get_param("id") == io_id) + { + rule->Execute(); + exec = true; + } + } + } + + ConditionScript *scond = dynamic_cast(rule->get_condition(j)); + for (int k = 0;scond && k < scond->get_size();k++) + { + if (scond->get_input(k)->get_param("id") == io_id) + rule->Execute(); + } + + ConditionOutput *ocond = dynamic_cast(rule->get_condition(j)); + if (ocond && ocond->getOutput()->get_param("id") == io_id) + rule->Execute(); + } + } + + mutex.unlock(); +} + +void ListeRule::RemoveRule(Input *obj) +{ + //delete all rules using "output" + for (int i = 0;i < rules.size();i++) + { + Rule *rule = get_rule(i); + Rule *rule_to_del = NULL; + for (int j = 0;j < rule->get_size_conds();j++) + { + ConditionStd *cond = dynamic_cast(rule->get_condition(j)); + if (!cond) continue; + for (int k = 0;k < cond->get_size();k++) + { + if (obj->get_param("id") + == cond->get_input(k)->get_param("id")) + rule_to_del = rule; + } + } + if (rule_to_del) + { + Remove(rule_to_del); + i--; + } + } +} + +void ListeRule::RemoveRule(Output *obj) +{ + //delete all rules using "output" + for (int i = 0;i < rules.size();i++) + { + Rule *rule = get_rule(i); + Rule *rule_to_del = NULL; + for (int j = 0;j < rule->get_size_actions();j++) + { + ActionStd *action = dynamic_cast(rule->get_action(j)); + if (!action) continue; + for (int k = 0;k < action->get_size();k++) + { + if (obj->get_param("id") == action->get_output(k)->get_param("id")) + rule_to_del = rule; + } + } + if (rule_to_del) + { + Remove(rule_to_del); + i--; + } + } +} + +void ListeRule::updateAllRulesToInput(Input *oldio, Input *newio) +{ + for (int i = 0;i < rules.size();i++) + { + Rule *rule = get_rule(i); + for (int j = 0;j < rule->get_size_conds();j++) + { + ConditionStd *cond = dynamic_cast(rule->get_condition(j)); + if (!cond) continue; + for (int k = 0;k < cond->get_size();k++) + { + if (cond->get_input(k) == oldio) + cond->Assign(k, newio); + } + } + } +} + +void ListeRule::updateAllRulesToOutput(Output *oldio, Output *newio) +{ + for (int i = 0;i < rules.size();i++) + { + Rule *rule = get_rule(i); + for (int j = 0;j < rule->get_size_actions();j++) + { + ActionStd *action = dynamic_cast(rule->get_action(j)); + if (!action) continue; + for (int k = 0;k < action->get_size();k++) + { + if (action->get_output(k) == oldio) + action->Assign(k, newio); + } + } + } +} + +void ListeRule::ExecuteStartRules() +{ + for (int i = 0;i < rules.size();i++) + { + Rule *rule = get_rule(i); + bool found = false; + + for (int j = 0;j < rule->get_size_conds();j++) + { + ConditionStart *condition = dynamic_cast(rule->get_condition(j)); + if (condition) + found = true; + } + + if (found) + rule->Execute(); + } +} + +list ListeRule::getRuleAutoScenario(string auto_scenario) +{ + list l; + list::iterator it = rules_scenarios.begin(); + + for (;it != rules_scenarios.end();it++) + { + Rule *r = *it; + if (r->get_param("auto_scenario") == auto_scenario) + l.push_back(r); + } + + return l; +} diff --git a/src/bin/calaos_server/ListeRule.h b/src/bin/calaos_server/ListeRule.h new file mode 100644 index 00000000..660fdcf8 --- /dev/null +++ b/src/bin/calaos_server/ListeRule.h @@ -0,0 +1,107 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_LISTERULE_H +#define S_LISTERULE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace Calaos +{ + +typedef struct _rule_idler_cb +{ + string input; + Ecore_Idler *idler; +} Rule_idler_cb; + +class ListeRule: public sigc::trackable +{ + protected: + std::vector rules; + + //these input's events are detected in the RunEventLoop() function + std::vector in_event; + + //Rules for autoscenario + list rules_scenarios; + + bool loop; + + Mutex mutex; + + ListeRule(): loop(false), mutex(false) + { Utils::logger("rule") << Priority::DEBUG << "ListeRule::ListeRule(): Ok" << log4cpp::eol; } + + public: + //singleton + static ListeRule &Instance(); + + ~ListeRule(); + + void Add(Rule *p); + void Remove(int i); + void Remove(Rule *obj) + { rules.erase(std::remove(rules.begin(), rules.end(), obj), rules.end()); + rules_scenarios.erase(std::remove(rules_scenarios.begin(), rules_scenarios.end(), obj), rules_scenarios.end()); delete obj; } + void RemoveRule(Input *obj); //remove all rules containing obj + void RemoveRule(Output *obj); //remove all rules containing obj + + void updateAllRulesToInput(Input *oldio, Input *newio); + void updateAllRulesToOutput(Output *oldio, Output *newio); + + Rule *get_rule(int i); + Rule *operator[] (int i) const; + + void Add(Input *in) { in_event.push_back(in); } + void Remove(Input *in) + { in_event.erase(std::remove(in_event.begin(), in_event.end(), in), in_event.end()); } + //Run a loop to detect event from inputs when time or temperature changes + void RunEventLoop(); + void StopLoop(); + + int size() { return rules.size(); } + + //Execute all rules where the input 'input_id' is used + //The function is called only when a signal is emited from inputs + virtual void ExecuteRuleSignal(std::string input_id); + + /* This executes all rules at program startup. All rules with ConditionStart + * will be evaluated and executed (only once) + */ + void ExecuteStartRules(); + + list getRuleAutoScenario(string auto_scenario); +}; + +} +#endif diff --git a/src/bin/calaos_server/Makefile.am b/src/bin/calaos_server/Makefile.am new file mode 100644 index 00000000..e21ce408 --- /dev/null +++ b/src/bin/calaos_server/Makefile.am @@ -0,0 +1,216 @@ + +MAINTAINERCLEANFILES = Makefile.in + +AM_CFLAGS = \ +-I. \ +-I./Rules \ +-I./IPCam \ +-I./Audio \ +-I./IO \ +-I./IO/libmbus \ +-I./Scenario \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/calaos\" \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/LuaScript \ +-I$(top_srcdir)/src/bin/calaos_server/\ +-I$(top_srcdir)/src/bin/calaos_server/Rules\ +@CALAOS_COMMON_CFLAGS@ \ +@CALAOS_SERVER_CFLAGS@ \ +-DLIBMBUS + +AM_CXXFLAGS = \ +-I. \ +-I./Rules \ +-I./IPCam \ +-I./Audio \ +-I./IO \ +-I./IO/libmbus \ +-I./Scenario \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/calaos\" \ +-DETC_DIR=\"$(sysconfdir)/calaos/\" \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/LuaScript \ +-I$(top_srcdir)/src/bin/calaos_server\ +-I$(top_srcdir)/src/bin/calaos_server/Rules\ +-I$(top_srcdir)/src/bin/calaos_server/IO\ +-I$(top_srcdir)/src/bin/calaos_server/Audio\ +-I$(top_srcdir)/src/bin/calaos_server/IPCam\ +-I$(top_srcdir)/src/bin/calaos_server/TCPProcessor\ +-I$(top_srcdir)/src/bin/calaos_server/IO/libmbus\ +-I$(top_srcdir)/src/bin/calaos_server/Scenario\ +@CALAOS_COMMON_CFLAGS@ \ +@CALAOS_SERVER_CFLAGS@ \ +-DLIBMBUS + + +bin_PROGRAMS = calaos_server + +calaos_server_SOURCES = \ +main.cpp \ +Calaos.cpp \ +Room.cpp \ +IO/InputTime.cpp \ +IO/InputTimer.cpp \ +IO/OutputFake.cpp \ +IO/IOFactory.cpp \ +ListeRoom.cpp \ +Rules/Action.cpp \ +Rules/ActionStd.cpp \ +Rules/ActionTouchscreen.cpp \ +Rules/ActionMail.cpp \ +Rules/ActionScript.cpp \ +Rules/Condition.cpp \ +Rules/ConditionStd.cpp \ +Rules/ConditionOutput.cpp \ +Rules/ConditionStart.cpp \ +Rules/ConditionScript.cpp \ +Rules/RulesFactory.cpp \ +Rule.cpp \ +Output.cpp \ +ListeRule.cpp \ +Config.cpp \ +IO/WagoCtrl.cpp \ +IO/WODigital.cpp \ +IO/WagoMap.cpp \ +IO/WIDigitalBP.cpp \ +IO/WIDigitalTriple.cpp \ +TCPServer.cpp \ +TCPConnection.cpp \ +Audio/AudioDB.cpp \ +Audio/AudioManager.cpp \ +Audio/Squeezebox.cpp \ +Audio/SqueezeboxDB.cpp \ +Audio/AudioInput.cpp \ +Audio/AudioOutput.cpp \ +IO/IntValue.cpp \ +IO/WITemp.cpp \ +IO/OWTemp.cpp \ +IPCam/IPCam.cpp \ +IPCam/CamInput.cpp \ +IPCam/CamManager.cpp \ +IPCam/CamOutput.cpp \ +IO/Scenario.cpp \ +IPCam/Gadspot.cpp \ +IPCam/Axis.cpp \ +IPCam/StandardMjpeg.cpp \ +IO/WOVolet.cpp \ +UDPServer.cpp \ +IO/X10Output.cpp \ +IO/InPlageHoraire.cpp \ +Input.cpp \ +IPCam/Planet.cpp \ +TCPProcessor/BaseCommand.cpp \ +TCPProcessor/CameraCommand.cpp \ +TCPProcessor/IOCommand.cpp \ +TCPProcessor/HomeCommand.cpp \ +TCPProcessor/RulesCommand.cpp \ +TCPProcessor/ListenCommand.cpp \ +TCPProcessor/ScenarioCommand.cpp \ +IPCam/CamConnection.cpp \ +IPCam/CamServer.cpp \ +IO/WODali.cpp \ +IO/WODaliRVB.cpp \ +TCPProcessor/AudioCommand.cpp \ +Audio/AudioPlayer.cpp \ +IO/WOVoletSmart.cpp \ +IO/libmbus/mbus.c \ +IO/libmbus/mbus_cmd.c \ +IO/libmbus/mbus_rqst.c \ +IO/libmbus/mbus_sock.c \ +Scenario/AutoScenario.cpp \ +IO/WOAnalog.cpp \ +IO/WIAnalog.cpp \ +PollListenner.cpp \ +Audio/AVRManager.cpp \ +Audio/AVReceiver.cpp \ +Audio/AVRPioneer.cpp \ +Audio/AVRDenon.cpp \ +Audio/AVROnkyo.cpp \ +Audio/AVRMarantz.cpp \ +IPCam/Planet.h \ +IPCam/Axis.h \ +IPCam/StandardMjpeg.h \ +IPCam/CamOutput.h \ +IPCam/CamServer.h \ +IPCam/Gadspot.h \ +IPCam/CamManager.h \ +IPCam/IPCam.h \ +IPCam/CamConnection.h \ +IPCam/CamInput.h \ +UDPServer.h \ +Scenario/ScenarioStep.h \ +Scenario/ScenarioIO.h \ +Scenario/Scenarios.h \ +Scenario/Scenario.h \ +Scenario/AutoScenario.h \ +Audio/AudioPlayerData.h \ +Audio/AVRDenon.h \ +Audio/AudioPlayer.h \ +Audio/AudioManager.h \ +Audio/AVRManager.h \ +Audio/AudioDB.h \ +Audio/AVRPioneer.h \ +Audio/SqueezeboxDB.h \ +Audio/Squeezebox.h \ +Audio/AVROnkyo.h \ +Audio/AudioOutput.h \ +Audio/AVRMarantz.h \ +Audio/AVReceiver.h \ +Audio/AudioInput.h \ +PollListenner.h \ +IOBase.h \ +Input.h \ +Etage.h \ +Rule.h \ +WagoHeartbeat.h \ +TCPConnection.h \ +Calaos.h \ +ListeRoom.h \ +Output.h \ +Config.h \ +Rules/RulesFactory.h \ +Rules/ActionTouchscreen.h \ +Rules/ConditionStd.h \ +Rules/Condition.h \ +Rules/ConditionOutput.h \ +Rules/ConditionStart.h \ +Rules/Action.h \ +Rules/ActionStd.h \ +Rules/ConditionScript.h \ +Rules/ActionMail.h \ +Rules/ActionScript.h \ +Room.h \ +ListeRule.h \ +IO/WIDigitalBP.h \ +IO/WODali.h \ +IO/WIAnalog.h \ +IO/InPlageHoraire.h \ +IO/WagoCtrl.h \ +IO/InputTime.h \ +IO/OWTemp.h \ +IO/WODigital.h \ +IO/WITemp.h \ +IO/Scenario.h \ +IO/X10Output.h \ +IO/InputTimer.h \ +IO/libmbus/mbus.h \ +IO/libmbus/mbus_conf.h \ +IO/WOVoletSmart.h \ +IO/WagoMap.h \ +IO/IntValue.h \ +IO/WOAnalog.h \ +IO/IOFactory.h \ +IO/WODaliRVB.h \ +IO/WIDigitalTriple.h \ +IO/WOVolet.h \ +IO/OutputFake.h \ +TCPServer.h \ +IO/sunset.c + +calaos_server_LDADD = \ +@CALAOS_SERVER_LIBS@ \ +$(top_builddir)/src/lib/libcalaos_common.la diff --git a/src/bin/calaos_server/Makefile.in b/src/bin/calaos_server/Makefile.in new file mode 100644 index 00000000..9f53445b --- /dev/null +++ b/src/bin/calaos_server/Makefile.in @@ -0,0 +1,1873 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = calaos_server$(EXEEXT) +subdir = src/bin/calaos_server +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_calaos_server_OBJECTS = main.$(OBJEXT) Calaos.$(OBJEXT) \ + Room.$(OBJEXT) InputTime.$(OBJEXT) InputTimer.$(OBJEXT) \ + OutputFake.$(OBJEXT) IOFactory.$(OBJEXT) ListeRoom.$(OBJEXT) \ + Action.$(OBJEXT) ActionStd.$(OBJEXT) \ + ActionTouchscreen.$(OBJEXT) ActionMail.$(OBJEXT) \ + ActionScript.$(OBJEXT) Condition.$(OBJEXT) \ + ConditionStd.$(OBJEXT) ConditionOutput.$(OBJEXT) \ + ConditionStart.$(OBJEXT) ConditionScript.$(OBJEXT) \ + RulesFactory.$(OBJEXT) Rule.$(OBJEXT) Output.$(OBJEXT) \ + ListeRule.$(OBJEXT) Config.$(OBJEXT) WagoCtrl.$(OBJEXT) \ + WODigital.$(OBJEXT) WagoMap.$(OBJEXT) WIDigitalBP.$(OBJEXT) \ + WIDigitalTriple.$(OBJEXT) TCPServer.$(OBJEXT) \ + TCPConnection.$(OBJEXT) AudioDB.$(OBJEXT) \ + AudioManager.$(OBJEXT) Squeezebox.$(OBJEXT) \ + SqueezeboxDB.$(OBJEXT) AudioInput.$(OBJEXT) \ + AudioOutput.$(OBJEXT) IntValue.$(OBJEXT) WITemp.$(OBJEXT) \ + OWTemp.$(OBJEXT) IPCam.$(OBJEXT) CamInput.$(OBJEXT) \ + CamManager.$(OBJEXT) CamOutput.$(OBJEXT) Scenario.$(OBJEXT) \ + Gadspot.$(OBJEXT) Axis.$(OBJEXT) StandardMjpeg.$(OBJEXT) \ + WOVolet.$(OBJEXT) UDPServer.$(OBJEXT) X10Output.$(OBJEXT) \ + InPlageHoraire.$(OBJEXT) Input.$(OBJEXT) Planet.$(OBJEXT) \ + BaseCommand.$(OBJEXT) CameraCommand.$(OBJEXT) \ + IOCommand.$(OBJEXT) HomeCommand.$(OBJEXT) \ + RulesCommand.$(OBJEXT) ListenCommand.$(OBJEXT) \ + ScenarioCommand.$(OBJEXT) CamConnection.$(OBJEXT) \ + CamServer.$(OBJEXT) WODali.$(OBJEXT) WODaliRVB.$(OBJEXT) \ + AudioCommand.$(OBJEXT) AudioPlayer.$(OBJEXT) \ + WOVoletSmart.$(OBJEXT) mbus.$(OBJEXT) mbus_cmd.$(OBJEXT) \ + mbus_rqst.$(OBJEXT) mbus_sock.$(OBJEXT) AutoScenario.$(OBJEXT) \ + WOAnalog.$(OBJEXT) WIAnalog.$(OBJEXT) PollListenner.$(OBJEXT) \ + AVRManager.$(OBJEXT) AVReceiver.$(OBJEXT) AVRPioneer.$(OBJEXT) \ + AVRDenon.$(OBJEXT) AVROnkyo.$(OBJEXT) AVRMarantz.$(OBJEXT) \ + sunset.$(OBJEXT) +calaos_server_OBJECTS = $(am_calaos_server_OBJECTS) +calaos_server_DEPENDENCIES = \ + $(top_builddir)/src/lib/libcalaos_common.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(calaos_server_SOURCES) +DIST_SOURCES = $(calaos_server_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CALAOS_COMMON_CFLAGS = @CALAOS_COMMON_CFLAGS@ +CALAOS_COMMON_LIBS = @CALAOS_COMMON_LIBS@ +CALAOS_HOME_CFLAGS = @CALAOS_HOME_CFLAGS@ +CALAOS_HOME_LIBS = @CALAOS_HOME_LIBS@ +CALAOS_SERVER_CFLAGS = @CALAOS_SERVER_CFLAGS@ +CALAOS_SERVER_LIBS = @CALAOS_SERVER_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +requirements_calaos_common = @requirements_calaos_common@ +requirements_calaos_home = @requirements_calaos_home@ +requirements_calaos_server = @requirements_calaos_server@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MAINTAINERCLEANFILES = Makefile.in +AM_CFLAGS = \ +-I. \ +-I./Rules \ +-I./IPCam \ +-I./Audio \ +-I./IO \ +-I./IO/libmbus \ +-I./Scenario \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/calaos\" \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/LuaScript \ +-I$(top_srcdir)/src/bin/calaos_server/\ +-I$(top_srcdir)/src/bin/calaos_server/Rules\ +@CALAOS_COMMON_CFLAGS@ \ +@CALAOS_SERVER_CFLAGS@ \ +-DLIBMBUS + +AM_CXXFLAGS = \ +-I. \ +-I./Rules \ +-I./IPCam \ +-I./Audio \ +-I./IO \ +-I./IO/libmbus \ +-I./Scenario \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/calaos\" \ +-DETC_DIR=\"$(sysconfdir)/calaos/\" \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/LuaScript \ +-I$(top_srcdir)/src/bin/calaos_server\ +-I$(top_srcdir)/src/bin/calaos_server/Rules\ +-I$(top_srcdir)/src/bin/calaos_server/IO\ +-I$(top_srcdir)/src/bin/calaos_server/Audio\ +-I$(top_srcdir)/src/bin/calaos_server/IPCam\ +-I$(top_srcdir)/src/bin/calaos_server/TCPProcessor\ +-I$(top_srcdir)/src/bin/calaos_server/IO/libmbus\ +-I$(top_srcdir)/src/bin/calaos_server/Scenario\ +@CALAOS_COMMON_CFLAGS@ \ +@CALAOS_SERVER_CFLAGS@ \ +-DLIBMBUS + +calaos_server_SOURCES = \ +main.cpp \ +Calaos.cpp \ +Room.cpp \ +IO/InputTime.cpp \ +IO/InputTimer.cpp \ +IO/OutputFake.cpp \ +IO/IOFactory.cpp \ +ListeRoom.cpp \ +Rules/Action.cpp \ +Rules/ActionStd.cpp \ +Rules/ActionTouchscreen.cpp \ +Rules/ActionMail.cpp \ +Rules/ActionScript.cpp \ +Rules/Condition.cpp \ +Rules/ConditionStd.cpp \ +Rules/ConditionOutput.cpp \ +Rules/ConditionStart.cpp \ +Rules/ConditionScript.cpp \ +Rules/RulesFactory.cpp \ +Rule.cpp \ +Output.cpp \ +ListeRule.cpp \ +Config.cpp \ +IO/WagoCtrl.cpp \ +IO/WODigital.cpp \ +IO/WagoMap.cpp \ +IO/WIDigitalBP.cpp \ +IO/WIDigitalTriple.cpp \ +TCPServer.cpp \ +TCPConnection.cpp \ +Audio/AudioDB.cpp \ +Audio/AudioManager.cpp \ +Audio/Squeezebox.cpp \ +Audio/SqueezeboxDB.cpp \ +Audio/AudioInput.cpp \ +Audio/AudioOutput.cpp \ +IO/IntValue.cpp \ +IO/WITemp.cpp \ +IO/OWTemp.cpp \ +IPCam/IPCam.cpp \ +IPCam/CamInput.cpp \ +IPCam/CamManager.cpp \ +IPCam/CamOutput.cpp \ +IO/Scenario.cpp \ +IPCam/Gadspot.cpp \ +IPCam/Axis.cpp \ +IPCam/StandardMjpeg.cpp \ +IO/WOVolet.cpp \ +UDPServer.cpp \ +IO/X10Output.cpp \ +IO/InPlageHoraire.cpp \ +Input.cpp \ +IPCam/Planet.cpp \ +TCPProcessor/BaseCommand.cpp \ +TCPProcessor/CameraCommand.cpp \ +TCPProcessor/IOCommand.cpp \ +TCPProcessor/HomeCommand.cpp \ +TCPProcessor/RulesCommand.cpp \ +TCPProcessor/ListenCommand.cpp \ +TCPProcessor/ScenarioCommand.cpp \ +IPCam/CamConnection.cpp \ +IPCam/CamServer.cpp \ +IO/WODali.cpp \ +IO/WODaliRVB.cpp \ +TCPProcessor/AudioCommand.cpp \ +Audio/AudioPlayer.cpp \ +IO/WOVoletSmart.cpp \ +IO/libmbus/mbus.c \ +IO/libmbus/mbus_cmd.c \ +IO/libmbus/mbus_rqst.c \ +IO/libmbus/mbus_sock.c \ +Scenario/AutoScenario.cpp \ +IO/WOAnalog.cpp \ +IO/WIAnalog.cpp \ +PollListenner.cpp \ +Audio/AVRManager.cpp \ +Audio/AVReceiver.cpp \ +Audio/AVRPioneer.cpp \ +Audio/AVRDenon.cpp \ +Audio/AVROnkyo.cpp \ +Audio/AVRMarantz.cpp \ +IPCam/Planet.h \ +IPCam/Axis.h \ +IPCam/StandardMjpeg.h \ +IPCam/CamOutput.h \ +IPCam/CamServer.h \ +IPCam/Gadspot.h \ +IPCam/CamManager.h \ +IPCam/IPCam.h \ +IPCam/CamConnection.h \ +IPCam/CamInput.h \ +UDPServer.h \ +Scenario/ScenarioStep.h \ +Scenario/ScenarioIO.h \ +Scenario/Scenarios.h \ +Scenario/Scenario.h \ +Scenario/AutoScenario.h \ +Audio/AudioPlayerData.h \ +Audio/AVRDenon.h \ +Audio/AudioPlayer.h \ +Audio/AudioManager.h \ +Audio/AVRManager.h \ +Audio/AudioDB.h \ +Audio/AVRPioneer.h \ +Audio/SqueezeboxDB.h \ +Audio/Squeezebox.h \ +Audio/AVROnkyo.h \ +Audio/AudioOutput.h \ +Audio/AVRMarantz.h \ +Audio/AVReceiver.h \ +Audio/AudioInput.h \ +PollListenner.h \ +IOBase.h \ +Input.h \ +Etage.h \ +Rule.h \ +WagoHeartbeat.h \ +TCPConnection.h \ +Calaos.h \ +ListeRoom.h \ +Output.h \ +Config.h \ +Rules/RulesFactory.h \ +Rules/ActionTouchscreen.h \ +Rules/ConditionStd.h \ +Rules/Condition.h \ +Rules/ConditionOutput.h \ +Rules/ConditionStart.h \ +Rules/Action.h \ +Rules/ActionStd.h \ +Rules/ConditionScript.h \ +Rules/ActionMail.h \ +Rules/ActionScript.h \ +Room.h \ +ListeRule.h \ +IO/WIDigitalBP.h \ +IO/WODali.h \ +IO/WIAnalog.h \ +IO/InPlageHoraire.h \ +IO/WagoCtrl.h \ +IO/InputTime.h \ +IO/OWTemp.h \ +IO/WODigital.h \ +IO/WITemp.h \ +IO/Scenario.h \ +IO/X10Output.h \ +IO/InputTimer.h \ +IO/libmbus/mbus.h \ +IO/libmbus/mbus_conf.h \ +IO/WOVoletSmart.h \ +IO/WagoMap.h \ +IO/IntValue.h \ +IO/WOAnalog.h \ +IO/IOFactory.h \ +IO/WODaliRVB.h \ +IO/WIDigitalTriple.h \ +IO/WOVolet.h \ +IO/OutputFake.h \ +TCPServer.h \ +IO/sunset.c + +calaos_server_LDADD = \ +@CALAOS_SERVER_LIBS@ \ +$(top_builddir)/src/lib/libcalaos_common.la + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .cpp .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bin/calaos_server/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/bin/calaos_server/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +calaos_server$(EXEEXT): $(calaos_server_OBJECTS) $(calaos_server_DEPENDENCIES) $(EXTRA_calaos_server_DEPENDENCIES) + @rm -f calaos_server$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(calaos_server_OBJECTS) $(calaos_server_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AVRDenon.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AVRManager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AVRMarantz.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AVROnkyo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AVRPioneer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AVReceiver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Action.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActionMail.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActionScript.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActionStd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActionTouchscreen.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioDB.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioInput.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioManager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioOutput.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AudioPlayer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AutoScenario.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Axis.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BaseCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Calaos.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CamConnection.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CamInput.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CamManager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CamOutput.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CamServer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CameraCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Condition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConditionOutput.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConditionScript.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConditionStart.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConditionStd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Config.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Gadspot.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HomeCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IOFactory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IPCam.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InPlageHoraire.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Input.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InputTime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InputTimer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IntValue.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListeRoom.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListeRule.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListenCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OWTemp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Output.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OutputFake.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Planet.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PollListenner.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Room.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Rule.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RulesCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RulesFactory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Scenario.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScenarioCommand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Squeezebox.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SqueezeboxDB.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StandardMjpeg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TCPConnection.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TCPServer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UDPServer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WIAnalog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WIDigitalBP.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WIDigitalTriple.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WITemp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WOAnalog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WODali.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WODaliRVB.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WODigital.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WOVolet.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WOVoletSmart.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WagoCtrl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WagoMap.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/X10Output.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus_cmd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus_rqst.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus_sock.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sunset.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mbus.o: IO/libmbus/mbus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus.o -MD -MP -MF $(DEPDIR)/mbus.Tpo -c -o mbus.o `test -f 'IO/libmbus/mbus.c' || echo '$(srcdir)/'`IO/libmbus/mbus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus.Tpo $(DEPDIR)/mbus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus.c' object='mbus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus.o `test -f 'IO/libmbus/mbus.c' || echo '$(srcdir)/'`IO/libmbus/mbus.c + +mbus.obj: IO/libmbus/mbus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus.obj -MD -MP -MF $(DEPDIR)/mbus.Tpo -c -o mbus.obj `if test -f 'IO/libmbus/mbus.c'; then $(CYGPATH_W) 'IO/libmbus/mbus.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus.Tpo $(DEPDIR)/mbus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus.c' object='mbus.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus.obj `if test -f 'IO/libmbus/mbus.c'; then $(CYGPATH_W) 'IO/libmbus/mbus.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus.c'; fi` + +mbus_cmd.o: IO/libmbus/mbus_cmd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus_cmd.o -MD -MP -MF $(DEPDIR)/mbus_cmd.Tpo -c -o mbus_cmd.o `test -f 'IO/libmbus/mbus_cmd.c' || echo '$(srcdir)/'`IO/libmbus/mbus_cmd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus_cmd.Tpo $(DEPDIR)/mbus_cmd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus_cmd.c' object='mbus_cmd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus_cmd.o `test -f 'IO/libmbus/mbus_cmd.c' || echo '$(srcdir)/'`IO/libmbus/mbus_cmd.c + +mbus_cmd.obj: IO/libmbus/mbus_cmd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus_cmd.obj -MD -MP -MF $(DEPDIR)/mbus_cmd.Tpo -c -o mbus_cmd.obj `if test -f 'IO/libmbus/mbus_cmd.c'; then $(CYGPATH_W) 'IO/libmbus/mbus_cmd.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus_cmd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus_cmd.Tpo $(DEPDIR)/mbus_cmd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus_cmd.c' object='mbus_cmd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus_cmd.obj `if test -f 'IO/libmbus/mbus_cmd.c'; then $(CYGPATH_W) 'IO/libmbus/mbus_cmd.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus_cmd.c'; fi` + +mbus_rqst.o: IO/libmbus/mbus_rqst.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus_rqst.o -MD -MP -MF $(DEPDIR)/mbus_rqst.Tpo -c -o mbus_rqst.o `test -f 'IO/libmbus/mbus_rqst.c' || echo '$(srcdir)/'`IO/libmbus/mbus_rqst.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus_rqst.Tpo $(DEPDIR)/mbus_rqst.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus_rqst.c' object='mbus_rqst.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus_rqst.o `test -f 'IO/libmbus/mbus_rqst.c' || echo '$(srcdir)/'`IO/libmbus/mbus_rqst.c + +mbus_rqst.obj: IO/libmbus/mbus_rqst.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus_rqst.obj -MD -MP -MF $(DEPDIR)/mbus_rqst.Tpo -c -o mbus_rqst.obj `if test -f 'IO/libmbus/mbus_rqst.c'; then $(CYGPATH_W) 'IO/libmbus/mbus_rqst.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus_rqst.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus_rqst.Tpo $(DEPDIR)/mbus_rqst.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus_rqst.c' object='mbus_rqst.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus_rqst.obj `if test -f 'IO/libmbus/mbus_rqst.c'; then $(CYGPATH_W) 'IO/libmbus/mbus_rqst.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus_rqst.c'; fi` + +mbus_sock.o: IO/libmbus/mbus_sock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus_sock.o -MD -MP -MF $(DEPDIR)/mbus_sock.Tpo -c -o mbus_sock.o `test -f 'IO/libmbus/mbus_sock.c' || echo '$(srcdir)/'`IO/libmbus/mbus_sock.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus_sock.Tpo $(DEPDIR)/mbus_sock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus_sock.c' object='mbus_sock.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus_sock.o `test -f 'IO/libmbus/mbus_sock.c' || echo '$(srcdir)/'`IO/libmbus/mbus_sock.c + +mbus_sock.obj: IO/libmbus/mbus_sock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbus_sock.obj -MD -MP -MF $(DEPDIR)/mbus_sock.Tpo -c -o mbus_sock.obj `if test -f 'IO/libmbus/mbus_sock.c'; then $(CYGPATH_W) 'IO/libmbus/mbus_sock.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus_sock.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbus_sock.Tpo $(DEPDIR)/mbus_sock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/libmbus/mbus_sock.c' object='mbus_sock.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbus_sock.obj `if test -f 'IO/libmbus/mbus_sock.c'; then $(CYGPATH_W) 'IO/libmbus/mbus_sock.c'; else $(CYGPATH_W) '$(srcdir)/IO/libmbus/mbus_sock.c'; fi` + +sunset.o: IO/sunset.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sunset.o -MD -MP -MF $(DEPDIR)/sunset.Tpo -c -o sunset.o `test -f 'IO/sunset.c' || echo '$(srcdir)/'`IO/sunset.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sunset.Tpo $(DEPDIR)/sunset.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/sunset.c' object='sunset.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sunset.o `test -f 'IO/sunset.c' || echo '$(srcdir)/'`IO/sunset.c + +sunset.obj: IO/sunset.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sunset.obj -MD -MP -MF $(DEPDIR)/sunset.Tpo -c -o sunset.obj `if test -f 'IO/sunset.c'; then $(CYGPATH_W) 'IO/sunset.c'; else $(CYGPATH_W) '$(srcdir)/IO/sunset.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sunset.Tpo $(DEPDIR)/sunset.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='IO/sunset.c' object='sunset.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sunset.obj `if test -f 'IO/sunset.c'; then $(CYGPATH_W) 'IO/sunset.c'; else $(CYGPATH_W) '$(srcdir)/IO/sunset.c'; fi` + +.cpp.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +InputTime.o: IO/InputTime.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputTime.o -MD -MP -MF $(DEPDIR)/InputTime.Tpo -c -o InputTime.o `test -f 'IO/InputTime.cpp' || echo '$(srcdir)/'`IO/InputTime.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InputTime.Tpo $(DEPDIR)/InputTime.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/InputTime.cpp' object='InputTime.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputTime.o `test -f 'IO/InputTime.cpp' || echo '$(srcdir)/'`IO/InputTime.cpp + +InputTime.obj: IO/InputTime.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputTime.obj -MD -MP -MF $(DEPDIR)/InputTime.Tpo -c -o InputTime.obj `if test -f 'IO/InputTime.cpp'; then $(CYGPATH_W) 'IO/InputTime.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/InputTime.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InputTime.Tpo $(DEPDIR)/InputTime.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/InputTime.cpp' object='InputTime.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputTime.obj `if test -f 'IO/InputTime.cpp'; then $(CYGPATH_W) 'IO/InputTime.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/InputTime.cpp'; fi` + +InputTimer.o: IO/InputTimer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputTimer.o -MD -MP -MF $(DEPDIR)/InputTimer.Tpo -c -o InputTimer.o `test -f 'IO/InputTimer.cpp' || echo '$(srcdir)/'`IO/InputTimer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InputTimer.Tpo $(DEPDIR)/InputTimer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/InputTimer.cpp' object='InputTimer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputTimer.o `test -f 'IO/InputTimer.cpp' || echo '$(srcdir)/'`IO/InputTimer.cpp + +InputTimer.obj: IO/InputTimer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputTimer.obj -MD -MP -MF $(DEPDIR)/InputTimer.Tpo -c -o InputTimer.obj `if test -f 'IO/InputTimer.cpp'; then $(CYGPATH_W) 'IO/InputTimer.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/InputTimer.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InputTimer.Tpo $(DEPDIR)/InputTimer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/InputTimer.cpp' object='InputTimer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputTimer.obj `if test -f 'IO/InputTimer.cpp'; then $(CYGPATH_W) 'IO/InputTimer.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/InputTimer.cpp'; fi` + +OutputFake.o: IO/OutputFake.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OutputFake.o -MD -MP -MF $(DEPDIR)/OutputFake.Tpo -c -o OutputFake.o `test -f 'IO/OutputFake.cpp' || echo '$(srcdir)/'`IO/OutputFake.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/OutputFake.Tpo $(DEPDIR)/OutputFake.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/OutputFake.cpp' object='OutputFake.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OutputFake.o `test -f 'IO/OutputFake.cpp' || echo '$(srcdir)/'`IO/OutputFake.cpp + +OutputFake.obj: IO/OutputFake.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OutputFake.obj -MD -MP -MF $(DEPDIR)/OutputFake.Tpo -c -o OutputFake.obj `if test -f 'IO/OutputFake.cpp'; then $(CYGPATH_W) 'IO/OutputFake.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/OutputFake.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/OutputFake.Tpo $(DEPDIR)/OutputFake.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/OutputFake.cpp' object='OutputFake.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OutputFake.obj `if test -f 'IO/OutputFake.cpp'; then $(CYGPATH_W) 'IO/OutputFake.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/OutputFake.cpp'; fi` + +IOFactory.o: IO/IOFactory.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOFactory.o -MD -MP -MF $(DEPDIR)/IOFactory.Tpo -c -o IOFactory.o `test -f 'IO/IOFactory.cpp' || echo '$(srcdir)/'`IO/IOFactory.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOFactory.Tpo $(DEPDIR)/IOFactory.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/IOFactory.cpp' object='IOFactory.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOFactory.o `test -f 'IO/IOFactory.cpp' || echo '$(srcdir)/'`IO/IOFactory.cpp + +IOFactory.obj: IO/IOFactory.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOFactory.obj -MD -MP -MF $(DEPDIR)/IOFactory.Tpo -c -o IOFactory.obj `if test -f 'IO/IOFactory.cpp'; then $(CYGPATH_W) 'IO/IOFactory.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/IOFactory.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOFactory.Tpo $(DEPDIR)/IOFactory.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/IOFactory.cpp' object='IOFactory.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOFactory.obj `if test -f 'IO/IOFactory.cpp'; then $(CYGPATH_W) 'IO/IOFactory.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/IOFactory.cpp'; fi` + +Action.o: Rules/Action.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Action.o -MD -MP -MF $(DEPDIR)/Action.Tpo -c -o Action.o `test -f 'Rules/Action.cpp' || echo '$(srcdir)/'`Rules/Action.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Action.Tpo $(DEPDIR)/Action.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/Action.cpp' object='Action.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Action.o `test -f 'Rules/Action.cpp' || echo '$(srcdir)/'`Rules/Action.cpp + +Action.obj: Rules/Action.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Action.obj -MD -MP -MF $(DEPDIR)/Action.Tpo -c -o Action.obj `if test -f 'Rules/Action.cpp'; then $(CYGPATH_W) 'Rules/Action.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/Action.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Action.Tpo $(DEPDIR)/Action.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/Action.cpp' object='Action.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Action.obj `if test -f 'Rules/Action.cpp'; then $(CYGPATH_W) 'Rules/Action.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/Action.cpp'; fi` + +ActionStd.o: Rules/ActionStd.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionStd.o -MD -MP -MF $(DEPDIR)/ActionStd.Tpo -c -o ActionStd.o `test -f 'Rules/ActionStd.cpp' || echo '$(srcdir)/'`Rules/ActionStd.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionStd.Tpo $(DEPDIR)/ActionStd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionStd.cpp' object='ActionStd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionStd.o `test -f 'Rules/ActionStd.cpp' || echo '$(srcdir)/'`Rules/ActionStd.cpp + +ActionStd.obj: Rules/ActionStd.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionStd.obj -MD -MP -MF $(DEPDIR)/ActionStd.Tpo -c -o ActionStd.obj `if test -f 'Rules/ActionStd.cpp'; then $(CYGPATH_W) 'Rules/ActionStd.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionStd.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionStd.Tpo $(DEPDIR)/ActionStd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionStd.cpp' object='ActionStd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionStd.obj `if test -f 'Rules/ActionStd.cpp'; then $(CYGPATH_W) 'Rules/ActionStd.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionStd.cpp'; fi` + +ActionTouchscreen.o: Rules/ActionTouchscreen.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionTouchscreen.o -MD -MP -MF $(DEPDIR)/ActionTouchscreen.Tpo -c -o ActionTouchscreen.o `test -f 'Rules/ActionTouchscreen.cpp' || echo '$(srcdir)/'`Rules/ActionTouchscreen.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionTouchscreen.Tpo $(DEPDIR)/ActionTouchscreen.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionTouchscreen.cpp' object='ActionTouchscreen.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionTouchscreen.o `test -f 'Rules/ActionTouchscreen.cpp' || echo '$(srcdir)/'`Rules/ActionTouchscreen.cpp + +ActionTouchscreen.obj: Rules/ActionTouchscreen.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionTouchscreen.obj -MD -MP -MF $(DEPDIR)/ActionTouchscreen.Tpo -c -o ActionTouchscreen.obj `if test -f 'Rules/ActionTouchscreen.cpp'; then $(CYGPATH_W) 'Rules/ActionTouchscreen.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionTouchscreen.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionTouchscreen.Tpo $(DEPDIR)/ActionTouchscreen.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionTouchscreen.cpp' object='ActionTouchscreen.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionTouchscreen.obj `if test -f 'Rules/ActionTouchscreen.cpp'; then $(CYGPATH_W) 'Rules/ActionTouchscreen.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionTouchscreen.cpp'; fi` + +ActionMail.o: Rules/ActionMail.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionMail.o -MD -MP -MF $(DEPDIR)/ActionMail.Tpo -c -o ActionMail.o `test -f 'Rules/ActionMail.cpp' || echo '$(srcdir)/'`Rules/ActionMail.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionMail.Tpo $(DEPDIR)/ActionMail.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionMail.cpp' object='ActionMail.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionMail.o `test -f 'Rules/ActionMail.cpp' || echo '$(srcdir)/'`Rules/ActionMail.cpp + +ActionMail.obj: Rules/ActionMail.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionMail.obj -MD -MP -MF $(DEPDIR)/ActionMail.Tpo -c -o ActionMail.obj `if test -f 'Rules/ActionMail.cpp'; then $(CYGPATH_W) 'Rules/ActionMail.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionMail.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionMail.Tpo $(DEPDIR)/ActionMail.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionMail.cpp' object='ActionMail.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionMail.obj `if test -f 'Rules/ActionMail.cpp'; then $(CYGPATH_W) 'Rules/ActionMail.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionMail.cpp'; fi` + +ActionScript.o: Rules/ActionScript.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionScript.o -MD -MP -MF $(DEPDIR)/ActionScript.Tpo -c -o ActionScript.o `test -f 'Rules/ActionScript.cpp' || echo '$(srcdir)/'`Rules/ActionScript.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionScript.Tpo $(DEPDIR)/ActionScript.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionScript.cpp' object='ActionScript.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionScript.o `test -f 'Rules/ActionScript.cpp' || echo '$(srcdir)/'`Rules/ActionScript.cpp + +ActionScript.obj: Rules/ActionScript.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ActionScript.obj -MD -MP -MF $(DEPDIR)/ActionScript.Tpo -c -o ActionScript.obj `if test -f 'Rules/ActionScript.cpp'; then $(CYGPATH_W) 'Rules/ActionScript.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionScript.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ActionScript.Tpo $(DEPDIR)/ActionScript.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ActionScript.cpp' object='ActionScript.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ActionScript.obj `if test -f 'Rules/ActionScript.cpp'; then $(CYGPATH_W) 'Rules/ActionScript.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ActionScript.cpp'; fi` + +Condition.o: Rules/Condition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Condition.o -MD -MP -MF $(DEPDIR)/Condition.Tpo -c -o Condition.o `test -f 'Rules/Condition.cpp' || echo '$(srcdir)/'`Rules/Condition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Condition.Tpo $(DEPDIR)/Condition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/Condition.cpp' object='Condition.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Condition.o `test -f 'Rules/Condition.cpp' || echo '$(srcdir)/'`Rules/Condition.cpp + +Condition.obj: Rules/Condition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Condition.obj -MD -MP -MF $(DEPDIR)/Condition.Tpo -c -o Condition.obj `if test -f 'Rules/Condition.cpp'; then $(CYGPATH_W) 'Rules/Condition.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/Condition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Condition.Tpo $(DEPDIR)/Condition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/Condition.cpp' object='Condition.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Condition.obj `if test -f 'Rules/Condition.cpp'; then $(CYGPATH_W) 'Rules/Condition.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/Condition.cpp'; fi` + +ConditionStd.o: Rules/ConditionStd.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionStd.o -MD -MP -MF $(DEPDIR)/ConditionStd.Tpo -c -o ConditionStd.o `test -f 'Rules/ConditionStd.cpp' || echo '$(srcdir)/'`Rules/ConditionStd.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionStd.Tpo $(DEPDIR)/ConditionStd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionStd.cpp' object='ConditionStd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionStd.o `test -f 'Rules/ConditionStd.cpp' || echo '$(srcdir)/'`Rules/ConditionStd.cpp + +ConditionStd.obj: Rules/ConditionStd.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionStd.obj -MD -MP -MF $(DEPDIR)/ConditionStd.Tpo -c -o ConditionStd.obj `if test -f 'Rules/ConditionStd.cpp'; then $(CYGPATH_W) 'Rules/ConditionStd.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionStd.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionStd.Tpo $(DEPDIR)/ConditionStd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionStd.cpp' object='ConditionStd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionStd.obj `if test -f 'Rules/ConditionStd.cpp'; then $(CYGPATH_W) 'Rules/ConditionStd.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionStd.cpp'; fi` + +ConditionOutput.o: Rules/ConditionOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionOutput.o -MD -MP -MF $(DEPDIR)/ConditionOutput.Tpo -c -o ConditionOutput.o `test -f 'Rules/ConditionOutput.cpp' || echo '$(srcdir)/'`Rules/ConditionOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionOutput.Tpo $(DEPDIR)/ConditionOutput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionOutput.cpp' object='ConditionOutput.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionOutput.o `test -f 'Rules/ConditionOutput.cpp' || echo '$(srcdir)/'`Rules/ConditionOutput.cpp + +ConditionOutput.obj: Rules/ConditionOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionOutput.obj -MD -MP -MF $(DEPDIR)/ConditionOutput.Tpo -c -o ConditionOutput.obj `if test -f 'Rules/ConditionOutput.cpp'; then $(CYGPATH_W) 'Rules/ConditionOutput.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionOutput.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionOutput.Tpo $(DEPDIR)/ConditionOutput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionOutput.cpp' object='ConditionOutput.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionOutput.obj `if test -f 'Rules/ConditionOutput.cpp'; then $(CYGPATH_W) 'Rules/ConditionOutput.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionOutput.cpp'; fi` + +ConditionStart.o: Rules/ConditionStart.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionStart.o -MD -MP -MF $(DEPDIR)/ConditionStart.Tpo -c -o ConditionStart.o `test -f 'Rules/ConditionStart.cpp' || echo '$(srcdir)/'`Rules/ConditionStart.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionStart.Tpo $(DEPDIR)/ConditionStart.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionStart.cpp' object='ConditionStart.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionStart.o `test -f 'Rules/ConditionStart.cpp' || echo '$(srcdir)/'`Rules/ConditionStart.cpp + +ConditionStart.obj: Rules/ConditionStart.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionStart.obj -MD -MP -MF $(DEPDIR)/ConditionStart.Tpo -c -o ConditionStart.obj `if test -f 'Rules/ConditionStart.cpp'; then $(CYGPATH_W) 'Rules/ConditionStart.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionStart.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionStart.Tpo $(DEPDIR)/ConditionStart.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionStart.cpp' object='ConditionStart.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionStart.obj `if test -f 'Rules/ConditionStart.cpp'; then $(CYGPATH_W) 'Rules/ConditionStart.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionStart.cpp'; fi` + +ConditionScript.o: Rules/ConditionScript.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionScript.o -MD -MP -MF $(DEPDIR)/ConditionScript.Tpo -c -o ConditionScript.o `test -f 'Rules/ConditionScript.cpp' || echo '$(srcdir)/'`Rules/ConditionScript.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionScript.Tpo $(DEPDIR)/ConditionScript.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionScript.cpp' object='ConditionScript.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionScript.o `test -f 'Rules/ConditionScript.cpp' || echo '$(srcdir)/'`Rules/ConditionScript.cpp + +ConditionScript.obj: Rules/ConditionScript.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConditionScript.obj -MD -MP -MF $(DEPDIR)/ConditionScript.Tpo -c -o ConditionScript.obj `if test -f 'Rules/ConditionScript.cpp'; then $(CYGPATH_W) 'Rules/ConditionScript.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionScript.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ConditionScript.Tpo $(DEPDIR)/ConditionScript.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/ConditionScript.cpp' object='ConditionScript.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConditionScript.obj `if test -f 'Rules/ConditionScript.cpp'; then $(CYGPATH_W) 'Rules/ConditionScript.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/ConditionScript.cpp'; fi` + +RulesFactory.o: Rules/RulesFactory.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RulesFactory.o -MD -MP -MF $(DEPDIR)/RulesFactory.Tpo -c -o RulesFactory.o `test -f 'Rules/RulesFactory.cpp' || echo '$(srcdir)/'`Rules/RulesFactory.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/RulesFactory.Tpo $(DEPDIR)/RulesFactory.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/RulesFactory.cpp' object='RulesFactory.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RulesFactory.o `test -f 'Rules/RulesFactory.cpp' || echo '$(srcdir)/'`Rules/RulesFactory.cpp + +RulesFactory.obj: Rules/RulesFactory.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RulesFactory.obj -MD -MP -MF $(DEPDIR)/RulesFactory.Tpo -c -o RulesFactory.obj `if test -f 'Rules/RulesFactory.cpp'; then $(CYGPATH_W) 'Rules/RulesFactory.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/RulesFactory.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/RulesFactory.Tpo $(DEPDIR)/RulesFactory.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Rules/RulesFactory.cpp' object='RulesFactory.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RulesFactory.obj `if test -f 'Rules/RulesFactory.cpp'; then $(CYGPATH_W) 'Rules/RulesFactory.cpp'; else $(CYGPATH_W) '$(srcdir)/Rules/RulesFactory.cpp'; fi` + +WagoCtrl.o: IO/WagoCtrl.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WagoCtrl.o -MD -MP -MF $(DEPDIR)/WagoCtrl.Tpo -c -o WagoCtrl.o `test -f 'IO/WagoCtrl.cpp' || echo '$(srcdir)/'`IO/WagoCtrl.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WagoCtrl.Tpo $(DEPDIR)/WagoCtrl.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WagoCtrl.cpp' object='WagoCtrl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WagoCtrl.o `test -f 'IO/WagoCtrl.cpp' || echo '$(srcdir)/'`IO/WagoCtrl.cpp + +WagoCtrl.obj: IO/WagoCtrl.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WagoCtrl.obj -MD -MP -MF $(DEPDIR)/WagoCtrl.Tpo -c -o WagoCtrl.obj `if test -f 'IO/WagoCtrl.cpp'; then $(CYGPATH_W) 'IO/WagoCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WagoCtrl.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WagoCtrl.Tpo $(DEPDIR)/WagoCtrl.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WagoCtrl.cpp' object='WagoCtrl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WagoCtrl.obj `if test -f 'IO/WagoCtrl.cpp'; then $(CYGPATH_W) 'IO/WagoCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WagoCtrl.cpp'; fi` + +WODigital.o: IO/WODigital.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WODigital.o -MD -MP -MF $(DEPDIR)/WODigital.Tpo -c -o WODigital.o `test -f 'IO/WODigital.cpp' || echo '$(srcdir)/'`IO/WODigital.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WODigital.Tpo $(DEPDIR)/WODigital.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WODigital.cpp' object='WODigital.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WODigital.o `test -f 'IO/WODigital.cpp' || echo '$(srcdir)/'`IO/WODigital.cpp + +WODigital.obj: IO/WODigital.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WODigital.obj -MD -MP -MF $(DEPDIR)/WODigital.Tpo -c -o WODigital.obj `if test -f 'IO/WODigital.cpp'; then $(CYGPATH_W) 'IO/WODigital.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WODigital.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WODigital.Tpo $(DEPDIR)/WODigital.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WODigital.cpp' object='WODigital.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WODigital.obj `if test -f 'IO/WODigital.cpp'; then $(CYGPATH_W) 'IO/WODigital.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WODigital.cpp'; fi` + +WagoMap.o: IO/WagoMap.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WagoMap.o -MD -MP -MF $(DEPDIR)/WagoMap.Tpo -c -o WagoMap.o `test -f 'IO/WagoMap.cpp' || echo '$(srcdir)/'`IO/WagoMap.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WagoMap.Tpo $(DEPDIR)/WagoMap.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WagoMap.cpp' object='WagoMap.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WagoMap.o `test -f 'IO/WagoMap.cpp' || echo '$(srcdir)/'`IO/WagoMap.cpp + +WagoMap.obj: IO/WagoMap.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WagoMap.obj -MD -MP -MF $(DEPDIR)/WagoMap.Tpo -c -o WagoMap.obj `if test -f 'IO/WagoMap.cpp'; then $(CYGPATH_W) 'IO/WagoMap.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WagoMap.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WagoMap.Tpo $(DEPDIR)/WagoMap.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WagoMap.cpp' object='WagoMap.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WagoMap.obj `if test -f 'IO/WagoMap.cpp'; then $(CYGPATH_W) 'IO/WagoMap.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WagoMap.cpp'; fi` + +WIDigitalBP.o: IO/WIDigitalBP.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WIDigitalBP.o -MD -MP -MF $(DEPDIR)/WIDigitalBP.Tpo -c -o WIDigitalBP.o `test -f 'IO/WIDigitalBP.cpp' || echo '$(srcdir)/'`IO/WIDigitalBP.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WIDigitalBP.Tpo $(DEPDIR)/WIDigitalBP.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WIDigitalBP.cpp' object='WIDigitalBP.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WIDigitalBP.o `test -f 'IO/WIDigitalBP.cpp' || echo '$(srcdir)/'`IO/WIDigitalBP.cpp + +WIDigitalBP.obj: IO/WIDigitalBP.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WIDigitalBP.obj -MD -MP -MF $(DEPDIR)/WIDigitalBP.Tpo -c -o WIDigitalBP.obj `if test -f 'IO/WIDigitalBP.cpp'; then $(CYGPATH_W) 'IO/WIDigitalBP.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WIDigitalBP.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WIDigitalBP.Tpo $(DEPDIR)/WIDigitalBP.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WIDigitalBP.cpp' object='WIDigitalBP.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WIDigitalBP.obj `if test -f 'IO/WIDigitalBP.cpp'; then $(CYGPATH_W) 'IO/WIDigitalBP.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WIDigitalBP.cpp'; fi` + +WIDigitalTriple.o: IO/WIDigitalTriple.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WIDigitalTriple.o -MD -MP -MF $(DEPDIR)/WIDigitalTriple.Tpo -c -o WIDigitalTriple.o `test -f 'IO/WIDigitalTriple.cpp' || echo '$(srcdir)/'`IO/WIDigitalTriple.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WIDigitalTriple.Tpo $(DEPDIR)/WIDigitalTriple.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WIDigitalTriple.cpp' object='WIDigitalTriple.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WIDigitalTriple.o `test -f 'IO/WIDigitalTriple.cpp' || echo '$(srcdir)/'`IO/WIDigitalTriple.cpp + +WIDigitalTriple.obj: IO/WIDigitalTriple.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WIDigitalTriple.obj -MD -MP -MF $(DEPDIR)/WIDigitalTriple.Tpo -c -o WIDigitalTriple.obj `if test -f 'IO/WIDigitalTriple.cpp'; then $(CYGPATH_W) 'IO/WIDigitalTriple.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WIDigitalTriple.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WIDigitalTriple.Tpo $(DEPDIR)/WIDigitalTriple.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WIDigitalTriple.cpp' object='WIDigitalTriple.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WIDigitalTriple.obj `if test -f 'IO/WIDigitalTriple.cpp'; then $(CYGPATH_W) 'IO/WIDigitalTriple.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WIDigitalTriple.cpp'; fi` + +AudioDB.o: Audio/AudioDB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioDB.o -MD -MP -MF $(DEPDIR)/AudioDB.Tpo -c -o AudioDB.o `test -f 'Audio/AudioDB.cpp' || echo '$(srcdir)/'`Audio/AudioDB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioDB.Tpo $(DEPDIR)/AudioDB.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioDB.cpp' object='AudioDB.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioDB.o `test -f 'Audio/AudioDB.cpp' || echo '$(srcdir)/'`Audio/AudioDB.cpp + +AudioDB.obj: Audio/AudioDB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioDB.obj -MD -MP -MF $(DEPDIR)/AudioDB.Tpo -c -o AudioDB.obj `if test -f 'Audio/AudioDB.cpp'; then $(CYGPATH_W) 'Audio/AudioDB.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioDB.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioDB.Tpo $(DEPDIR)/AudioDB.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioDB.cpp' object='AudioDB.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioDB.obj `if test -f 'Audio/AudioDB.cpp'; then $(CYGPATH_W) 'Audio/AudioDB.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioDB.cpp'; fi` + +AudioManager.o: Audio/AudioManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioManager.o -MD -MP -MF $(DEPDIR)/AudioManager.Tpo -c -o AudioManager.o `test -f 'Audio/AudioManager.cpp' || echo '$(srcdir)/'`Audio/AudioManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioManager.Tpo $(DEPDIR)/AudioManager.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioManager.cpp' object='AudioManager.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioManager.o `test -f 'Audio/AudioManager.cpp' || echo '$(srcdir)/'`Audio/AudioManager.cpp + +AudioManager.obj: Audio/AudioManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioManager.obj -MD -MP -MF $(DEPDIR)/AudioManager.Tpo -c -o AudioManager.obj `if test -f 'Audio/AudioManager.cpp'; then $(CYGPATH_W) 'Audio/AudioManager.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioManager.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioManager.Tpo $(DEPDIR)/AudioManager.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioManager.cpp' object='AudioManager.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioManager.obj `if test -f 'Audio/AudioManager.cpp'; then $(CYGPATH_W) 'Audio/AudioManager.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioManager.cpp'; fi` + +Squeezebox.o: Audio/Squeezebox.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Squeezebox.o -MD -MP -MF $(DEPDIR)/Squeezebox.Tpo -c -o Squeezebox.o `test -f 'Audio/Squeezebox.cpp' || echo '$(srcdir)/'`Audio/Squeezebox.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Squeezebox.Tpo $(DEPDIR)/Squeezebox.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/Squeezebox.cpp' object='Squeezebox.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Squeezebox.o `test -f 'Audio/Squeezebox.cpp' || echo '$(srcdir)/'`Audio/Squeezebox.cpp + +Squeezebox.obj: Audio/Squeezebox.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Squeezebox.obj -MD -MP -MF $(DEPDIR)/Squeezebox.Tpo -c -o Squeezebox.obj `if test -f 'Audio/Squeezebox.cpp'; then $(CYGPATH_W) 'Audio/Squeezebox.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/Squeezebox.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Squeezebox.Tpo $(DEPDIR)/Squeezebox.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/Squeezebox.cpp' object='Squeezebox.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Squeezebox.obj `if test -f 'Audio/Squeezebox.cpp'; then $(CYGPATH_W) 'Audio/Squeezebox.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/Squeezebox.cpp'; fi` + +SqueezeboxDB.o: Audio/SqueezeboxDB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SqueezeboxDB.o -MD -MP -MF $(DEPDIR)/SqueezeboxDB.Tpo -c -o SqueezeboxDB.o `test -f 'Audio/SqueezeboxDB.cpp' || echo '$(srcdir)/'`Audio/SqueezeboxDB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/SqueezeboxDB.Tpo $(DEPDIR)/SqueezeboxDB.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/SqueezeboxDB.cpp' object='SqueezeboxDB.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SqueezeboxDB.o `test -f 'Audio/SqueezeboxDB.cpp' || echo '$(srcdir)/'`Audio/SqueezeboxDB.cpp + +SqueezeboxDB.obj: Audio/SqueezeboxDB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SqueezeboxDB.obj -MD -MP -MF $(DEPDIR)/SqueezeboxDB.Tpo -c -o SqueezeboxDB.obj `if test -f 'Audio/SqueezeboxDB.cpp'; then $(CYGPATH_W) 'Audio/SqueezeboxDB.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/SqueezeboxDB.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/SqueezeboxDB.Tpo $(DEPDIR)/SqueezeboxDB.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/SqueezeboxDB.cpp' object='SqueezeboxDB.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SqueezeboxDB.obj `if test -f 'Audio/SqueezeboxDB.cpp'; then $(CYGPATH_W) 'Audio/SqueezeboxDB.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/SqueezeboxDB.cpp'; fi` + +AudioInput.o: Audio/AudioInput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioInput.o -MD -MP -MF $(DEPDIR)/AudioInput.Tpo -c -o AudioInput.o `test -f 'Audio/AudioInput.cpp' || echo '$(srcdir)/'`Audio/AudioInput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioInput.Tpo $(DEPDIR)/AudioInput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioInput.cpp' object='AudioInput.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioInput.o `test -f 'Audio/AudioInput.cpp' || echo '$(srcdir)/'`Audio/AudioInput.cpp + +AudioInput.obj: Audio/AudioInput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioInput.obj -MD -MP -MF $(DEPDIR)/AudioInput.Tpo -c -o AudioInput.obj `if test -f 'Audio/AudioInput.cpp'; then $(CYGPATH_W) 'Audio/AudioInput.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioInput.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioInput.Tpo $(DEPDIR)/AudioInput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioInput.cpp' object='AudioInput.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioInput.obj `if test -f 'Audio/AudioInput.cpp'; then $(CYGPATH_W) 'Audio/AudioInput.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioInput.cpp'; fi` + +AudioOutput.o: Audio/AudioOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioOutput.o -MD -MP -MF $(DEPDIR)/AudioOutput.Tpo -c -o AudioOutput.o `test -f 'Audio/AudioOutput.cpp' || echo '$(srcdir)/'`Audio/AudioOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioOutput.Tpo $(DEPDIR)/AudioOutput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioOutput.cpp' object='AudioOutput.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioOutput.o `test -f 'Audio/AudioOutput.cpp' || echo '$(srcdir)/'`Audio/AudioOutput.cpp + +AudioOutput.obj: Audio/AudioOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioOutput.obj -MD -MP -MF $(DEPDIR)/AudioOutput.Tpo -c -o AudioOutput.obj `if test -f 'Audio/AudioOutput.cpp'; then $(CYGPATH_W) 'Audio/AudioOutput.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioOutput.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioOutput.Tpo $(DEPDIR)/AudioOutput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioOutput.cpp' object='AudioOutput.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioOutput.obj `if test -f 'Audio/AudioOutput.cpp'; then $(CYGPATH_W) 'Audio/AudioOutput.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioOutput.cpp'; fi` + +IntValue.o: IO/IntValue.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IntValue.o -MD -MP -MF $(DEPDIR)/IntValue.Tpo -c -o IntValue.o `test -f 'IO/IntValue.cpp' || echo '$(srcdir)/'`IO/IntValue.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IntValue.Tpo $(DEPDIR)/IntValue.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/IntValue.cpp' object='IntValue.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IntValue.o `test -f 'IO/IntValue.cpp' || echo '$(srcdir)/'`IO/IntValue.cpp + +IntValue.obj: IO/IntValue.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IntValue.obj -MD -MP -MF $(DEPDIR)/IntValue.Tpo -c -o IntValue.obj `if test -f 'IO/IntValue.cpp'; then $(CYGPATH_W) 'IO/IntValue.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/IntValue.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IntValue.Tpo $(DEPDIR)/IntValue.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/IntValue.cpp' object='IntValue.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IntValue.obj `if test -f 'IO/IntValue.cpp'; then $(CYGPATH_W) 'IO/IntValue.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/IntValue.cpp'; fi` + +WITemp.o: IO/WITemp.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WITemp.o -MD -MP -MF $(DEPDIR)/WITemp.Tpo -c -o WITemp.o `test -f 'IO/WITemp.cpp' || echo '$(srcdir)/'`IO/WITemp.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WITemp.Tpo $(DEPDIR)/WITemp.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WITemp.cpp' object='WITemp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WITemp.o `test -f 'IO/WITemp.cpp' || echo '$(srcdir)/'`IO/WITemp.cpp + +WITemp.obj: IO/WITemp.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WITemp.obj -MD -MP -MF $(DEPDIR)/WITemp.Tpo -c -o WITemp.obj `if test -f 'IO/WITemp.cpp'; then $(CYGPATH_W) 'IO/WITemp.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WITemp.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WITemp.Tpo $(DEPDIR)/WITemp.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WITemp.cpp' object='WITemp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WITemp.obj `if test -f 'IO/WITemp.cpp'; then $(CYGPATH_W) 'IO/WITemp.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WITemp.cpp'; fi` + +OWTemp.o: IO/OWTemp.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OWTemp.o -MD -MP -MF $(DEPDIR)/OWTemp.Tpo -c -o OWTemp.o `test -f 'IO/OWTemp.cpp' || echo '$(srcdir)/'`IO/OWTemp.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/OWTemp.Tpo $(DEPDIR)/OWTemp.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/OWTemp.cpp' object='OWTemp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OWTemp.o `test -f 'IO/OWTemp.cpp' || echo '$(srcdir)/'`IO/OWTemp.cpp + +OWTemp.obj: IO/OWTemp.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OWTemp.obj -MD -MP -MF $(DEPDIR)/OWTemp.Tpo -c -o OWTemp.obj `if test -f 'IO/OWTemp.cpp'; then $(CYGPATH_W) 'IO/OWTemp.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/OWTemp.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/OWTemp.Tpo $(DEPDIR)/OWTemp.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/OWTemp.cpp' object='OWTemp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OWTemp.obj `if test -f 'IO/OWTemp.cpp'; then $(CYGPATH_W) 'IO/OWTemp.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/OWTemp.cpp'; fi` + +IPCam.o: IPCam/IPCam.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IPCam.o -MD -MP -MF $(DEPDIR)/IPCam.Tpo -c -o IPCam.o `test -f 'IPCam/IPCam.cpp' || echo '$(srcdir)/'`IPCam/IPCam.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IPCam.Tpo $(DEPDIR)/IPCam.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/IPCam.cpp' object='IPCam.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IPCam.o `test -f 'IPCam/IPCam.cpp' || echo '$(srcdir)/'`IPCam/IPCam.cpp + +IPCam.obj: IPCam/IPCam.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IPCam.obj -MD -MP -MF $(DEPDIR)/IPCam.Tpo -c -o IPCam.obj `if test -f 'IPCam/IPCam.cpp'; then $(CYGPATH_W) 'IPCam/IPCam.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/IPCam.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IPCam.Tpo $(DEPDIR)/IPCam.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/IPCam.cpp' object='IPCam.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IPCam.obj `if test -f 'IPCam/IPCam.cpp'; then $(CYGPATH_W) 'IPCam/IPCam.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/IPCam.cpp'; fi` + +CamInput.o: IPCam/CamInput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamInput.o -MD -MP -MF $(DEPDIR)/CamInput.Tpo -c -o CamInput.o `test -f 'IPCam/CamInput.cpp' || echo '$(srcdir)/'`IPCam/CamInput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamInput.Tpo $(DEPDIR)/CamInput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamInput.cpp' object='CamInput.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamInput.o `test -f 'IPCam/CamInput.cpp' || echo '$(srcdir)/'`IPCam/CamInput.cpp + +CamInput.obj: IPCam/CamInput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamInput.obj -MD -MP -MF $(DEPDIR)/CamInput.Tpo -c -o CamInput.obj `if test -f 'IPCam/CamInput.cpp'; then $(CYGPATH_W) 'IPCam/CamInput.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamInput.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamInput.Tpo $(DEPDIR)/CamInput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamInput.cpp' object='CamInput.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamInput.obj `if test -f 'IPCam/CamInput.cpp'; then $(CYGPATH_W) 'IPCam/CamInput.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamInput.cpp'; fi` + +CamManager.o: IPCam/CamManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamManager.o -MD -MP -MF $(DEPDIR)/CamManager.Tpo -c -o CamManager.o `test -f 'IPCam/CamManager.cpp' || echo '$(srcdir)/'`IPCam/CamManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamManager.Tpo $(DEPDIR)/CamManager.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamManager.cpp' object='CamManager.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamManager.o `test -f 'IPCam/CamManager.cpp' || echo '$(srcdir)/'`IPCam/CamManager.cpp + +CamManager.obj: IPCam/CamManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamManager.obj -MD -MP -MF $(DEPDIR)/CamManager.Tpo -c -o CamManager.obj `if test -f 'IPCam/CamManager.cpp'; then $(CYGPATH_W) 'IPCam/CamManager.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamManager.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamManager.Tpo $(DEPDIR)/CamManager.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamManager.cpp' object='CamManager.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamManager.obj `if test -f 'IPCam/CamManager.cpp'; then $(CYGPATH_W) 'IPCam/CamManager.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamManager.cpp'; fi` + +CamOutput.o: IPCam/CamOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamOutput.o -MD -MP -MF $(DEPDIR)/CamOutput.Tpo -c -o CamOutput.o `test -f 'IPCam/CamOutput.cpp' || echo '$(srcdir)/'`IPCam/CamOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamOutput.Tpo $(DEPDIR)/CamOutput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamOutput.cpp' object='CamOutput.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamOutput.o `test -f 'IPCam/CamOutput.cpp' || echo '$(srcdir)/'`IPCam/CamOutput.cpp + +CamOutput.obj: IPCam/CamOutput.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamOutput.obj -MD -MP -MF $(DEPDIR)/CamOutput.Tpo -c -o CamOutput.obj `if test -f 'IPCam/CamOutput.cpp'; then $(CYGPATH_W) 'IPCam/CamOutput.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamOutput.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamOutput.Tpo $(DEPDIR)/CamOutput.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamOutput.cpp' object='CamOutput.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamOutput.obj `if test -f 'IPCam/CamOutput.cpp'; then $(CYGPATH_W) 'IPCam/CamOutput.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamOutput.cpp'; fi` + +Scenario.o: IO/Scenario.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Scenario.o -MD -MP -MF $(DEPDIR)/Scenario.Tpo -c -o Scenario.o `test -f 'IO/Scenario.cpp' || echo '$(srcdir)/'`IO/Scenario.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Scenario.Tpo $(DEPDIR)/Scenario.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/Scenario.cpp' object='Scenario.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Scenario.o `test -f 'IO/Scenario.cpp' || echo '$(srcdir)/'`IO/Scenario.cpp + +Scenario.obj: IO/Scenario.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Scenario.obj -MD -MP -MF $(DEPDIR)/Scenario.Tpo -c -o Scenario.obj `if test -f 'IO/Scenario.cpp'; then $(CYGPATH_W) 'IO/Scenario.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/Scenario.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Scenario.Tpo $(DEPDIR)/Scenario.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/Scenario.cpp' object='Scenario.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Scenario.obj `if test -f 'IO/Scenario.cpp'; then $(CYGPATH_W) 'IO/Scenario.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/Scenario.cpp'; fi` + +Gadspot.o: IPCam/Gadspot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Gadspot.o -MD -MP -MF $(DEPDIR)/Gadspot.Tpo -c -o Gadspot.o `test -f 'IPCam/Gadspot.cpp' || echo '$(srcdir)/'`IPCam/Gadspot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Gadspot.Tpo $(DEPDIR)/Gadspot.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/Gadspot.cpp' object='Gadspot.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Gadspot.o `test -f 'IPCam/Gadspot.cpp' || echo '$(srcdir)/'`IPCam/Gadspot.cpp + +Gadspot.obj: IPCam/Gadspot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Gadspot.obj -MD -MP -MF $(DEPDIR)/Gadspot.Tpo -c -o Gadspot.obj `if test -f 'IPCam/Gadspot.cpp'; then $(CYGPATH_W) 'IPCam/Gadspot.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/Gadspot.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Gadspot.Tpo $(DEPDIR)/Gadspot.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/Gadspot.cpp' object='Gadspot.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Gadspot.obj `if test -f 'IPCam/Gadspot.cpp'; then $(CYGPATH_W) 'IPCam/Gadspot.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/Gadspot.cpp'; fi` + +Axis.o: IPCam/Axis.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Axis.o -MD -MP -MF $(DEPDIR)/Axis.Tpo -c -o Axis.o `test -f 'IPCam/Axis.cpp' || echo '$(srcdir)/'`IPCam/Axis.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Axis.Tpo $(DEPDIR)/Axis.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/Axis.cpp' object='Axis.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Axis.o `test -f 'IPCam/Axis.cpp' || echo '$(srcdir)/'`IPCam/Axis.cpp + +Axis.obj: IPCam/Axis.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Axis.obj -MD -MP -MF $(DEPDIR)/Axis.Tpo -c -o Axis.obj `if test -f 'IPCam/Axis.cpp'; then $(CYGPATH_W) 'IPCam/Axis.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/Axis.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Axis.Tpo $(DEPDIR)/Axis.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/Axis.cpp' object='Axis.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Axis.obj `if test -f 'IPCam/Axis.cpp'; then $(CYGPATH_W) 'IPCam/Axis.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/Axis.cpp'; fi` + +StandardMjpeg.o: IPCam/StandardMjpeg.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StandardMjpeg.o -MD -MP -MF $(DEPDIR)/StandardMjpeg.Tpo -c -o StandardMjpeg.o `test -f 'IPCam/StandardMjpeg.cpp' || echo '$(srcdir)/'`IPCam/StandardMjpeg.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/StandardMjpeg.Tpo $(DEPDIR)/StandardMjpeg.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/StandardMjpeg.cpp' object='StandardMjpeg.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StandardMjpeg.o `test -f 'IPCam/StandardMjpeg.cpp' || echo '$(srcdir)/'`IPCam/StandardMjpeg.cpp + +StandardMjpeg.obj: IPCam/StandardMjpeg.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StandardMjpeg.obj -MD -MP -MF $(DEPDIR)/StandardMjpeg.Tpo -c -o StandardMjpeg.obj `if test -f 'IPCam/StandardMjpeg.cpp'; then $(CYGPATH_W) 'IPCam/StandardMjpeg.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/StandardMjpeg.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/StandardMjpeg.Tpo $(DEPDIR)/StandardMjpeg.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/StandardMjpeg.cpp' object='StandardMjpeg.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StandardMjpeg.obj `if test -f 'IPCam/StandardMjpeg.cpp'; then $(CYGPATH_W) 'IPCam/StandardMjpeg.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/StandardMjpeg.cpp'; fi` + +WOVolet.o: IO/WOVolet.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WOVolet.o -MD -MP -MF $(DEPDIR)/WOVolet.Tpo -c -o WOVolet.o `test -f 'IO/WOVolet.cpp' || echo '$(srcdir)/'`IO/WOVolet.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WOVolet.Tpo $(DEPDIR)/WOVolet.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WOVolet.cpp' object='WOVolet.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WOVolet.o `test -f 'IO/WOVolet.cpp' || echo '$(srcdir)/'`IO/WOVolet.cpp + +WOVolet.obj: IO/WOVolet.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WOVolet.obj -MD -MP -MF $(DEPDIR)/WOVolet.Tpo -c -o WOVolet.obj `if test -f 'IO/WOVolet.cpp'; then $(CYGPATH_W) 'IO/WOVolet.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WOVolet.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WOVolet.Tpo $(DEPDIR)/WOVolet.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WOVolet.cpp' object='WOVolet.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WOVolet.obj `if test -f 'IO/WOVolet.cpp'; then $(CYGPATH_W) 'IO/WOVolet.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WOVolet.cpp'; fi` + +X10Output.o: IO/X10Output.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT X10Output.o -MD -MP -MF $(DEPDIR)/X10Output.Tpo -c -o X10Output.o `test -f 'IO/X10Output.cpp' || echo '$(srcdir)/'`IO/X10Output.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/X10Output.Tpo $(DEPDIR)/X10Output.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/X10Output.cpp' object='X10Output.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o X10Output.o `test -f 'IO/X10Output.cpp' || echo '$(srcdir)/'`IO/X10Output.cpp + +X10Output.obj: IO/X10Output.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT X10Output.obj -MD -MP -MF $(DEPDIR)/X10Output.Tpo -c -o X10Output.obj `if test -f 'IO/X10Output.cpp'; then $(CYGPATH_W) 'IO/X10Output.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/X10Output.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/X10Output.Tpo $(DEPDIR)/X10Output.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/X10Output.cpp' object='X10Output.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o X10Output.obj `if test -f 'IO/X10Output.cpp'; then $(CYGPATH_W) 'IO/X10Output.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/X10Output.cpp'; fi` + +InPlageHoraire.o: IO/InPlageHoraire.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InPlageHoraire.o -MD -MP -MF $(DEPDIR)/InPlageHoraire.Tpo -c -o InPlageHoraire.o `test -f 'IO/InPlageHoraire.cpp' || echo '$(srcdir)/'`IO/InPlageHoraire.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InPlageHoraire.Tpo $(DEPDIR)/InPlageHoraire.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/InPlageHoraire.cpp' object='InPlageHoraire.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InPlageHoraire.o `test -f 'IO/InPlageHoraire.cpp' || echo '$(srcdir)/'`IO/InPlageHoraire.cpp + +InPlageHoraire.obj: IO/InPlageHoraire.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InPlageHoraire.obj -MD -MP -MF $(DEPDIR)/InPlageHoraire.Tpo -c -o InPlageHoraire.obj `if test -f 'IO/InPlageHoraire.cpp'; then $(CYGPATH_W) 'IO/InPlageHoraire.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/InPlageHoraire.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InPlageHoraire.Tpo $(DEPDIR)/InPlageHoraire.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/InPlageHoraire.cpp' object='InPlageHoraire.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InPlageHoraire.obj `if test -f 'IO/InPlageHoraire.cpp'; then $(CYGPATH_W) 'IO/InPlageHoraire.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/InPlageHoraire.cpp'; fi` + +Planet.o: IPCam/Planet.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Planet.o -MD -MP -MF $(DEPDIR)/Planet.Tpo -c -o Planet.o `test -f 'IPCam/Planet.cpp' || echo '$(srcdir)/'`IPCam/Planet.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Planet.Tpo $(DEPDIR)/Planet.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/Planet.cpp' object='Planet.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Planet.o `test -f 'IPCam/Planet.cpp' || echo '$(srcdir)/'`IPCam/Planet.cpp + +Planet.obj: IPCam/Planet.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Planet.obj -MD -MP -MF $(DEPDIR)/Planet.Tpo -c -o Planet.obj `if test -f 'IPCam/Planet.cpp'; then $(CYGPATH_W) 'IPCam/Planet.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/Planet.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Planet.Tpo $(DEPDIR)/Planet.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/Planet.cpp' object='Planet.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Planet.obj `if test -f 'IPCam/Planet.cpp'; then $(CYGPATH_W) 'IPCam/Planet.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/Planet.cpp'; fi` + +BaseCommand.o: TCPProcessor/BaseCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BaseCommand.o -MD -MP -MF $(DEPDIR)/BaseCommand.Tpo -c -o BaseCommand.o `test -f 'TCPProcessor/BaseCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/BaseCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/BaseCommand.Tpo $(DEPDIR)/BaseCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/BaseCommand.cpp' object='BaseCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BaseCommand.o `test -f 'TCPProcessor/BaseCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/BaseCommand.cpp + +BaseCommand.obj: TCPProcessor/BaseCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BaseCommand.obj -MD -MP -MF $(DEPDIR)/BaseCommand.Tpo -c -o BaseCommand.obj `if test -f 'TCPProcessor/BaseCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/BaseCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/BaseCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/BaseCommand.Tpo $(DEPDIR)/BaseCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/BaseCommand.cpp' object='BaseCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BaseCommand.obj `if test -f 'TCPProcessor/BaseCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/BaseCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/BaseCommand.cpp'; fi` + +CameraCommand.o: TCPProcessor/CameraCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CameraCommand.o -MD -MP -MF $(DEPDIR)/CameraCommand.Tpo -c -o CameraCommand.o `test -f 'TCPProcessor/CameraCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/CameraCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CameraCommand.Tpo $(DEPDIR)/CameraCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/CameraCommand.cpp' object='CameraCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CameraCommand.o `test -f 'TCPProcessor/CameraCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/CameraCommand.cpp + +CameraCommand.obj: TCPProcessor/CameraCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CameraCommand.obj -MD -MP -MF $(DEPDIR)/CameraCommand.Tpo -c -o CameraCommand.obj `if test -f 'TCPProcessor/CameraCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/CameraCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/CameraCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CameraCommand.Tpo $(DEPDIR)/CameraCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/CameraCommand.cpp' object='CameraCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CameraCommand.obj `if test -f 'TCPProcessor/CameraCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/CameraCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/CameraCommand.cpp'; fi` + +IOCommand.o: TCPProcessor/IOCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOCommand.o -MD -MP -MF $(DEPDIR)/IOCommand.Tpo -c -o IOCommand.o `test -f 'TCPProcessor/IOCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/IOCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOCommand.Tpo $(DEPDIR)/IOCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/IOCommand.cpp' object='IOCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOCommand.o `test -f 'TCPProcessor/IOCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/IOCommand.cpp + +IOCommand.obj: TCPProcessor/IOCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IOCommand.obj -MD -MP -MF $(DEPDIR)/IOCommand.Tpo -c -o IOCommand.obj `if test -f 'TCPProcessor/IOCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/IOCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/IOCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/IOCommand.Tpo $(DEPDIR)/IOCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/IOCommand.cpp' object='IOCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IOCommand.obj `if test -f 'TCPProcessor/IOCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/IOCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/IOCommand.cpp'; fi` + +HomeCommand.o: TCPProcessor/HomeCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HomeCommand.o -MD -MP -MF $(DEPDIR)/HomeCommand.Tpo -c -o HomeCommand.o `test -f 'TCPProcessor/HomeCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/HomeCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/HomeCommand.Tpo $(DEPDIR)/HomeCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/HomeCommand.cpp' object='HomeCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HomeCommand.o `test -f 'TCPProcessor/HomeCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/HomeCommand.cpp + +HomeCommand.obj: TCPProcessor/HomeCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HomeCommand.obj -MD -MP -MF $(DEPDIR)/HomeCommand.Tpo -c -o HomeCommand.obj `if test -f 'TCPProcessor/HomeCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/HomeCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/HomeCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/HomeCommand.Tpo $(DEPDIR)/HomeCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/HomeCommand.cpp' object='HomeCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HomeCommand.obj `if test -f 'TCPProcessor/HomeCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/HomeCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/HomeCommand.cpp'; fi` + +RulesCommand.o: TCPProcessor/RulesCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RulesCommand.o -MD -MP -MF $(DEPDIR)/RulesCommand.Tpo -c -o RulesCommand.o `test -f 'TCPProcessor/RulesCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/RulesCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/RulesCommand.Tpo $(DEPDIR)/RulesCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/RulesCommand.cpp' object='RulesCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RulesCommand.o `test -f 'TCPProcessor/RulesCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/RulesCommand.cpp + +RulesCommand.obj: TCPProcessor/RulesCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RulesCommand.obj -MD -MP -MF $(DEPDIR)/RulesCommand.Tpo -c -o RulesCommand.obj `if test -f 'TCPProcessor/RulesCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/RulesCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/RulesCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/RulesCommand.Tpo $(DEPDIR)/RulesCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/RulesCommand.cpp' object='RulesCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RulesCommand.obj `if test -f 'TCPProcessor/RulesCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/RulesCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/RulesCommand.cpp'; fi` + +ListenCommand.o: TCPProcessor/ListenCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ListenCommand.o -MD -MP -MF $(DEPDIR)/ListenCommand.Tpo -c -o ListenCommand.o `test -f 'TCPProcessor/ListenCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/ListenCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ListenCommand.Tpo $(DEPDIR)/ListenCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/ListenCommand.cpp' object='ListenCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ListenCommand.o `test -f 'TCPProcessor/ListenCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/ListenCommand.cpp + +ListenCommand.obj: TCPProcessor/ListenCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ListenCommand.obj -MD -MP -MF $(DEPDIR)/ListenCommand.Tpo -c -o ListenCommand.obj `if test -f 'TCPProcessor/ListenCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/ListenCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/ListenCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ListenCommand.Tpo $(DEPDIR)/ListenCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/ListenCommand.cpp' object='ListenCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ListenCommand.obj `if test -f 'TCPProcessor/ListenCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/ListenCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/ListenCommand.cpp'; fi` + +ScenarioCommand.o: TCPProcessor/ScenarioCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ScenarioCommand.o -MD -MP -MF $(DEPDIR)/ScenarioCommand.Tpo -c -o ScenarioCommand.o `test -f 'TCPProcessor/ScenarioCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/ScenarioCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ScenarioCommand.Tpo $(DEPDIR)/ScenarioCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/ScenarioCommand.cpp' object='ScenarioCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ScenarioCommand.o `test -f 'TCPProcessor/ScenarioCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/ScenarioCommand.cpp + +ScenarioCommand.obj: TCPProcessor/ScenarioCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ScenarioCommand.obj -MD -MP -MF $(DEPDIR)/ScenarioCommand.Tpo -c -o ScenarioCommand.obj `if test -f 'TCPProcessor/ScenarioCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/ScenarioCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/ScenarioCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ScenarioCommand.Tpo $(DEPDIR)/ScenarioCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/ScenarioCommand.cpp' object='ScenarioCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ScenarioCommand.obj `if test -f 'TCPProcessor/ScenarioCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/ScenarioCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/ScenarioCommand.cpp'; fi` + +CamConnection.o: IPCam/CamConnection.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamConnection.o -MD -MP -MF $(DEPDIR)/CamConnection.Tpo -c -o CamConnection.o `test -f 'IPCam/CamConnection.cpp' || echo '$(srcdir)/'`IPCam/CamConnection.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamConnection.Tpo $(DEPDIR)/CamConnection.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamConnection.cpp' object='CamConnection.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamConnection.o `test -f 'IPCam/CamConnection.cpp' || echo '$(srcdir)/'`IPCam/CamConnection.cpp + +CamConnection.obj: IPCam/CamConnection.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamConnection.obj -MD -MP -MF $(DEPDIR)/CamConnection.Tpo -c -o CamConnection.obj `if test -f 'IPCam/CamConnection.cpp'; then $(CYGPATH_W) 'IPCam/CamConnection.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamConnection.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamConnection.Tpo $(DEPDIR)/CamConnection.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamConnection.cpp' object='CamConnection.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamConnection.obj `if test -f 'IPCam/CamConnection.cpp'; then $(CYGPATH_W) 'IPCam/CamConnection.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamConnection.cpp'; fi` + +CamServer.o: IPCam/CamServer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamServer.o -MD -MP -MF $(DEPDIR)/CamServer.Tpo -c -o CamServer.o `test -f 'IPCam/CamServer.cpp' || echo '$(srcdir)/'`IPCam/CamServer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamServer.Tpo $(DEPDIR)/CamServer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamServer.cpp' object='CamServer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamServer.o `test -f 'IPCam/CamServer.cpp' || echo '$(srcdir)/'`IPCam/CamServer.cpp + +CamServer.obj: IPCam/CamServer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CamServer.obj -MD -MP -MF $(DEPDIR)/CamServer.Tpo -c -o CamServer.obj `if test -f 'IPCam/CamServer.cpp'; then $(CYGPATH_W) 'IPCam/CamServer.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamServer.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CamServer.Tpo $(DEPDIR)/CamServer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IPCam/CamServer.cpp' object='CamServer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CamServer.obj `if test -f 'IPCam/CamServer.cpp'; then $(CYGPATH_W) 'IPCam/CamServer.cpp'; else $(CYGPATH_W) '$(srcdir)/IPCam/CamServer.cpp'; fi` + +WODali.o: IO/WODali.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WODali.o -MD -MP -MF $(DEPDIR)/WODali.Tpo -c -o WODali.o `test -f 'IO/WODali.cpp' || echo '$(srcdir)/'`IO/WODali.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WODali.Tpo $(DEPDIR)/WODali.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WODali.cpp' object='WODali.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WODali.o `test -f 'IO/WODali.cpp' || echo '$(srcdir)/'`IO/WODali.cpp + +WODali.obj: IO/WODali.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WODali.obj -MD -MP -MF $(DEPDIR)/WODali.Tpo -c -o WODali.obj `if test -f 'IO/WODali.cpp'; then $(CYGPATH_W) 'IO/WODali.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WODali.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WODali.Tpo $(DEPDIR)/WODali.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WODali.cpp' object='WODali.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WODali.obj `if test -f 'IO/WODali.cpp'; then $(CYGPATH_W) 'IO/WODali.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WODali.cpp'; fi` + +WODaliRVB.o: IO/WODaliRVB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WODaliRVB.o -MD -MP -MF $(DEPDIR)/WODaliRVB.Tpo -c -o WODaliRVB.o `test -f 'IO/WODaliRVB.cpp' || echo '$(srcdir)/'`IO/WODaliRVB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WODaliRVB.Tpo $(DEPDIR)/WODaliRVB.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WODaliRVB.cpp' object='WODaliRVB.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WODaliRVB.o `test -f 'IO/WODaliRVB.cpp' || echo '$(srcdir)/'`IO/WODaliRVB.cpp + +WODaliRVB.obj: IO/WODaliRVB.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WODaliRVB.obj -MD -MP -MF $(DEPDIR)/WODaliRVB.Tpo -c -o WODaliRVB.obj `if test -f 'IO/WODaliRVB.cpp'; then $(CYGPATH_W) 'IO/WODaliRVB.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WODaliRVB.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WODaliRVB.Tpo $(DEPDIR)/WODaliRVB.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WODaliRVB.cpp' object='WODaliRVB.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WODaliRVB.obj `if test -f 'IO/WODaliRVB.cpp'; then $(CYGPATH_W) 'IO/WODaliRVB.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WODaliRVB.cpp'; fi` + +AudioCommand.o: TCPProcessor/AudioCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioCommand.o -MD -MP -MF $(DEPDIR)/AudioCommand.Tpo -c -o AudioCommand.o `test -f 'TCPProcessor/AudioCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/AudioCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioCommand.Tpo $(DEPDIR)/AudioCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/AudioCommand.cpp' object='AudioCommand.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioCommand.o `test -f 'TCPProcessor/AudioCommand.cpp' || echo '$(srcdir)/'`TCPProcessor/AudioCommand.cpp + +AudioCommand.obj: TCPProcessor/AudioCommand.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioCommand.obj -MD -MP -MF $(DEPDIR)/AudioCommand.Tpo -c -o AudioCommand.obj `if test -f 'TCPProcessor/AudioCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/AudioCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/AudioCommand.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioCommand.Tpo $(DEPDIR)/AudioCommand.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TCPProcessor/AudioCommand.cpp' object='AudioCommand.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioCommand.obj `if test -f 'TCPProcessor/AudioCommand.cpp'; then $(CYGPATH_W) 'TCPProcessor/AudioCommand.cpp'; else $(CYGPATH_W) '$(srcdir)/TCPProcessor/AudioCommand.cpp'; fi` + +AudioPlayer.o: Audio/AudioPlayer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioPlayer.o -MD -MP -MF $(DEPDIR)/AudioPlayer.Tpo -c -o AudioPlayer.o `test -f 'Audio/AudioPlayer.cpp' || echo '$(srcdir)/'`Audio/AudioPlayer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioPlayer.Tpo $(DEPDIR)/AudioPlayer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioPlayer.cpp' object='AudioPlayer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioPlayer.o `test -f 'Audio/AudioPlayer.cpp' || echo '$(srcdir)/'`Audio/AudioPlayer.cpp + +AudioPlayer.obj: Audio/AudioPlayer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AudioPlayer.obj -MD -MP -MF $(DEPDIR)/AudioPlayer.Tpo -c -o AudioPlayer.obj `if test -f 'Audio/AudioPlayer.cpp'; then $(CYGPATH_W) 'Audio/AudioPlayer.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioPlayer.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AudioPlayer.Tpo $(DEPDIR)/AudioPlayer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AudioPlayer.cpp' object='AudioPlayer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AudioPlayer.obj `if test -f 'Audio/AudioPlayer.cpp'; then $(CYGPATH_W) 'Audio/AudioPlayer.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AudioPlayer.cpp'; fi` + +WOVoletSmart.o: IO/WOVoletSmart.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WOVoletSmart.o -MD -MP -MF $(DEPDIR)/WOVoletSmart.Tpo -c -o WOVoletSmart.o `test -f 'IO/WOVoletSmart.cpp' || echo '$(srcdir)/'`IO/WOVoletSmart.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WOVoletSmart.Tpo $(DEPDIR)/WOVoletSmart.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WOVoletSmart.cpp' object='WOVoletSmart.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WOVoletSmart.o `test -f 'IO/WOVoletSmart.cpp' || echo '$(srcdir)/'`IO/WOVoletSmart.cpp + +WOVoletSmart.obj: IO/WOVoletSmart.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WOVoletSmart.obj -MD -MP -MF $(DEPDIR)/WOVoletSmart.Tpo -c -o WOVoletSmart.obj `if test -f 'IO/WOVoletSmart.cpp'; then $(CYGPATH_W) 'IO/WOVoletSmart.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WOVoletSmart.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WOVoletSmart.Tpo $(DEPDIR)/WOVoletSmart.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WOVoletSmart.cpp' object='WOVoletSmart.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WOVoletSmart.obj `if test -f 'IO/WOVoletSmart.cpp'; then $(CYGPATH_W) 'IO/WOVoletSmart.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WOVoletSmart.cpp'; fi` + +AutoScenario.o: Scenario/AutoScenario.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AutoScenario.o -MD -MP -MF $(DEPDIR)/AutoScenario.Tpo -c -o AutoScenario.o `test -f 'Scenario/AutoScenario.cpp' || echo '$(srcdir)/'`Scenario/AutoScenario.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AutoScenario.Tpo $(DEPDIR)/AutoScenario.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Scenario/AutoScenario.cpp' object='AutoScenario.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AutoScenario.o `test -f 'Scenario/AutoScenario.cpp' || echo '$(srcdir)/'`Scenario/AutoScenario.cpp + +AutoScenario.obj: Scenario/AutoScenario.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AutoScenario.obj -MD -MP -MF $(DEPDIR)/AutoScenario.Tpo -c -o AutoScenario.obj `if test -f 'Scenario/AutoScenario.cpp'; then $(CYGPATH_W) 'Scenario/AutoScenario.cpp'; else $(CYGPATH_W) '$(srcdir)/Scenario/AutoScenario.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AutoScenario.Tpo $(DEPDIR)/AutoScenario.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Scenario/AutoScenario.cpp' object='AutoScenario.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AutoScenario.obj `if test -f 'Scenario/AutoScenario.cpp'; then $(CYGPATH_W) 'Scenario/AutoScenario.cpp'; else $(CYGPATH_W) '$(srcdir)/Scenario/AutoScenario.cpp'; fi` + +WOAnalog.o: IO/WOAnalog.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WOAnalog.o -MD -MP -MF $(DEPDIR)/WOAnalog.Tpo -c -o WOAnalog.o `test -f 'IO/WOAnalog.cpp' || echo '$(srcdir)/'`IO/WOAnalog.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WOAnalog.Tpo $(DEPDIR)/WOAnalog.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WOAnalog.cpp' object='WOAnalog.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WOAnalog.o `test -f 'IO/WOAnalog.cpp' || echo '$(srcdir)/'`IO/WOAnalog.cpp + +WOAnalog.obj: IO/WOAnalog.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WOAnalog.obj -MD -MP -MF $(DEPDIR)/WOAnalog.Tpo -c -o WOAnalog.obj `if test -f 'IO/WOAnalog.cpp'; then $(CYGPATH_W) 'IO/WOAnalog.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WOAnalog.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WOAnalog.Tpo $(DEPDIR)/WOAnalog.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WOAnalog.cpp' object='WOAnalog.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WOAnalog.obj `if test -f 'IO/WOAnalog.cpp'; then $(CYGPATH_W) 'IO/WOAnalog.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WOAnalog.cpp'; fi` + +WIAnalog.o: IO/WIAnalog.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WIAnalog.o -MD -MP -MF $(DEPDIR)/WIAnalog.Tpo -c -o WIAnalog.o `test -f 'IO/WIAnalog.cpp' || echo '$(srcdir)/'`IO/WIAnalog.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WIAnalog.Tpo $(DEPDIR)/WIAnalog.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WIAnalog.cpp' object='WIAnalog.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WIAnalog.o `test -f 'IO/WIAnalog.cpp' || echo '$(srcdir)/'`IO/WIAnalog.cpp + +WIAnalog.obj: IO/WIAnalog.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WIAnalog.obj -MD -MP -MF $(DEPDIR)/WIAnalog.Tpo -c -o WIAnalog.obj `if test -f 'IO/WIAnalog.cpp'; then $(CYGPATH_W) 'IO/WIAnalog.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WIAnalog.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/WIAnalog.Tpo $(DEPDIR)/WIAnalog.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='IO/WIAnalog.cpp' object='WIAnalog.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WIAnalog.obj `if test -f 'IO/WIAnalog.cpp'; then $(CYGPATH_W) 'IO/WIAnalog.cpp'; else $(CYGPATH_W) '$(srcdir)/IO/WIAnalog.cpp'; fi` + +AVRManager.o: Audio/AVRManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRManager.o -MD -MP -MF $(DEPDIR)/AVRManager.Tpo -c -o AVRManager.o `test -f 'Audio/AVRManager.cpp' || echo '$(srcdir)/'`Audio/AVRManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRManager.Tpo $(DEPDIR)/AVRManager.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRManager.cpp' object='AVRManager.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRManager.o `test -f 'Audio/AVRManager.cpp' || echo '$(srcdir)/'`Audio/AVRManager.cpp + +AVRManager.obj: Audio/AVRManager.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRManager.obj -MD -MP -MF $(DEPDIR)/AVRManager.Tpo -c -o AVRManager.obj `if test -f 'Audio/AVRManager.cpp'; then $(CYGPATH_W) 'Audio/AVRManager.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRManager.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRManager.Tpo $(DEPDIR)/AVRManager.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRManager.cpp' object='AVRManager.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRManager.obj `if test -f 'Audio/AVRManager.cpp'; then $(CYGPATH_W) 'Audio/AVRManager.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRManager.cpp'; fi` + +AVReceiver.o: Audio/AVReceiver.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVReceiver.o -MD -MP -MF $(DEPDIR)/AVReceiver.Tpo -c -o AVReceiver.o `test -f 'Audio/AVReceiver.cpp' || echo '$(srcdir)/'`Audio/AVReceiver.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVReceiver.Tpo $(DEPDIR)/AVReceiver.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVReceiver.cpp' object='AVReceiver.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVReceiver.o `test -f 'Audio/AVReceiver.cpp' || echo '$(srcdir)/'`Audio/AVReceiver.cpp + +AVReceiver.obj: Audio/AVReceiver.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVReceiver.obj -MD -MP -MF $(DEPDIR)/AVReceiver.Tpo -c -o AVReceiver.obj `if test -f 'Audio/AVReceiver.cpp'; then $(CYGPATH_W) 'Audio/AVReceiver.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVReceiver.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVReceiver.Tpo $(DEPDIR)/AVReceiver.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVReceiver.cpp' object='AVReceiver.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVReceiver.obj `if test -f 'Audio/AVReceiver.cpp'; then $(CYGPATH_W) 'Audio/AVReceiver.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVReceiver.cpp'; fi` + +AVRPioneer.o: Audio/AVRPioneer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRPioneer.o -MD -MP -MF $(DEPDIR)/AVRPioneer.Tpo -c -o AVRPioneer.o `test -f 'Audio/AVRPioneer.cpp' || echo '$(srcdir)/'`Audio/AVRPioneer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRPioneer.Tpo $(DEPDIR)/AVRPioneer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRPioneer.cpp' object='AVRPioneer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRPioneer.o `test -f 'Audio/AVRPioneer.cpp' || echo '$(srcdir)/'`Audio/AVRPioneer.cpp + +AVRPioneer.obj: Audio/AVRPioneer.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRPioneer.obj -MD -MP -MF $(DEPDIR)/AVRPioneer.Tpo -c -o AVRPioneer.obj `if test -f 'Audio/AVRPioneer.cpp'; then $(CYGPATH_W) 'Audio/AVRPioneer.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRPioneer.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRPioneer.Tpo $(DEPDIR)/AVRPioneer.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRPioneer.cpp' object='AVRPioneer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRPioneer.obj `if test -f 'Audio/AVRPioneer.cpp'; then $(CYGPATH_W) 'Audio/AVRPioneer.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRPioneer.cpp'; fi` + +AVRDenon.o: Audio/AVRDenon.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRDenon.o -MD -MP -MF $(DEPDIR)/AVRDenon.Tpo -c -o AVRDenon.o `test -f 'Audio/AVRDenon.cpp' || echo '$(srcdir)/'`Audio/AVRDenon.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRDenon.Tpo $(DEPDIR)/AVRDenon.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRDenon.cpp' object='AVRDenon.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRDenon.o `test -f 'Audio/AVRDenon.cpp' || echo '$(srcdir)/'`Audio/AVRDenon.cpp + +AVRDenon.obj: Audio/AVRDenon.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRDenon.obj -MD -MP -MF $(DEPDIR)/AVRDenon.Tpo -c -o AVRDenon.obj `if test -f 'Audio/AVRDenon.cpp'; then $(CYGPATH_W) 'Audio/AVRDenon.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRDenon.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRDenon.Tpo $(DEPDIR)/AVRDenon.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRDenon.cpp' object='AVRDenon.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRDenon.obj `if test -f 'Audio/AVRDenon.cpp'; then $(CYGPATH_W) 'Audio/AVRDenon.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRDenon.cpp'; fi` + +AVROnkyo.o: Audio/AVROnkyo.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVROnkyo.o -MD -MP -MF $(DEPDIR)/AVROnkyo.Tpo -c -o AVROnkyo.o `test -f 'Audio/AVROnkyo.cpp' || echo '$(srcdir)/'`Audio/AVROnkyo.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVROnkyo.Tpo $(DEPDIR)/AVROnkyo.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVROnkyo.cpp' object='AVROnkyo.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVROnkyo.o `test -f 'Audio/AVROnkyo.cpp' || echo '$(srcdir)/'`Audio/AVROnkyo.cpp + +AVROnkyo.obj: Audio/AVROnkyo.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVROnkyo.obj -MD -MP -MF $(DEPDIR)/AVROnkyo.Tpo -c -o AVROnkyo.obj `if test -f 'Audio/AVROnkyo.cpp'; then $(CYGPATH_W) 'Audio/AVROnkyo.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVROnkyo.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVROnkyo.Tpo $(DEPDIR)/AVROnkyo.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVROnkyo.cpp' object='AVROnkyo.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVROnkyo.obj `if test -f 'Audio/AVROnkyo.cpp'; then $(CYGPATH_W) 'Audio/AVROnkyo.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVROnkyo.cpp'; fi` + +AVRMarantz.o: Audio/AVRMarantz.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRMarantz.o -MD -MP -MF $(DEPDIR)/AVRMarantz.Tpo -c -o AVRMarantz.o `test -f 'Audio/AVRMarantz.cpp' || echo '$(srcdir)/'`Audio/AVRMarantz.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRMarantz.Tpo $(DEPDIR)/AVRMarantz.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRMarantz.cpp' object='AVRMarantz.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRMarantz.o `test -f 'Audio/AVRMarantz.cpp' || echo '$(srcdir)/'`Audio/AVRMarantz.cpp + +AVRMarantz.obj: Audio/AVRMarantz.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AVRMarantz.obj -MD -MP -MF $(DEPDIR)/AVRMarantz.Tpo -c -o AVRMarantz.obj `if test -f 'Audio/AVRMarantz.cpp'; then $(CYGPATH_W) 'Audio/AVRMarantz.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRMarantz.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/AVRMarantz.Tpo $(DEPDIR)/AVRMarantz.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Audio/AVRMarantz.cpp' object='AVRMarantz.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AVRMarantz.obj `if test -f 'Audio/AVRMarantz.cpp'; then $(CYGPATH_W) 'Audio/AVRMarantz.cpp'; else $(CYGPATH_W) '$(srcdir)/Audio/AVRMarantz.cpp'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-binPROGRAMS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/bin/calaos_server/Output.cpp b/src/bin/calaos_server/Output.cpp new file mode 100644 index 00000000..c40248da --- /dev/null +++ b/src/bin/calaos_server/Output.cpp @@ -0,0 +1,59 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +Output::Output(Params &p): + IOBase(p) +{ + iter_output = signal_output.connect(sigc::mem_fun(&ListeRule::Instance(), &ListeRule::ExecuteRuleSignal)); + + ListeRoom::Instance().addOutputHash(this); +} + +Output::~Output() +{ + iter_output->disconnect(); + ListeRoom::Instance().delOutputHash(this); +} + +void Output::EmitSignalOutput() +{ + Utils::logger("output") << Priority::DEBUG << "Input::EmitSignalOutput(" << get_param("id") << ")" << log4cpp::eol; + signal_output.emit(get_param("id")); +} + +bool Output::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *cnode = new TiXmlElement("calaos:output"); + node->LinkEndChild(cnode); + + for (int i = 0;i < get_params().size();i++) + { + string key, value; + get_params().get_item(i, key, value); + cnode->SetAttribute(key, value); + } + + return true; +} diff --git a/src/bin/calaos_server/Output.h b/src/bin/calaos_server/Output.h new file mode 100644 index 00000000..678213e7 --- /dev/null +++ b/src/bin/calaos_server/Output.h @@ -0,0 +1,56 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_OUTPUT_H +#define S_OUTPUT_H + +#include +#include + +namespace Calaos +{ + +class Output: public IOBase +{ + protected: + typedef sigc::signal type_signal_output; + type_signal_output signal_output; + type_signal_output::iterator iter_output; + + public: + Output(Params &p); + virtual ~Output(); + + virtual bool set_value(bool val) { return false; } + virtual bool set_value(double val) { return false; } + virtual bool set_value(std::string val) { return false; } + + //used to retreive the last state command of the TSTRING output + virtual std::string get_command_string() { return ""; } + + virtual void EmitSignalOutput(); + + virtual bool LoadFromXml(TiXmlElement *node) + { return false; } + virtual bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/PollListenner.cpp b/src/bin/calaos_server/PollListenner.cpp new file mode 100644 index 00000000..1af76077 --- /dev/null +++ b/src/bin/calaos_server/PollListenner.cpp @@ -0,0 +1,160 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +//For UUID generation +#include +#include + +using kashmir::uuid_t; +using kashmir::system::DevRand; + +using namespace Calaos; + +PollObject::PollObject(string _uuid): + uuid(_uuid), + timeout(NULL) +{ + timeout = new EcoreTimer(TIMEOUT_POLLLISTENNER, (sigc::slot)sigc::mem_fun(*this, &PollObject::Timeout_cb)); + + //Attach the callback to IPC + sig_events.connect( sigc::mem_fun(*this, &PollObject::HandleEventsFromSignals) ); + IPC::Instance().AddHandler("events", "*", sig_events); + + Utils::logger("poll_listenner") << Priority::DEBUG << "PollObject: New object for " << uuid << log4cpp::eol; +} + +PollObject::~PollObject() +{ + if (timeout) + { + delete timeout; + timeout = NULL; + } + + IPC::Instance().DeleteHandler(sig_events); + + Utils::logger("poll_listenner") << Priority::DEBUG << "~PollObject: Cleaning object " << uuid << log4cpp::eol; +} + +void PollObject::HandleEventsFromSignals(string source, string emission, void *mydata, void *sender_data) +{ + vector tokens; + split(emission, tokens, " "); + + if (tokens.size() < 3) + return; + + string id = tokens[0] + ":" + tokens[1]; + + Utils::logger("poll_listenner") << Priority::DEBUG << "PollObject: Handling signal: " << id << " -> " << url_decode(tokens[2]) << log4cpp::eol; + + events.Add(id, url_decode(tokens[2])); +} + +Eina_Bool _timeout_poll_idler_cb(void *data) +{ + PollObject *obj = reinterpret_cast(data); + if (!obj) return ECORE_CALLBACK_CANCEL; + + PollListenner::Instance().Unregister(obj->getUUID()); + + //delete the ecore_idler + return ECORE_CALLBACK_CANCEL; +} + +void PollObject::Timeout_cb() +{ + delete timeout; + timeout = NULL; + + Utils::logger("poll_listenner") << Priority::DEBUG << "PollObject: " << uuid << " Timeout !" << log4cpp::eol; + + ecore_idler_add(_timeout_poll_idler_cb, this); +} + +PollListenner::PollListenner() +{ +} + +PollListenner::~PollListenner() +{ +} + +string PollListenner::Register() +{ + DevRand devrandom; + stringstream out; + + uuid_t _uuid; + devrandom >> _uuid; + out << _uuid; + + string uuid = out.str(); + + pollobjects[uuid] = new PollObject(uuid); + + Utils::logger("poll_listenner") << Priority::DEBUG << "PollListenner::Register uuid:" << uuid << log4cpp::eol; + + return uuid; +} + +bool PollListenner::Unregister(string uuid) +{ + if (pollobjects.find(uuid) == pollobjects.end()) + { + Utils::logger("poll_listenner") << Priority::DEBUG << "PollListenner::Unregister uuid:" << uuid << " not found ! " << log4cpp::eol; + return false; + } + + PollObject *o = pollobjects[uuid]; + + if (o) + { + delete o; + pollobjects[uuid] = NULL; + } + + pollobjects.erase(uuid); + + Utils::logger("poll_listenner") << Priority::DEBUG << "PollListenner::Unregister uuid:" << uuid << log4cpp::eol; + + return true; +} + +bool PollListenner::GetEvents(string uuid, Params &events) +{ + if (pollobjects.find(uuid) == pollobjects.end()) + { + Utils::logger("poll_listenner") << Priority::DEBUG << "PollListenner::GetEvents uuid:" << uuid << " not found ! " << log4cpp::eol; + return false; + } + + PollObject *o = pollobjects[uuid]; + + events = o->getEvents(); + + o->getEvents().clear(); + o->ResetTimer(); + + return true; +} diff --git a/src/bin/calaos_server/PollListenner.h b/src/bin/calaos_server/PollListenner.h new file mode 100644 index 00000000..7da20d1e --- /dev/null +++ b/src/bin/calaos_server/PollListenner.h @@ -0,0 +1,87 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef PollListenner_H +#define PollListenner_H + +#include +#include + +#define TIMEOUT_POLLLISTENNER 300.0 + +namespace Calaos +{ + +class PollObject +{ + private: + sigc::signal sig_events; + + string uuid; + EcoreTimer *timeout; //timer that invalidates uuid after some time of inactivity + + //IPC callback to handle all events from the system + void HandleEventsFromSignals(string source, string emission, void *mydata, void *sender_data); + + //Timeout callback + void Timeout_cb(); + + Params events; + + public: + PollObject(string uuid); + ~PollObject(); + + Params &getEvents() { return events; } + string getUUID() { return uuid; } + void ResetTimer() { timeout->Reset(); } +}; + +class PollListenner +{ + private: + map pollobjects; + + PollListenner(); + + public: + ~PollListenner(); + + static PollListenner &Instance() + { + static PollListenner pl; + + return pl; + } + + // Get an uuid. + // The uuid will be automatically unregistered after some time + // and become invalid + string Register(); + + // Unregister the uuid, return false if error + bool Unregister(string uuid); + + // Get events for the registered uuid, return false if error + bool GetEvents(string uuid, Params &events); +}; + +} +#endif diff --git a/src/bin/calaos_server/Room.cpp b/src/bin/calaos_server/Room.cpp new file mode 100644 index 00000000..ff962a77 --- /dev/null +++ b/src/bin/calaos_server/Room.cpp @@ -0,0 +1,294 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include +#include + +using namespace Calaos; + +Room::Room(string _name, string _type, int _hits): + name(_name), + type(_type), + hits(_hits) +{ + Utils::logger("room") << Priority::DEBUG << "Room::Room(" << name << ", " << type << "): Ok" << log4cpp::eol; +} + +Room::~Room() +{ + while (inputs.size() > 0) + ListeRoom::Instance().deleteIO(inputs[0]); + + while (outputs.size() > 0) + ListeRoom::Instance().deleteIO(outputs[0]); + + inputs.clear(); + outputs.clear(); + + Utils::logger("room") << Priority::DEBUG << "Room::~Room(): Ok" << log4cpp::eol; +} + +void Room::AddInput(Input *in) +{ + inputs.push_back(in); + + Utils::logger("room") << Priority::DEBUG << "Room::AddInput(" << in->get_param("id") << "): Ok" << log4cpp::eol; +} + +void Room::AddOutput(Output *out) +{ + outputs.push_back(out); + + Utils::logger("room") << Priority::DEBUG << "Room::AddOutput(" << out->get_param("id") << "): Ok" << log4cpp::eol; +} + +void Room::RemoveInput(int pos, bool del) +{ + string sig = "delete_input "; + sig += inputs[pos]->get_param("id") + " "; + sig += url_encode(string("room_name:") + name) + " "; + sig += url_encode(string("room_type:") + type); + IPC::Instance().SendEvent("events", sig); + + vector::iterator iter = inputs.begin(); + for (int i = 0;i < pos;iter++, i++) ; + if (del) delete inputs[pos]; + inputs.erase(iter); + + Utils::logger("room") << Priority::DEBUG << "Room::RemoveInput(): Ok" << log4cpp::eol; +} + +void Room::RemoveOutput(int pos, bool del) +{ + string sig = "delete_output "; + sig += outputs[pos]->get_param("id") + " "; + sig += url_encode(string("room_name:") + name) + " "; + sig += url_encode(string("room_type:") + type); + IPC::Instance().SendEvent("events", sig); + + vector::iterator iter = outputs.begin(); + for (int i = 0;i < pos;iter++, i++) ; + if (del) delete outputs[pos]; + outputs.erase(iter); + + Utils::logger("room") << Priority::DEBUG << "Room::RemoveOutput(): Ok" << log4cpp::eol; +} + +void Room::RemoveInputFromRoom(Input *in) +{ + vector::iterator it = find(inputs.begin(), inputs.end(), in); + if (it != inputs.end()) + { + inputs.erase(it); + + string sig = "modify_room "; + sig += url_encode(string("input_del:") + in->get_param("id")) + " "; + sig += url_encode(string("room_name:") + get_name()) + " "; + sig += url_encode(string("room_type:") + get_type()); + IPC::Instance().SendEvent("events", sig); + } +} + +void Room::RemoveOutputFromRoom(Output *out) +{ + vector::iterator it = find(outputs.begin(), outputs.end(), out); + if (it != outputs.end()) + { + outputs.erase(it); + + string sig = "modify_room "; + sig += url_encode(string("output_del:") + out->get_param("id")) + " "; + sig += url_encode(string("room_name:") + get_name()) + " "; + sig += url_encode(string("room_type:") + get_type()); + IPC::Instance().SendEvent("events", sig); + } +} + +void Room::set_name(std::string &s) +{ + string sig = "modify_room "; + sig += url_encode(string("old_room_name:") + name) + " "; + sig += url_encode(string("new_room_name:") + s) + " "; + sig += url_encode(string("room_type:") + type); + IPC::Instance().SendEvent("events", sig); + + name = s; +} + +void Room::set_type(std::string &s) +{ + string sig = "modify_room "; + sig += url_encode(string("old_room_type:") + type) + " "; + sig += url_encode(string("new_room_type:") + s) + " "; + sig += url_encode(string("room_name:") + name); + IPC::Instance().SendEvent("events", sig); + + type = s; +} + +void Room::set_hits(int h) +{ + string sig = "modify_room "; + sig += url_encode(string("old_room_hits:") + to_string(hits)) + " "; + sig += url_encode(string("new_room_hits:") + to_string(h)) + " "; + sig += url_encode(string("room_name:") + name) + " "; + sig += url_encode(string("room_type:") + type); + IPC::Instance().SendEvent("events", sig); + + hits = h; +} + +bool Room::LoadFromXml(TiXmlElement *room_node) +{ + TiXmlElement *node = room_node->FirstChildElement(); + for(; node; node = node->NextSiblingElement()) + { + if (node->ValueStr() == "calaos:input") + { + Input *in = IOFactory::CreateInput(node); + if (in) + { + AddInput(in); + + InputTimer *o = dynamic_cast(in); + if (o) AddOutput(o); + + Scenario *sc = dynamic_cast(in); + if (sc) AddOutput(sc); + } + } + else if (node->ValueStr() == "calaos:output") + { + Output *out = IOFactory::CreateOutput(node); + if (out) AddOutput(out); + } + else if (node->ValueStr() == "calaos:audio") + { + AudioPlayer *player = IOFactory::CreateAudio(node); + if (player) + { + if (AudioManager::Instance().get_size() <= 0) + AudioManager::Instance().Add(player, player->get_param("host")); + else + AudioManager::Instance().Add(player); + + AddInput(player->get_input()); + AddOutput(player->get_output()); + } + } + else if (node->ValueStr() == "calaos:internal") + { + Input *in = IOFactory::CreateInput(node); + if (in) + { + Internal *intern = dynamic_cast(in); + if (intern) + { + AddInput(intern); + AddOutput(intern); + } + } + } + else if (node->ValueStr() == "calaos:camera") + { + IPCam *camera = IOFactory::CreateIPCamera(node); + if (camera) + { + CamManager::Instance().Add(camera); + + AddInput(camera->get_input()); + AddOutput(camera->get_output()); + } + } + else if (node->ValueStr() == "calaos:avr") + { + Output *o = IOFactory::CreateOutput(node); + if (o) + { + IOAVReceiver *receiver = dynamic_cast(o); + if (receiver) + { + AddInput(receiver); + AddOutput(receiver); + } + } + } + } + + return true; +} + +bool Room::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *room_node = new TiXmlElement("calaos:room"); + room_node->SetAttribute("name", name); + room_node->SetAttribute("type", type); + room_node->SetAttribute("hits", to_string(hits)); + node->LinkEndChild(room_node); + + for (int i = 0;i < get_size_in();i++) + { + Input *input = get_input(i); + + if (input->get_param("type") == "WIDigital" || input->get_param("type") == "WIDigitalBP" || + input->get_param("type") == "WIDigitalTriple" || input->get_param("type") == "WITemp" || + input->get_param("type") == "scenario" || input->get_param("type") == "WIDigitalBP" || + input->get_param("type") == "InputTime" || input->get_param("type") == "InputTimer" || + input->get_param("type") == "InternalBool" || + input->get_param("type") == "InternalInt" || + input->get_param("type") == "InternalString" || + input->get_param("type") == "InPlageHoraire" || + input->get_param("type") == "WIAnalog") + { + input->SaveToXml(room_node); + } + } + + for (int i = 0;i < get_size_out();i++) + { + Output *output = get_output(i); + + if (output->get_param("type") == "WODigital" || output->get_param("type") == "OutputFake" || + output->get_param("type") == "WONeon" || output->get_param("type") == "WOVolet" || + output->get_param("type") == "X10Output" || output->get_param("type") == "WODali" || + output->get_param("type") == "WODaliRVB" || output->get_param("type") == "WOVoletSmart" || + output->get_param("type") == "WOAnalog" || output->get_param("type") == "AVReceiver") + { + output->SaveToXml(room_node); + } + + AudioOutput *audio_output = dynamic_cast(output); + if (audio_output) + { + audio_output->get_player()->SaveToXml(room_node); + } + + CamOutput *camera_output = dynamic_cast(output); + if (camera_output) + { + camera_output->get_cam()->SaveToXml(room_node); + } + } + + return true; +} diff --git a/src/bin/calaos_server/Room.h b/src/bin/calaos_server/Room.h new file mode 100644 index 00000000..ca550a58 --- /dev/null +++ b/src/bin/calaos_server/Room.h @@ -0,0 +1,77 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_ROOM_H +#define S_ROOM_H + +#include +#include +#include + +using namespace std; + +namespace Calaos +{ + +class Room +{ + protected: + string name; + string type; + int hits; + + vector inputs; + vector outputs; + + public: + Room(string _name, string _type, int _hits = 0); + ~Room(); + + string &get_name() { return name; } + string &get_type() { return type; } + + void set_name(string &s); + void set_type(string &s); + + int get_hits() { return hits; } + + void set_hits(int h); + + void AddInput(Input *p); + void RemoveInput(int i, bool del = true); + void AddOutput(Output *p); + void RemoveOutput(int i, bool del = true); + + void RemoveInputFromRoom(Input *in); + void RemoveOutputFromRoom(Output *out); + + Input *get_input(int i) { return inputs[i]; } + Output *get_output(int i) { return outputs[i]; } + + int get_size_in() { return inputs.size(); } + int get_size_out() { return outputs.size(); } + + + bool LoadFromXml(TiXmlElement *node); + bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/Rule.cpp b/src/bin/calaos_server/Rule.cpp new file mode 100644 index 00000000..d8374693 --- /dev/null +++ b/src/bin/calaos_server/Rule.cpp @@ -0,0 +1,177 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include + +using namespace Calaos; + +Rule::Rule(string type, string name): + auto_sc_mark(false) +{ + params.Add("type", type); + params.Add("name", name); + + Utils::logger("rule") << Priority::DEBUG << "Rule::Rule(" + << type << "," << name << "): Ok" << log4cpp::eol; +} + +Rule::~Rule() +{ + for (int i = 0;i < conds.size();i++) + delete conds[i]; + + for (int i = 0;i < actions.size();i++) + delete actions[i]; + + Utils::logger("rule") << Priority::DEBUG << "Rule::~Rule(): Ok" << log4cpp::eol; +} + +void Rule::AddCondition(Condition *cond) +{ + conds.push_back(cond); + + Utils::logger("rule") << Priority::DEBUG << "Rule::AddCondition(): Ok" << log4cpp::eol; +} + +void Rule::AddAction(Action *act) +{ + actions.push_back(act); + + Utils::logger("rule") << Priority::DEBUG << "Rule::AddAction(): Ok" << log4cpp::eol; +} + +bool Rule::Execute() +{ + bool ret; + bool cond = true; + bool action = true; + + Utils::logger("rule") << Priority::DEBUG << "Rule(" << get_param("type") << "," << get_param("name") << "): Trying execution..." << log4cpp::eol; + + for (int i = 0;i < conds.size();i++) + if (!conds[i]->Evaluate()) cond = false; + + //Actions are executed only if all conditions are true + if (cond) + { + Utils::logger("rule") << Priority::INFO << "Rule(" << get_param("type") << "," << get_param("name") + << "): Starting execution (" << actions.size() << " actions)" << log4cpp::eol; + + for (int i = 0;i < actions.size();i++) + if (!actions[i]->Execute()) action = false; + + Utils::logger("rule") << Priority::INFO << "Rule(" << get_param("type") << "," << get_param("name") + << "): Execution done." << log4cpp::eol; + } + else + { + return false; + } + + if (cond && action) + ret = true; + else + ret = false; + + if (ret) + Utils::logger("rule") << Priority::DEBUG << "Rule::Execute(): Ok" << log4cpp::eol; + else if (cond) + Utils::logger("rule") << Priority::WARN << "Rule::Execute(): Failed !" << log4cpp::eol; + + return ret; +} + +void Rule::RemoveCondition(int pos) +{ + vector::iterator iter = conds.begin(); + for (int i = 0;i < pos;iter++, i++) ; + conds.erase(iter); + + Utils::logger("rule") << Priority::DEBUG << "Rule::RemoveCondition(): Ok" << log4cpp::eol; +} + +void Rule::RemoveAction(int pos) +{ + vector::iterator iter = actions.begin(); + for (int i = 0;i < pos;iter++, i++) ; + actions.erase(iter); + + Utils::logger("rule") << Priority::DEBUG << "Rule::RemoveAction(): Ok" << log4cpp::eol; +} + +bool Rule::LoadFromXml(TiXmlElement *node) +{ + TiXmlAttribute *attr = node->ToElement()->FirstAttribute(); + + for (; attr; attr = attr->Next()) + { + if (string(attr->Name()) != "name" && string(attr->Name()) != "type") + params.Add(attr->Name(), attr->ValueStr()); + } + + TiXmlElement *cnode = node->FirstChildElement(); + + for (; cnode; cnode = cnode->NextSiblingElement()) + { + if (cnode->ValueStr() == "calaos:condition") + { + Condition *cond = RulesFactory::CreateCondition(cnode); + if (cond) + AddCondition(cond); + } + else if (cnode->ValueStr() == "calaos:action") + { + Action *action = RulesFactory::CreateAction(cnode); + if (action) + AddAction(action); + } + } + + return true; +} + +bool Rule::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *rule_node = new TiXmlElement("calaos:rule"); + + for (int i = 0;i < params.size();i++) + { + string key, value; + params.get_item(i, key, value); + rule_node->SetAttribute(key, value); + } + + node->LinkEndChild(rule_node); + + for (int i = 0;i < conds.size();i++) + { + Condition *cond = conds[i]; + cond->SaveToXml(rule_node); + } + + for (int i = 0;i < actions.size();i++) + { + Action *action = actions[i]; + action->SaveToXml(rule_node); + } + + return true; +} diff --git a/src/bin/calaos_server/Rule.h b/src/bin/calaos_server/Rule.h new file mode 100644 index 00000000..8f0a3f69 --- /dev/null +++ b/src/bin/calaos_server/Rule.h @@ -0,0 +1,74 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_RULE_H +#define S_RULE_H + +#include +#include +#include +#include + +using namespace std; + +namespace Calaos +{ + +class Rule +{ + protected: + vector conds; + vector actions; + + Params params; + + bool auto_sc_mark; //true if rule is used by an auto_scenario + + public: + Rule(string _type, string _name); + ~Rule(); + + void AddCondition(Condition *p); + void AddAction(Action *p); + bool Execute(); + void RemoveCondition(int i); + void RemoveAction(int i); + + Condition *get_condition(int i) { return conds[i]; } + Action *get_action(int i) { return actions[i]; } + + int get_size_conds() { return conds.size(); } + int get_size_actions() { return actions.size(); } + + string get_type() { return params["type"]; } + string get_name() { return params["name"]; } + string get_param(string p) { return params[p]; } + void set_param(string p, string v) { params.Add(p, v); } + bool param_exists(string p) { return params.Exists(p); } + + bool isAutoScenario() { return auto_sc_mark; } + void setAutoScenario(bool m) { auto_sc_mark = m; } + + virtual bool LoadFromXml(TiXmlElement *node); + virtual bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/Rules/Action.cpp b/src/bin/calaos_server/Rules/Action.cpp new file mode 100644 index 00000000..bdf24861 --- /dev/null +++ b/src/bin/calaos_server/Rules/Action.cpp @@ -0,0 +1,40 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +Action::Action(int type): action_type(type) +{ + Utils::logger("rule.action") << Priority::DEBUG << "Action::Action(): New action" << log4cpp::eol; +} + +Action::~Action() +{ + Utils::logger("rule.action") << Priority::DEBUG << "Action::~Action(): Ok" << log4cpp::eol; +} + +bool Action::Execute() +{ + Utils::logger("rule.action") << Priority::ERROR << "Action::Execute(): Can't execute base Action class !" << log4cpp::eol; + + return false; +} diff --git a/src/bin/calaos_server/Rules/Action.h b/src/bin/calaos_server/Rules/Action.h new file mode 100644 index 00000000..db0332dd --- /dev/null +++ b/src/bin/calaos_server/Rules/Action.h @@ -0,0 +1,54 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_ACTION_H +#define S_ACTION_H + +#include + +using namespace std; + +namespace Calaos +{ +//----------------------------------------------------------------------------- +// Base class for all actions +//----------------------------------------------------------------------------- + +enum { ACTION_UNKONWN = 0, ACTION_STD, ACTION_MAIL, ACTION_SCRIPT, ACTION_TOUCHSCREEN }; + +class Action +{ + protected: + int action_type; + + public: + Action(int type); + virtual ~Action(); + + virtual bool Execute(); + + int getType() { return action_type; } + + virtual bool LoadFromXml(TiXmlElement *node) { return true; } + virtual bool SaveToXml(TiXmlElement *node) { return true; } +}; + +} +#endif diff --git a/src/bin/calaos_server/Rules/ActionMail.cpp b/src/bin/calaos_server/Rules/ActionMail.cpp new file mode 100644 index 00000000..513b4a71 --- /dev/null +++ b/src/bin/calaos_server/Rules/ActionMail.cpp @@ -0,0 +1,170 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include + +using namespace Calaos; + +ActionMail::ActionMail(): Action(ACTION_MAIL) +{ + sigDownload.connect(sigc::mem_fun(*this, &ActionMail::IPCDownloadDone)); + + Utils::logger("rule.action.mail") << Priority::DEBUG << "ActionMail::ActionMail(): New Mail action" << log4cpp::eol; +} + +ActionMail::~ActionMail() +{ + Utils::logger("rule.action.mail") << Priority::DEBUG << "ActionMail::~ActionMail(): Ok" << log4cpp::eol; +} + +bool ActionMail::Execute() +{ + IPCam *camera = NULL; + + if (mail_attachment != "") + { + Input *in = ListeRoom::Instance().get_input(mail_attachment); + Output *out = NULL; + if (!in) out = ListeRoom::Instance().get_output(mail_attachment); + + if (in) + { + CamInput *cin = reinterpret_cast(in); + if (cin) camera = cin->get_cam(); + } + if (out) + { + CamOutput *cout = reinterpret_cast(out); + if (cout) camera = cout->get_cam(); + } + } + + MailMessage *msg = new MailMessage(); + + msg->setSender(mail_sender); + msg->setSubject(mail_subject); + + vector recips; + split(mail_recipients, recips, ","); + for (int i = 0;i < recips.size();i++) + msg->addRecipient(recips[i]); + + msg->setBodyText(mail_message); + + if (camera) + { + Utils::logger("rule.action.mail") << Priority::INFO << "ActionMail::Execute(): Need to download camera (" + << camera->get_param("name") + << ") attachment" << log4cpp::eol; + + string tmpFile; + int cpt = 0; + + //Get a temporary filename + do + { + tmpFile = "/tmp/calaos_mail_attachment_"; + tmpFile += to_string(cpt); + cpt++; + } + while (ecore_file_exists(tmpFile.c_str())); + + /* Autodestroy file downloader. Will send an ipc when done */ + FileDownloader* downloader = new FileDownloader(camera->get_picture(), tmpFile, true); + IPC::Instance().AddHandler("downloader::" + to_string(downloader), "*", + sigDownload, msg); + downloader->Start(); + } + else + { + SendMail::Instance().SendMessage(msg); + + Utils::logger("rule.action.mail") << Priority::INFO << "ActionMail::Execute(): Ok, mail is in queue" << log4cpp::eol; + } + + return true; +} + +void ActionMail::IPCDownloadDone(string source, string signal, void *listener_data, void *sender_data) +{ + if(signal == "done") + { + MailMessage *msg = reinterpret_cast(listener_data); + if (msg) + { + string file = *(reinterpret_cast(sender_data)); + msg->addAttachment(file, "camera.jpg", "Camera", "image/jpeg"); + + SendMail::Instance().SendMessage(msg); + } + } + else if (signal == "failed" || signal == "aborted") + { + MailMessage *msg = reinterpret_cast(listener_data); + if (msg) + { + SendMail::Instance().SendMessage(msg); + } + } +} + +bool ActionMail::LoadFromXml(TiXmlElement *pnode) +{ + TiXmlElement *mail_node = pnode->FirstChildElement("calaos:mail"); + if (!mail_node) return false; + + if (mail_node->Attribute("sender")) mail_sender = mail_node->Attribute("sender"); + if (mail_node->Attribute("recipients")) mail_recipients = mail_node->Attribute("recipients"); + if (mail_node->Attribute("subject")) mail_subject = mail_node->Attribute("subject"); + if (mail_node->Attribute("attachment")) mail_attachment = mail_node->Attribute("attachment"); + + //remove spaces + replace_str(mail_recipients, " ", ""); + + TiXmlText *tnode = dynamic_cast(mail_node->FirstChild()); + + if (tnode) + mail_message = tnode->ValueStr(); + + return true; +} + +bool ActionMail::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *action_node = new TiXmlElement("calaos:action"); + action_node->SetAttribute("type", "mail"); + node->LinkEndChild(action_node); + + TiXmlElement *mail_node = new TiXmlElement("calaos:mail"); + mail_node->SetAttribute("sender", mail_sender); + mail_node->SetAttribute("recipients", mail_recipients); + mail_node->SetAttribute("subject", mail_subject); + mail_node->SetAttribute("attachment", mail_attachment); + action_node->LinkEndChild(mail_node); + + TiXmlText *txt_node = new TiXmlText(mail_message); + txt_node->SetCDATA(true); + mail_node->LinkEndChild(txt_node); + + return true; +} diff --git a/src/bin/calaos_server/Rules/ActionMail.h b/src/bin/calaos_server/Rules/ActionMail.h new file mode 100644 index 00000000..17225b1f --- /dev/null +++ b/src/bin/calaos_server/Rules/ActionMail.h @@ -0,0 +1,55 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_ACTIONMAIL_H +#define S_ACTIONMAIL_H + +#include +#include +#include + +namespace Calaos +{ + +class ActionMail: public Action +{ + private: + string mail_sender; + string mail_recipients; + string mail_subject; + string mail_attachment; + string mail_message; + + sigc::signal sigDownload; + + void IPCDownloadDone(string source, string signal, void* listener_data, void* sender_data); + + public: + ActionMail(); + ~ActionMail(); + + bool Execute(); + + bool LoadFromXml(TiXmlElement *node); + bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/Rules/ActionScript.cpp b/src/bin/calaos_server/Rules/ActionScript.cpp new file mode 100644 index 00000000..d612050b --- /dev/null +++ b/src/bin/calaos_server/Rules/ActionScript.cpp @@ -0,0 +1,74 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include + +using namespace Calaos; + +ActionScript::ActionScript(): Action(ACTION_SCRIPT) +{ + Utils::logger("rule.action.script") << Priority::DEBUG << "ActionScript::ActionScript(): New Script action" << log4cpp::eol; +} + +ActionScript::~ActionScript() +{ + Utils::logger("rule.action.script") << Priority::DEBUG << "ActionScript::~ActionScript(): Ok" << log4cpp::eol; +} + +bool ActionScript::Execute() +{ + return ScriptManager::Instance().ExecuteScript(script); +} + +bool ActionScript::LoadFromXml(TiXmlElement *pnode) +{ + TiXmlElement *sc_node = pnode->FirstChildElement("calaos:script"); + if (!sc_node) return false; + + string type = ""; + if (sc_node->Attribute("type")) + type = sc_node->Attribute("type"); + if (type == "lua") + { + TiXmlText *tnode = dynamic_cast(sc_node->FirstChild()); + + if (tnode) + script = tnode->ValueStr(); + } + + return true; +} + +bool ActionScript::SaveToXml(TiXmlElement *node) +{ + TiXmlElement *action_node = new TiXmlElement("calaos:action"); + action_node->SetAttribute("type", "script"); + node->LinkEndChild(action_node); + + TiXmlElement *sc_node = new TiXmlElement("calaos:script"); + sc_node->SetAttribute("type", "lua"); + action_node->LinkEndChild(sc_node); + + TiXmlText *txt_node = new TiXmlText(script); + txt_node->SetCDATA(true); + sc_node->LinkEndChild(txt_node); + + return true; +} diff --git a/src/bin/calaos_server/Rules/ActionScript.h b/src/bin/calaos_server/Rules/ActionScript.h new file mode 100644 index 00000000..804b3725 --- /dev/null +++ b/src/bin/calaos_server/Rules/ActionScript.h @@ -0,0 +1,47 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#ifndef S_ACTIONSCRIPT_H +#define S_ACTIONSCRIPT_H + +#include +#include +#include + +namespace Calaos +{ + +class ActionScript: public Action +{ + private: + string script; + + public: + ActionScript(); + ~ActionScript(); + + bool Execute(); + + bool LoadFromXml(TiXmlElement *node); + bool SaveToXml(TiXmlElement *node); +}; + +} +#endif diff --git a/src/bin/calaos_server/Rules/ActionStd.cpp b/src/bin/calaos_server/Rules/ActionStd.cpp new file mode 100644 index 00000000..4e209696 --- /dev/null +++ b/src/bin/calaos_server/Rules/ActionStd.cpp @@ -0,0 +1,269 @@ +/****************************************************************************** +** Copyright (c) 2007-2008, Calaos. All Rights Reserved. +** +** This file is part of Calaos Home. +** +** Calaos Home is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. +** +** Calaos Home is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Foobar; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +******************************************************************************/ +#include +#include +#include +#include +#include + +using namespace Calaos; + +ActionStd::~ActionStd() +{ + Utils::logger("rule.action.standard") << Priority::DEBUG << "ActionStd::~ActionStd(): Ok" << log4cpp::eol; +} + +void ActionStd::Add(Output *out) +{ + outputs.push_back(out); + + Utils::logger("rule.action.standard") << Priority::DEBUG << "ActionStd::Add(): Output(" << out->get_param("id") << ") added" << log4cpp::eol; +} + +bool ActionStd::Execute() +{ + std::string tmp; + bool ret = true; + std::string sval; + bool bval; + double dval; + + for (int i = 0;i < outputs.size();i++) + { + bool ovar = false; + switch (outputs[i]->get_type()) + { + case TBOOL: + { + if (params_var[outputs[i]->get_param("id")] != "") + { + std::string var_id = params_var[outputs[i]->get_param("id")]; + Output *out = ListeRoom::Instance().get_output(var_id); + if (out && out->get_type() == TBOOL) + { + bval = out->get_value_bool(); + ovar = true; + } + } + + if (ovar) + { + if (!outputs[i]->set_value(bval)) ret = false; + } + else if (params[outputs[i]->get_param("id")] == "true") + { + if (!outputs[i]->set_value(true)) ret = false; + } + else if (params[outputs[i]->get_param("id")] == "false") + { + if (!outputs[i]->set_value(false)) ret = false; + } + else if (params[outputs[i]->get_param("id")] == "toggle") + { + if (outputs[i]->get_value_bool()) + { + if (!outputs[i]->set_value(false)) ret = false; + } + else + { + if (!outputs[i]->set_value(true)) ret = false; + } + } + else if (params[outputs[i]->get_param("id")].compare(0, 8, "impulse ") == 0) + { + tmp = params[outputs[i]->get_param("id")]; + tmp.erase(0, 8); + WODigital* odg = dynamic_cast(outputs[i]); + if (odg) + { + // classic impulse, WODigital goes false after

    i-<}GAN14zj3t! z!=J8rLo8`mE-Is0b-nFJHeaM7l*`8LT_Dd_E*=1*O?@xlj7U1n3q<3vrhQPNykwmh z7(6ZI|KWCC)rem}Fuj5YiY`vT1Sn4Q4yw9Quj#23*oU0#z*_qu3N5^P=#gI0AwRT2V6q2Y9XIL0MjA@Mxw z6B7ZrWfH9oA?Ljt>@K+;_GT4JGuGju0;I}hsZP>Mx^b3oSvP?~h$!iZ62=RcwqW{MH-RLvd`gH@`m{<%)(aL@(NY zBwXdv#Qgzom`E6^)SSYco2&z;5BmH2-%;Yv(Z=dwa}<4 zQpUQuxurTiHYNbEEB|%+eihM^My{HcMq8CXj;pQ(QfT2rrX+Li`vuoey>n@vbMpfXjAPR~nUjeBZEeT3OhH%0)X+z? zylNU+qi1lCsF_*jRV}T#X=$>6G1EW;JHm-Ndg8IhE+xK=rWRjs-Y}6RCyA2Q2Fo{> zP65Ve&NjpJK$b-J+wqq!WyaO7%h3&As0^#8b{s`KAC`l$6_}`a+L>JYkt@j08DkT* z#C8L0KjKB-162+5$w1o4tU^LDNvt|z0BK+f$7~F@oxO`}U^e>dAQj2X3F6Q!ZQ|5E zoyg1Fo^hme?fc;W-!!G9lw>SN(sb_e@o~qJN3Bo0CAz|;YEpdv4`XsYP!qzGLvdHY z?C4{k83d2r4qV8Pj>bow{{|aXPZ8*Jx{LL9N!WU^wvlc*nzM4pMl8@p@w$=noY*Fg zN)fnoo2xmXO`@i8%WB%|LseqyP54wxNDFjRil43#Jemqh7CxeL)t&Xu%5XetCV>Y| z%Z^;W;HM@^-d4wJZ*^00fonE);H#1az8N8=kFKAACDlt5(F+SO@N9TZ(Ba(yzv*m= zdd&w^$8JWcWoc%WOuC?f6Mk;O#?@0VplA;R8t}g$xv5TG=A4g+e)1|(&NsCV z4vow@OqwqwYcz(;K5MH92jVpTqRE^fqQlMHl-A6p8sMRe*e1YN)OU~|K8MtmNos;R02zjj7dgAI@7g{ghNn;*Y^{aT~u($mgzsDal`9$r8!HECYc zxl8V=5*tyqr8)-E2kg_5B`lTBrmN2e(3T=g!12Q1l4PAm64>BKS57J=@zFO4eL^XZ zB^nwm=!uey6h65sjGFvq4R*4z$v~^?9Url+^qzy%)CaJ&kGZ{eQ5!kVa)g(lVX)7k zvZnDQzuzE%U9-oT*CVS757Mo?dU+YqP4;O-_9!shdfHuNA+Mo7l{Q9atlW1h>XVI@ zp1&~{+buI%mOGuTD?k%ra%UorAq z@3%ULDG#6PlgJNX_!a^?T;L>9BMqes`yPMZA%D=}!pXu`jpBJFxk)r@7w}l6?V>zk1x{k5k#u0nX z9MDX!i&}oK!`)mDh0;z{ z(~<6dlB7?2C}Os`)|e%;sr-2=fw`u-0e4e_T#wR!mx?bb@g3dW;RO|yev{&(3;X}( zu~dYN?xX{U4I)<*)}1(+VrFJhDk2{-k>K$~xf&TiAvs8HBlb*!&CUD?nObf-m^xfh zO6lmlR<74BB_u`**|ReX3`Vp)E~A;($dq(&t9$v(;R~4frB+*kAR~qmA6g@L7kGF%be$F z^veO8E+MEgFf&Y~i*bfo(M3xx>03>*;EwN2lQ~mAhDxf&hzws$j5@!wPGwCRNR?n= zz@1EcY2P}P#SUR!nfhv5(0W?C79@{AvvPd>u~|8Q68VS6Y~$n8khDpz;VNw?!(pyG zWb7{CkUY-rlE8fVRTRorQ|K&PR^G%p;{6xNTcyvUVwUSxFK*IQHPis$QLS9!p<`m| zg8;HBb_t3t?2^Fd=B}@K|I1tcXSXh{>~r(WI#<15#M!^iCzxr1ee0UhW8>G5)MZNd zsd>lk`swX2z3?P%(vM1UrFAOa2;%i}J;23R6O6Kn!*>}sPYH>E{^33CY!21f=>&1H za@P?Jmp9ht%36d%L@xeRf(1O65&pMy`+kY+yLP;>;*X`l4nF0ve5_UYNu$uy>(375 zIJ+(7tqr4dVJUWpWUr=+Lzcg-v_zqTFtuohK9yCdJnhh@x=0U88`$Q|2s@5 z<=*@_tyAG5pBcH64lu3S`<)|boF%g4chk%*X+&I5o>@#bk!Bw#la!*x^X|OOKaiDauZuDY~&$Uh4o)_d&-$Shr-CaQFfqejITS5eB{8;xvtxvY%)ks!zZ%11oY~&I`Q&8pLz^7*c!oz&*%PDx)lk%hWG}))0&4d|_~n0(m4;dQ zU`U27LaqOtv79zXX)b{hnU7;E3}PN^iEIbTqboMWI27fMC>YH^g;1|*mjbWS~=T-d+SV4xWmC?AQug9&`eUZ`c zCT5K*-ZryJry#BTX##n#?+53F*U<;q*|RS#E_PsI+Fvs4{vnrThTaAp8T@ zU}(@Wd>~*GR`yGGkoCcTcl~jx)??Gz3zsU&3BC+mM(yco$;*xKOWZqd_KtH-#A0_5 zMz=Q2S8B&i5OM}udK@WZ5NleO9?l9SWN$Fu$2o(tZh(kKSfxk zW%5%_H46qsrBz22#g72Eu(ZUmtCLJe$gPA`z%G7mk<|;qkg6$$DlGhp(-lJc`y zqKZ^tB4OjDRF`Kmt~L3AnXpspXuBJiKNzA76T(t)nh{!J@$8;=&9cs7EV}F;mS<<3 zd0+{TKAhd$*?N0>d)V5p&rfcTnQzup_Cl19U}Z*kZ9HSmJG!8|%#ON~3znqcz?$Z^ zj{ANLK<*kO1dtux&8SV|;A!_q2}^cGEgZCDe70OE3ZG*ko*TJDuk`D=ZMD&A*4QrDUgw|VaC~;<{m` zL=!7Mkh>^4`6DaWZQrc$p?~C8ft)%V><|=`F77h!&UbQ)>v&A1c5ML)Pxx$kGu&SX zXfP$PY_n2sUSJy$ZQ%b&fy-~4rGsNb9ziWQN zCz0P^w21M21AepdW6{hic+)|*Ncv}@(9%ey5tsB`f3;7$yPCRM%XKbe%fWS22PWd; zsoH-GuY2O9bVWqFs%wJ9u{UuG6^iWWrwpVyh9@{;>Rnb?x74pOHMPIJnlhvZF6qbq z_uJva3oAiv7mJ~MMw4ZrGgw@}*)c89FN7R*+JermzU&J2+!%P?k^OM?(AC?j9qO3- zx}i!vozo|nJ|*OoyTC(9VQjD=Qe0}I)zNJr3plZs?Gk}`qr^HwWuee}`eGsN2oEIm z-4|}vxR6NC{KN$r-135JKi{dNgeQS4d&@M=%)ZdU-bF1NmM`Zo!G@NtH2E=6kT{Vg z=BCV{X-Hf^Rr*z_)8tgIKt>|`^J7lU^gc+3xQt8{&X?Z_$}+v9lf_yLObdPE=$wGdc&SfC)*J~hpo^i@-RDC0&)faP z1Fx?#lAzGkt;d~b9Kx}m<7HF}OO0PHrtCILYNDh4xccb^(wD%EU0zf|ZmHX5^dqd= zhPNy~DU>Zt*MqUt*laCFB+1y)Lq0&lX>3%?-zEmcr}g)+0p`tN>NXUQ3O^U=y1yjB zc1<$oEZb+1-no@SkX$yh$nT7tqJf3uhkdVJLD4r|(%8OMsi0l9`CqYyn3x!nI11)z zjO)l4pHO#ine_v41as>4T-{Sy32Du2r=OgA8s7N}bb2=9yYo#JD|e*ZOLtmDl9F1rHfY*?o#ypx@Rha5msQT?46wngHTIan$cqL0 zqi-I$Q~*Vq-+#^z!JNDBJ^; z=ztZ@-B)z26kDG3H2m!C5WAJH=p@ z`$i-M!>YBfAq3?)Srm-Yy0&*wvZ84US#UWj*G_lg%#}C@7&+hTwk1@gJenU@f4Tu^ zyK}t1Oi>s;JLBgXa}$>QD>m_Qa572wERNnI*Wp!?Vj=&@FC*;@RmIw(65pQMd*<%` z;R)5}#=)UiI5;%6|MvnsOdEw@%=NsF+AISMQ~whd6;%?Kv#~U)9bKOwAR)E%fwf}a)P~Na(VSu+cOn(kMG%W0>GAwAiI0!rx5Kr!!&60fdrnK}0c*#=z?eEP>k*s93X(&maC~|3 zrR(UQU%E2zXCovzgNXo38raDQ<%Qh|e+fAGYl>dOLsd0hUVe|ad&&G?c0lMA0IBu; zZ%`fv(f$aPc+{C%x$6?PwjG`Ip~ zh}Is`D1#d2W^FzW3RDqaVmn(jtdoUm$r}6p(yxqek}`Q?`I#+)JZql&_2ioMLmmop ze!mouMP$H>JY77g{)gP>E_YG0(#TiJ(w?n>stw|@y7gN!)3c$dK`05doz8I&p+fme z(2oAJM>8|#JP1C5ga2oD@=H!QS}F{^)Vv&o!DGHZihF3j=zh2}vc73l@Gc5Ike;5A zN)rhP6ShF`!`_C5W`Xp^Rkd70ll|INv$ve_{Fl!C5Uq~g|Md_@sl2IPEV!2zQUO-3*_Z=>ASstIDZm$ zd)V1*VOB2S988mQ{I@v>t!u&J%lXaFovz!x(V|`+2cX(+YzvH|?nSW_Jf4|>>Jg*&S5tGtJF{?VhKyi;JZ75`SR;}@pZ-ef`{H}vV^=mbU&r?A%1MO((mC*;rD z;uco!1^xEg(vefI1q&6lb1Radhi_NzqxL=l`YtSkIzL$nmCWqV&(9>k3@~OSbM)KW z`0MKN_F|0FHSr73cO8EKTCmYaYrTn-5iESWkG6_wF~ zQ=Ql;92?osD+WZsD$7+!6s3lCVZ`07DeVeJlZzOQwt{EgPPz?si|Z5fqJ?}e#-X@+ zb)OZ}&G!@0(n%@P@smm3Inz&0d_BTPvYKQPsGUrm{cR-|>CgUp4X=o$Irc)i<<3@*JwOE4IWbzba|Nmwk9 zUkJU)Nr%suVLdD@C$n}bp{H#aMDR!yh5RMz5F5WCp|E4^d+h;h(K`?IUWhINP^vYG zkf8jwllL`6 zpeEXih}dptK)N$b*Psfg_ocBbK9sqBTxZUCf%6-Vq|6f{Wly`PrN(x;B0AX8E+j0B zjE%#PXnu+2v)k{lrbh*tY2fes%}bG()_l3pSme3yi!WFbw9fwXTzNX@*k0TREi7K;WM|7HCMIfQgBY^= zJpykg{3wd~w)rsZ0uNamy6@U!gbG=xf&WSbmucGBM{B_%L{rP>^rafT8=z^=5t#Su ze*m;X0wT+9UZ*;QpO-oprmdACGXn}yzYt3f{n_tVS4a5;1=a{8D5(^P=jy%vxCO^V z+u77gNHskMwa5)K-+2wh4AQEU6jKHKk;|!%WiidQQuxA1YfoGler@pl>SSAA)OKds zHNG@eTyKPoPQ2uB?e$-aHx>@Cg1LhToR#rQ#7{>lyFj~`0wW!@e#bY5+*W~`4(9SS z+2l3TjQFi;gMu!e)Dc@;;kXk3n$R_FTD>pL#|b zxEIW)DD%iHt+DM}1SKVbpcGR}1fJ9~@K1*`+`xfMn&mxVo0dEN%Jr61z;>E{SrV`8 zf8=bVoL$>Q-4PX$F>c#rhJp0MkCW2?vN6Z1%0OU$2Z0yKVdMPXE~-k38ZIl(YUH6&P}5I z6w1eG%y-tnfXU=MT$Apj7@^x?5}}TxAOBbW=I6oN-GnUIVuTmq!Y_7dOdHMK^w%X#<6lW(ZZ}a`8A_-!ZP*JJxo`Tnn(r^`xEqJpUVG4kx`03|y7ZG2!b~-iQqAwg9-8KA$^3 zP?}GEIuC!A60+&takOW5CTm&F_arJ+Tzlu+eA1{z&z~{502{J$b3sCH{VJA3S>vkL zFH<*(lZ&4}#<%%CaSIr6D(ugqhwEzP@}&A@8Rc@?yEuYYs1;7qQr-_R#YrZV0v|5X zDG$|O3WNR*VUafyJI2CCU*9|6wuCZuU?;si+w5t5S{QtA)n)F{y2O7v5_d{@as%5*M z`TN$633#aE#y4LY+m?)eFNaJFOU&y}?S+I&Cx4{6`>9jHK5uG!?-()_Bk2t-sEx!_ zrU;;nk?1Ju)i!wqh7CaYdc)r373GwdT#=f<<2)kK}V-9rTm zOa3c&QcFIQsO>=c^TD!|*M)%xs!bx|d1We7GGT9&W#kRpI3|S#CqA8W6|xb9$n5J# zN|`+BIhR`Qmt8rxLUgWeu^KfXJ*-KWO1b^*C?`C`)`8CpnT7qYUl#^ldV@|knz?CS z>7t5H@;$!9h_dXGg{xLI6mxseGVEL4c!s=Z*d?Hue`m7C zyA)YIQ`+bk|F8cAqw9#Xd(!sRdK7a&ciYWD`;BIL$G^Qs)P0^hbLiRU(`{7kw}t(K z2jF)z!bB?2yFccozmXyIx32pEj*VMs($8%f--@;6RM!#naevFFR(|nra%TWfK)X z>qsIA==9PwV1LIh6<&f|TeqcU3+2t?RiqPEzyP|1<@oPu1p{v*BSg`cT!G)Nl zh$T2pFQ2{Rdc6@4dV=Bqg~GA}cIeF?*GD+md&$lxX=|3IpKd)YhhHb2_w}vt3vKH4 zFpAeSKtvp^3eoOwK#{Gz8!@bSX?Hd7xs9K5qccST0P1&R|K#w1hx?^|kl`M9%f(rdTC!erSQi*Rbs(1AP9 z!yX!R)62F4;v~k)~<^l7lh=}%g8AKRDj<%ZG@J7ulS&4aOeThXoF|4U{Dmu~*- z-g(enH}UFy8x9~OPD)zZtoz@*tNKCfb|Hne|B|l)*6BM%5xO?gGg8~3m|M{#Wva0* ziLkS@$%gs0dcP?#gqLLgI1Nb}$0|cjygLK+Ssa;sAr6&L@-hbGwMOfdNh?C=xwFyI zh@U^hSkw0}hOYXR5?%nze?bM3cOHyvd;ZR^-$3gBWB=^f$aBzk>VAB8!NdcGPoGlA zo&D|(*+k3K4DdR@z?Wy%k%zy^^{C=U0t0OC)ahYxBf#L#iJIiJ2QE1 zZtmFJv-A7_n;?g@S<}Jtr@MN=>M75&?!s2eU99Qwp!O|hn73pR7#VEO?2U`Ch=^(~ z=SE=9^}Hx@OuJCp#(JAE!J_Vpp-&|F34E{kz?jk8bk_yyzlxM;+a!v7)P_3oH;GwyO0^GWd~3j;1!kFX0#@YzMpT<8ypkt{-tkz?0Vmzbk1}ofAxf z3$psOl{s3tr8FoFMMXLjTV@=59nwG}NtsYOdiphG=4*Wj78p&>&(Di>Uj%nwRAXC7 ziB70OOQD3)3#liI{tO?KS+EiEy*OCPFfuZ_2|wWqKY8#2IIVCgT&ee*s;9(zG%HUW zqJzk@-o*%i6tsK$?XX`~UfSrda}5aMa6I9)fB$bE05|D7P{bPlv));X=jntUDN|J8 z5t6$#E$rvW|33;?2y?Q&xVQ*5pcz_;uDN&C)qHxe0K0!I-y>j$ECE?iQw1WY1{Fa%9o(&Fli}6!K}( z-@(U(Zhr{vV3FWCHt=5*{!cg>|1aKcql#93g9lbLzlVOo1LD8;@o8$nt~9$#?f%v` zX(=HaMXiY7zEf0q`$=5*5uyF&zdnSM)Z>)Wk6V}Q1=DIgPx$@ge={hMR!*tCF*kdm zX?w!2o+az{hxfm*Nw3nr?7pHtd9BlYIXnKzK8DO|pM(DaZ+H@Z3>X$lY7; zSAF9}LDL9avuT`0~AN)SI__sGVqONc~9x#KjJf3TGdN?vFy8gqAsHyn{M<6`1 zzkfdb7IEqE*o(*>Zc@Fs(CoQ^rF`wXgK2CE*lM$KJfST#9d_X#o&(fPHGJRq-_7MX z^PO`z_UDH9YCBFAif$IS?|tm-(6@bwvD=RbflMGfRFm zmi~8oVq#*4vVMEczCl41&Dfkjo2|EdK;?AbZlZ()1S~Dg%v>DI{#m*}!p$E60HO({ z&WFpLY*>%n-8q(AJlx#e-4B0JxZ6ejLZND{TfA(jH6A3Fjvfg4iW!dLUX_(%A5p^5 MRMk~MD7}sRA4zQl{Qv*} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/garage/garage_big.png b/data/themes/default/images/rooms/garage/garage_big.png new file mode 100644 index 0000000000000000000000000000000000000000..a27b434f51b8d153c0fd48d0ff3012978f35a888 GIT binary patch literal 64575 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 WAI{3c#}+`q53gf*yl#Qy=DWv=c3 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/rooms/garage/garage_medium_bloom.png b/data/themes/default/images/rooms/garage/garage_medium_bloom.png new file mode 100644 index 0000000000000000000000000000000000000000..97e63c61b84a0b7776f798b5129b02bdd5383fed GIT binary patch literal 32668 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%0AZa3QFb#;0k}$&_afs1+n}hIv%vq!XY$)>c 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

  • 4~=c|$m30_N(=KXxgp?;!ytk7wTZ{*&g@ zw^0+T3!h~+H=`GXCev05;ipdowUEqw7bKJB>GTUYuw{bVeF8D#%^QlkQI-qmiU}8A zrmz1~ErFPeTNQJq7Y!bnu*KM*n$gzNV}f{D;DU*UB5NS(RdZy2_Ua<9@VvgLV;TOV z=fzxdL`}f>%BR>5(%F&?)2Q(p%QfL5O4%V4WhXdFudF3B?_#6y?$;^iyuLBG7R@ED z6{%z>y}-6Y8mp2GL$5UQ+R@+vA;*(sud_=FPk1suoS(T})zZ@P$a-#0L)|*RfVZ3_ zySHvF?8y6!Ohch6o#B&v?)d9Ban#2tkBYwe*s*wS&n{ip)~Og&%5GNAP>SF^#~Hp& zo~zHPaGGCXSSEjcmEiTU&b~2#X2mC`m`RHT+t*`bUHHygw}~m@PP1;fx%ym0`&~6fJ|w-IA2(nZYO0a%rK7BEomTc* zXCdmZU-{Szp;k46k?T55G^kpf$$P1>BdtauyR>Xx>-k%7%xw2v zq75$Baojxjd^_28rRm@tP$z+nWbElFQCN$-uuR?N15I z2e9&8UxruBQO(ixi9sZtP>_FaQ6gvzVmQhFf<9CA^Nbvt-lV1lAX3-9g!)l;hbL$# h$ox2C|4+MH$nx%d@2zyJNAd;$037D(P;VEK`7g+r&wc;^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0042.png b/data/themes/default/images/animations/bootsplash_logo/0042.png new file mode 100644 index 0000000000000000000000000000000000000000..3b44713d8aa49d07c6e3cb4ba7fc66a244f73388 GIT binary patch literal 1950 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0046.png b/data/themes/default/images/animations/bootsplash_logo/0046.png new file mode 100644 index 0000000000000000000000000000000000000000..23ea12be4c3649c788bc902d8647b1bef5cdf0ca GIT binary patch literal 1290 zcmaJ>e^Al~6#pWYlp#)6cm`oMQ`bauy2P58C+1HoO}#P{OOIJrnjV5b5Erv~Zn?}! zmKrTPw(v(+8X7Jf8{)P~&`<%3HA4ZXrVtDe+_(L^ZtsuxKKJgu&%Jx^KCkW&@c?|I z_eKB!;0f`usQ>^mf;bPh9`r>LQ566<%MxPuAEC7_JQto#OLBMl1HKX6Lk^4&yBU8B zc{zqK<8kfA9%zxO!r*p~?g9MGuYq zHMnGu!hav+f44DH6I+PfE8W#`w`3jEAEPS;eXh(cUrT1j=HHxRLtfwT?{fu!W`8Nf z2dHraAh1#Z7R`Z115Rkb$z2P$GoxLYfO90^?DL-zVixq;Zj_sUPmT~f+Wskz^jn5X zp=jCLnZg}!l2{x+_#bA$jIz(d6e<;uG(54jL87r3=E|`8PW5#CRXIPuKU*-MHoq*= z9wUv(fn>q8U@^$hz(IP5*`?WPsO+^EtoEJ3Z8n#C}KhD0LWUVJGQi(koknK!vc zX$}fN{JaWwWdzDm7|bL#cfmO_nym0QB!lsgXti5=x)wwsd-m*USf4qpT9j=lxe|6i1Dm7R66?f=_&Tz@O!53)JyE_p3DXN zo2rtiYR90=oOKc8!y2vJgEykAxbk7$zVlbvjbT!o-H~XXJ*yCuEv1@r!@Se8yslW3 zJee7RiE3)V;LlpmWS)@uEa}Z5m`&>oOw{T%hrMk+SXmPk2t|)*jKws2n1$z&6XSGwW*n2KTD`!Jz=#U?{zJ2Psh|e{3=<(jT78f z+>?l=n_fiKw6~tzH$NgZt5hnbUq=~@_IKXIrDAZM->;fBxlh{(MXSMMq(o0}$7XyI zI7|uj@fq`j7Ad5$i2QpY5{cYyJrUy)&pCZ{?b_Img=NQ|;(ENpw!FMt`{B`G&&a!P znyXm51O$IWd~SQ)2DDEg&kKa*G0ki;Rm#H&ZTS~2{5QN)qQtk-^yt&R_I>p6q zg#$c|xHx4Ce5lf9v$bVUYKFEbw@V=&E&K?qEzcpyKuQKQZmb7FAw~~eO4pT>lZNfj zvq&g*sMKsSr7|uASL~$qKI%KqD(Gl$kjyCk4lNROrm}_|`5gYrg-Vq+3w_!8;;oc` zw%+~-Y(5A2jcus;OHeQkR--O$!Gji?#`grK_H7;Q-OquBWKM+Oakv63=K3x#rhJ4- zPRb0br3X5pnYd8mT-U$Qr;ncYFy!39aWV96xo9wD8>q8V1|wU*>Y|pEd`!2jXhhq; z-Tn9$%u`FDQ2LUl%I%D`pVT^)dSGzyBQ~4emd#tLrevrSE&MX8nZo6AUDsK9PNv_l zrL%N{O{vsVNI)tsifDzcNP@g)g?VseK(5=nKgj=PhvMu|)17f*qmMJ?ZD9g|7~35~ G{`?@C7} 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0050.png b/data/themes/default/images/animations/bootsplash_logo/0050.png new file mode 100644 index 0000000000000000000000000000000000000000..ff43a974d741be4fdc8baff39d5dd14dc0f6e385 GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*Nub$(!gyf``LU*P_T%K^_Li9tS1&tfHrDrA?2|riwig~*G`<&;VIX#@} z`4_IgXZk*c31}pC5a6YGn?GW0*zH@NnLgI8wq+=}ShZJAUtiz4mQkk3iM@eA#EOAs z!39PIhE_fXMvW2%4u^%z4h&qf3`_wp7z7$Hl+>)ZWnhTU-+lMiukU?v>#wi2br$w} z!En%b`Q^8tKNr6>jLO{^b4_mHMgjFNSF^Ut@~~|^p0W39RqVNQ=l=cRzf%A9{qOiZ z-->2bonQwk zG~Ub!+tVjE8^cLJS8FWQ5$pD=Kcj!<`31&`+m|l~zZHyn`{m1)ZydcEB@HU?-oMZ8 zzmWC#JhcDnzv&7U>fs6M*INdM^UM+{EE&+@y2 zo-I|eUC5kLP+R-=__eL4PoFNTsfj6Ga&71C-M?$UChv@y_WASYb7Fg({Pj-%x^h0Q z@s`Un(*=9u){D+ePk$Z7$7O5zTI2PJ3BS`eue4=yotgf~w4`CdluA8lbU5y<3zqq) z35_JpR0|nkKnubm?f}s1lV+Svd-~+bl5Z01<%NY4AMsUk$tq0D(GFR^Ze3P?fdMcq zRT2ZebNpVs$=Q5!%d@%{Gi79DPtG}JG_7*k-eR1pgzeP-(x8Aon_?hJroiFSD zDCSG=yeg>qy>5T~hU1fN`=7GmpMD2V661LDb?&1M-KRhg7**HQtg&T^2c|-mqU!4C z>XtC+{^N7^E)raJL4C3(Fjn(Tr2c-k-T5}%ZvOP2HTy1~KUHgAbo>1OqTi~IuWjvr zQ8aUUkk|5d_6N0>UzV&sbN|{`BX;bW1Fz_V1$7JoQK5RSu}4Zk3O!x@T-G@yGywpn C(xTx2 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0051.png b/data/themes/default/images/animations/bootsplash_logo/0051.png new file mode 100644 index 0000000000000000000000000000000000000000..b89934712085f63793a0844d2c49ffa60ea51d47 GIT binary patch literal 904 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*N?mIve&k{QB5w{G7pWNwK^G@855ZEB&+g3&ZmZ zrFS<(t@Y|J{Q7I(`giZ%iS6HS#&dX0{sYZF`rCtd#2^1@UB0vTb9tWc<%)iF!9^EV zui8}p%cDr!`Q7n}w-cvS>eW3ZXnlhL`)P&`%g?55{!zNa=k~Ux#~&UF68lxQTi5o` z)f2N^W3OK=+No1kyE8s+Nss^8w@;rw?YVs9s>#`#eHD6&sSB@{)?VAZ^LftZn@i3t ze7!5lJt=M9_hn~nFa7>A<<69!7RCCXS9wLfV2E_l&^i|Qf`RkR_umh{ecSd$B0PU% z#F=l>3a#^ErhQ%cJg%{-%O~66`JaNGBiFVT+S%E8^%n@W&YM#@B{k(l?e^PKzI)c^ z3&uNl?wn|;esY&n>E5{Ma*09z+V})!7@a@t|AL`0^=|vVxb^&TUd8qG^__ugi!U$= zZQ!@vH>Gu7)Y?mL82{g0X?<|zgP?ep5}yO=>q#X)HP{P|1WA2i`kH6E2fFS+I3 zo+j7G%@zFO_S;-Bi1}XT lIaM=f&Fq)hlQVu%iyQopnIpVUICp|Ggr}>Y%Q~loCIHkialrrp literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0052.png b/data/themes/default/images/animations/bootsplash_logo/0052.png new file mode 100644 index 0000000000000000000000000000000000000000..39e576def100c109d744cd3998bc86a191650ec5 GIT binary patch literal 883 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*NELn`LHy=&|DI6#E$ z!t}$`cFY0URnSw&gDM)#oQ>WYl~;d2+h_ z-e{2d*nxxQ(l7TfY|D+Wj#Jndzm>fq_)2MPWo@nO7xn@kE?EYqfENq`4NmM03?fzx zEDJ6$DloM2F)(VBFmO05WOiV{s-)rmR(6I5|Enr1U!FgIKD*zr5=cG$^r$lv?6ul_A>cRH8n`)dRF;_0`6MD*G)xyPO@8ef9C z_FiV66fIk1-*e|d_C9BVj&YdLoXYUy*5k*?Zw1xzcg9?kOPn&Lbzj{2?0y5u$juqE zmYsS2IqUlL-~YumA8*`w_x}C=4@?Sk&1O%wJ-&C!lGb}BXZz=!tv!{OmlyO57&u!$ zuQk43ef*5=rN=csdHnqR_Lg1|%j2FcRnaYJ&`}Z*J^Uk3hJodQY*kU@wdMc5a9uGp zTFW^1Y}(`#HrBr{v~T2}J2_1@RaUa-{@b#x?h9_T&+F{JgBp}9-@kkbsb=ZJ9;y$P zSTwL~dgq)!Ygvlrx3GoAH}ba6K2!N(=A5~6PtFP4v@T%pu3f8a4+UzLG#q&M?p@G6 zg)`;d(144 zE#H#ux-0(plW89pKi|ITkHR`&Xw+%>KM7XeZl(0pZvOfHGTohfx8HvsJT=;ln3y;P zjEPM*^R{nwpRwm@QDk*X;31J;ReRUj9(rQx`}z9+CuK9zopr0ESR! AS^xk5 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0053.png b/data/themes/default/images/animations/bootsplash_logo/0053.png new file mode 100644 index 0000000000000000000000000000000000000000..62248db48559cd46fb9b78794ef747f7033d99e6 GIT binary patch literal 806 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*N$?hE&XXd)LrU+EIe_ zf#MSpk!cUvN~&41tg^KHo}3adIA~eZ9lP^^M9wM=PQ|2;lVpFN{qAYPky&rsTX`vJ z)_xJ7Y1lzSke8(W!uP*7e%s@)FMlh0L$L{ub7gJq+%L=b*VBd8)hKB#yGVaN|j7h3#P(!Pa}<|L%xepWR>hsV!0C`t|GeG7<7$`u9%1 zEpzU*Nq+J4+d$%W-uB0*PkZm&wQH577a~Cf) zUGRKgyw$<7-LmiBy<6iycftGLMa9L%+tR}pnxC^eWfgVeZ-K=XImTI!rdksdfCa%a z4$SlB&(H1;IQsW*?OQ>y#TRD2DX^GxruK#I&OLjkSZ?03i@$dB%`0+=fn2f*5vPA& zFrV!!e0q7^Cs}9|EjSte?)BGQGi@L2pS@eyMt6I0Wa6wTKMi=gZM9$SId}4`-Ip?x z$QRE)_5ZnYVr}1&JK?LZCY_%oz4jx_lM5~|Dl|B;H!yHPeT^b;aPWmSH08McJPx# literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0054.png b/data/themes/default/images/animations/bootsplash_logo/0054.png new file mode 100644 index 0000000000000000000000000000000000000000..f286f81dbab0121e6a709a565bf127d40da1e4b9 GIT binary patch literal 812 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*NQLiFVKQwjZuJle_z_ z-}dd>&wl+{dUB&!{{H*(zf{LLxhypIO@9An;*+qpJN?S$Kg`455#thtXTF8^H{O2h z)xSYvYud$axtrtGciYCl`yU^4tho5~u5~YWy=xKP=n^Vcb$grm|8w_(ckbW6-l%=w z`|iDm_dVNOe(uiXeb0-Fs%vU`PBg6FS;XGJz$MGT6jJ&0-0Y}p%jZ?GzLGIr%NV;h ztoy{CwA*jXswyfpY>&C_`0{zx1?_a%R7uk(c74e&1%Kqqxc|Pef5ZLv-u(u%waXbe z7F=LdXmElWs8NDN;DK);gJ?x%rKYWuV0n4@Qg;jK)^i7s6~>(TeIdK3v{bb?t+J|0 z3n+X3{CS|Pb}OI2noqSaLUrcFVdQ&MBb@0Ah$drvLx| literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0055.png b/data/themes/default/images/animations/bootsplash_logo/0055.png new file mode 100644 index 0000000000000000000000000000000000000000..735c5e7a903c560ce503107e8c21ab094e911432 GIT binary patch literal 734 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 C-Ht#2 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_002.png b/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_002.png new file mode 100644 index 0000000000000000000000000000000000000000..feaafdaacd3b530a920cfc0d1019e3d4ac98811c GIT binary patch literal 3039 zcmbtWiCsmlQ>v z(8_(%P(fkJn^dAQxS%3hV@im?7%C~E7rTGLe81oM&iS2hd%yR2p7(w4{Osyt;{f+w0ZXgKrVYEvv)A%p z)`lTdz>)!G@GrmFd3Jf%Ud~vBr8k;xqjDoYh+}6CX=%>*=WUHLw`1k^PbIJ!N2?}I z%_d-@9Wy+bO#S;0mEw1~FH&ITs?Ds zF|Q;iy)j@g<-1X+Qh1_;xOGer+j~h2{GIt{OxnJTeaM&X7Ge+cN*3FIl|S#zGic7$ zo6n04d^~c8YHX^;>t4%Ot)X~9F}+co@S5aX!+8i)+99zSe9csxtxzbGNl8hua3hVq zmp)rC?JQ6?4~p}t4W??La1AUbf9aThm;ogwXsmPrZ+sLt7%xPSX6Vqo`G|xeMu|f9 zlTC2DhlThEA=ombY~RDC}*XHqVbF}H%*x8Gj9=jP|AmJbI8#UQ`qjc_L(Q29!3|U{V_P*Z@C5JB}OzKJ3wL-x%b;J*tQ74}4>wwC2Q3 zlwO)itND@o_0C(jol_UHL`*5b{$TIpNW7s%mre%KpzESysPMRd6|ipGRl z=g9rR1p7zBS95$laY_{}vj-+F)9S)5horNAr8V6yeEd= zr-Gbrxy7GwY+sPv4B+pcqL@Lt(y)({@l_Q<<8CYVSyz}8)Y-(XWp zq0|d#9mAue%jSeeoU+Udk?Z(iig}h5dj^R@u`#DD0@4wk;mb_ILT&Qxw}#sTe2Ydd zEVUejo3YvKd!3!m1vOfKSam|jf=>RK?dz6_W~sFMD^6&qXA7hhhpzL_}kmoBY+Vtwsi4^MhG7nb~?bpi@wNGqn_R zx`LoQhY;_zQhDf^)l2h?1F}Fw)9Y5M@++73uaNb>12j&{)f2mHB^BrKB6U9Q7p=U^ zdg6ySF(+6mKi+s*=BzXM$}(KB73ecaYGeJ;r!#dI(q$)VN8L^ydmhOahE9bh!fO^1 zJDBb5KeBsu!1Kk6qhoJP>zs8Ipw}9;91|r!|7iIy4IaQQJ4($Jnc(7M zC76)O2twH1gHXha4-7UK0nfN|ocnwG;$%!6aEYkIBc5UPqZGGphw))<5wbgpenK40vw5R5Uc@Ux4w%(1t8d9^z!J+%1Q~&9{9Op@(J>j$ME+uFl%T>+3XIy z%N}PuJV588A1?tRt`d&N8)^34&%NnU?%rUZu(F3zk^79=`E|u01g9kT509x4yi%OK zOXas1S>6$)UD){jUuBBJf^2v6Uj6htq+^xWD!<6AXD3ph3hO@-tVgB5+43iZrCaoo z#hA7+tbjHs)b^m92;RbjX#!}b@9-P^@mwpRPBei!S2ofXd=@q?YjXya;3kf|i?|tc9 ztmYa)4o4g27B$U>v|8-Bj7Fh?!p`Vi_p20yrY;)1HW#%Y4lQ2Gr5aYD`^6b%sa931ZUjLgumMc+yU%;fDi= zY85jVg=%9Y<=mW-DLhNd;Kk%U-*AIqTYNCIL8Uqng^DsUa!ovrMR(RJpQ-rNwBEDE z6C(0d3@A;k8?J3f+y#G{&w>y*N1A5S=FSynBCmhR+-T@Izh^zI9Biw|fp4e&wb zo5o8PmYq6pC7ONX+$7B@s<_JCyvIogWxMfuoxpnB!!ecF7A`$PXnfE-L$B|)Z78l1 zo7N3U;(ZG0j$dFH0XlJGo9C0EEmhcBZ1K2oH<;jsk3zIU2MZdMn-Y1^-1omA#3mw# zK3j|8sr_j;}YAN0F#=~DK?v!B2v{r&xmA3g-5I|;2cLc-V5z%_@ZSO@5WpL1Bs^OH*v zlcCRg*O_R-jl$5wLJDaUa|CmVTu%5lhVC{ci21aoi;ijg*wwoKee7?pl&*YMWy=H_K4T$z8P(#?Dkm z&7mY?V}v4Qrm^H^Zob`MnT4@t%J<{@{S(ghcwE=#dR#wT@Avh(p6}P^x_Q#uLs!R8 z2LuA?!aR>7K_CqUFu$O^9vGuLT9bg!hG@?~0tmEm>uT2k(Tfd$MXgvE!do#w_Z z2XXeIb`VJCDD3!A-}ph9Bp7ehv9o=4f>9Vsy`Q7^sm%L72X|QMOd>~D%qB(sh~O80 zMh#FcXG>hV6z3yf*6uY+)1=*8SkYJuYf0G~DO>sXkwsu{a3(ez_w=?NqQ zwePC&b0%!e;`#d4#@qH(`@CmnnBvDSN-b^0uaC}F`qzD!jkm_^!Q{0uT(w+FG|eGo z)m+3uD0HVy{+qVW3kNRI(P*?5wD0@wS9Mz^JIN?VM9ro>A@D@AsYB^k{xCnq()`wY z?v*jqt|zIgYcs^<($J!o{5t{GK_wABH3?kt5DA=@tALA+K)$P`QmLS&r6s$R4n#}K z@jx*ujF2`E8Eh%D)bxB-a=rrbBbb}!>T_-4glHJ53_?Z?Ew++Z-n6u&en9U4j{lG5 zpqHVT$VY8^SzVZ9Hl;pVf`8y9*K~oi!J#h=@C*WNIYFI#EJ82ERV&6dT^#lM&RZR7 z>`-^t^cm3~qC32GF`Fw%qrN3|)VtkW_pDP?X|6~nlVM#9vxC+cgHm%m@cV~NPCR&9 zilJZAZ#|VY>nRyl9hVIAMx%+8<|U3n_yb&ony5WqhM`l^oYikN^e0Q4gsErg1ASe3 z;aMKtT)x4F<6o>U4H@9-mWMZUg^lD4C=PVM+@b(B&M#+`r z(I`8Qva$u26B%g#1i1xq<46Vv8`r2jD><|jOdJybW;?uk6tQY)|J|48tBu^gy@o1@ z+F|cFvZm5IO3G=$g&9tHVW3NWVS!gvF~PlQ_KdF|G4SpuWNf-7kZ7ESF&IH2k#gu| zs&`$K+lm1B_oG>Vf;&HP6+%k#9j1C+f_yGA7)CD|IK;}8^3LW(K!>YN6ack3JIS4& zpFi(VgeWS5I@C;zsGDCJFe{w1BDRIcQn!UK4_6GSDYD8^BRet!nUO#qY}h6B8{)KK zWB(`XA>8+9^<@VOuKX z+n^lw?b~N1hJw}@zhaDo5lFb&wtXL(1jZa;J)>Qt&?1?eZ+YrcufEx;v~54g6cz#3 z24nkpd%tI|U*&`>+z4|!?48 zp(!@3r)wzqi%YwPdpX$63_`l}#z@D~lRI6e|1r7nZFd*Iz2+C!W@mMXC@ib`ad&15 zBK-9VX{!d^Br#sT0S_SXwW2S?kv657)K6|U3ZHHZk>03HA8+pbt4}X+C0zQ>$!(^Z}*wye$XA%o}x zX*}ox_g%#hV0o3i!?MTWS@OBUiM-Ny5~-}W_cX-?h`(Q3_^>Kq3BZ=%PPvC`ppQlu zD4DQs?l0~2aC82`$cl&LsHGQ7Fg0b)7zY6n_+Kx_oNN+kJ!uSx^Np%zNgMl}CfK>6 zTAufxc(5ROdA8&8%gi0u0eLb2i=ff$AWXbYhdC=0rbhHm!{`MA5*?-fReIULtJ>{u zo`_zB@GTitIIws0LI@^l&QLNAx^n7$dXA4Sp`6&zkMZ*(qaAejWOZFWh;N$RFI@Homy+d>GOto1X4s{{43jSQg+%JY<-iBWAEUTit%0kyzp` z*SlQbU0JT-kLV5g)NJ+guWbM!-%?zXmh2y1GMV=ayeow8|FWf6VQg5>I%(p=+KS~X zb)Ld5O82p^1fs>r1|pzVk0VVr(;&|fN7Wj+#YdrSx~5I3P2$hD;C$1`@1)waQb#nJ zY7NPrnCCLR%hx)sVpv=nbI3%_!8+U3;K45W3I^|3AZN=Y=4(hr@Y;TOqKvPk+B3Wh z9ap{NT8f@I>rSC8LC$<(a0?>nV_a)0m*E03ss7zuKMKl=SIP4yWxtc5G*VnUKG;u7 zaA;Z?M$b*#rw?$?0LStXN7_K&z(kuX;C)u@@8LmZxwuB9V?>}eq27Z61EKbED#uS( z72apF9~BzEFi`K88+Fz%KhZsGAI~Tz)bgMTCDr;1uj%eHWZfLY>@#y)+HbyFl<&evhMzOq$uLlwxp6e-^tZVjrL_1y2LIfB#)?~QwM)Bt>lF*L{xR# zAmRB^UYlQJWaKIp+X<83R^X$!AH(1@Hv5-uu4I?gS>+_vB%TrApB^w>%uTkLYK1Dh zp>Yts3mSkZ%~d^bo>~rajG+^5S+!%SS)AV4CIdAsvp0Sd^i6;6;qzn| zEk8fO>!-!PBM2AKG%LRer6zxrO!?XEAj&#_g4X#FnV|RoHwn-AKy7_}y@9E*vFu^6 zzGHXT3@0{J_ZZKVgnCrei~87~U0B@;{JHfuv18w8j2tl;BsW#M`at`FiJ4=DFsrat z?>}rZ-G+-EYOE4@{MhauaB$T@8Z?vbcI;2p{r3+w(DSn8%>)vpV0uCJV0Al~yZ7-b Iw{utj3miouOaK4? literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_004.png b/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_004.png new file mode 100644 index 0000000000000000000000000000000000000000..0a0d83787363d54eca4ee7e3b3d3f368841aad01 GIT binary patch literal 3821 zcmb7HeLRzU|DROO9qBlCbxKFhZ;^(gJT)>U9X5^PL=;P%h&(pWnunx0x%IHdVwg^w zux6(gV~n(-#5nV?n32RVn}?Zcv$-$*egE^jUa#xn^?hB}_4$6@pZELo{(k>F!2q{^#d-vwK_K0Kub*0=;*wp!piVp-c}j=B zNn6*zL6g_*4+81`2kv&__v9go5Q*L%kl3~$Dj^n~OC?;BpWdUR-+r4t|AwlultDy{ zzvFHz%B10X`NucF@zqD>8iKzfA!l`mxBi9QrOq(ey{WSLOs+?nqe9{VMEc)HX2yZG z`=ELhWjj?du&Ob~-7VUY?h5)L{8+DgwT&qf*qhTYf|}oExPo8|#|-6CmFLWW zSUzH{m+>CDMkQwumSUhHGmiC5Uruw1atXqbf}}=kRUne_)S;?^S1p5)W${4@V}k_} zuB`9b>KVj0I-Zx|sU(uoaP7Qt(3vONs8OBq-*_*@ENA#=z3K%y#>A*zRoAvD4&E}% z-3(IPg2sQARilZUly&6n++>q!4_+DhoZBm@^fnY^4!}}ql0fVVH51)D&$)>jzpL=W zxor89c8>oM>wF+uJ8(=OmQd+YaHs(4gO^Uh`)LVpWA?b&2d@qj9|| z(JkILp$xshPwU62*Z%3-5^#w(xY*D{lW-Ss4OZ~32@2X^v{F6D22T%MkWc2H zl&0YdSpog}ppB06cGVn-W@TZ#t+UQV@(iypR3B%c1?}%7p!tax2lQ8(w!NjzB-+8< z4dTk==!Htr=V}E9DH9teKgKU|&3BWy*dOe~wdneElD|*>>ZM z)81vr0v->(VyTy7RSEJSs(kv|rx=riXs#->4(+r$2kG%dR2kn1>9_4FA`@_45%1k0 zIp#*c_Go#$H1jSqfqU8rs3Dq>ndOv(y#|Fo5i@+IsgVOx=1svrWx2wH=<+bQ*l@CY zM!`szO?LISwzgKJ8-cR)k6o0FCBg;B-r4IHe@sfNcaBJimQV4kTu}%mA$R3b<3Dpf`92$m%u#X-+`uV{g06=TqVUzH)h{3}^vP_lbr5y%-2)J~l zXfWFC=Dz91+!c|MHMv*Y*(Az@{bz1%W4Al#?qiqr?D<)OsnETv?>qJFqJxNc1f#kW ztOHyyn1T;XLLr8#%sM3f)tcrF&Ypn{s>a+0ZT%9lJXL75Gw*b{Ho%+DU3UaTpAJ7n zcnkiq#5xe&97Lm!sr`82i0K5iT)qljyS-l4_&K{P zAE3ruKc>~v!?ES6pOO@oRrhl(^3lU0hH4(IjVX3=K`RKjbS|`o3nig~f@lhbB4AAa z$0<;>PAY(Cw3F)Hprqx1Somyg9?AX2>kRfxJ=?O{p!2a)8*^~l5}a%`&5jHnoc&hEgMaTOm=Gl@=ZG-#*8w9_y>nEyA3`DBt#omaq}9th1T(ol7#$r zLhYBezDdh>!e{2r2*`Dtv6jD)24kK( z(q*FYm&-mkdTp=60lIWrie)TX7gnHSljd)+Qd`UqDOaA@D?^i^M!n%-B&RTL)O9DpO%&; z>kv%dH$IYZAuqQA|I##^8eSY@>Rh6wg1lrJ5i8oGD>5ZCzso!O{g<6^cUdHCBI4ifI$IG=>9t=Wf*XSv#K0MFM z?O1h)rb^-)W4s@2F#d;HH_4mPQEI&|FvV_-Vi+c09+5RSM?ZKq5@}DArK<*I6xh#HR9B`$9n5AZahi%miUemPZE{}gx$mHD77>818AF` z#5Zdc+9&q2Z?x#7DR-Pm$CNy8L|uz4NcBTN`N`L|3i^RAoM|gHBGn?<`Xh0z$~hHn zIPMhfjlV&hRQim9x3Ov5uKHeVwAj_izf6ThqV zutmO+zzfZNX6XIrQw4PX_+hO6u)!p5wL3$Du2y&`rHymAws(;`4N%V!EjuQCA9(vW zpDQI@KgLvF6=F4$i;Ig9VPRN?008W&oxHcc0^ICW7M z;MC?hew08t_jd=Tx`%HNcWC-5WWo&YLhw06tQZ8MI3O8E7-NJVh@m44b;z!JCX|Zs=TU;ntTl?L$3+>X&v{@<6Ys3e3oJtQ&y;*;Pw`eJ zGb-%?8djY#!XF^FwEKBeN88^B72q!dJg_mAmaW)$gbx2$K4i72jQb0fgY*kxQD|jZcUby_nlmmgH~2nyZJB*@-hJRJX%i-C7QnGn;M;)TL*w=9N5StI>tv%Rhm`>DB~{yFO39OSO| zioxJmI{`5tW3NH3hJ-fSb>1Jw_>Ui^wzO-|MMeF+UnrhT=-uPXcenEtV3 zy#{SY)MZ?vT}`A*yh50J04Rk6()R|pdMrg%jE#v?{A6GXj_*aEs@}9B=Rf0fNj7Pu z>BHB5QMUBdUzGrrO_@WR$7fb={0yr!jwW!dXGJC3OpQE-5)}i&QE^S7kGV8>SY30b zr5WrR>Nm_L<7=#vtU~=}-mn%eYNltG&(XNvo{%s@#nYHF7zXiJyWF*%V?SC`HyBwr zjNx}K+e)=!u0PnBbU$Pl!YFYY915ZlI{%AIm1F!ql%~u<0wWmylr*@B)2{{6~wQ_v2w48W0UD|9%-d$DY0VrjLg9x z?wrL}*&sXKXv%K3d*7Fr(km!Yi3-mPs#QXVuN2ls|HJJa~N(YWIko zm!~UcaalFQp~ABMnQu+_MHc?XlNTrQYNOJ|q;&9?6wLh~b_(IHJYFt7rDDQIj# zLV`RNbCXS{Q!pc|wMm;&`{u^;$s`2CWh*C^XWP}#22B7Q1`w0sovTSn4uEJ8kT9v{ zH1D%CFED5Acj~z8#X|8;Tzag+2ayuMWC^2N3q2tgNf`&Hi^xAy@SZjo8q#>l_N(2@ zVAYc?80Dn}Mv=O|GuVTbygVDQwz6>LjzDYmi_4Fn$0*;9Vqr#%)V~KK?+MlQ;l=C{ zv@fC|qImLm9vm`p5!V?>pHszj&7O6>9qPDr^^l3Y*4#xHX&)BEr#TS2{t~lJ!rh@F z0bP9tSO8LeI*1kFUVha64+8@O0Y>ohAag(jl~1I&q2Au!iGTk2r;aR@*a$__K=UqHPnA0@gTyj#7@zR_>jfv6I8Xa=z>7+_W#2 zFpL_pZ&9Y2-Q>;`@*ZR81m$LZj2YNoz=B_-z1N#V|u`OI8=}3aG?Vo7k zr!iF2-ea;S>#xM%Tl}yWju- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_005.png b/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_005.png new file mode 100644 index 0000000000000000000000000000000000000000..51db2728c86d8217387e2a1087ee34380dcfe5c7 GIT binary patch literal 3239 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_006.png b/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_006.png new file mode 100644 index 0000000000000000000000000000000000000000..6c069afda64adb2959b5a20e6326b568ed6d1281 GIT binary patch literal 2487 zcmbtWi&s+F7sjkKOEB%>s*Ie`Uz%3VXcAg#GdYTt4~oop)<|i-67Ug%nXi>j&bfE*Z-4vS=ccc>hoQj^ z0|*3Si1Iv+hCp=Yz~|rf*Mnnxdm9OyHpF`d;2@BVCfcq8DW{r(FZJ-KQ|@}=b-Ejk zb?1yPn}gfVqK+Rsll*>aC@gMg`&RykBy3^{-TjM?4L3{ondiZT0?PfB8!Iq z&A*>$IG$(RF+{WHy$iSrOgW-1qU*^pxBUBSJNA4arC@~uPw+SYy**!*C2xRK6rkS^ z9O^-qB>#J?Liafn7QMG4O}5DDymDbtfI|VB=l68$jJye-wp@q$x4&zM3!S#<*6g_h z1founsrrda!Rrp{T;FRfdq_{G>!L&!hO>vdU9Y<#P+iw}(oH!pZBSyMA33-IZ!`hP zM<=*0eg5^!vU(WiU)>k&u*0k&hB!v0$b4Zz$6D^V`Iu)`#YixITebtZMXgPW)g4x z*u48#7IdV;U#`f0YlF%GR`yH=*=xLe5erRGu=Kl)(?KYIsm26l%}?I_OR_V~`>6YN zeLRG1II$w+7&4!$%kyP9Oxb1Hofc2J zNErfk&rplmC%;}kG0l4N2R=Lh*%|TI*tJfNK!YNKf||D}vitX99Xr(|!gS*eg7}y; zC*{Y<_W~Dsq42cVM#8VETc)vk=}-v3+5GBfy~T4O9z?i|R8eK-KOyPtE8iuBThMZh zr1Eyeth_l(>n8zWc-8vhYb4^G!OSfVQW>ZTt4;jCb1j-Xz@K;FCpU#M5d|HY&?Jx+ ze{bz2`Ld)M8++ot4Dtsa4BN;Yk1BRO7hF2fO2xICXFfG*t7kCE6}#3tK?V&){YVyo z-+ghZ1G#iVSb1!)jPAWjhg;GPlyp{qNfs<=!}QKTm`o;z!g5~19`sDS zBZg51B&MSohx6Uh6f{SOSqzXgs@g}tG@Pr=4!cRZp_59xDK&eIW&|~UJIV5>T7UG9 zA5UNOdVE#*q_1l-ta@km9U(G%5R8i(bgt#615_%tFyloY+UBreR1Nt3YQ!BT`4$E1uw(!S%XLFZ#hkokn|!E1JcjxBw%Q*&aj zDG~XVSG0~Eskb{wAo80gr;Y(8! zS=%{B8)`6!IVcF|=jYY46|s8kjH*a1kXvudM0*iJl|zV5zlRy%0li%lS@iG_v59Kg zHq*$W1IZHfanW80xBJagX-B|xZm)sIwzAn)mPco$J~SN8p2Cor)e6K;z<0YoD~<@T zPZ_n!tA1PF7`54E##=?Q2ciwyzOMpqB@TF@8Q)Y6V1MG*(WC54eQBep^H8(r4+yPX zo^2-zIv1(`!7HR7IL$P#WDKpi_OWHG_G(R%7Mj*(CpEyRisVNG2peUhaUR^^)ajy# zfEJ>3g5xt1ZJLIKD?KCrno)bJPNDuM>Rv3VR5NC~+v-a`BJRdfRpY ziYtw~cj#`5TWOj?{cSI!K_PUzWD}_69A-Ti5htDZXNGQ7I2M#;8p*JZB@TZU{-W;z ztXOp%I)%d&kIUCAv#1w+)NRce){CwN4o)OiG(NEG)=H&P%p3wcZwC9bu&InbJT5to zj=S@rt72 z_|6;l;UPXqfhHz6jw6}%)tv18M}S@MfOUOJfzCb}+JsXZ#{2a)l+nBltRK2#FmVLp zGaEN8ZTa=J$_xgh3XlO+QjM-XvA8uYKZ8&bE*(YyE@Q2v-Z=M-AV%?>Q4Fe zw}9GL9tv4s9&zie_j=e24;4sMi5HZ=gp#n_5fpIDzf$bf(pJ%x z9)I9HNSnGT8&F;*Y~~n@*QTS-iD9JyXz?*Jt$H*>R2g??{ad6!WI^*Z(Drbc5=)j&Y&*PPo-Jfb35qWDQ& zupuY}V|FJ;zZ|YA?2nNg$i08~tQbRPNUGQ&*$c}Cyg%_}=xcJSrU$7$+dDHq&rVsG zv3xl-UwtZcE1m$pFlc;>GP8`+RFzo`+&8^?GA7jfn;r6uA-S?tGW&HuNrp7xwxxpyR-Hd5;mj@n*7@(3mm`L& ZIvcnzp8vx##%sTZa`!%7`^)(o{|69Suo(aV literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_007.png b/data/themes/default/images/animations/bootsplash_logo_reflect/reflect_007.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd5c0380285809fe68269a211e8b691417095aa GIT binary patch literal 2361 zcmbtV`#;nBAOD1qa&VO6bWt5dg?;6+B!pa+Fq;vDO0CD-*=ms~2RWjnree8_n%quv zGKZK;7f~5=mX(5JyTkg$-69F3FPyYM)djGQ#09>~gWHxPbpdGK) z1X6ml6NxYM(=T#24enfB{pd9M%xYvEP;Af0p;$M}cP&LG$&KbChyjfjmC)dwXX}mU zfolV%bLOyEm;-DZaZg}PxaB>w-})yl9% zpYtegFzKT-$^H@Ka5@H^Y^mC_@L_H>jKyO7xaAN4wAT-#APuENXG@hgiz)sJf$^ce z;me!nBM?Mf1=gM6vcG@jDy-SE+x6f?)&iXDiQ&*Fc4I& zK-FAe>r71sAatjD_tvHtJ-M@aS)tHTOdF{=Z=Qd};c##VNC~xfKps|@-I#Fsx{l(? zOTCHJWT*!-ZTOw(jDP7BSq_)D2h`AjN}Gr-8koVLP+XsorA{SP*ez`kcFUilFHY*q zoOKH4B>LX^SdAUPr?N)rt_DXMi6nZeOwv8`j#t;&)zT(TQ_2;syYnxHPkl24rfzFx z)chMajxI{|lfxA0bq6F4jNU_`U~xKZ%;(7Z=tzE=qH>NCCP@5Ekt#gQ|MUx3#t9^M zN78ucZ23_0#;9ofK{wPq&pQ<*J=VDG?I!1m4LIPLH~pYtDb{W%VPeAL^bpS$dw+#xPuMC#1|9D)p@~JQAKr_4N z5Q9F>n>Ph$8mEKQU4k3S6@{wEDUu&9td9Hvtl2GG9eR5N-&+NiFy+uHiXP-7IKMyN zynGkb(?EFPoG>uE2f<^i`WWt;oEYB;g$q0p=@}V^AU8f@bf?Q7SexvvwS~=?#`1^G zxrf#GIk>(fOVm~XGSL^K{qH9wBrJuYvhSrj1@~nTLjSe~|n*M03kjbZ+>9 zWDiQL9+bKQ0NJ)HOO?@j!Ul~(iAbD6(-{w*Do=RECKhi%{6|dCUXmll`7VOZv6#9yAKCtXteWxg%U&n3M>ZG?TMzFfmD14^S&;zM9 zgrOap+$7dh9A#Be@<^h&igsN35pj@4lp5`HV$GXs%y9Z3k6gx~QXW@GeT`)VhWoeB z>UNjcE1>|;b1)DhsVcTeEaO}N4UA`W?%{vam;mh?hbZ< z#F+P-ZNIqUf9s^K=iXY+{6k>4rgm$n&MtRQcHonnq#<=50io&5vw6k3Ts zkXX%(EyCiHU!H1|v8uuj2VM*U`#KVvXBOUsinupB#-od(gHZ;49ip%4 z^op2yVK#KoMbNzJZK;ll(R|pwT8r8WDU0!YsHA~B{{^Qk)y}{tXYIpG9_D&q0v!&> ztQUn8+RI13c(BfU$hn~cPkD>#6bs2#jFW}JyN;k{*T6Z1;Q6Tn9j?trAp?t(A}aR_ zw(|&EV<+y)P7ynlq4H=|I2o@6QghF1iyU^bg4Ll=-FI6ZX@$mOpOE^-eagO{G@>>V zkZw+i=C!yuv@xs@z2)?u<{`bZ9I%Vx!7mj#cHHjauqO5+($I|ursWZM{u=Vk51{9t zXIiID0s=PhKl2Rq<2^^7(JyjFF8h*D2FQ7`uh)nlz~Nin9p!} z0=nG3-%8w5mjPQV5N3(nd#IOQDx)x}eQeFh`&)9Fzx27P`|H4)6rr6TH^$MeZ&)=N zyi9DEoDrLyTBH$sR_Hy;?&9w%YQY||n$)$$l) zj(EvS*Ht`ONyrkog-~s2f<*{EyeM@f;IkTm+9dU2fw^^7cDYJ2D>;IgI}&JDJ!p#+ zf7FDy;HM^b+*YqLXwBrLJ~Q&_^6H`NENW+6CVR~_^YygaX5ua{$Y9zX#MXR6Jv_6s zf{;a3@;#Eh=|ovHtAJ#SJSMR3cN~SQw;KMH#lp(U*xQ!Y7MuO}nCphWPjn}|khRg6 zN?n=7!UQmK5Y{Bs>J@8+~`)zdG|4s#wY;i=#V6p9`1Q0@)~CqAweSA}&ScIo~3 zrf;)FW&NbK=>*YL9W=Wp*)9wYhjZlccsw{^R}w3CHS!%hLsvGDH4X13Uu7K*Cr&W5 zw+Pjm*=ediQs~s>Fav`!zYh`$U8tERYEV4Sb5YCAJl)GWsRCDpQu-?Xw=-&q%#c(3 j;7|IFAeaAouK7(Fly;6Hn)7RBvsc literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0001.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0001.png new file mode 100644 index 0000000000000000000000000000000000000000..138ddb47549d027b00eb15eace5bcf97f308ae02 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-o7IBJ?C&F>kZg%-M2T~LZfA_Z*MH*ZEz4^IZ*8s|E1C40&CZT7fg){__df>D{USrZq6#snp7;U z_+Bk`sr0hNE)T5wHI){f>;Jt?q&4T(zjs%|mdKI;Vst0NRE}z5oCK literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0002.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0002.png new file mode 100644 index 0000000000000000000000000000000000000000..855c0f8e112989f7f53d47e609b8ed3c0ccf9a66 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-o0Bd7(Rx>)kZg%-M2T~LZf)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-o6B5O@XsEgkZg%-M2T~LZf}-}O*t`lTvq=6`u6pKRt+AH z71@uc))#($b->Nmuut(x=fyKFd0+Us+JlsNFWp%<mdKI;Vst0Iv^hY5)KL literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0004.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0004.png new file mode 100644 index 0000000000000000000000000000000000000000..e50bc0d27ddb7c1765d8450050c4879679f6cb56 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-n^!ucgKY*-NVdc^qQp5rH#aq}gu%HeHL)Z$MWH;iBts!2BUQoO(>LIK zifSHE;Sx_5$B>A_$q5pyS6F)t++tE6|3CQRfa}|@Jv>05bE1iT`dR6azAgP;O`B)7 zd0pwZD!H<7F`sPdixtl9vQ|47xLs%6wDbu2|NMD>W1$8!5UB502z<4#zQ(>lk&9XD zT3^M}_cC|wHw60kBy&_InHW!${@Z+L;T4Z&lX8uvJ7?)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-o6qD$Nd^;8NVdc^qQp5rH#aq}gu%HeHL)Z$MWH;iBts!2BUQoO(>LIK zifSHE;Zjc*$B>A_$q5pyS6F)t++tE6|3CQRfa}|@Jv>05bE1iT`dR6azAgP;O`B)7 zd0pwZD!H<7F`sPdixtl9vQ|47xK(G}+_A$m=>O~6*Bc8pn1P_bLn83izCD$u1&UnE zzv>=VJk`&OvfL2p-;>NynPg%-QTlK5p@mmGnoY_zmhPOX$G3DzjLcdmpmDD*1h)4< lY*<)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TT5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug-bnM977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5?jts^rST#eA}*FIG6a%UbPV;8vYwS@F{&=>Ox-%Nq+dn1Nt^i%H-syS)`w1&UnE z*E%gLp7x)cZ?qxMzbBcaGReevqV(V9Lkq8XG@F!bEZsR%k8kOc7@4(BK;vFr2yE|z m*s!!dw%;{fx#$A=Dj>?%MPG}89ZJ6T-G@yGywp-?q}}+ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0007.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0007.png new file mode 100644 index 0000000000000000000000000000000000000000..1a48352b14ace7e699217ad5a5a55325e5ef0ac2 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-Tgp8C^1HV{A=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug-bnM977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5?jts^rST#eA}*FIG6a%UbPV;8vZrlcm)&=>OZlw;KyJn30y>z%)78&qol`;+0K9o?cmMzZ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0008.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0008.png new file mode 100644 index 0000000000000000000000000000000000000000..8220c462f29d608eddb82b1a2989ab1fa8f5f56e GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TgLFgt2c2#A=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug*!Z5977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5?jts^rST#e7SJ5)^kGNKIPS$^7sCZ|~T4BLg7Vyea7F#QOUG%j!A~G4yZH2$lKy z^lkPn7hBb70f#s1Jc;`D{5k(8BUbC<86QnvT?lONgPP`e)+LYEIlMh+b)r*nd(bU~ zh274cnf81$oI7(n`^Eeh^U0RJSmB%*V58XY-q-YykKum3Lihyr>v}*xFnGH9xvX)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TaKZbsqYz3NVdc^qQp5rH#aq}gu%HeHL)Z$MWH;iBts!2BUQoO(>LIK zifSHE;Z9E%$B>A_$q5pyS6F)t++tE6|3CQRfa}|@Jv>05bE1iT`dR6azAgP;O`B)7 zd0pwZD!H<7G2c?51jSqKI%`Y{5A3(!zw&he8xWZ3<*l;%bbb5!EBt{H69TR;>r#%t zv&U=piseUyvMQ#v#+~;-gHEF|wsERye!MdNt4Lyd%}Nj&Et$;g)55 zOSd>WiMLO>R3~H5E_7Q+UU#0GtktUvf$f(TR5;1?%dj4nWnj?#q!7N;VDd$vCm1|k L{an^LB{Ts5*vxZ> literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0010.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0010.png new file mode 100644 index 0000000000000000000000000000000000000000..e862ddb9038d7f2268f4a38c74afdec79edb0c41 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TV5!0!MXQ9A=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug*!Z5977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5?jts^rST#e7SJ5)`8pt=WBLK0JTU|H^7gBM?lEpRlU$&%ckhU!6tRLe|Kxe00Lv z{rhFLSDG7Jq~@h6Uf*|1?&thMGE0w)0NHx{lMVq L>gTe~DWM4f@auX- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0011.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0011.png new file mode 100644 index 0000000000000000000000000000000000000000..ad687c932cf1c669a59313d705f62541eda83de7 GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TS3UM?#X4KkZg%-M2T~LZf zJv;1@+AGbCEmHGR6|Zk9?|(OWslSI`;g$-i(ibb7-DRy_T?lNyv>;7sd)va*&MU7P zEL`cVnLFXa(S=L4$g`hWcx2lV_wMC^?R_ANO*H0BIIiq|uz;Q6`b35B;Da)sfu3OS MboFyt=akR{07YGUg#Z8m literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0012.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0012.png new file mode 100644 index 0000000000000000000000000000000000000000..4f3f754652e76604e87dcc1f3b6fe5af5c01b1c9 GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TZQ%7!6gDfA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug*!c6977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5?jts^rST#e7SJ5){J}+4bdpWj;Lqtp3VsN+S^XJIz|v_vgza&9BZPY-@yzS3Ekg z`1A4$YOgdmwn)uORlL3_eEa&zOZ|O9i?>urmA+Wv>@I8d>Ox@qr3Gn9+uIhdc3yea zVBtz<&D;qWjxJoXMV|f4!Xw*`xOXoPZ0`eEY@#u5!f|Eyg9YpiY8w^8Zy!l`5A+0s Mr>mdKI;Vst0I(l=pa1{> literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0013.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0013.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c0c44f1ea8bbc26989d6c61f65ad9d55b00491 GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TiwjbX4+ApkZg%-M2T~LZfbP0l+XkKKIC~d literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0014.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0014.png new file mode 100644 index 0000000000000000000000000000000000000000..168a91a2049cd24d14a05ac3e962240aae9ebb67 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-Tg$lphYUMVNVdc^qQp5rH#aq}gu%HeHL)Z$MWH;iBts!2BUQoO(>LIK zifSHE;a*P{$B>A_$q5pyS6F)t++tE6|3CQRfa}|@Jv>05bE1iT`dR6azAgP;O`B)7 zd0p9@;LGoGhWXWs|Ns99Jr7_5g0!$}jD=6`-{0TKA1LuaP;BXH<^6kVeWR`jubw%p zAz;Au}actXWf;Bi}_?rU#xI;m$iCzA+WvAsst)jP^1x9tCsZ3 zg!x@SRr$=5MH+i|of5GWx!!SfL6OF`jq@+Y`1^Gz^}F{qJ>+9h+ocfxwZ*C#=n)1_ LS3j3^P6)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TUS;jznvc_BwOMdQR1ARo12RZZWBk{~vsD!1e9d9v&djInl&E{j79I-|XSNQy|1RrReVpXLnhvR~G`?`>aZ?EL_YdTlxYj^zcc*qF+8o zzGSl9S@`9h(d4HARi#rki!{~=b~`=|$Vs+eymQ_h0av+x8P>zH3=E}m3gL$`7cK^R Og~8L+&t;ucLK6V5mUuG& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0016.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0016.png new file mode 100644 index 0000000000000000000000000000000000000000..8d866958f29bc9ed9f7ddfa6b48fb36c0f07552b GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+kjmxQ798ABwOMdQR1ARo12RZZWBk{~vsD!1e9d9v&djInl&E{j79I-zXB>udaLIu12-ZB>qyt$hBX?$V-p5ofQk zv@o@{N;uo?uks6a|J3Cv6k?oG^mm1`yR6l#3xVx@RwY*!F6NUheE}7E_#|M_FP|e{ zGTH7d{PNCd^3#B-(y5w78tVkR9iIl|B-=0EId6`Dt6aYf>tR_2hST#D!vAJ1`3v+3 NgQu&X%Q~loCII)sc%c9Q literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0017.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0017.png new file mode 100644 index 0000000000000000000000000000000000000000..67ce8fac476ee0e49f6133ecdbbee47679999d5a GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-TTLik#W@rxBwOMdQR1ARo12RZZWBk{~vsD!1e9d9v&djInl&E{j79I-K-mx9$50>-No8jRzV(q6Bo=Lr}NJeIBJ??xI(5Y_f5LV l^~u7EPCTBtIAI4f!~F?HejjIY`vN`4;OXk;vd$@?2>>_6gYEzT literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0018.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0018.png new file mode 100644 index 0000000000000000000000000000000000000000..4f488f7341c48d5830ceaecfb3bf8f91ff4ba7b6 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+feat`Le4(A=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug_k^C977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5=Lrg7A|EPo)Fg|Ni*XY0++EU|{gU(}TZ5*?w<@S53#EhSDTHW?^BK(m%hy_iJ=( z1lE`Q6S=fVPEux`b*G+U=G+<1RZ_0(>+|B5uT(x7V#?Y6C*b7Q#eA}*FIG6a%UZp< z5ZK;lRdQt^RH%KjbLT5#!OP1f3)*j~J-@hix6d}`k6$;l`*u8%+9(michu~g@vPS; jIRl@3JP~Mchmj#u#V9Z#>i9~a?-)E?{an^LB{Ts5FI0ke literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0019.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0019.png new file mode 100644 index 0000000000000000000000000000000000000000..45740fcd2f2918f53a0767bd22b20b5c05035cd6 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+lco_)6B0xA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug^xX5977@wCnrd-USaJqaEnQO{QuyK1Fmns_V56K&WR@W>1U-w`nL3YHEo{R z=5=Lrg76a|5xD^O+Uoz)EZU6>3=BFnRsl%^gAE%u8H4CQzy40v@YV?Z|LmXaBWDq| zKeN>?nW~sydpcR{>yfNwY6>D6I!7cvy}08!%PQ#Hi8%{qDNcUvE^GBF!0D-sE~8-? z&wK&ZZEXu#1d@+uq)C;&SmEq``r^f+k}Wc_r7u2|X$01)CH*pCeiu+xKJ#SJi(|WL zcJVt*coPt#EY_^$va$DX&$Fr`Cy`2)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+eA!a@AvsYA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuuh5eo`jv*0;-`?2B+2Fv_`fv_M`a`X}2NGsskL=zlgqig{WHWE!j;KgTT)Zew z_sN6$*j@c9SB>XJ2X!ilU(zc7RXsaTDy;X=qO4EP-CSK#ozV&xLi2v~r`_&0UI+27kTv=*MX3yMB-^PziiZ}nUIDh68zq4({RMcjc- OWAJqKb6Mw<&;$TP9AVS| literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0021.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_0021.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5de18686d8e45b3b7a1ecf4e69659b3f7770ef GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+gPd0W9nO=kZg%-M2T~LZfxIk3XnUDoQ=g~0YctCA}V7xT%MzQ7^m zrQKjStKF{4OhdNIM$R%rmP`7k>>IwnCO0l?Fu3pu%re<)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+mua4@Y*h*kZg%-M2T~LZfn!goJ%!Izu3u&gUu*9hzOwdxa&Iz47_P4nSQO$TU;}g)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+f;R5+42)WA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug%dno977@wzrC@S%OOGJ*hlBGqgqRKPPOik6HhQW{dEWbsYO%n85Q!1JxLC8 z|2zNbm%RPwDwiK$b?fF-`6D;e7u?C@TcP88KU3sa;iNcoEhQ!2*i}wxl^?DC&McJ* zRoH8=Yj5sP&juz|E)k7@1rCh}#$T=VX76tWpF?hQAxvX)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+l+Oc>6ODkA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug%dqp977@wC%@VGCuT+>2ZNZ#T9XrZEBT)VwCU^5pDWd)_e5~IkuzT)8xXXu zmA%@0YT`Z7wGx5+?CbO5)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-+f2E}BG3*fBwOMdQR1ARo12GH0SC*Zj`Jj)uVYKC6-|3m5armcCfw>@I8d>H-d-DPauBCj7M` sxdB!pl{Q5N)>o1>T>dUSIM0o7)l=SmPeLZf0^P*m>FVdQ&MBb@0D5Iwm;e9( literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_bg.png b/data/themes/default/images/animations/bootsplash_notification_icone/loader_icon_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..39fce956e0ba208555b642ef9a359f1d7c0745ad GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^T0pGE!3HEZF>)#ZDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kew|f-n^E}GvxCckLb4^U5hc#~xw)x%B@E6*sfi`2DGKG8B^e4K8L0~Hp1uL^ zQ&jVS3e!AY977@wzrC@Lx4}Vxzopr0BV6ql>h($ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/cd_player_001.png b/data/themes/default/images/animations/cd_player/cd_player_001.png new file mode 100644 index 0000000000000000000000000000000000000000..c98d01aa94fa6a844a22eb5ca9e64bf4db6d588f GIT binary patch literal 22369 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%0Du%XOI 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/cd_player_004.png b/data/themes/default/images/animations/cd_player/cd_player_004.png new file mode 100644 index 0000000000000000000000000000000000000000..8052b0fad24667724068dfad156bd2fd61f2b587 GIT binary patch literal 22701 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 jRp_t@h005u}1^@s6i_d2*00006VoOIv0RI60 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 bq>ldsS6Hm`b5!GT00000NkvXXu0mjfaTO*V literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/cd_player_009.png b/data/themes/default/images/animations/cd_player/cd_player_009.png new file mode 100644 index 0000000000000000000000000000000000000000..9391a2802317eb6676d334e47cdcd61b6511e46d GIT binary patch literal 22583 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�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 Y0AA8wuH?gY)Bpeg07*qoM6N<$f{|4RtN;K2 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/menu_media_icon_cd_03.png b/data/themes/default/images/animations/cd_player/menu_media_icon_cd_03.png new file mode 100644 index 0000000000000000000000000000000000000000..021470cf886fdbe264041c2e6b641f9feea9a5ce GIT binary patch literal 11116 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/menu_media_icon_cd_05.png b/data/themes/default/images/animations/cd_player/menu_media_icon_cd_05.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e889e5feb2a8e102e6c59c3c02b74b778bcc25 GIT binary patch literal 11070 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 Ef=Te-=l}o! literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/menu_media_icon_cd_06.png b/data/themes/default/images/animations/cd_player/menu_media_icon_cd_06.png new file mode 100644 index 0000000000000000000000000000000000000000..d736a247fcefb1646c32950182fca98800ab6606 GIT binary patch literal 11164 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 uT6d-4Y|nfFITxTW19-21JjGAo}(_e00001Yf9 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/menu_media_icon_cd_07.png b/data/themes/default/images/animations/cd_player/menu_media_icon_cd_07.png new file mode 100644 index 0000000000000000000000000000000000000000..ff35ea0c27b0ceaad7c6f5db9be3e3268931002e GIT binary patch literal 11224 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/cd_player/mini_cd_player_001.png b/data/themes/default/images/animations/cd_player/mini_cd_player_001.png new file mode 100644 index 0000000000000000000000000000000000000000..658d7b6264cb74cb9631ce9214203ebc7075ec1f GIT binary patch literal 9733 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 TYnZi#00000NkvXXu0mjf$`Y&@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/glowed_556_line/glowed_556_line_final.png b/data/themes/default/images/animations/glowed_556_line/glowed_556_line_final.png new file mode 100644 index 0000000000000000000000000000000000000000..5b20e9eeb1ce9e440fbe8592fe9f7a3bfaaafae1 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0y~yV6p(RnK;;hWGMGC5g^5u|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD*{`#)^RP>P_UQ2i3dxqZMwB?`=jNv7l`uFLr6!i7 zrYMwWmSiY|WTYy%d-?{vPf^VSDm>`v;usQf`0ccXyoU`$T-NeU;N9gQ)=^?$v&X{3 zV9kmZOB58kuDmJSea9+x;rbxvDEmJhZ~woKdGe;{+b1>lAO4o-^?%Kt!~0|P9MK=$ zb69`yTk=1+|MX5{{p4cif1&3@e{7y3`D5}N&L4~C2>uYa6o0^9#P;BOQPqR;BC7}6 zi=rOPe>$h}{)x;}^BvCrK3IF{`=ZYd&wI}q-xc50UvfWl-i1AjDm^|=duI8T`FVdQ&MBb@003T(Hvj+t literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/light_icon/icon_light_001.png b/data/themes/default/images/animations/light_icon/icon_light_001.png new file mode 100644 index 0000000000000000000000000000000000000000..601a1eba35c1584765fa84665fb257fc12e910c5 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNYdLhAj-&PZ)7M28wVN zctjR6FmMZlFeAgPITAoY_7YEDSN7{{;sOdLn&tV|fI_k*t`Q~9`MJ5Nc_j?aMX8A; zsVNHOnI#ztAsML(?w-B@?^9IsfC^1KT^vI!PA4ZQ2>sdry86%m*!z!5+ xCdwwnAk5s$@KG=AUwwO`NKaFs0oMv1hF#tquM7PcHUsrDc)I$ztaD0e0steCIsdry86%m*!z!5+ zCdwwnz|B1K!T-w+hHdioP zbtL?JeC|WPXJg~b`^;>7V*EL;W}e{gu$Pv!_^)bEurb2OYkmDu11`6N8WJiD46I#> VXW!gh`3mR`22WQ%mvv4FO#n2`VKx8& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/light_icon/icon_light_003.png b/data/themes/default/images/animations/light_icon/icon_light_003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f0583561dc93dd5cd0e2fdea70b9c5b1915c7e GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNYdLhAj-&PZ)7M28wVN zctjR6FmMZlFeAgPITAoY_7YEDSN7{{;sQ!6wli#h0EJ{rTq8=H^K)}k^GX<;i&7Iy zQd1PlGfOfQLNZbn+&z5*-lwSM0TuRnx;TbdoK8+q5c;$Kb@iYBvG*SzS(UCBrg%8s zO_WWDftz{ega4Nu4BO=E%MA<+_aubedE&b7;Fqz+d_}qtn&&I}=_nF!F#Q1Yw%{;-~VJ|Id@n6-TU}J=l*ZTUS4*mx`I-mV7ukAk^ o%>DVl^@)Q=j~H;d9lXHKAY86-A$hI49MEM9p00i_>zopr0A7x4CjbBd literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/light_icon/icon_light_004.png b/data/themes/default/images/animations/light_icon/icon_light_004.png new file mode 100644 index 0000000000000000000000000000000000000000..49104eb82c43b3a5b1874dbcd79cb3433fcba1ec GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNYdLhAj-&PZ)7M28wVN zctjR6FmMZlFeAgPITAoY_7YEDSN7{{;sS~s^2|yCKq1)@*N775{M_8syb=cIqSVBa z)D(sC%#sX+kc?CXcTeAd_bIA*K!vA0T^vI!PT!qm&DZ20;`*LveE^rY6qm^^&aemS ziY>A`Ov)Xuu!R}yHB~v%(z1bJNrR-deW!|rkg)C7xxsVH9sEOHaZasT^nTtizKfe! z?=>vwJjKjiD&4p^Ve?_P_?#6_JflpRCRxU|-AgjF-}PPRtk5L?gQ;zTYvbPTjO$42 z-+1Sc%JiFwo%x6CD%S-0->K_fIO%wd%>K48uF^PvhEItBcS>!}iadFIsCfH?-@^;3Ygp*_dnp0yleL^is?5f7#TcW{an^LB{Ts5X?1_e literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/light_icon/icon_light_005.png b/data/themes/default/images/animations/light_icon/icon_light_005.png new file mode 100644 index 0000000000000000000000000000000000000000..dc71fe758cbf4fdede813405b3dac581c43a9971 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNYdLhAj-&PZ)7M28wVN zctjR6FmMZlFeAgPITAoY_7YEDSN7{{;sT1A!C6LrKq1)@*N775{M_8syb=cIqSVBa z)D(sC%#sX+kc?CXcTeAd_bIA*K!x``T^vI!PG6m3%f)0U(0X4bctz{d-qx;p2lD(M z@auG&f5^D!aOIe-V^y}eSfZm%L*7K+oIk9sGei%rpJ&sif0$WjqvwhoA+76`WwI`g zwlxfgg=hOpo#-}Y`F16;?{D+cyLPQ|TbmYM+s*Pk;nljP-D0*4g1H=%7ackr{`ru9 zOWcC2Wh)9D&i-WF-*U=ko9BwW>q>9G1x`P(|KZX@@7ziols)?H*Unqc)mI>7EVFgf z%_V_aKUQk192Zb)T`2Y`DK_tMQ`L3u1<(F8NUWFU8GbZ8({Xk{QrNlj4iWF>9@009e0L_t(I%hi-UPQySH zgy%iK0#c+*6A6RJC47PeB*)4PI9hHH1q$pFY@afUB?~E%m2?!2i~XSjViBXoK}dY< z&Q39JG=L{AkCn?~<*OH8Aq-T=JCF}ao{!$(@HB?3fmmKjp_C& z`iw=7Vfh+t3tY(Ll%BfsFf-mO`*C5J>iAD+0;D zwt%G&wMqSr86^a(Mo$fm-Wx!}#ST4*AXtG>o^=ejp6=axy8rzVI@$^!-T-^cXfH-UY7s>03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@009h1L_t(I%hi-UYQsPj zgy%iIB5{$@jUh^iFQF4S3E09n$kBWQ@J0@Vt-QQM~OFVlwk0* zI}Gfbj{ySZ)DSy*cLdG+e3bCcL+VhxqU!K66#I2IHu?;Qt$0YZq@j{2SJ~oacZI;IW>9! z=owu;y)@pQ?=ApI5lQYVkG-LlR@n0dkn{khDfT=;rIp)^yWzOiCWECIYzst^f7^;k za!J@&bq5c~I)SGV6kpzMT80DYJaLduoEl0cmAE8fM5u#Vo7H=;F Sp9C@h0000WFU8GbZ8({Xk{QrNlj4iWF>9@00BKoL_t(I%hi;WFU8GbZ8({Xk{QrNlj4iWF>9@00CS{L_t(I%e|D%N^c+DCASHwj8{N5+K$I@g1gm*kF)x9RwGs%@B;;lhvqurB8dDSFWEpF!z?InVRNiATRh%p% zT|%U5A%s|4R@yAgq2?MHl`yt7A4Of@W+~`Xl>ZB$BD@J(>R4>I z?=zR@NA-BwzVbt{->G11YYCm_pI=OW7W98v-Ujq%QT%Ut%RP0n%$7SBJDsbQ_s9Af zFY*%U5^}l{f`>Dn*)C4(B3**gy-&A7=^oN0II+vjc0-6TSTaV_Uzx^=gSQP3rS>y9 uT|v`FGX7P|e$bfsL1VJ{>$bQPS@jAcCa(A=c_D8A0000WFU8GbZ8({Xk{QrNlj4iWF>9@00GHKL_t(I%bim_YZOrw zJ@>sgyAw@dXBOEH*Gdpu^b|J}TBIH(&%Q@$s`|*Htf}|m-aM6h4c*k1XC+U`9O4Y+KyhQR! zk|cL0lSw~{qP4Sdayk(Nfp3g?4d9V6=JISd0|2Q4Qt@Tm0TK(wz{*ye<-@C5cJ5wMC zf~zF&1Nhu%GzRm^1Fdz>^Sozs*iQgkVHn<6@XX@jIL>vFMk&=_9vhthIYZQG8lpilTS`;4gr^r5ON#F=jiuQ00000NkvXXu0mjfPL}^W literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_001.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_001.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf2e744150f2ede29a97738da4192db5bbb4e09 GIT binary patch literal 605 zcmV-j0;2tiP)WFU8GbZ8({Xk{QrNlj4iWF>9@00F^CL_t(I%e7N6YZO5g z{@!KxW>pThFn8QkMgl?_!9pvWL=YRXvN46&Sw&D1!NS5?1-sZ;h~N)MWiTQB04;*W zfs$rti`?ui$8x*3v-51S;WW2I1Yh~R?>)Znn|Z+hF0J*3)_SX{-)d?M1_KdA(G>vK zCzHwYa5#K1i${L~Q52mgqE`U!0ua9Mqby5!o|gteaHrGh>@+Hfl$x(O-f7u#LN$+ly6Uj zI8}>PRb6(@&3T^3Wm!HZqIUo+fc5F&nF@})zZ{RpYwdPh7e(VTNJ rl_be0t@YkNU*Tvp>ZWOW^EBQs6bR7thvKlA00000NkvXXu0mjf+|vZk literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_002.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_002.png new file mode 100644 index 0000000000000000000000000000000000000000..f15e659f38a180c5888c5d4c6360c65a5d01a367 GIT binary patch literal 607 zcmV-l0-*hgP)WFU8GbZ8({Xk{QrNlj4iWF>9@00F~EL_t(I%e_;-ixWW< z{@%{pBtpbRB;F!9&_=Wo53EEiM6gz_v$woLEUpwAIXJXAu(Y%jD=p*{E4jjdz(Pr2 zH_7hK&L*H6vop`aoP_*14hvuN2Il*|_q}=Zfd3K3n2kKocbDDKDpC|hX8^1N@EVQA zBWvvq-}kQvLGW!B$MeK)w|h=0wL?Uk0DK~X{S%6rcK~e8;=Oq?Gk*kd4Zsr-x#|1< zV{5G^BA84jw~aC9S2|$k=K$82d85^8eFXrm^)>*i)oLBj^A4E#$5IDT6s-feOGI0T zWB~9yuU4){eJ(7b8dSu80-UhKmP^< z0M5D7t0rTuHPgJd&_Y#Jp8rSuNlQ@ng%d&UV-p|Hy{4|bZiK6Ji zkv~yu{dPPa-ytF>rTSG>82}dni~&3h!*K6NfzfDmxh%^MMD)vA`^GsZ06G9(hGCc- tYkBfKf1PF7tAF0UBuP$+$cf`%e*@W?)CEPev}phU002ovPDHLkV1nNE0@?ro literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_003.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_003.png new file mode 100644 index 0000000000000000000000000000000000000000..12c6f623d74e7378f72f54fc86fa94ea4ca6df47 GIT binary patch literal 597 zcmV-b0;>IqP)WFU8GbZ8({Xk{QrNlj4iWF>9@00Fs4L_t(I%e_-Qi&Ie$ zJ#**grP19NvA7{FY`{W65LqllK@kN(-Of_9*~-S=pJAcR{(-ew3tM~HErbS3in$2bfz#|cPc1)hG zzs1alrBdk|fR9@14+~A}bUOE}wPLNkz0BBdw|mA~yVGj5F3ox1oXY@Ai0J#W0Yy<< z1n`8J*XATR=Z=_p%^1_`_xmf%d>=rXrs?)yu+|qu1Tn^+a~ss_^>LCUPqQrBk1-xi zCX;sn9-Iu)^fE1D%;CZ-D5ciNEopT37Q~_`vKqR7<#+dDYCNayheWg@V6vb;1xe8!~i1tDVyR};F$A5o; jnco9AFvjej%9s8D^?AftPN_On00000NkvXXu0mjf7I6Mq literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_004.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_004.png new file mode 100644 index 0000000000000000000000000000000000000000..20ccee7b9bb3e8954bcfda1a6c1490fad23dcb08 GIT binary patch literal 603 zcmV-h0;K(kP)60k6{1+03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00F;AL_t(I%f*wus}oTW z#n0T?U7my_B zBuTDVYtK23(*ckhV`hWFpaNi05-5sdzp6R_UM>HsR;#_3PN#1wl}aKazt*m!*X!+z zqUbcqwVUbp`$xLn?zbq4j<3w1)oKmL~H z=x;+bd7j_SvTPFo9LM?Uy6(M_X+$oH$on7&Ix7MqVu!)7%E%1Ks$Kv9002ovPDHLkV1h`d3&sEd literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_005.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_005.png new file mode 100644 index 0000000000000000000000000000000000000000..22ed5bd118935b7a73a1c41a2638c82b9b984d97 GIT binary patch literal 585 zcmV-P0=E5$P)N<@1Otx03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00FH@L_t(I%gvH8Z_`i| zg}>{(B#J;bwL(d}!9rnU0d;0%LtXd*@B@k%Dj1j<7*H7y3xbi6e*j`YDgzQy8%0Q! z3{FUm5vOnSzc zr@*xuu7M{?sk@CvV+;7=`~G79=cuYN<~?u)xGy4SL}Xn=9soB)3K` z5qSuBz}bGke^8m4&*%G##bP7R^EH67EWa%g42Q!uumNn>j!DyWMQi<5YklsQ2qN-z ziNJN;Q^uHk!1KB*&+~qyY5J(s>6|ylbREZ8HOA~Lr8yptPfVxNOS9R`Kdu>Ttwd4O zwbnMO-C>CBcKcRQ6z{awgE)={Ns@d_lEgbAvMD0__4b@vfU8AOG>f9>T5C@OuYBL1 zRd^VN9pDb|T11K^0$>H8*=$-7+0C+Sy8=d|(M6@y3&6A1-mbek46!WBldV>3kmva` zYwea&>T?uDAAkekDi8zLgCN-b<0ocW78ql+>$-6mhQ3njCa?x{fHxxYve)ZP`0wT? X02;O&T6DLp00000NkvXXu0mjf8eaBO literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_006.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_006.png new file mode 100644 index 0000000000000000000000000000000000000000..32aeb1aea21dfe123dcbfe3a4024f8de340d94df GIT binary patch literal 585 zcmV-P0=E5$P)WFU8GbZ8({Xk{QrNlj4iWF>9@00FH@L_t(I%gvIpixXiG z#eehVbCWK?$YqlQ&y-pSf*zuUS_&3or=?tFVd-C?AjpAWqln^vU~^a<+=+*XrR4>( zn{0O1J!0I1{W3Ndn?%u0r<<8KZ-#jf{&mRj8vTC%q=w?e{F4T{8t3MUT@u6 z`xv+dn4je-@JdAP`@a9Jj5pg;Dh5affw;OufQilS?y(MY2x`X0ye7ge53_Cmu9k;`AUGu=J0fytMaC@4E(6Cs&wKBjtLAxbffHp@0k46%G3Mclk&+~-S1Og$ z^?H3j48tu|eF9W~9pDVG0Sti~?RNXaAFUjQVRt^C-xQHe;H#>BoKB}NyWMWie-}Rh X8UnS-p92G<00000NkvXXu0mjfVW0e~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_007.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_007.png new file mode 100644 index 0000000000000000000000000000000000000000..d4029231c5930c1ac113b3a72476654595be0044 GIT binary patch literal 609 zcmV-n0-pVeP)WFU8GbZ8({Xk{QrNlj4iWF>9@00G5GL_t(I%gvHKh!a5+ z$Nw`slT|p#Z6M*uMlg+yqE{#)R~*<_99U{ERtKgMEv{5-#YP1i5d>4Vq&-+Mpa7x1r*928JW)vKyHqqQzL=U-c`R{U3h ze!suy`~H1G$Rz;Yo?JQSo>*&db~>HxK!B8T!5H%aKnUQPbM6a(j1Y1Wz%2mVjIs00 zX7k&$hRp)3wLJh!*4hhU7`~qg?Fb>>0C)x9fl`VB=rWFU8GbZ8({Xk{QrNlj4iWF>9@00FZ}L_t(I%gs_fh!as5 zoVUr_?4gplX|f9u0tzA`UZ*G)wqj#-m0Y8(tzaPt{xn+HDhhIiSI8YU7GfzVA{KU9 zh2VZK+1zfPn#(18`#uZ36vwUF>6A0f@Xf~n{~D@H==FM`*7^{DJpkUeTCMS41$4XJ z{k2-{wumePsQsd6BJu>ll{k(!O9Rq0-N(!?0W1Qz3E-Jhs^y$JsFb>^l=?iGOip$> zovmHZ77St6Pc(Vbn**4m3%maPs3gS{o;s^9P5OViZmdHx{J^T+cF z*4l73n|&;bBKCd%gXejd8jZ&LZS!a}dRi34ab`XMU_nIS`~GSehD#m*IOiTQb1Wj5 zPN$2^{CqeZUYI}XXa7y-+=6os)oS&Vh+GB$FUzviB63P={Y7hyAPCkgmCC~)2wrao z)a&(k%zP#Yf;Fx6cdhk}X0!Qq-fcV{M`@ZyM6^Xj_se!6A{A@xiPBXWW3CdBBuR2> z2fsu_8^)NG-wsJcJY&o?0M`L9fCRud0LK8lVdit~c02pyl#?Vmtdu$r;0S;X0I#Ab ddV&8EKLF`P++Bs-O~U{H002ovPDHLkV1iUX`s@Gz literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_009.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_009.png new file mode 100644 index 0000000000000000000000000000000000000000..b24cb9630029f91ec013ce4c7a7dd5983ae9b94f GIT binary patch literal 584 zcmV-O0=NB%P)WFU8GbZ8({Xk{QrNlj4iWF>9@00FE?L_t(I%gvI#ixW{4 z#m}3($+)|PnrULPg~5PW2o`qQEZS|Wg^1u+At=cH0g9cCpI|47#TE+-c3N0#W1;_n z0h7#q1Dp3|geWhG@7U~$WJk2qTi$!_k9!XX_}8U=H|X_xdy*tM4&bZz{!^#ZDgFx3 z@Ant9*7pEh05Vbwp@?jejDLDS zGA@eZwfFusNhqae^?H4y(P&)Q5fw#omEFua2%bOvD!&>V? zYaQY^{tV!hb8ck^K=P>f{)+d0bvm8Gdw)5KqLcG)tcl3T7_(G$zH{zHp64?Wp|$qy zF5O@-SQe3)h&-tRkW|jOO>6B(=iI)^9Eiw$0BZoQliX~zT3g1LC6X6OE|16KJKb&< zN-19nAgS^^e?aoac1At`I0Rt7QfeK*wPv$9{$rGlF&zNsNFD%SLkMr$?e;tTm-PdW WP4U8qm4%=H0000WFU8GbZ8({Xk{QrNlj4iWF>9@00F#7L_t(I%gs_fi&Ie$ zJ#(KVFEQCfLt=<13W~_{7g&h6AYvzIWx2IzX|=F6Hr6Ws01HvKTUfTzMiA^aAY|pq z7H@7o?#q?85Zsr0$3~Z3HxWBM<(Xm5nKJ|YYtXzx9LHg~Tt4Z&58LhbXCiX5`qV6v znODLv)ZY6o0GnEC!^}^*-EQHJ4zet}G?`4kI_GYR$YlWU0BjS{JpgwBd`i>wN)$!A zhg6L*%fsQ&8e?A1aTPIh&diSv6s)z!(llMuT7PF|84LzH*4jI>h9pVyl9>kwGH}k_ z7Ln6Rsa+z1_x`AJZp9e0uwO((iU6JgXfpGey$nPoAR^cA_g{&~*)R+@MC3dXJ*?O3 zUjSe{9)EPs9S0x)&MBo{6bgm6l}cs($glHw?>7Nl&-46Rv)Rn{+w|Vw7m?NJbb0~+ zh-gVEbpgQo-Wf$?4ZuR4=S#ou-e@#F1VOM$L{LiYluD(iwOVcQP)J(q=gj<#nU~`@ zuK(m(%zRZuiq_hV(P(sQ?jQ7ey<)XmeJmmm0Av8R0Ym_th%9zGo%etB%1M%31aLzs mbxK6~K@hxYwOU*FFYyD-UFJ=+kPW~90000WFU8GbZ8({Xk{QrNlj4iWF>9@00Fg0L_t(I%gvKNh!ar| z#=m*HYZ8gMC2@}sEWIiUb_xgAT8IdOm3UxdA=Wn9*@|ebh>fKdA{I8{p>US=YKnw? z`-k_I_>eQ%eQ#_MNsblUn`-!G_%ZV_103m?OeUw2B-vzU?_WJsCyvMCuJ8L_0GwV( zDG@zZNOg83&0z#^|dufp64fuqIjy5 z`XQy{G)?VvI^8`yRUF4xrIbJ8IKH>4iy#P2I_J(h=OQA4b52-mZyp8=27}iCUJ=pl zRZm11hNE7ucY&Ed_`aVv8jY{ae9jnirpBI+00w!UM@zw9Cf3^0TD#xx_pcaZw%hIY zw`EOh{g#ME^Z9(=IR|TP^X~*J^bEib0P1u)pNQ!9vcSv-v)Sy95aM|d1hZDFbzLdd zSpyK!3jiAn_t%1%9||E%RaM8zvTT%PdDrv2`>1jHrIgYpN%DZ1eP$-D^~Pe2y)4TP zilTV0wcf5hBxd%LBzXql27q4xjsx(RdAHeYjsS4C+x`6COU$xttE#F?05*jX-#yQJ f7e$dgnh*B}S1RFq0(-S400000NkvXXu0mjf5#9eX literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_012.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_012.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5ca17b6e58e65c456bb196b6650ea826637e5b GIT binary patch literal 595 zcmV-Z0<8UsP)B8x;Tm03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00Fm2L_t(I%gs_fYZPG+ ze&&65-90$mJC=)KaXF8GRSt|0h!C-~2=O<*iN z?6UFpJ)(EK?#GPHDeK*7tJBTbGxN+mz`r*7TXH-eUoDCvw$^?g3>3cyF-_rD}ba+ap)aODQZm@N@`%*;2Ld4q_ij^hkxvl(lxZ!_~c5j_O3 zB_a=^D0=-Hz+^JnVCLs#S?(~iCL*+2t-~M)juz;g0=QmP)n**W`7a8cPUjPVJph&K zx&{F1y54QB8iwIzQ55$9tT~RezjOm@?U0$hvMhH!&pRR_Z;@}m-!}jZfSsQ)r;)!l zpM0g;?H)E8jWGvGsqaA$90SM!d|UN}_W+=jT3ehfB6qB{&x|qelu|cDpZns}Bv#XRkVdj%C3@`sEWf7q)%ZAK+i->Zq h^;xgi`-=b4egF=m%rDY*VIu$l002ovPDHLkV1h%1_e=l) literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_013.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_013.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4694fe5ee6c765aac92f0a557f30adf167e244 GIT binary patch literal 578 zcmV-I0=@l-P)WFU8GbZ8({Xk{QrNlj4iWF>9@00E{+L_t(I%gvK9h!ar| zhX0vN-ntkummqmLlIE;LM6@|9g!9hQ#@5b81WOBhD{DI|3&GC%5W!AP3-2nilw6X{ z17o%bLErAnj)e*AU1EPz4b0=4fBu;Voas>2%4jsYq^k12H?&OBG<{kW#WsKq09(xb zwO+43aL)Y#a2~)r0MFa)_O~*COL<%r#a@zytSA%nt!{oOAbAMyOV+cK`^0w^0=B64Cq9hP7I)0{}mW==utPh!_C8_rqGP<{FL0 zvt?~Mon9?%Vsl~Y3ZM@FQ54-g-8s+mH))!FNRs3VfLK)zRsh!8F942I_4Q;jxp=~9 zqOtdW#~5=+L_bAjf883v%ufK+z4!Y`k~|s?huy_N`Gt~mA`*ybcP(IH(%!$O^op5} z2ZKRJRr5-v@<&7*fK)^tuf2nEIOndZYKNH*MWkwsxiFi}j;*z`v-RQr0wLR{V>b9+ Q4FCWD07*qoM6N<$f*oY}asU7T literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_014.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_014.png new file mode 100644 index 0000000000000000000000000000000000000000..4caf096c338e518e8b02faa918dfbc9f29275a9c GIT binary patch literal 600 zcmV-e0;m0nP)C03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00F#7L_t(I%gvHMi_}mQ z#m{-~WdcS=BNNGlDI7aNMuo*vuyh+i?6eTXKOaDBL>v7ATKNgK(5)6^zkt=kg31o) zj%cGXFlG?{K*D=3*T$7#R>Xi8e`1Es;X81tdd-J&fOl3MrC_OwF~e46|HsEG!4A>isZI2<`v0x z5xK0j-pcd*=pO;jxmzOgEeL{=q*F@0Op@elnx;35F-HJ=P)e;#r_){s@RNMOT6;%p zeXrN+ebHLK+wqem$wlP8h@6Py_)G_&lsXB3BJwnj;|E&nb5RuK?G1;+;TnLq08V!R zB65)A=Pb)|0O;rH}L}r~0 z(lp%!@EX8P5%~osdDvPzR7yQ2c^AO@x~^9{0FqurE&@1S6vcL)=htVmS*VnnG))uM zb$!eja~8n0@pxSA8e^7anWFU8GbZ8({Xk{QrNlj4iWF>9@00GQNL_t(I%dL~YY7|iv z#=kRncHD*R!h-v6ELJ6j#C8iYVI|o30wO^$FW?K?q`$0n5<$Tw>#&4=g0ldxd%AyGZ+k(PNJ85FdPocuIqla*8Tvn zuax?brs>mqz5eUJ000n%;magRZUKN&$`p&m?sPi60N{L*B+uIIc9hpUM_$lMl4RBM zJRShPmCNP#05XyfJkQ(d^?K+23NXgJ06-CWEFuQLXA!Z@X7iQfI9&i|T-SZQ(2Lf3 zMQcs1^<9!GilUF>@pv<@>G%6LwAKuQ;Ob${&E2m97|rMN=OU7kydolL9#AM0-Wp>v zk{tl={;)vO09dM2DjonFEe3#Et@abZKFR8$9()I&(llMo7sYXWGm4@o2Nu=7uV*n8$$vXfpTWddQt=CC9Brh3b z&dz4DZ4tTdIL>X~_ooZT===UI$u*KY0ItPx+_ly&1Aw)*R4SDoH5!erfBwW=Q{6BO zJ0kMXTI-XnE2V;JwYnlAJn@o^Mx*5@iZ)Mudw&BA`r4(b literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_016.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_016.png new file mode 100644 index 0000000000000000000000000000000000000000..764024eb8042a4278ed2770b590de989bf386532 GIT binary patch literal 607 zcmV-l0-*hgP)WFU8GbZ8({Xk{QrNlj4iWF>9@00F~EL_t(I%e7NIi&Ie$ zJ#%kfe1ax{6c?W8rf|Vs*haAu1hKTW5rq8%7Ta0*1N0xLm0+V5Dl8)GVxt5LL2WF} z3i9UpK5i02k{9mXH&(*3Nn{b7a%Rpj=Wq`2uS-OZS!qOKQkx(f$0|2e{ zcDvpFsg!z_fGo?-0uTUuiwsm_ z=FiOhEso6DHGG_^o+IkO`hkL tnZ;WB@~^^G6vgSmU~s?R@4v(Us9%NC)49{SK5zg4002ovPDHLkV1oJL1Tg>r literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_017.png b/data/themes/default/images/animations/micro_circular_cooldown/micro_circular_017.png new file mode 100644 index 0000000000000000000000000000000000000000..158df37ceda1e2f65e0eee57d51ca4d8b2b3587c GIT binary patch literal 621 zcmV-z0+RiSP)WFU8GbZ8({Xk{QrNlj4iWF>9@00GfSL_t(I%cWDlYZO5k zec#N^9tV5M?FP09oS-K$BG_02MJ!{bkix>k%0Iv^m5rs9*vD1`I}3lLR4mej;DSX8 zi*<*CyPb7!LGE^EJ{u20vX_9qZsvRM@#g!!0hWN7CH@u6Ohr)~8e^U@vp9|0S|lQN z&XsjtZx==Jbvm7{FEgOy7o*YWqI2$rQtED9*8%`KozC|#46mG-AWhTj&bb2s>qPVg z0F+X>@B2@(EE{O8-y})mw;Ci#;!7!CGxJYt?QNyhj+C;IQoag;;5`w=0JfqidfECG zt@RzPHEXS}0zg$&u`%W?Gt&{ybFK9}P1DsA37GljU*RDD1VJ$B_xoE!#0yT-G*1C| zQp%0C9{dI{84icDWgYi@{~Q2f=CIA+8-OUwvdtr@{5;RM7iVkjDga0+4_e2VW!b(E zVr4d)T^kGr#u&5XoZAGjX03JB+IK{BDURa-5!n-CWabCVY`fiVRF>tVrfKe5YgdF2 z_pG%a0o-EdhYNA*BIS90-t#6K-9d0G7r-q_`Aud7fVdFt2Ia(KJm}A_C_;85K zqvxaB?P>sK!Z54@XpT&UWmyZ1vBv-+0E=-PS2^dazv8N@O3wL`uIo+Pwx>rTvejxC zLWqtK;=66zC;OWBL`q4X=dFifco_hM5SN4yxs>wUP%2bay$PTM;6|lV`PdhVip8R> zD9U`PR9XW7##oz(wutBf5glQS<-1larTid-*l08w+O~1igCID*L;f8h1X-4KW+2Bz zbP&M$UEIN);>Iu-XG)>o%Bsrld z%I^`hZF`zAHV5EswOV~O5V&5i$3!$oL`&szc_WIVDFCZUl1va${}Ns3cDpYCY%#`` z_oNk36iuaR`ZP(B!vMfJhoUI2vn(qCI1L~MFl(CTvyru;uQ}>APR|0!06Ze1+qGKl z{U7OY6h%`(5HzKfWZO1*o_9|OQT}T^9v>h71Ykzfw6BaYaL!w%X*&D%gX}hL|J;58 X#bqpxf!#3`00000NkvXXu0mjfz7Rt6 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_001.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_001.png new file mode 100644 index 0000000000000000000000000000000000000000..adf2a73ed40a5dfb7442978e69f2539cb76e4cc6 GIT binary patch literal 769 zcmV+c1OEJpP)fx~Hn9|}tWw#Dg_R;G2!j3vRw{}Xfrz3g79q$cZf0g5b7xkfOy+Sc zoWQ!oeV|3Axp2;z-~H~HIo|~~%j0=orQL3C|F6(itCf>d)}@rMn3;OjDuY6+)oNbX z_1$qCk3>>8wr%^e zrfHv-tU8G!LwkcGI zQX!%-X1-P~m%psXrIaRs{OIWDTL2eK(_Ca`5<)y@=I;QG_EbznCjq2H^r$nQ&*yz2 zI%OEfe$zA;vszBmv$->f^>`P6CCjoJ-3ik)-w_f20Z^33*-0n+ftvt~LH}=N zu4n4U`?ca5fV|^4lY@YXsFZEs_XIQZy=<*?#55`8tsn?qZ@`|;TJo%~ij|d>+pShB z2LQhB?~_t~bX_;}Jnwzi5FN8^JF#v1Q@3|$8-dH^@>OOY@qPbp9LMM4I4&?V6h&!v zK+j}D6e)^Q>HetN-&D8T?WrV5E=5taCF>>PIA+Ijt~2v#04D(a1Ta%97C#JSLQ={X zVHi#^GgMVwA0Pl=054Tly;3L?7KU~=&+`l-nh(QphY+I0%(GDxeO+5yo12)JkpE=v zK@c2lHk-DTa$%VF`Wn4q7;{31JIp-4DelH!?F29>&LCed00000NkvXXu0mjf4pvYR literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_002.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_002.png new file mode 100644 index 0000000000000000000000000000000000000000..e28c86ef8b96dad70e0c20fc0fa4da307cccdd9b GIT binary patch literal 757 zcmV0{!XNl-4 zfDph8fXA-u7Ob@%02pJ&q9~foov{#N0>DEeiUC|29v*%|L@6^DwAQojc6-mVc3@!O zYo$^dBO+eOaI?_G#l_74?h#RJj5#(sI$B@Rv{TkvpNLQ>6cX2U1ra^ULi?3qQV799 zh@0717>3h95GbWoJqUtx%v=C~Mx${g5BQl7f~Ax@v#~gi_bH_gt~^^>TDl>Guu@8Y z)#fqtb^z_6p&^ltmCNPXYPI@4bNmAUrD=L{RWK2`0Gx$|g;LHL|J2(nYi0Zbz$V9W z4&?z8(Q*k|Yt8XfBDy#-GV;3jP$>+cUtPtW=_P*Q4WOftL+ayVLF#jIWQmOQ9aB%SDvZm2!9A)Mi00zLV z++Lxzo==iwZ?BHtwOZ}XKf9aOy54TL4|tyUvD4|?vDR*J94EHc)_vcf`)@;!qUcNz1mBfX nQ|ta)XsxfeTCJ@c=1=?uea}ahOFcf^00000NkvXXu0mjf*5OPl literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_003.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_003.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9425b2a379daa0001730c38cfc4d84b36fbb68 GIT binary patch literal 736 zcmV<60w4W}P)c%J7lvjBizuh&#c-A~i>+O+p+ zJ6NaFsR6i2L?;0_+2a_%Mn0dfg<)7XP4k0gSx4puyRLhYnePJF3*ZMczb2v-z(HNt zk1;dSG=*uJn?!WjvaDeIyuO9f6U_Vwz)xmga~$X4n6H*n>Pr}g%K(rh$#O22TLrMb zt;eqGE)dZ=00p2i4g~;az7xl>Gq%?NtW9$MQLL0|5>Xw%E!(!=kN5iheholF)3lMU z>pdYvpP9c2A#TqE6Va(``FOGyMNzL%DBRO^{bjLOd`m>5%(|skt5vGk>%o>ukWxOA zQnKfHyXT2vr_(tvr5ts;-P5yjEHm#G<^c;KN&xaoDQ6b=34o*Ja@n02nlTNml-iRm zN85UA+xF8eR&@YP0ISSg8w>_Z%xn`8Pt2s5DStIH$3YOhOVji~k|g_-Qba^B4CDDE zR7!akKm)*=N~O}B31;R|9LI~ye>jF=Y%=qeiJ>*Kk0NB|%QNGa)dNk_jweZ?3n8GC z5>XVLky5q+>?fiIGoJ$x0=Vip&iA?Q3g7oj%=|eF!xhsse??KW>#zE;`b0#Rs@3Y( zX^g3gEz1gg-}iF4oJB;}0el2-2tbXQr4VAHTCKMJ>k=Ohhc|rRf3b6ZTfYIrnHMZC SVGC&h0000}JlH-^_fR?+oyNbcYO+L^86pw3O*|IwK^%m&@gqUaZ+{o+BA#GMUFigXibx zOU9V%04@XA)m;t%ye4@knM``t+9?tFkjZ4mx9&CDL95m3ags9tk^mL}JO$7ck$ohO zs_MA4cEk7mWHcIG=-(d-UR+!})`cp7OZj~Mfrzww@p`>JCL*)G?WQC;Xy6%^qz@q@rZnwXMfwS4{ z)sS+Oxw*OMKq*L0tLpwzsq}f68uvW!e6?DwrBbO=18-a`7GHG_h_0`%r>(UkB-6&2 z1=n?}A?$+yMy<8Yf#9x_ZZ#SWvDOkmq+82R09*_KpZG0(Fj!+%ZEbFD7K0%87h)5m4Zju*7A^Dl?$ZjDCcV-N&+Rh??JT1Nnk zg`_=gj0R4RKN$2nuIbyT$}B5!lK+`GSS(j?{I`~w(DbKW8cFt98QuXj^o$_0Fv>p;Ej!qX{FRTlFzfCold9NZnvMt zaXgczsWA{tXIHRNYPLUokd=*6>I%ujnx=&SMo13zrC`^t@H}r)(=@x+>(#2&>aQ$# zv)LTBEUS{HX@%qolE+14&2gOd9b1f~PE!8+1qp)S1<7duJrU^w_z9q{>-v&y+pUbY zTmo=aL@t%f<##)tG08(w6jcZ3^7(vIDRmn_Dw=iMT&`;v z#-}KXW=OvDeScL%o{?;jJSrk{0OkR7MP#8^EP8tuFAT#PfJcQw;YOp;mE7< zZ**N>7#|<6{nfKcQheV(DUi)s3@0-uee0gsM*olpxtrRh{9RxvMYdxftiYk@L(tm*$78V8_$C&_d z3Bb@F8-27a>rt^-yhTK6Ti|N7I!Z*Z0F(gK0L(CRgNXJ57z5xk^E+eAsdBlz7zDw9 z<2b2oHrwb4uGMP$wbpL|6aidQO5LthDnHwL5Cj8CsXGA95Yc>JU*EJb=7JESn$2d9 z^t3=qIpzC4`@Vm1Gpp+L`twGk!9frtQc8}ZXtJ%@oy9>Aj3}i}0+=tAN_V>f!!XW$EdqGv zIL<@Yb(ebdx3jXca?BWWo`~M(a=Dvb!BG_L(^}81udfemT#qfwS{6bq4h{|;+Ro(t z<*^WAY;A2V)6R`CB!o}^Ui9d7mxw+9`09Dycu%lWYTOt@0FX+hAcT0GN~KO`G8x%* zx`-wKj5707r)G6{w%fMtR)2s0H?1||I4(Au&0XD~zVDv{a07q@aBtI*4#V&<5xvai za`&Z_*O~bWfEd6ufEglMHO7n((OCe8H%9%a=XsyD^$1BRPcZW&0Ix$b0G?>Aua?W@ z&;RsnGBZgj4-(OFW=@#7X504c@bK`LonL25@e7bW9$vled4T``002ovPDHLkV1mD_ BQ5ygN literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_007.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_007.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b1de9717faa33ae0e291c83312272e7b5b982f GIT binary patch literal 780 zcmV+n1M~ceP)vwt2xu1LP_uPAcbuEfkn>aHw(;?d_;%Xa>F)x|a4UGxHq) zJ6D7(fFWbd)%N!G;y;Z|W|p4k9T7sbG4mE?{v1Won|i=?{iYvG{67k2Om}Pm0000< KMNUMnLSTYcolG47 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_008.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_008.png new file mode 100644 index 0000000000000000000000000000000000000000..e605a261a7eab8944e2837eb99a1e219a8109d60 GIT binary patch literal 754 zcmVNcT2q#@GSlazWY zD(Io&!J}G~f+sx*;#Da44|owoJZSMM6ffQ^O0gg)h=@=u_0UTQ*?Ea=c0&|)WA=@g z7Gkt*s@Kl(o9}&ZX5P#^;J~(wdL@?2<&4&P#BrQxczD?Sm#~OvW6U)Ga{!KaxK;qX zh@$9Tu~>}uC0wu9y*Q4S089b+3E&NY3K3;R@Bwp0}{q z&9 z$VC8S*4l4Gq#efz1_lPkb?1S;zP|ZZt5vYpl2Ynw7={y#Mq|eFy!B3Ak|eL&?e;{H zB(Ak~8y-rfQXAIV+W?@p(I5z>MdX6DmH@z7>%?(9nIy^b#>U1>R|zg@t-mOxTHBaX zN|aJ>bGh8&Z^8iPTdme05kYH>R4P?Vr_<|1RCQhVN2hQ$n=N^scgl6$XRhl8L_AOh983$Vn5rA6&nj-RCDYXPZ0E~;s zO#nv$d`_p+=W@ARV_!?i7&9v(4*(qLZe;+E+wJzfLZMLqr?n{}RIAk{t+i)~C=!us k6h-ff#bS8y>-1#50IGTm*4&5J6A`l_I(bbtwA!?u(D+<)$TR-n+fW zC6!RyCf)mu_nh9qKlX* z00|+)#sAD>W~$fgFIHAo#;mpJwV;$TP9~FYbGh6FBC>1ewOZ{SGoNeMW|{dA5&b42 zpNPVIK0lTK0Il_9W*!wnL{iE`dsdeKz*>7+YkdR2^glI3O=HY~IF9ojBFjREeaU3< zW2a(Kuh)+QkgZnhAv2#!rBY{!r~$xcv)Nf9GM!IdTwHu&t(`E&WZIW;I-Q*TFm^Mh-R62 ziHL>)Tmeu3@Um1YT_PgxnV6YLDK$<+w*eeo7p?-BER{+RHX`lmcVlL%R4PN(+5rH2 lg%Dqh#p37Ax!%E+_zT6|PpwtkXbS)U002ovPDHLkV1lLTOS%96 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_010.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_010.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f73cd93e380f10a37dead803edd5173bfa2f4e GIT binary patch literal 756 zcmV?yR3pA|WJE z)CdNnpq-7CNG!CmwY9Mc_)&>Jz($Z*YLiMVQW*>ZQQ}7tEZoi9jASx9Gl;vh&bu~= ztg@SItaHly&OLC?yXOMC_#cQ!u2QKu-Ee6;g75odTI;(2CIJ)yWJL59z-*Evj|T<@ z8ao!QR4NB@x!jV7^Z{4~@QsLU5jg|E1n>dCl;3P?gx8i%AcZ->2b#?VcM=PQz>epJoY&M&x zvn+D}z;T>+g+k#J5$R6i%={X_MIst0l}bySbz@`nV_NHlMx!ygDGC5-nhr%#bZ;By zo&kW?`fO{_0DxRB_Y*+Xw(U=rWz|j7gkc!aTIaRaH{v)RY;9U!Uq2j%;h2b602Tp& zh(=pECIIB~`4z`;E^PSrRVlUCvaD$$ItSn=fPJk^N~xJDoKHlED^m>{CQQmOQ#-Rwz{45exMDoxXae?E%{N~z4UtnYeEEbavt7%42v{0|tPbj78 zN~yUl%dU3fZ`v`<%)-p`p64BDlgNG%p)d@OM^WU}YPCCEMOs91%>0yyrU1kuGD}2n zM8qbd5dhZ!JaJw3wulfB$&PM?=XuwO=pleZ|2%yWkq55p&U6Y7b#pta)#{*O7~_Uv m)UqsFDVNLdw@TwK{=#p;d@c|huRmb`0000OG3kD0000TbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAXI2&AV*0}Q14_VZU6uRVo5|nR5;7+l`&`(K@^7nH?z#1$X#wvy>k~4 zDRnLg0>^dTQP*{=X__8k<|zQjiD-6ZW#v#`$#EQyhhaF^YPDKgYt~xx>gsAUilSo! zY`WR4ebv{BD2nPyk{mR~{LT>(lu|RLQt5I(xYl|Wz!_#9_B?NXn-xNc5vA0mZQD)D zvOq*&W&jv(Hk^Q#F|%m5+ha+ReBN9WhT#l=A`w04bUI6Enu3{g1Hk~=0IJL^h{yn# z>mgrsI-LnAU3p_4V}wX_`Vxc_R$N zuW=lo?+F${Oam}PbhlQk6?=gTg~EcAvPML|6d=p80yFP1#<)Gfl}cranI8fe&gF8i zecwOY3oeAXC#C!@gkamYmz7eFj4>m{V)04ek!EJ{eSaFjbpR=VmjD(47yx5Ji2LPo z`Ar(Wn9_XIWMN@X_!rA zNnyk;f{2Bh#>S+xu@@T)tt|W#RHC3M6cH?95wTKCKqLeUi-0GJL@#?>lEu4tB)hZu z+U!BpyGtzW@@;1J?VAtZeKY$8*wz1*bbCosi-;|k%W2njp8?nppa;Mk5t%L&3Qt9Z zI|A41^#KvNV67boa8M~Vk;~<7`o2Fwax_URCgW?8mpsq=+7Z0Awl-v~y&uPMK8|BA zj$;h~>2!LgzrTNE>muLxkCMC&;39x3$s?ZUEpN?Ht%{eg7rNGbD#S&zt|t zapEov!_bYQ2pP{j9yP|yJC36} zfgQ(ro0vMWHQsK)UI3o}AeYO{0T^y`a?UHI=3LjU0&o-XkFH=5`AG5*$&`ph?Oa-G z?~%0idi`;;*?gabzjQ4H$r%6{-}g^<{HsJhhhaFlzP^4nl}bHu9ET*IZwHg?UkHMrY^@#CT2}xpDy623F^@8t%=c}Z z(9+VvmD_ZMsjYebI^StIib+?vQR#x_GY-|hxs41lui^by4 d-HTzz`UO6&3N}7;odo~@002ovPDHLkV1ln>Mlb*X literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_013.png b/data/themes/default/images/animations/mini_circular_cooldown/mini_circular_013.png new file mode 100644 index 0000000000000000000000000000000000000000..f8944e1896856bfe215ac2f6c81b26e9776934c3 GIT binary patch literal 734 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 TS}I-esQ?bPE;bETzDfT9_VW5? literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/room_touched/medium_room_touched_002.png b/data/themes/default/images/animations/room_touched/medium_room_touched_002.png new file mode 100644 index 0000000000000000000000000000000000000000..0d005086c0d69cd367cd8065cb41c635d2f317b5 GIT binary patch literal 5048 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 I+CA=n09GtD82|tP literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/room_touched/medium_room_touched_003.png b/data/themes/default/images/animations/room_touched/medium_room_touched_003.png new file mode 100644 index 0000000000000000000000000000000000000000..409a5b97d83742f15ef0903690133ac8a4c0b269 GIT binary patch literal 6366 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/round_button/round_button_001.png b/data/themes/default/images/animations/round_button/round_button_001.png new file mode 100644 index 0000000000000000000000000000000000000000..93f850ad9ac856a0b550c27e5d964e37fae392c3 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP`o0O2U=DS*7POOQvYFDEw~E+8Og|j&Z91*F{CKZr6mgP1mX}DozRNoOx2>a_4@X znKMsqa^Xl*dw!??hd|Wpp2dZ{fuW*e3%9DZC@5v;swwH)wHT_2x?W5cyq31~ih|vd z43n;NJM%v(9(!DP-{kD_9|D(Oep$Wl_1+%>n{VdW&-Af7(w;FZ&2;|xk2O}$?{Rh% ho#PUPgayNqAFRh#Hg27jCRGX&@pScbS?83{1OOR7%Q64} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/round_button/round_button_002.png b/data/themes/default/images/animations/round_button/round_button_002.png new file mode 100644 index 0000000000000000000000000000000000000000..5816aab696cb3863d49200903ef4c1523ef91615 GIT binary patch literal 641 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP`o0O2UazXmmM4*stiEBiObAE1aYF-J0b5UwyNotBh zd1gt5LP$ocg1e`0!21-{JO&2Fr=Bj3Ar-gY-a5PLmV?NFkCRWTJUjMc?Io^8k8JVS zD{D(G>iuGB%D-AJxa%7G2i_&Ip;ubJa(_*_tTN;0t3`f0^95d5{=cfjZ_js_g~=gM z#1)37^%$OeSnwm_tIV2LjNg9$O<((U`l{y-LiqzkjwYDRu65Wic=_d*%M~_t5o^Qr z1Ds|0k8kfj%5=z}rdKLy`|YEdvkq15t!tM`+8N^(l|AG9^ZWqk7(H=+P1fh1f2wA6 z*qpy9`$RO0W9bxTh6$;W%?b<-9D)m54UQFPsxmN4NsV;pF0`5}x8<6ck_-33DOG%e z3tBHkv3qGUFiZ$~)Vkwt-a^A;PCqgf&1RonY|E|q!AZpRV}`jC$HRrKH}basmkSK? z>JwAqXu2}b^0{hMhXGH$ZL>gz;vx+%$=}vZ?|)aAFA7`zw@ikefx+hd?!>ytXJyJU z*N<`+?u|3PUi#KeBtx<7aAKlj&HeKiohR literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/round_button/round_button_003.png b/data/themes/default/images/animations/round_button/round_button_003.png new file mode 100644 index 0000000000000000000000000000000000000000..d1315ba8e27c513fa87bd96a18596b814e1a9288 GIT binary patch literal 829 zcmV-D1H$}?P)WFU8GbZ8({Xk{QrNlj4iWF>9@00N;&L_t(|+U=UXYTHm0 z$IsR0m1Ri|fr9e^hP2I~#gHvSP3RVqDRk)6_vmZ%3A%O510>LNC?$mw>|){I>g_j((hbu5=LqK@bE%5ClOG1VKD{dc9s%2=S`uI;5ft zNRs3O0K6AMxM)Rqp7*rd?Y=lXJTw?%uhDJ`A;g=#y}fK>Vry zZf0CA%jZAbR`u)Crdt%%&91b;fA_jwj zwLpY|PQ-XTw(^dO2lwDG#8vC zkftfFjtGL_zgdtZ3AEeoGAa?aZBOzU=NytGxke>oX=y3SXNF;bs;am|l*{F4K?Y$M zMyN!TN~MS~HkVnJ1%_du>xk>T2-~*Pot+(Acb1&VFo;G9FPR_iw!jh`q*sH%E$aBu*do15Ue?w2BKDfIt{IF3JUZ*NcQ^}5D6|5#)# zg?7a5?rxxI+FQ%AzA?t$0d|g#jvOEef*=TjAP9mW9xs0Ze=_?Wo9)lo00000NkvXX Hu0mjfmCWFU8GbZ8({Xk{QrNlj4iWF>9@00US_L_t(|+U=RoOC(1W z$G=tG)6;E_3B$Onm|^#T=PzvA{>gEi$63}vvfSLZ?JoeV1E2tQec%7AR;&40)Izfq!5I5~b90lftgOIs zoF|&5eZ}2K^m;vGeSJNdoSbB)X|koIC1%_9tE}pw8Fs^q)zwuR1Ob8|K&R6|r_*`f z?RG0%i3r2+n~jYP_`Z)gju8X_+U>SXDgBxo5!ct(A8&1KeeSyMyI7JWSX)~|k|bYp zBO(mLx@B2NlH^YO^70bf+uP5$5y2R%@9gX#P18H^IF502bo41>Oy=c|Xmq>X_kwAf z;^5#wvTge@7a|T151)l$c<vvbf-H9uT0@F1A$f71W zi%nat*4tjM*Dn+brGJ0>5kfFCGlO!u{Cg&clhJ6Tl}hE;dcFRxD-=aRv)KfIU$_zR z&wJtLX0r)ZRiSAbR8>Wz(Qpnw_1!YBU<4lwx^#8M>~&B!sX`x)d4G zZnu97!|>aFzmHO>l&Y%QoS&cnjjN6TfGCQ-lO*Y2e0&^=qWqARgbxDCvSiD$>JSJ7 i0)apv5C{Z<9P&5#*-SvnLW~gr0000WFU8GbZ8({Xk{QrNlj4iWF>9@00az4L_t(|+U=T8NF!GO z#=rMwCNr6ky4qs=2Z?(SQ7>(U4Z3L!=Fp&r_S8!cg}rv`z4XvauX^xa3qh8G1rHXi z1T2=~u4qA%kkEo6*h~^@t4@f?Ofs(*UAFD+CMj)Fp6>^9nR)OYKfZ5xZx}!z5C{YU zfj}S-2>yLYJ15U(vpONtpkqDQ|^>BN8+q=5DidwA(+qU624i*;|adL7pY8b|Q+>6NNavlI5FD)&>wr!Nl zWmuMltE($mmW5a>213ZE+>3A==Yzeyy;t}5_hDJqpPp4J6|AkT;q>(Mb;B^;=Diwk z-K62KFvd`+RIt3f48~Z9YY`V07Zba?yU!H?0Jd#ob8{1fkbB&U$mMd~>2x~qA_>>k zK{lI3p->3&oQPmDnS|pw_1+^$r_-KOeO)~9=C}| zBobhZ)lI~~!2!P_4i68betwQjCez7VBF=Ta z@wyX2;C8#g82gP*wGmx1D8EA^`2US&bT#C>%Z9fnQG?a#skrBwUyvL;oO6lX_;bGLP2c;Bu z@7@J~AGj1DNz(U&gM+A74@xQe`}-Y22%jRnUhk8EfdT7fB5t)DG&qfiv(xer|~7pAADK?r%mwFq6;9|eO! zc)i}gy)yMTA13?>rvQ<7hMrP1BxMM3!Z!s*2g!S;(^d)x^Za zFT7U+l+w>9CnwR-(E&}mi09NS}vDyeKIX7it=V868Wj+DQ%aCNF=hVs_FwuX;ITO z0LZJV`c69}{4YqQQm(D7tvA~7OQAp@5C{YUfj}Vm&-er15VMHhR8mI(0000WFU8GbZ8({Xk{QrNlj4iWF>9@00jU^L_t(|+U=T8XcSi* z$G`8-yqVnrcemBuTteffjV4m0sTWJZY@-PYN)EO)U_fH>Feu@QdrZ=bM|G*Zwym3WY*5rSv?251+X- zO$ZrmYHFGayolM^**7@nc>r$}3I*J}c@vJ~ptG|Rt*xyfge(z4-cO}ce+E{BQi@oX zHRgF<|Jk!=ar*RWc%Jv<`r*Teas2pk=(>K(w(SqLZ{Kb=sy5n45td~Q0q8$-<_u1q zI)!Sr3eWSN$QT_R#mLAA0K8`y#&?aZjW#e18i4Qb-@lJ@=gvV&3EQ@xyjE9NQLR>S z@#00~^LYUHdS+%O5jYXWV)1hT>EYpFR4NtNwhbxeMp39#D)2lH!^6XHT{oud`Zs|S zA*DPrK0c0oJ`cxnpp<&YCZY8sRqSy@?u<2cD6%!uUD z($Z$uqg*aWEz2@}D?%y7mzS5{tYHyw%8~_DV6kdB2w!g zVpH$4K5YG)i0SF+tur$-n|*wTWm&j$=Z=3x0I&?h03r21?Ndq-jYc7*T=1<3LP#MR zjc!T=Aq1vrf)Fz2TM?N|W+@VhIGYgx0H$feG|f3bw+1v#E19Obsn#$IL$0l@S-uuQ z2zeNf$Ln6tIY%TCS#b3W0C8XF>lF?J!HPD2RsN~xfff^&|YJ9h%Wcwj{A+qdslBodk5yLT^y5HG!7 z*LAeDwPD+~Z51hHa73)P$Hc(E08G<-p$yJBG)=?Nqenq0&Gq*7t^`fQ52k6#!NEaj zn)ck|lu`;I1P&fNh-5MeUDr=Gs=kJa$Ye6VYnnE;XU`tAwY9-837z1MrLI@a! zfmAAm?(S|d#`0ZVT|Wg*#Cq?app@D}LqkX;63{dahGD=k3}~7L(=>7H*fD6DCUspu z(a72w{`bO(iHR?4+x~HNbroY{W4L|$HeA<5M@I(+1_lt1$039m*}s2(utfmC<;#~( zx~}`>^Y&+qjrR2Pd_o9OjjV~j4iN_q9QevGjL!%m8-Hvm3n9Mk?d|=z(Gva>T)A@P q?WzKf8MkdTm&kdTm&K=3!bk^wt2gvYc10000WFU8GbZ8({Xk{QrNlj4iWF>9@00u=#L_t(|+U=TOXj4}l z$G_*#O>WyolhtK5ZO~HbD6UopY88wGT4TeWeDG-xo1hkak%6$WO}B@+F%ZQEu{ef` zb(A6c;0lUcl`^5zb&Z?0_-Cd6^2eyHnwq4!_nbYfx3vC2r@8e;?&mSN_jgY|`JLbS za}Qu+V`F1uV`F1ulMl$NcxW=2^l6$F0`M+?cchdtO6lK1h~IoZ-=)`H#PINNDP!yt z09yeRJ>{}?UDrRWsHo_9Ek(p)v1I_-0n7t{v9U4q_xEFPa1f=XrKqf|gwN*#Ap`&< zfbC^vWxHQ15s5^iK?rdIz#D^ugE(;D06IE4Af=pfT~$>TwrtsgKp+4BkWzl@^Z7n~ zEkwj(vE=|d0XU8vIf9m!7U;S@^}UqR$bu>A>+7*=*De$n7X!doWo2bw7PN?DGU?JZ z?N2FX)!w~((bm=m0MKu!)L_q^J#f3-x|A~L^Z7c>Y%4W0 zxUTE_0aP74co1!EZIDtTlgS{H$;^-d073|4vst9mX$T?E+uMt6+qOZ|G)4$%9T*t! z6r_k~G#Zdneh`U7aQN`yDG84Xc$Dea_4W0krKJS`{7$Fyi$cwa&(rBNcI?;zUDuJ# zW+8-lt{V**LI@l^dK5i9J&;mviN#`X6_kj0JidYu(s=y%aU>E6OiWBXGZUVKA#eZw z{QyubrTn;{L`W&OXR}$fwzfhDfm|;4LUDu;&@>H~FJH#Rix)u%*&2;Tiwi*((8#;seoKq*~c zC|zTHB9Xw=t5>0E+GDfF7r}^g?%X*5cwb7XSY8Anq^YB$V@6u%Q-qY#9goLXSz1Iq z9FVl&5aPLq%jcC5iA0diW+A0~&(b1<5K95z#*G^gccFhz4hS*6FHBw4$<*wn4Mx!$to^Kf=BO?Hy z#9}eGl{3PfN~Na8e=`^#A2*imE-QLXgYl5Q#+Ka5&zyaz>lTbLEL*nB_~;i)iMx463Ixxn1gTdep%ZpG|^%$iT zD^{!kr8F*I2?x4=>($z<)1?jkjUOgvpqIan8})+>FJG7lSeO4}c}1P-wiMMYOlKJ2~gSYMQp{ z;lqbGb?Ow(pFjW9ea-6XYHZlB0p;c8AcWjeRkgvakz!Uw0KkWVo&z?QIThp{= zDW&?1Li>x`?f$U7zJ7SN+BfTm(l1=NP(D6BzAKl@g#f%gtx%>IV}Gcsx-$?6oS*G> zy^_=U2A!Rq9w9_+CX*Qog+l$Xv9YnSv9YnSDO~;qWfQ4OEG7tP00000NkvXXu0mjf Dg;p-- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/round_button/round_button_008.png b/data/themes/default/images/animations/round_button/round_button_008.png new file mode 100644 index 0000000000000000000000000000000000000000..57ae865ca551a8423434c946276b6bfd100f07ec GIT binary patch literal 2029 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00&V?L_t(|+U=WdXjIu5 z$A9PCbLS-)Hp#@87e$&Tk<}GMQt%~&FitSgHbwCb%a%evbZuj?MQm#Wez5&w%RYjGGBGnobYhInWai#``XSz_+OA!j$;`OS|J$7V zGG~7GdH&~|=iGsU3M#0ef(k0Apn?`8k?k*>n3yOMLWH!|4MK=|pcc3fj0qvegb;tL ztgO8Gg#{6d#cH+I9l&>hvKO4HfxiI1t*WZ}lMurBLV$=wB7UXR+rV3ZblYcVXSs9d z4$)|ol9CdZEn7x;dHM5~e=4Q?W@TmN)mIusG#Y&a_ye#8ARdp?+uO^TGiR8XnD~$L z{eC}9O-=0Fxs$bP*SgIK;6QbC_3vIu5V2USU2FXT;GdnHrK_up4?p}6%d$S#^$iUT z96EG})vH&#P48D#Ref6sp-?xOnj*ot>Q|lS#DJ zq*5s?%R=iHKUBjoFijJ~FaT(6ZRN<3BQBsHS65g6Dz8D@xN*Z92n0R>ULP45p`)XN zL?VIXI3yB@{|VrkjtPNjnwX{u!1nFiIe75klfcklt*NQ`b0+&PGkLS(;^KqA>yb!= z0|yR}NF=aro7vgfmxA!**OE*oNhA^g^z`&_^5n@UjKn*)Zr$?bC5TuoRx5<~nd3Md zK75#|si|}%EJU_#lT0Q7=FK<5I1k$1lTw}K3<*=Aev@oW*8nG#&MjCd&6gqA^?{zU2>yx zQ%*rdqtPz`HN(ThXsxpX!Ho)l;o)J|NSksBLI|-5;Of<@X*0_vh-=rbxlNmLof=;O z7#bRSri0m#ZQI1=KxnPY0j8&? zvkJkTU;#XQ_|OGYp38^`rc$YwUSekw#MIQ33nG}yhzPnJ$#q01r4|H2E#%^%p`q8} z@i@7V3nCtmbLGkvJRVO)E>mOL=kuj2O4*cK*DNY30>Chg`?;J)JoI=x>Dpp0R9sx_ zM##NfMnqf)K_C!FKcQ^NjX)QKQfe}1Af%LWfYQ>^bV)wjAOe8^fVOQrcM)M2#!Z0w z`ub<`HXAYw1Emy8mMlRC5etPvRxUka0HCg}F6$tql+@MLxf?=%&*>Cx~()~P`QxNU#?f;Zg{v#L+Qc_ZaQYtGx;ex2Gt#u>wuQ@Nw2q6ZA5VW+k zxbD5^CTW@`fk1$Uh6aE~Qp%6>0mQoi>({T(3J5nELZJ{!DNNJsU8qrJ1jLptTP_=h z@kuZkWX+m2NGTU>f+d8&)TSwYh`6+?AkTI`IM;z zna}4#2*L8@%V}w8L2K>!{r>M~@{K#0!O+!SulIXeYp1!nnby`;gb;YW-v1khloFrM zhm?|FFvz}r`%p^Z@pwLHX=xeA=u9<}Hw%SAA9*~UE`V*@wx#{T=kvX^XBdWo&*#H1 z42p`1*uQ^2B_$(&ttho4^6j(fe{J)uzOqeYv#FZKfI+_`i6QmNE00YA*|mXD5( z5{*WgoSfv|y?X=#0hTUZN<~Elt5&U|tnA;fYAdDs{C@wN&CSh=S|!d(N$LFg^KV#| z^>fRzz6N|Q*OXFzYMSP+!{P9|S*duDMGXuLR40?k{g!3511lWI2|RV!5<)}`!?>c9 z`pxFeoBOlbx2*qP<9RT^O0D&z<2W}mv5G9Hpn?i2sGx!h%C`OmL<#ey$;<9t00000 LNkvXXu0mjf2G7dL literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/round_button/round_button_009.png b/data/themes/default/images/animations/round_button/round_button_009.png new file mode 100644 index 0000000000000000000000000000000000000000..5891f2f6ffbb24cb11a8e17820c594bcf3bdd96b GIT binary patch literal 2213 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_001.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_001.png new file mode 100644 index 0000000000000000000000000000000000000000..5e64859ea66998cda20bb6198c7c291e8cd8440e GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHNbmVuSpgK1Epd$~an8@pP0cG|a4t$sEJ;mK zD9)U=jq}YVsSb-L4tL0f(TD~!q%t1>R0Pt|KHzsO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHXfW$awc6hbmm72G|21Ky{of)pxwx;TbdoK8-VU|pOb!o!rX_35wr)wO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gH82$5qC;}9cEpd$~an8@pP0cG|a4t$sEJ;mK zD9*<>gnPbVsSb-L4tL0f`|bBnr$)v^S3_zRqu5+anV%f fnQo6WUNA8TNVE2KD;GHfH86O(`njxgN@xNAB6u}% literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_004.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_004.png new file mode 100644 index 0000000000000000000000000000000000000000..43e3928f24425360aaf82b945aa00bbf005aa7df GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHShr7(+yE4kEpd$~an8@pP0cG|a4t$sEJ;mK zD9*<>gnPbVsSb-L4tL0f&|lQ-Ru9Ob9ermA5=UegTe~DWM4fEsi!o literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_005.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_005.png new file mode 100644 index 0000000000000000000000000000000000000000..abafabf82e6f595a6fa494dc43d8f8322674a36e GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHiro%3X#on!mbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>yb_@pN$vu{fQaAi=sg;X%XIX|MmU-4^rTf2F0*mZAqM e4lZu!V_^8~#yT-^?S&~o^$eb_elF{r5}E)#pg8sb literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_006.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_006.png new file mode 100644 index 0000000000000000000000000000000000000000..155f3b27f68a374d9a2659269d78e211b603fca8 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHDu}#YC<_#lEpd$~an8@pP0cG|a4t$sEJ;mK zD9*<=IP=XVsSb-L4tL0gTjVeMSu5So%Z^_rfGX;7@v&k gjBjlHOt+XBp1xz9{8W!Q8mNQ8)78&qol`;+095cc)Bpeg literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_007.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_007.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7602214ac6fb80b7e8c000513c1abfb308452e GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHYJIWrUCBD!6<42E0#E%>yb_^>lFzu{fQaAi;W=JtBAKzx!FIzy6;x>#&P9d!Lj| f3$GmO7Iuc49;{P$Mp=CZYGCkm^>bP0l+XkK<$pCt literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_008.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_008.png new file mode 100644 index 0000000000000000000000000000000000000000..15f852d4c14fd6e2dd8776eb4254a4e542772d1e GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHnpPUPegg{0mbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>yb_^>lFzu{fQaAi-L~9u~ds|Mpu&f9;n(Gq`xFaWPxJ flnoaf69dE95Z3ADuQ)=18W=oX{an^LB{Ts5_vti- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_009.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_009.png new file mode 100644 index 0000000000000000000000000000000000000000..c7a8b199573e18885b1db64a24c564e4bbe953b2 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHvAsQ8t_&2CEpd$~an8@pP0cG|a4t$sEJ;mK zD9*O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHiDnj?{RIlimbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>ybl^mK6yu{fQaAi)}NphGWV>(gKL62E8kt10hfGroB0 ss0Ht`BU_mtKMHJS-+yp%!#4(ozH_X8+JCJ60W~vty85}Sb4q9e03QcEkN^Mx literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_011.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_011.png new file mode 100644 index 0000000000000000000000000000000000000000..94437f9dc3775c0350e4d207e2dca0ecea33c6b0 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHsV`iTUJDeGEpd$~an8@pP0cG|a4t$sEJ;mK zD9*9zopr08xNFO8@`> literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_012.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_012.png new file mode 100644 index 0000000000000000000000000000000000000000..b540b20d4563bd69cb08ba6878f8dcda78dad3d2 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gH8Sk#!3>0CIEpd$~an8@pP0cG|a4t$sEJ;mK zD9*9O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHGiGhNd=MxkTjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ$kW9!#Nu>vf&^>8feyWdtxtc|=WzA^%rKgiWFWjY s=1h}!Q;7Jbvqu-R@h3LBGrnbHXkWq_U^VfgG*CB#r>mdKI;Vst08P0&X8-^I literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_014.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_014.png new file mode 100644 index 0000000000000000000000000000000000000000..7215ba6285dc6c0018f3e7fd5d6173fc828c5714 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gH3zoAUUJ4YFEpd$~an8@pP0cG|a4t$sEJ;mK zD9*9;OXKRVsSb-L4q~lK!;w!)~CPfW4ii(W*7-&8wjtB qIpf58{o>W5i`n=So81}TGBPx6VGa2Au4XwO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHE2!N*JRc||TjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJz|+Ms#Nu>vf&^>8feyWdtxtc|*GTpK%rFv4HV|GL qbH-`q=@;)F1va;DIJmgs8v{e_5!QgTmkshjy$qhNelF{r5}E)GqCJNI literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_016.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_016.png new file mode 100644 index 0000000000000000000000000000000000000000..db3417cddf840aa9a073c22720afd66f3de5478b GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gH>m5vfHv=dnTjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJz|+Ms#Nu>vf&^>8feyWdtxtc|JI(6*nPDUpbl62( qd~?8~Rg8rnR~&S{@gUHlnt`F>3TuF4BJ(<+UItHBKbLh*2~7Y7IXl4s literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_017.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_017.png new file mode 100644 index 0000000000000000000000000000000000000000..a496c4b736b83968f1648a86ce86765a909a9cd5 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=gHTixDi^%N*1TjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ(9^{+#Nu>vf&^>8feyWdtxtc|Cz;57zL;`E{k)5| r_~r?(m7E&V^yEw{IHYa3GWZ#apRfjW)&BPfYG&|s^>bP0l+XkK4qQ4# literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_018.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_018.png new file mode 100644 index 0000000000000000000000000000000000000000..78d26f06cf2344cfbcad77a177859cc76e0eb831 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyu%DUmz!)ebTjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ$kW9!#Nu>vf&^>8feyWdtxtc|Cz;BBzL;`E^|*_+ t_~r?ZrIHxV#@J+i5HPC{xgf{DkoSc(VD+qDSAe=1JYD@<);T3K0RTr0JYfI; literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_019.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_019.png new file mode 100644 index 0000000000000000000000000000000000000000..a04e04c26e8bddd45ece6b5bb219f0bb11aa6751 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy2wJ#=CIN+HOI#yLobz*YQ}ap~oQqNuOHxx5 z$}>wc6hbmm72G|21Ky{o<^dHNdAc};Se#BykYEis(4m*G_35wrARdcni%)j=&gl%( sOH;h6dW31#&WbA!6mvdkEU;x@$YNm)=+0aw4%E%y>FVdQ&MBb@0K64CQUCw| literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_020.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_020.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f1f9f2c23aa1202630d9dd6e3bef2f1dcb18ea GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy$hdvgyblzTEpd$~an8@pP0cG|a4t$sEJ;mK zD9*9=;`7ZVsSb-L4q~lK!;w!)~CPfgLo~UE$&R@6J8s0 r#;Hr&gVCh;O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyX#ex*xd0TBEpd$~an8@pP0cG|a4t$sEJ;mK zD9*9=;`7ZVsSb-L4q~lK!;w!)~CPfi+HS_E$&Pb6J8s0 r#%T?=2dhc(#}x;iZ#)QesAgbDP+<*7+N;hF)Xd=N>gTe~DWM4f44pb& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_022.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_022.png new file mode 100644 index 0000000000000000000000000000000000000000..545031a6fbf1a86b7eba06ed4ca192473d0fa32d GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyn9cQjzzGzREpd$~an8@pP0cG|a4t$sEJ;mK zD9*9>FMGaVsSb-L4q~lK!;w!)~CPfi+HS_E$&Pb6J8s0 z#%T?A0b`6^%EBwDJ7gR-FOV>u@r|vY=@v7C4IgLF5nee@pdk#Nu6{1-oD!MO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyvRb!phyx1AmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>ybl^K@|xu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg xywS6ES6q1z=-|%4aJG;$Xx0IO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy^4|`KbN~v;mbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>yd5^mK6yu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg z%Ze8HzT6S@bO$j4I++)rl{r4ZTfQB%5y85}Sb4q9e0I_X8 AtN;K2 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_025.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_025.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2899497de8303a5af3410807beca7587d96975 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyN+0a%wFL^vmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>yd5@^o(gKLMLbr|7I!9z39pSg zO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hys?B_KPzNX^TjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ($mE;#Nu>vf&^>8feyWdtxtc|7x7pCcHN0 zjMEzK0>&7-B{RF-dDUbppQstn+Fc=XL5_i;aR+D6-KXzrfQB%5y85}Sb4q9e0N#c^ AQvd(} literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_027.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_027.png new file mode 100644 index 0000000000000000000000000000000000000000..bc20f3d25874ed3f6428c1e992b05c556dfe05f4 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy8Z}#p1_Fg-OI#yLobz*YQ}ap~oQqNuOHxx5 z$}>wc6hbmm72G|21Ky{o<^dI&dAc};Se#BykYEis(4m*G_35wrA|9(}i#wCVgxAKL waazM&z!+nj2Tx(08L=O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyTK{^o_A5|Gw!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Ibv8Rh;h{fsT1PRuF108w^Tc7@_FXFL!wzxA%On7a~ t8K*Ve1&lFvOJ;Vv^U57!>u0*f%wVm|A#y_3-WsT#!PC{xWt~$(69B@O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy@yZovuLlarmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>yd5@N{tuu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg zO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyNzGmGE(0heTjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ!qdeu#Nu>vf&^>8feyWdtxtc|7x7pCcHN0 yjMEzK0>&7-B{RF-dDUbppSVe#jkV#*;Acq8=el*j>clyq84RATelF{r5}E*>%{_Dg literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_031.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_031.png new file mode 100644 index 0000000000000000000000000000000000000000..9222c1be1d27de68ce2d7a704e72989bf4d5507c GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hysckwx={-!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Ibg{O;Sh{fsT1PRuF108w^Tc7@_FXFL!wzxA%On7a~ y8K*Ve1&lFvOJ;Vv^Qy^IK5>zVjj`d%;AhCG=epJ1!gLpC27{-opUXO@geCyM(L9s@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_032.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_032.png new file mode 100644 index 0000000000000000000000000000000000000000..1047018a3e820db64551f8defc0dc9857cf1113c GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy8Lbd?n**9;pyTSVsSb-L4q~lK!;w!)~CPfi+HS_E$&Pb6J8s0 y#%T?A0b`8al9}D^ylOI)OWefn#@KLW@H3S6bKPRgWnBR@gTd3)&t;ucLK6TI$2!0O literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_033.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_033.png new file mode 100644 index 0000000000000000000000000000000000000000..10737a23d344e5e34b34d878c9bbab0cb20b671b GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hyGe5Xc{t_r8TjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ!qdeu#Nu>vf&^>8feyWdtxtc|7x7pCcHN0 yjMEzK0>&7-B{RF-dDUbpm$-<;#@cXY@G~^c=eo6jyQu}x3O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy3#8wc6hbmm72G|21Ky{o<^dI2c)B=-Se#BykYEis(4m*G_35wrA|9(}i#wCVgxAKL yaazM&z!+nO>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy%jDjuk^u_ImbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>yd5@N{tuu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg y`~r literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_036.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_036.png new file mode 100644 index 0000000000000000000000000000000000000000..2041c4845361007115e8c41355621a607b63a03d GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hytF6AWcpXqkw!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93IbgQtsQh{fsT1PRuF108w^Tc7@_FXFL!wzxA%On7a~ z8K*Ve1&lFvOJ;VruRItQz3#ud>DCPs7R?YjJkxFSrwgnMVowB;+$wv20L^0XboFyt I=akR{098OlqW}N^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_037.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_037.png new file mode 100644 index 0000000000000000000000000000000000000000..5983c187f694a2f0a8818529208a11ff63c4b607 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=hy8^kk+{RaxkmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>ycQ@N{tuu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg zgTe~ HDWM4fTT?(m literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_038.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_038.png new file mode 100644 index 0000000000000000000000000000000000000000..722fa8f9d47089cc4a809952167b54d8926ee31b GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=g{u=Z)61IjVTmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>ycQ@N{tuu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg zgI0)z4*} HQ$iB}Z{O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=g{2u}GZl?N1(Epd$~an8@pP0cG|a4t$sEJ;mK zD9Eak-aXL9cf;HekhhDmdK II;Vst08Lgxpa1{> literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/scenario_icon/icon_scenario_040.png b/data/themes/default/images/animations/scenario_icon/icon_scenario_040.png new file mode 100644 index 0000000000000000000000000000000000000000..de2c0600349161903b4476f8c9625b8199ee96c9 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd1|Ao#IF&<`lWS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=kFvq=g{C>+(73IPhqmbgZgIOpf)rskC}I2WZRmZYXA zlxLP?D1>CBD!6<42E0#E%>ycQ@N{tuu{fQaAi)}NphGWV>(gKLMLbr|7I!9z39pSg zFdgVolTt2QZI7t#&bX+*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#CY~;iAr_~T6BY<2v>2}07W3bqm%0CEhS4I9fWrwX v#xpWRMHaL5OW9<7aF96T^!8KJGX{p3e>@q+Myhv#`WZZ3{an^LB{Ts5Yb-r6 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_001.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_001.png new file mode 100644 index 0000000000000000000000000000000000000000..875e0aaaa9b2003c930dd5d8c768d819f7d62687 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTt2ieX*Y`$Iq>*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#j-D=#Ar_~T6BY<2v>2}07W3bqm%0CEhS4I9fWrwX z#xpWRMRZzn)K352!EFdgVolTt2iuc0v$@M@X*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#4xTQKAr_~T6BY<2v>2}07W3bqm%0CEhS4I9fWrwX z#xpWRMRZzn)K352!EsdwyFD9`U3@hv}0L^0XboFyt I=akR{0N|KJ2mk;8 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_003.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_003.png new file mode 100644 index 0000000000000000000000000000000000000000..97635216ce4dc4ea5f049f5ca88cb04088ea7747 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTt2N?f-!ixns&TjCl~;+&tGo0?a`;9QiNSdyBe zP@Y+mp%9Xhs^ISF8}L3wH4muJ(bL5-#Nu>v!UDmB7Q;2$V*dN{GWY+?Fj~YBa5y2w zct(b(h)zq6+Uegrc#bVAxN@}l{81C{yv1zE{We*mE+(uD$FgKJPAzzq0W^%k)78&q Iol`;+06Wq`LI3~& literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_004.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_004.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ab762134aec8d6a3a488724868900a6f88736f GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTt2O7W5X|2aS**%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#j-D=#Ar_~T6BY<2v>2}07W3bqm%0CEhS4I9fWrwX z#xpWRMRZzn)K352!EFdgVolTt2N}K7GSQAi4w!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Ibji-xah{fsTgav{LErx5h#r*f@W$yo(VYG-N;BZ2U z@r(>n5uKJCwbQ?M@EluKaOLP?J-Ls1%fcL8f*BZ2tEjEmFPvisG>5^{)z4*}Q$iB} D5(GcU literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_006.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_006.png new file mode 100644 index 0000000000000000000000000000000000000000..6e95a7d6aca295543335970810df76d86438c21c GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTt2%Jj!m?T0`i*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#4xTQKAr_~T6BY<2v>2}07W3bqm%0CEhS4I9fWrwX z#xpWRMRZzn)K352Qes%!%ryHto3BLwu8JKyW<;?H`Z6+{x~iBVG9wsh6a#~&tDnm{ Hr-UW|x^Y3x literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_007.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_007.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae3cd8e93e5f91fcca38a2649715465928fd660 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTt2n)SH477tKJw!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Iblc$Sgh{fsTgav{LErx5h#r*f@W$yo(VYG-N;BZ2U z@r(>n5uKJCwbQ@1lzd!q@P{&gbPCU`5W`nVZ`guYD=gAvU?_Bw(P(mu*#tC=!PC{x JWt~$(698tSL4N=M literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_008.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_008.png new file mode 100644 index 0000000000000000000000000000000000000000..4925838f92e4100a379dac930865df1b7642f2df GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVolTt2TJY}Qe}zCH*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#j-D=#Ar_~T6BY<2v>2}07W3bqm%0CEhS4I9fWrwX z#xpWRMRZzn)K352Qu1-dLFXF@Vo8(FFYrA6rOZ~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/shutter_icon/icon_shutter_009.png b/data/themes/default/images/animations/shutter_icon/icon_shutter_009.png new file mode 100644 index 0000000000000000000000000000000000000000..03df87b8a2afc800012c32461562ad17e010ab86 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(kex03L)KV>B)s|mCA=whwh!W@g+}zZ>5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y| zDXMuug|411jv*GOlM@yQCbSr?*%tHPpO?A+XNJ)tj)21nDaJE0L`8I3a@0=$-cs^$ y#lgjF!ZZ6OZng^LwR^VMGgdr!wZbAz28OM{f~#C_+?@b4kipZ{&t;ucLK6T9#Xi&k literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/tor_icon/icon_tor_000.png b/data/themes/default/images/animations/tor_icon/icon_tor_000.png new file mode 100644 index 0000000000000000000000000000000000000000..e363867aec98b7dc1303c673ca0f98ce36e06681 GIT binary patch literal 189 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/tor_icon/icon_tor_008.png b/data/themes/default/images/animations/tor_icon/icon_tor_008.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b939325310c9077a6c778f1da0d5063cb20d7b GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gw!3HFS-u9~jDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVot>MTPqkj=G#^k%w!}4}#5q4VH#M(>!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93IbqNj^vh{fsT1PRu~2_G0=uQm75HIFw{4zs69 ak%6InDvP;S+MiCKVg^rFKbLh*2~7Y_5Hha- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_01.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d62ed27e1746c496c15d856494b3f69ae43f41dd GIT binary patch literal 761 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?FfvM8d#WAGf z*4vwV^CqWD9Dn%#_4U5l2|^zOg)}BKIe2h{zPh$@?(VDJS1&RPMF(D8yZi!UA&W~# ztLEJZi5mjO+(8^norfcTB}bc+<4JqeL{XX}{uj;nXuTS6n^7iz6xxJa&>wQ1jtbOKS_v~xeS3Os`ZKrj7 z?{BSt`EI-T?XR!?o>42Gl(YP*jQ8>51yk-jYI*vp@0`TH{)PVJH%qS0IRQ$hc)_3j Yd)P$+Cb!)9zopr0EG%M761SM literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_02.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_02.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6ed351c98feec12d49f4f98655bb54854ce8bb GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+KEOJeg7%wg=^9J>`2N>s7da3iJuHwg{Me9F{C#WHoulW>V0kutdYP?}1g|7GISe zPD+Z3j*SZsa7i?G7QXp<>*ft(XTeh?6LY+O+qnPOU-kTIz7Wt#x`78@*YJ7uAIQ`` zmtfeXvR9?sbJ?UEm76C|6)EfaMZM-(ckJktVEO5#hA(8E?>6~qa&qbaZf5nYS3Fab zwNCz?zWe#U9W`Iyp6@&M_}u>4{>C!B`|jx%Pf+?knaB0m6Va5?0=<*%*MI-LeLY{N z_QLzp=*y|v`^(ZlJ7=!H_x5|ct5O%*-}YT^ zJ6C0A;nTA=f2*yF4?nz=SL7JubB%YCmB!^K&uXSxf1dlzX}|g8n|{{$Q`Ux*&Rw<6 zxV~=PP3=$4lXMFWGr5CQUQYL2HlNqs(q`SIwXb{PLvC8iJnx@-ck$Z&+vLnr_j!JD ziSdbYTqW|eaQ)Q#w+}aGXTP3ZS^hEUSm@NRXY0%A>oygxwzR97kYcQT`ux$OnKcLf zf3wZ>{uKD$qC7q7>Cbb2azg#4XTQFEJ6^4F$`b|c)9s6rjQYP!-=DYtuKwqwkns8D z)#vy5PptN=^9+jSQ>%82Tjw!x$?O!flNKi(Crx|W5H7y#tspV6-5~r;e(J%g*<$}J QXMxmvy85}Sb4q9e0P%$y@c;k- literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_03.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_03.png new file mode 100644 index 0000000000000000000000000000000000000000..6f898508a0ac907e2994a97409d28393685bba76 GIT binary patch literal 738 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+OxRSuv#&$3NbmQ#rpS%SSoWG2`Gnmsd*N>sa(1IyiRmw642dts!zGxF|v$ZvOPg)#`))Ld~@3M`On)k0xhKjcp#*+{>opL zb+c}Xax9*>+N<(CZC9}U{hh_HPtP{K{z|^| zcBZ+sh{QM^$`FqfXEvRR*+uEBx|2Oyqu1>X(OaK2v<+gkC7yi>1cijH9d)4#8 zN&7w;WSXBS3w`o^@}@sY)vM#<-zopr0P`6Z7XSbN literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_04.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_04.png new file mode 100644 index 0000000000000000000000000000000000000000..d81eea62eb27446b2ba785db0ae1dcb2c2cef742 GIT binary patch literal 742 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?j61XL%zoi}?zO<2T_qdc-o4*G=Pl3khY$bn`{U09w3W7?#?QbB=;i@)>o`>y8j^V?RPEU9|E;-sUQS^fE6w_H@t_&J_?FA+Yu zro1-u<@2T5hi6}3$M<{s?&3_Vxl<;+*>mTeylj8HmwNx?Jp!DYO&s->p1ph2Z2!77 zb$8?UZkpq`e)i5~eqJYEoibSe{o7^(x%%o$C&Rf8xnBNx;{AO8qT+qQ-&bEsyYPCM z`TZp?LoBnsXYKM^wZu~YRfx=)C`Z4br|VZuF|wMIVl?;JkGq*}lPABC?b}@Z;n|zm z+j;U=f2y7gE;Pt?U-LMm(nRm=yF2&(O+R1F9Vw^xw7_QOyS(@NY6=ai0{oWq2S3fc zcKu#gbN92y?}46c*Zf)dQRn-sU3#ZaPyc^Us`s6G<)jqtlegEb7Y#J%7FO}(3wpYJ zv0A-a`dRzM7gwv?_Vm+be|TT`=zCRCVN3FMcVYMs zf(!O8p9~b?EbxddW?a}VAeO9%Z>i_qA_G1ECLo0BgKH$&g<+*vHo>HE#a@O?jty43e zaCYrVm9?iOR;e6TNu3n!Ic?G(uTQ$t*~irqjQoL;Zj-*HihLJ4{p_*d^1b`Em+!EV zxz4_LDw1W0jZoop^2iJ$zSrzW(ytI>CPaOEtQB!jD^8zFxlb|Kp1a zk)j-v#XM#f&YR|XQ8ztp(~Vi)%jft8imZHPwKvSzHE@Z{a$ApGY6+K^RtBXk4>Tz< zTVv#BwB~isE33m8Sf=fD!yOa2r4|6V+L@#De3{Pg{^e}0QO=e}5G z?wruw)$HwmA3pe-V3j|q#*Fd$&CtKkVtwa^bBkBrdsDjV=DFVa&5tja?_RE+Ke@(h z)7+E^DN}m4-s16zQZW8m%vfJg=~cUTPtSK&Mlz$T{;RZ}R%4{9_hAE&37)QgF6*2U FngF$F_}>5k literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_06.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_06.png new file mode 100644 index 0000000000000000000000000000000000000000..352e669d06985bbcf931fe81df050f4a2e8c7d8d GIT binary patch literal 710 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?EaO)2jm@u-)`M#v~j~{J`W9Dk2ibSvZbZ1rG@nmXm9w)m9zDO zy3k@Jfq(?Dv@)F|62jhGrSq5DJbxmR|LNIjOHQCwGyosgYx%uhcHF;PCD`+qrbln@P3!`DWXrpJ(o?^QH%5{vO9Td=FEe=%~>U-S4`GlK6zM0fAhYm z?)m#;E4!X*OpfuJ9j$$M=hm4w4{m+<=T1SQh53uAspXH)x^1(o$=lxjX6cE)D$$S9 zi?}A8Nt<&!efFK*JNDe!S(9n`Ie71syLq=%9{+OU<8yc2xqEk5`DYi$8C#ls)OX&S z|Ehc$`{l@4b5Aa~@7<;JwPMcEosPTy#+@?zTw3Jz#V5+q&C_nnT&4D}{m)%(<(6mO zmbvPCYunk62Opl_JoUxQElqEhPkw&&;fr(Uj_dFBe=c@O`?QRy@2baEx2@w>uMgcC zTKY-jWZR3M;&Z;~Uz@t!103Mox*Y Uo}>O->pVN3FMcVYMs zf(!O8p9~b?EbxddW?h}&zH7|G^dglp4ql|-qO>5Tz7V(2B z5|ep8-@mMPM(~l+%=gWUR``nAR0M>m0xh8`DEKY<|8L9Q=CDcEuC6-wI=uHrtBV0 zMy_4IcI&OR-@fbH8`)UTpEJF3veIwQV~f(Kav5n%tE}FCweDX<`GmP^t6xreE8;q_ zYUddscm8D0QoGsvd?xa99a<&2)C%xc88knp1WrHTNT%|ZdbFayHi5dkCyye z;%Ro|+$zzO81?BZU-zVc)_IjWX-Vd!mq`xTCY4R9ob>YQpZEKoW{OiG0(QjyV+#FM VbMy0s8G<0=JYD@<);T3K0RS$m?%eVN3FMcVYMs zf(!O8p9~b?EbxddW?`0-NCn!UUS-4qwJMkXy@)A8th-lV%X zC3i<03FOZUd9&x7Vff;@=m2cyRG>&uq2OiEAd$S$k_wb?FrOzrS*$ zpB7FsPfO2ee3M&x^Zw4wv#ZVXQ+7)()t|J;|Jmu#wC(w+e+$ii#-;iz@EA@gj1`k! z{Bdi~?B1NdS0b(x_xbPoqG>++N~)#TuH4DSM;yd*udkohy*aILpV!PskJv0@x4rZ` zf4S_gQE1)FIf`sWM*7BU?P~3Q6qJ9zWPf7&&FN=O%cxr#S~~Nj+zPAwwDr`Jr>_^E qULW!FsP?rhPpA`IAX5&6ewALS8GUtKQUNIP89ZJ6T-G@yGywpX?ZZa^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_09.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_09.png new file mode 100644 index 0000000000000000000000000000000000000000..a0369d616ed45de5c1355acb860a065339ed24dc GIT binary patch literal 655 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?^(gn<23fIDN zGZ!w&t?~Rd>G_gf3@;B%df#llv-y8JbNg(dH57vn`d!-9FQ2~7n)AwHNIrCYha_WSbJky<#Gj`D9351Q*={jK8-U6Dp{{J zSwypI$>p^{>vU8Pzx*ZokMsI6h4jr&5{zu_u6teB_BH5N=*&fzPv)4NezC{Tc-|7- zPo^hZf(vqf4xwp8tEe=k-aI(0eM9U2|J^ zD`sZZ0*Eem=Y+_lHwNX(kza7HuW!2ieQ>$X;|dRe&ZD@e-I L)z4*}Q$iB}Q%UfN literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_10.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_10.png new file mode 100644 index 0000000000000000000000000000000000000000..867600416d4b9f5fcfd8ef17efa1c2c6dca6e7eb GIT binary patch literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?;b6j<*Wfp&{&@p?m#ZN|~on_xQ@37=_V*hSs`BU&nq=2Z- zKC@d{lbX-^3+_pL!Fw-3l%= zzR!B|UZhu%<;hl+&`Iw-tvq*micQi{l}ufISJZa7qvhkuaO0DQr+U7db34LbZ}Pbe zi;At)6+e_tKA-&6@V0ex&er3P((AZ3?G5%XdYv=1TKjeOSLxZ|mo-jr4GfLlZzgsB zz04n}J++_rU0%IPedW`So{NDI)(} z?T?zJufECgWL2(Hn8UVJ@?4Zp(Z(4*mvv72bT3(RbyLK&$h<4TBCfAapWXj`p6W&8 zd{#-7N=vCewdTcj-**3fBmcG7LgHCQ$(-hQfvYYS9&@czwG^=ZTz2Hu(rL@>yK2_f z-_Dl*Qe_?xkREt@Et^|GXsT+04hH%a6Xf@Axm~TD0f2&(F)>AN4+c zdb{=ChtD>wy0>(iyJuYb>e$ZtKebQn_YStcxwcCs`6<~kf>&e1%pbh`eC;QclQbGY O3O!x@T-G@yGywqri~(@~ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_11.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8db2b3ae01c71ebcd22e75a2c62adba644fa7663 GIT binary patch literal 743 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?jTr`=f~x2jwBon6H(T7$~(aw@Ik0qLqNo5YWs=PDZ5&-GBN}fdA!== zI7@}8apFeXZ!>=G+-L5Zkr8xs(#4wjCAWg#EM2;JDaZ+AfDcP0duL1bMzb;gkDXHH z_PDh9f%oMdTbxvOdw!cN;u%+OwcInxGfk3D>+$ndyVrb8R}Zb*Q#mp5`Rad*F2A2U zywTrLMp8j<5 z-p!xg^ZEJg=g809Q)B-7NARTklV!RaSFft%EMK?$+}*E>Zrs_ibLQRk`6<7DZLQgS z^ZeVnYrlQp{=Mwl?(F{Sr~drOWNn@rwei-<&CypwtM2+qd0L%K+vPgZFL244Raf4I z?eff@mebh~TJ88O^U2jc>(oC#HEO@yZ)r6@)ha$EGVV!*mG>&E&u-@?&FN@Zz2?XL z{F-lD&OCVd+SPb}*yf)PUp}cx-xN`HYKd{I&gbv(?~DF?t5sVWzjR{!r#CNMcw$0( zy?0ldLM0qt@jq3LV$=c7pVHy85}Sb4q9e E0PG4R2mk;8 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_12.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_12.png new file mode 100644 index 0000000000000000000000000000000000000000..232167f14e67323898d62483ecadc45aee99e835 GIT binary patch literal 738 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?lR^PU`q0IaSW-r z_4dZjykJKO)(6G8$0Oeev^yv`HZVB4I=VKq_&2n8TXnlHT(oeB8Y{1mhLDGdNQj9I zV^dQs=j{!8ckzs=+K|NM|ynflbN z>yGcINEM#T9j4Q?o(GAzrWe@=pPjg6mhwxVo~IvDw2LoK{+hPd?Eby8UscqP9NZw9 zqU}0wYO~}16<0U^O4hdDc6v&)*4L918T5t!rL=_LEnaelJzm zzhD1Gf9<-br=#q(rDs>}{$qMudiKpVPb(*>78=C#f7yGyYGR7j$)AVUe!F_^%)irX zKVCf7F226IE^^&^^CI1ohrjHat(5qKYg71?s7bY+=a!vXnlynsRJT9qNnO?5)Ix(h ztT(m2Y)@uP3Y)a{&#y;ok1&!FNo1-0u>Ut_USEsX*Tp}(K?Zob`njxgN@xNAnrRdW literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_13.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_13.png new file mode 100644 index 0000000000000000000000000000000000000000..727878125d349746c63ece235529728dc95bd4b2 GIT binary patch literal 755 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?aSW-r z_4elZtdMe3nFRN8%Z^Of^aM%E>8eCk^I)JEG!Ku5dR_`DE6yozqhEQ|tUcl}~b<^ta@e z@@9j%jV0BolZuaOY!^Sa)8u;2l8t+I+h1?W1&R`w{D-lRHJ-UW#-yd zGHc~e7HyvQ`19E)(>uF^dWwuaPuuuJEBu!a`I%b(?nM0Gx8{q*n-k;Szj>Bm;uk1V zxzW@ka<=EB$jb(`jU~65Rrt-?o9F+l`SRp?{k(s_YyLjH_T=U@h5xyGPJK?7zA5?c zo&Tvj-kUPz_--fObv&i=Rpohf@3XC~*FIf+`}LoA^V+vLAv@-xwq1q)a_0M4?JxPBIBOWckDsD-Qep15eVIf?6Q#-?2v>7g`nB{r Sz0o)gGRxD|&t;ucLK6TDsw!## literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_14.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_14.png new file mode 100644 index 0000000000000000000000000000000000000000..167253f0f25234c9a5bcd67ee18062e611fdef9c GIT binary patch literal 755 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+SXZdBN!n#~yy4GkJza=iH79DpTBCrZyZ3P*i#LPBLK6hLVj{oVhPAZ1uj{DA~C% z(n^H0h;?tbS8HQghKSO?771Zt^^N}QZC#C`N?3R6M>3KZ)%FaNZ&)KhPWCMUU^Ey(&uac=2 zIa~JGxtWWiqBGC_-?3}Mhv-S`Cz)*CcymJM$3I7_s;gsWOFa8mw7Rq|FH=$6F8b7i ziW&9W=D)MOb?e_sJG-h0Pdu&OHpcYa<_%hMZs|1*?cQf4dTZ-u9o>0z&fM8&pI$Bg ze0_b)pPz4XK9^0>-@MUMSzP|s5qG=&ewU=hEa&8(^YQf$$()kv=Nr0ml~JgXY`UJu>p`6>;Db*J=HTBdgpYrwLTVBQZ zZc-6{{N3aImfxC1-#_k;HveDsGu8it7D(;7WrvA_nY=fiSvzr?5A8_sdjDk z;)nc`7w@VJcsgBV=kyfyxn;VNk8LMxSI$)VX>&4V(p#0?#~2C65cO1isQb^TJ*D&e T;w#0VRLtP%>gTe~DWM4fVN3FMcVYMs zf(!O8p9~b?EbxddW?@4@}x!5tmX-$`fm`n}3UQzdF-lpQ)x?e=6Txz=T_nxEJ z!J{{~Hb0nf?b^{>hq)f^aq%rWU)tdv@9_3ut=(hezYkAOf6qUU1!yN;(C|OfaI?Pj zn{AWUsPCMVqIfdjv+d>gzN5#UUz&BXNW@bwbr$<+^~x)@=N^kZE%)4Jd?Qvs`g81r z6w}LhUi)pj9Q$@%+?`z^^`)P0{ax$#yj{iI=*C*t*qf^ z_O#c;H@HlEwe`_^^3UVmy|15q@ZDw=_Ltw6C8gXGTe52T%aG8i*|VQ-+7ywRn`t;( zd+wuGU*AT@uUXGO>5kW>pCx?`E-Ero8X!*+*8JC`7p-!y015}!++MZ0ZJo>Q@$HSMR} z$;)4=e=DWz<1UJt)T(mY^IYApPilYfE&TD|zBd!zNTGqG!R~*IpYGMOAKR2|0W#jx L)z4*}Q$iB}kG?XG literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_16.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_16.png new file mode 100644 index 0000000000000000000000000000000000000000..1d86e3db503cdff3fe62738f6212b22736118331 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+SX3eP5 zn(HAAcB3%Opw<5C&QF{heQAw<$}YQ!*Umhvd$@?2>`vZ4k!Qs literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_17.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_17.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5077bf0857c2cf00cb004aeb3e0abac65f6fe7 GIT binary patch literal 753 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW??UQ4C>kU-%)V3=8er&XV`?+nawZ)$o z?Yryq{7lKNxoLX3U)G(Sn^`x1$?Sg%)QZ$rD;)pcKUZXDeD)Rjcm1n++(KWaPAp5- zx?8q+&xP6Xerx~5PMUUN=9(rQ{octTo?-L$)zv;edF*uky*F>uD-66QnPjD|dU&wp z?S@?wQ|^f*e(H-jt{=kgSr;35`$u7I_U{i@&&6#k`?hJJ^MfYxOu++|F7ylx8=1X>o-mNzI*rkwyk$OHz^kRJ^J$3>^pnvq@#;Y z?Y(9ZzgK_rB%|`ledMB?PKe=(W47MntkJ$fWd4{@u6U<}{ R)?|Qe^mO%eS?83{1OS)jA>;r6 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_18.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_18.png new file mode 100644 index 0000000000000000000000000000000000000000..f49645e26e014f237b68de17143a7d3306210e62 GIT binary patch literal 752 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+Ox*Sux=ftPf1ZGfgI~@etf~L+xOj1CvrF&pIYW&C4r;JeDf8**F}~e{hUHam}q` zD~hL@d#qv!(GZv@=+S%Z+Ko#wrs+W*#}azv4?O>U>Tssnnxp^z&jnhF3FH@gW%}*f z9PPVlLdw%urwg~4pLc2CUpZ}wOs`6O>ZEw>$2P0`KbxG~e)HyBF~(E1%`wv+zZR+7 z5fZX*_RQI9eccYnm@NBm^>Xh2IVt+LXA1{DsC}hs@i?aI&hL^r@?v@GQgd@HPhU?f zF1mI%^X!_rGi~3VT4U+?>!1F5wDnFz)QZ}TyFNuv%HOm( zTAcM%_=LH4y(ZCuUE2^S}C1UBQ)iJ$=^cKX;eT*;^m=a(~ra zmGzT+_N0AWXQaFQaF6~xdAUE^uUg61%#YGNe6Zlg%BSB$K5LxJE_@LCR7z7Xe)YSM zV>|6vrcBD3r}oqMWa2h+_D2poxr-tvtyDSf*`*?T6f-vHD5A0QKOp=fS?83{1OVxU8|VN4 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_19.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_19.png new file mode 100644 index 0000000000000000000000000000000000000000..6796baa122f5b420bdfdc64ca6195dc8237a06bd GIT binary patch literal 733 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?Q0i(^Q| zt+zM#=1oqQV0-X;^IUoLJ|T5Rr^^eoTtgd=9O-B|a;CvtMNFPaJ6d%bpX}|0(aYAw z-DW;GIh2g4a90+Em?V0osWQe#{q9+OgsC zYSm1&NS{xdCk^hN^D(%3EubfEVv6ZWbIoG))VyUU^18lEl93RUUh<0drq9gZy^;H3 zeK*csbRxyR$*O%>zMubkWmlF~7TacPd#}8jeY!oLPwp-6 zuX+_ruSE)6L6M)gF4EY(ZTqLM;^CL0X88Yqyqw4VakS)@_12qLtyOEXiN7CFTlMl( z)ikkZm*(WBtlc@`yx#il+onbHPg;|@++1Cab>*tV;p)rn=hjKgoA1BObJ9*XTW#** z%=|6yRd-HvaTHmyXxCh$%`e|w{P+8M^F@oppFPu3XS%JO_UuuTwd>z?!6A;T-hJ)< z_mSUSJ^k{*f+^+Am;dZ6pRqSxzdOlj@7$D^kLI^@eLVBKf9}2B^Ve_fzt)|!TW9je zf+?FHZm17C|5)Uw<=u0g6ILC6`CbP0l+XkK@zNB` literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_20.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_20.png new file mode 100644 index 0000000000000000000000000000000000000000..d9d9610439acf7af5c584a015cdcbdbda6331feb GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+OxbdC{c|#~yyap?-sZ8Y5k-*clefxopMOK>ZkUzDs|HG zxnb3|=H@HAYfQC1yH@>`=Q-k#c6agF*)===IBt)*7jgcPle+KS68`?a`8>z3p5K05 zmnS8y_qMk8*LUyyc7A@C7Ueo|a(CgX&lev*-0{ooWWLbdcwNqSB^z$U{$0L%+oYrC zV#1zVN5;=Mf9u+@vPtcpQk^_0(|Faz#qY z>DdP<+9%swVN3FMcVYMs zf(!O8p9~b?EbxddW?m)HSFu8iVIEGZ* zdV9;)Pnc2W*u(M{KAKw{LO7&McNrO~t-Jg381n6ZW_l1Zsy## zD;=H(YaX20e$lhY_~hO*pA1fhb?xz;IQ{0`-xE?SI~yfV9NIN8a^5=g$}2B*!ax7i zx%{i-_X;0-*SL%vh3E?aazpu4wXYW-x**`h3&!6qPkwlJ~rP!-KQIj68EM)dd zUR(aT>Q;)??9_Qnv`$~!n)iL5@iprci?lEKeDD9Y|JB#2PtSc^;a6{P=DI(-rOegx zNn0jgF_Ju?Wd3K<|9^)c_WxafeKogsrrL7Jzi*c3Jq?~VCxUI$4K+`@@9LA&zvg^W zQCDBP%cDN-S!kEd_b(RjpEIU!-+kR{)66GTll=bG-1VN3FMcVYMs zf(!O8p9~b?EbxddW?+LP;JmElw)`!Km!nZpQbcx1svVO^Fn%6a}tx5O7X3i?BQz9WE9kC4)7zA0E)@XP+ z3E3OXTiBr6p!BEK+amnGM|imq&;~eY`0rwP(EdYCx$a4elT%fiRoXq(JkNdlP?x@- zd$rlY`2J+ulXJIJhU~htcG79zleeeX_?}#?a@ca%xU}l-8;28HvIwL zrc0}~oIZTAzd3bx#;c&OMzha;etTLabGLTAUC`Q@ESq*Us@%7)zhQ0t;=B9RV+Ln) z=G`o@^PlTKFN<~4t63`V{Z`r7*~Z(PxR`Wf>YJtKx~J^%+hj7)AVN3FMcVYMs zf(!O8p9~b?EbxddW?S4@g*Y;>J}9n_F^?4LXr18JyU}3k+VvBIETQ|?an8Z&-nQ_C&Krg-?Gp? zQ5Q!KxBUD2Pj@%}eZ%wW&&=|lA3qt)x2u=zbaV7DTJySx&3}{eir{4@Hk6snULbNX zZADi~q>5``O5~br8XVc(Do2eX^};_psc<<>>OO7cnU*^}?cTDP=P#eRedgA?`L%l- zw}nnzvUA_BStmC)U)g=QmdKI;Vst0Jl!nf&c&j literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_24.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_24.png new file mode 100644 index 0000000000000000000000000000000000000000..ef349ce4a3ff618287674187a4e4ff63ca1913de GIT binary patch literal 692 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?YTdde*|+A%&bPC8 zwdv~D&pIc~J9$#(t@QlZrrb@Yva~m&%b51d6!@4b<6dy z-z}I`>v5^$NvG-gt}SCHFlO3YgV01 z3E*STJh$wp@oe9qXVpUNyBg1Yw+VXk)^p}^_06w514F-0_Ssz*r&>Av?MC%$OY8RS zmdKI;Vst0Ekri A_W%F@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_25.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_25.png new file mode 100644 index 0000000000000000000000000000000000000000..e7509cbddf8b9df5a90cb5dbde5cc61ae0bbc770 GIT binary patch literal 726 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?#WAGf z*4yj$c_Qfy#~zlarCl4bHcq#uN;|?~_TCMvB*cUV? zFDT*AoW$x>R$#UHcJybdxz;U;l>)-Kp5C z5_-$#*RFG)&qb}*Ijwa0iWUYA}5s_NuF4xH96-kui5-J@83;({r79kS#inv z^Gav$|5sNLn0DV`o%r zg7#{^O~yBF$>gjpz5Kp3SbzGQWRF_{GDC*|9M6=&XU@DI^lY)q_5aL;pVvo)PFg?d&d=}G nzMt$CKU`^n2=swt{r}1H)2l=4{{OwpK#uTq^>bP0l+XkK$O0G9 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_26.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_26.png new file mode 100644 index 0000000000000000000000000000000000000000..66d78501170a311084f66042a7e64a8d5e258057 GIT binary patch literal 699 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?|^J5xiEV|SiM9`f|N_r8V`XbCd-6Q|fT?M6+Iiss}w9z}DOoH|yeJj4EV z*8sT42mj3N&Q5Q?yJ@z(dnn(&{_s<8@BX%)YZE5Gn)&;y#r|Cz3Vwe& zYHYdHz~ipTPm5b8S9^x07G<>mb984}Tafzm%SmqSzj4#5QrVt%@=O;umeA{+oby-e zgNBFp)X%B!f4wSLdH?mfr5as6udOD(H2He);AfThf73KQX0M$a9k(y~Txr)LjiQ+A zEBlt;ylK5=+qduY)hq=j@?LuOcjLFzEw#JuzhA!dN=oX!`FlO5Ufe$Su1fx-D@{QY zwq;Fv6Y6U#Rr{kR>;DJ$St>Kn8qJfj{k-Rw_2W1H_bYjOu3LJpxo)oX-4p}gWA1nF zcz;roejTi+>2cfpl6R5X$)zgYp4%qxIeYBayaMDf9vJoy@xLq%_gkLz^Z&jCa)GC- KpUXO@geCxiQv@*p literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_27.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_27.png new file mode 100644 index 0000000000000000000000000000000000000000..3881283c521bc88db725433e5293db42744a09a7 GIT binary patch literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?sxB0a`dC6;`bJxz@`^B!_a+~qZz1EtaV;nO!tDStg zbL!L0$HS*>GI){x>2tW*uf1>b_GC?3cKum_)jjvs*HM+{_<3% zru_C>NXm3)yFvwVT&V$;R-9`Hg?on>X*??*F;1*#6}4ZR{@A z%a4~#%IkV}bmqY?NjG0E$(!}(&ic)NABUUS*Hz8lRWILHLS6jcoUf*Pu0)0(^Q=G4s&S-)-HJ?~HJ-ZK8w$oVcZ(|dCE=Fq(JyyUSaLJixPk!I~`tt5xVN3FMcVYMs zf(!O8p9~b?EbxddW?JD=!fB((3kq-4!Q= zoc5%1-}F{==4ut=@s&!x`N>_?^4r8+5>_`q>cn0zJNDi3{n^83X9F$81i>o|nAW9c zS6h1iew1x~vT)bjk6Yw-e|f&s&El2kz7?UBF(H+cJnKA)%%gAfO1DJvyU%>`So-Wy z_pO)9=Zk&*+Vf8~g#GE0%2R)4JW1U(_j0Cf-C5oTwzFJw|NVPwz5V@KebdXJB8y($We=B~VH@8fp(vr6z? z=MsT+n=a+))_uR|R$aUFrpIc#`B9O}b_V#reimh)I!{e9C40AkKw56Kj>^wJhrj(Y z_de@(amM=8NuF-+&s~=9Irca1ed471lR{pWsWBZ|lbJdvpa1@sX>H5XSFS2#Tb^zy z(YI;y=U-p%75vaR8Mte1)~xmg%>^?(CpBNZSQz(r&|4ZBnnw z{M0$?yFI&3#?*O!%HB1%n6dGH^QNMUk>Ar)WiX?Hej*2^{N`V@AMpSH literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_29.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_29.png new file mode 100644 index 0000000000000000000000000000000000000000..259c70f16b151bc64fecd3a139ddb730ed9d9f5e GIT binary patch literal 764 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?)V2R7c?> zqr}V^5>Z_&D_ItD`9~EZM;C;LxOU-uV907kB2LtG;K>2(%O%Xz)MK8||8R zM~g2ivi002#zPmqKgCWen{?dspVy|T|BCkB_s)Ky_g=Ek?^VnU{o?AnS+iZIPF1m2 zkF?+rUb^z|9(Ri<&$>TpFRy%EFD|~zwR)N9>|^0yD?S}wazbA7lg0M%WxsbGnWne- zc!9~}Irf)d$J&vtoSpyO zbbG{}-SKs6PbvMsZhiTE`L^S4#b@hpww-zHwg3G4Kl5#NO-tEuU;TJ=-o_i literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_30.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_30.png new file mode 100644 index 0000000000000000000000000000000000000000..67f1ad49a2a26f5cb34f508372236e0e54d9b7ad GIT binary patch literal 740 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?-A+8h)$d|Wy&M5uzL*3LD#)19FkVqguc3>w9GFjcY0ZR@{4mU z&f;b&Dr#m9icTv%q^7F$IeW>>zsnfsq;&P{^Ue3Z*!=(P_5Hdk&`zA-gZ=daR+-tm zzjvv4d+Mo3s#Q)+vEKVGC8{rAhSG6~<3D{q{e2nuFXL+E1kZh*pKi9N2QM`8>{IO1 zI(g_&&gmN36z1_d!`~vHfr`l&MbIM#MGc((qFF0kdT<`uY8JT(a?#Mk+ zn7k+Mc0}aeTfg*9UjDM{aHiEH`Bs^)dPeh~WQ9JTzO!)Oi|M`3HP!4@DyPJKpPy;n z=U~z2am#a`Pm$Tlc+a?H*YB1a;*1JfN*t)axj*q@&#P;z+NOc*@pScbS?83{1OS$= B8J_?E literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_31.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_31.png new file mode 100644 index 0000000000000000000000000000000000000000..0e089e62ccba02f9a0007d263ecf28b92b4a1924 GIT binary patch literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?*x}WWAR!gq`zkBgc~;`X0J`&c5bQwv(sDwX&#S`jgs1> zCxTXHtJ^Ux0IG4?;`w-jgt|kHeEG@n0}?f{mo0DW-u-2JX|XyZ&{DkMhtb;nny)*1 zqHc&O_bsmba@D8E@MPko{gZRjbGJ%uFU&SO#_`yqtVBb9xkmonH&6TB?Dwb7ke@u~ z^si$#WN!p-JJ#`Nh3ZVdO`A;2%c~P#{@J?y?cGhk%l60ZySaO3_%j99I?qkY0&2Q_ zN}kFmmp=XZv-wP@qGPe<(s^1#-={XCk@L5)Gh`^ihdVAud{7m-WiYrpQ&5Fu!r)ohxX04 zDZHWkS>Yr%&>%6X=ET)|Z~BFXO7gT@{ZlpZ|aIRO{uJysK<(-+5`vseEul)3AyxOn3}!}(9V3{UhL&3rd~ z=j11Wlg{lprYPVhd(vl8>*D=;Rqht{G25l;@TKF885&6Lv-!`g-#g{po=KA)fQbP0l+XkK^P(be literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_32.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_32.png new file mode 100644 index 0000000000000000000000000000000000000000..b6dbe0485d18472f18a13ea7ef857248be1bd5fe GIT binary patch literal 761 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+Q{hSuv>+Y!AMlvCPbwt(JRB#3y&-TPNDU307jqE7hTdCj^bq>52j zWc`6q$AIv>DYLu|hRvBZGsQ@K@*K<9lHeDIo=Tqh9CPsa|Bs()|NmD9T1yxlNc#D& zZexb3=&nOeEsLiw@hP%8*{L#F<+tRQ+j^&8z2xB*>U*kUe(71+#V5PB{4_b~c0G9M zC0Q{Anbn?lHNXG-Tt7Rqc(L5uX_uG%%vgU)-1D8PWb{UhzK0rY`ETB3yzkGRGrK+OJe3q=w8OjA?&syi{CIHcS5#r%)0BG=t1g|pJ!jRa zIkuZ8B~FaI)wBCfam=NcrdPmc5anylBY^R?5j zrYze^f79h_oBR3Izka&+#$fSF$Gv}#f4i&x_~Kj@`_v2eFLwC|x2$`!>;!*xs-LW{ zTJ--vJNMt#nR!m&8|#1ny9AY b!T&uB{>}4}r|(}e0c5DBtDnm{r-UW|gI_UO literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_33.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_33.png new file mode 100644 index 0000000000000000000000000000000000000000..096d13a5add2cb5fa9ef059ee1096e460096964b GIT binary patch literal 752 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?7a=az^1TfC2Oe!& z%KDLwYn@kkYm!-$##E0>D$8b_IWzlA$}!iyZ7(m_oEQCL@w~>O9pn;X!H4>=2qv*> z&Fx>mrYh~id#}^M;(elsr<7;dq@1)_`jbt9Pybb^Uv^)bv*ojtyRoPC$>pop zew&-O{rA^`_YaCpC7y1Wc0Vn3pXa8jb@^8Pg|Et5Sa+FDo3uu}_t@M1>(}=E&Pe|I z>Q&J0u-uv%%g=8QzJ2d+PQBT0CD(smpWGDYsIOI-9e!)>`}~@szt^s6PnVi*{dUXj zuRhD>%J8iU`M*cE`{9RkYtHC@=30^#A0cq}kxu#Pi!Yzwo%-|``{}tcZ%i(0ofg@g zlAEeI`J+Xuk*Cqz>j6xO3-cyM?VZ=W*s*KTi6=R;wqNz+V_W=2p8x!@wa?@y8{JpC zIrqB5ya=7H>zj@2!>*oOyZ7$(-nZP|FSpFLT<4d5KK|XC{XeST-%F|arEzlem+Gkw z7WrTXH$)p>kUIax68{OTj-`rS_s9uAu{d*-v% zD&oPX&wJMS7fq?l{}bP%A|R$a$?f0YcedU^OYhH)5Fs{_C{x#9S;;=rwa0MQ>^F8G OlRRDhT-G@yGywqF`yns@ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_34.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_34.png new file mode 100644 index 0000000000000000000000000000000000000000..7a3dcb90dc2c161ddd3bf5836445032157945755 GIT binary patch literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+KEOtdK+zwg=zu{p^%nJoAVAhy4QFjxh~W*ZLlby0n|o`k?9yHWq1X?(l?#8e(Bd ziXAJCtmy2V<*7D#X0`5?EgL&ro>iI^*zxU|Q@oD_XctM~hjh8T$Sj6>KKIA*($=p= znM&U$>C9H>Nw&D@T`ohvu zSX7oZCHn2AH|Ng1Il1p#idxkEcb|=1cLmR_@eEvY?x)C2RfV3}*9;`XN{uAKGN-t< zh0b03P-C_9?3JgL7H3`YR`#FFBlEInc5B_t@WWsK9sS1T_+N%cRf{Z`H96U>nGKC2c_5LZMo|&AW&B1a7tzOVN3FMcVYMs zf(!O8p9~b?EbxddW?+KEO{NQqlV-J7J^u0Y&I61&2I!>i6OlQsA2tn>3RsS{57Jm@@#k;5U@T&tH!aO`@ zcxGxia)eC!q1x#$^xNRTAwK61rJm_^OWc3Gy!cZcXcsvkUb?S~$Gz3{!1cr}MlzxI zt9w3K#9vp+RF71<=~MLf^mdO;lT*x_|GnHU6M56>xkAq;ZwY(Vo%5dbuikraZ&vc- zcPGDOyiT#neII+mAXQH7W~pPuR)=kq{``D>>sRx;qie1A|1Em?{B7L!t1DOeq`BX` zSvmLb-sa}WslPqvrCf;Lp|EDs?CkWP>3cVq{k-8=l0Cdm!(lJ*Op$=I&I=Rd6&ke-0hoU^d>8X2Q7Ij-x6xP zuKUcU95cSYXE$GLDZVsksaVN3FMcVYMs zf(!O8p9~b?EbxddW?%V(#t**$yuyUi154FzCQ4$tcxp40zt>{_9>+(2Nj%4d~s zmFJUUe2XkS=cX8++`eYL@4usgy;;SptXzvUPp(xlpLA!()?L3=R4@C!z?W@*T}~OH5_@&XV-r{@v+Kcr_;9U-kk62&$he$amo4VX|8^Nm_S@CV_up6jIWa~1WSCdkWS>p@w*3%i|Hb~W zVN3FMcVYMs zf(!O8p9~b?EbxddW?+wS?UG$Xw5Mabvh2OIOP3m%+*Xw3<iQ}ZRD%!92-a8x@c~ATFxo`cG z@87-nV*HW#!AlGs9!Nerb=!AW73T)ztzVmxojYOe)u}mrzi!@$IsfUE zg6rhvp4ZmjI>YvGm*!-iTc^DzS{tuI9}9STQN9Vp3(%j3+J*5hnYCQtFM?&6BOO+;#D_{_>Tt zf9{y&x7yQGn%8~u{I7qaFQ2-t;tmXnl|fJLZa8!LVaAUauYdEid%Ag^)61Sy)>pjI z(Jegp*_qQ{H*b%B^5{T_%F4~VgQY>qh??L7e?3E;ZLPohy!huJb3I-CT-G@yGywn> CECgZz literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_38.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_38.png new file mode 100644 index 0000000000000000000000000000000000000000..9960ad017d7d5b1a45224321082647c4bdbac081 GIT binary patch literal 600 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?F! zZ*SOUPfiqJd+__O$1JlbL6-}TUau1lUX`D;amSP8rG@YI7YMdDDRl52UAkq#rCZB< zXYEtKuc9eWvfG;DziWoRHuKKdJ@5J5w7|FfsyUQuT9t>dxme3>`FYcvZ~S7Lt!1`IQ7-`hpUvOpmmn<4ygdvQBc85)F6*2UngFLh B%~JpX literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_39.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_39.png new file mode 100644 index 0000000000000000000000000000000000000000..a98e37b412d921d3363f4372f99406313fa60e38 GIT binary patch literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+KEytl&V2V-LSSTbB9jxR~pdrT|eE*uR3$ypcKm+d=mI2Q4{)_D~i4`LCt@AgJo=w#|E{%Gl^KHGVc& zrBba~Ips;*Dj9W2wV5hE_uAM`nxi5aXEJYHZ}G`5!JjI&pX`3SdiUSm-`}TP)VuXE z$L_!JT(iaTk6%t-zx=qb`uX6eca7v4HyD)#e_FDC}+KgcU6)bq05r)o3*TV}aNQTyCk4tYsV@r&zE-`swm z?eN=oRqJoRzqZmU)JxOS*7Ed|=LSp9{Z>h5O1#<={PgUO+5YYB?$tmXo|ltn7qR;F z-+NK{|KD6+A$RrX9KSdVN3FMcVYMs zf(!O8p9~b?EbxddW?};uunK z>+Q{rS;2`C#~=PbY3X@6Bl`BD8wu>OB_$vDSiU!iPdIw^sAKwi$2|=C4j=erSlGkG z=Wbnb_0l5G*;_21S*(~nTWN~TdEPxAKK*T*uFnXxi3Z@`O7-(y|4mnI$n}eqnX9sT z|Gjq_Cp{;nSj^yVaqVC1Rb=}4POR2x?Y-|V&2Bz)0mW=f(A92K%E*~*TY~1_@wg<)(VaF+W%FXsS<6m7Ntxysx=g1o zj%)HRzsp*ao;Xi>TyGelFh|Y$a+qBIvdh-*%f6c*f31BtZ@1TS9plxnWomAnE-A9{ zw$`5{V|6L=h;yx_r~S#TTTZ=wYrJ>%+`R9(jdK@sig>gTe~DWM4f DI1>Op literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_41.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_41.png new file mode 100644 index 0000000000000000000000000000000000000000..d67371f97493ba218d01261e7641254456720d7c GIT binary patch literal 702 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?5FN)7%v8lZm(13O5#9d%Qw*XDr|6oJ~Pz^mSr>TzmaCw}kKa`bjlDpDf>AYjm(! z-Kg_i#a};l(bf&Srd-{6REFPw)8E?f$KUyV&raXI{i5xg{XU=6Jk{S`d$Gk$eA{`6 zh?V_C>8~EegoWv)ue6*zb?4`uTdS597XSU#`*d}-+%M{w^i1{l@pcxFXiQO zwrrO3nz&?Uis{LqNsm?DPtI9-S1Lm2PuEd(;XhATGm#Zz|EJFnyjWDqQ2NCUq~Fuk K&t;ucLK6Uag#RZ1 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_42.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_42.png new file mode 100644 index 0000000000000000000000000000000000000000..54346861a8092df08ad58a6865a31cf58d8f6c35 GIT binary patch literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?cY8Af15=czi(^Q| zt+zLgB=YboZQ@v&I-K;d%2vubQCfe8K>&)VG=)BUGP%Li|etU z>o$RcOS85deBhw6q$f?yc=7K)^|Nvu`yN%!6it1iRK5FZyVSyGB0COW3wnAxY2M$E%2`hWCry1Lf90-%&abx@ zeLtO5H?O>zYgRpbetziY&!;bD6#Tk;G3S@n$=fRKH*e47=IEA~@OH}2#J!iR_te!Z z^P62S3Z6DIChqx%3Ipl+Jav`!a{E0#Wlwti=IylYhHi&F3*2+JoUXa}YTM?YH&t{a#%rHOX8p7~>B62kF~)q7Ti24n_33e8nOC|>qI$nr zduy&TS{t=@dWyQIw`cmrJ+rTUz8f0(uhQaAb)C`7)RMA^pI6VG6C0myV(A?i8rrqT zx2Q1Mxgx1Byf^sC)rT2Bp1s)qGW@poU-i|}tG`dLzWc1e;M|WVCYx8;_)VNYd5-o= zovg@w^-Q&$)1N#H+yB4BVor_a{PW$Jw&#PN9DnnckEO+x-|O*xuMHDZj8FPbxVN3FMcVYMs zf(!O8p9~b?EbxddW?+OyGS+m1sjz4_A+J0J!_dj*Zyt~&fOjzRi;!@8-ffEyQSSK#LtL62=wIpYG-rE?C zHlN0Zlcgyc9Et)Q3ojg98_3hEb9<9&YC+zDZowaw>mD4pd|rHSI>;q-0Vlf!Sk)GO#Us;cX^e{nJF`t%!&K{V9l{rHzd1NmSVs`)e?3Mg5ankIYxAM4JKEKE)Dw=flSSe#!tW%8CucTT8$ zpLAyV6#Gdw-s`Quur^)}@RE00sUo@Ly6q+n;-mJ%{ypqU4HffO&u&-`(&g#u=d#Wz Gp$P!W`y@F4 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_44.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_44.png new file mode 100644 index 0000000000000000000000000000000000000000..238a6f4750e48e49ba9220a4abae2f7fdeb1ee4c GIT binary patch literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?+Q|Gc_HBvZ5PYalB$!cj~NQLe@LJ3_K3nFjUX;5sVFONLDANojFY%JLozcIaP$)pqy-WGH;>Pqd5yzg(NNMFg=y|er-Gj;7ln(v$otVcST$A!eh~kC#IO4oT=jO`OmXx#?`5|jS78FQdZSm*DLy-yZNI2 zv8eCCGJmH%xv#<=8N1SEqs6*q!B2mcOsw7<9K2j#?~H!^<}DviKc5_IuliHzYo(jeQB+=P-DP!;k#O&A5VU( zGv}9y@#ME>O4W+Lxooe@tbDloXmNVI@6_3zcETLTFMf+t_D@gS9U3@I^ORBY+BB=T zonMyOpYy4HG&t@bytI>r855w&yg-|yd!J$rq3yLEHoH-5h0DXDGluK(V@ zUmlujU%$=h&Hj^d#`Vi4 z-k&T|+WT_$^s2RM%_sY)@2pyQy*fZf>@@rCzt=YC{FAPkB0nkT%1&`Xj>ST!A|{<) zS+qFt+3i&`+cTdOPMT}=U6CpAO5WtWNoAAjCYdkZpu<8;EGty9KbqCKSLN4XVA5k? N@O1TaS?83{1ORM@8lM0F literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/volume_knob_leds/volume_led_45.png b/data/themes/default/images/animations/volume_knob_leds/volume_led_45.png new file mode 100644 index 0000000000000000000000000000000000000000..505cd5bb2e32226eb9378895491963a0e9b190b0 GIT binary patch literal 719 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 VuAwul@PGHBo^(6y`sO$a_y48%p-2D# literal 0 HcmV?d00001 diff --git a/data/themes/default/images/background/background_center.png b/data/themes/default/images/background/background_center.png new file mode 100644 index 0000000000000000000000000000000000000000..978822f4f31dc3266cb0585bbe11f7c5b38ea284 GIT binary patch literal 97190 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/elements.png b/data/themes/default/images/adjust_pattern/elements.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7f3be4d83c3c84c0be635771da61fe7f095371 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0y~yU~~YowK&*-a*2@5cDue-JAE>K9e#5JPCIX^cyHLrxhxhOTUBsE2$JhLQ2AtWPJ!QIn0 z;C+f}9#G+APZ!6Kid%25FbXm#@-QD1sqc^A5tE*qe%(ne+;bn#rMt^ll{LiA{P8wb q>_I3K2Zurf0~5sr9uo|1vKotUEWCQ`#}uIR7(8A5T-G@yGywo1&qK!m literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/elements_light.png b/data/themes/default/images/adjust_pattern/elements_light.png new file mode 100644 index 0000000000000000000000000000000000000000..50490479dd4d911a54e6d67391515995a592b5db GIT binary patch literal 6161 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/normal_room_bg.png b/data/themes/default/images/adjust_pattern/normal_room_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..224b7cb97b7b7c162fb311759f3a722eb399d173 GIT binary patch literal 14261 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 XR5$K9*sBvM00000NkvXXu0mjf_+ba3 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/player.png b/data/themes/default/images/adjust_pattern/player.png new file mode 100644 index 0000000000000000000000000000000000000000..a11b6a5e640baaf5c716a962d7d35889cebeac18 GIT binary patch literal 63179 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 z zT4gFIyF!B+gJp#=D)aq_NJ4b0;LVx|!LfH3aj_u2;5{G%J1RbVye$Ql;H@a94$fcg zIl8l;kZZ)p_`Z2I>z>u+hLU~lluRJ07Z9VPjSU*iRW6l6pAxMP#KyX#D!n0P$Wpy> zYv(Fe`90mJ6W6FU6xw@sL%MA|+d9;z^DAl<68M8&BWm+9l}DV*C0P zsI|A5*40z}+~Iy`W$k8xQq%1wm8`c7$avUCtAt%6Whcai5@uF_#VMh2#HN037D_H- zO-6#l$Be`@`FB|JGulrX7Ep?@_D4AZc%l^AUV}WQJI*#^w^G#D%e$Ns)zKeVrvkJE%XNpuwo{O9GQvmN?c-ih zzMaj^Yt4jmBjSh9!YR`&FHbT>=h1jv&^G+zCVMw-QEUH8lSGJP&mPwtQZ5lUKZl{o4-T>J&a^S`@B{8n<+D`=j^5uuJBx`WUY}>uTI~ zY^q{2cg-ipS5e-M2@;j>AsLCn{K!pyBUR>SzbBzz*_af9G7P11J3LZsl**Yc!*q-Q zrG{t?iIT_XSZynvFb^%NLZ33-#xjRuu<<4~0SPdqM9EYDd)wkW?^ql}Ah2F}F3&a; z6?}~N*80gd83cGT|e*9W0m2Y0EQz;+;14R}xw+g`RXS(tnbaad-swo z4j~f6vxq&1&nnOT_?+T8(s|1(&-XNCMgoEhh)={jaQtp_v0uM(zze^7&U#sBj~(Ct z69<&}1xi3OL^TV5Aq#nkls<5Es+_+p3@c}3JQvBOL*kl)qXj}^BEp)j+=R+3R@=6X z-O!K<;sddX_-fsIHxB`2nTnxgUL+qo*63DE-NjFaO>>t}X+y8F=rXyv5<$k0>tC z6S#N&EMI>)a(V?_4}CXKhD^=_ed=&1ckUcdILs@re3O2&sTK%@VRgY`vA}!J(a{l? zmzU@b0%gVb@l!`qi$?`jWW-Lim?;)|U9SVzR3W<~)X476^^A;X<*}jOmr`!nEk5Wi zyId}>Wgx$1feM~niWxVHOsl?8n^AJX*Uf?VZW@2RGwQW>o|H1aX(wi?FA$yLCF4AV zSwr!AWCtgMaNs=$>r+~_yPP^B*ai5E+;?p0__e=k#*Jrq8AZuBJ-{=M)NwR5D&oFO5Kv0bD_| z1+7ciaCm!;_nD!rkiJFBf|8xd0ZtQr7tHW@lUQA@=~hbKM1l{51`AggK}*ZoD;t`q zv`wU_BWq@pSG2Ph@rrL0-w2^~9L#5g(4bK%x1(U;(W_DzB=&xpSp_#VefX! zlkaE|Roc15pyr{*p@>;&suNI889;{uE>TJk!7`DXgMe!aWe{@69Nd{(z}MI<6rF5A zQ|_nSYAN-w)-FIK8`d_GD2qd$g2cypW1_^beFsgBZ{euN)p&tfxC5;S4)-`;7dbR=u;*} zn9lz6~rqp8vn(1(w?JvOV{;W^&P>_3^#EtC40md-uBEfdq)lPg@Z6yffMsD z(cIdq-6i9bGz!iUe1k}sY$cp{L?dZPAc-#ZD6JiK^_0F42=u*GS0}~7&}YK_?FIK= zzTn`X1)nB!C8OLAR;Z{;<1U$OtBFHk*fbCyxSWb53=R%!qhO&In_H zs(OpsR%$6W*NgEKM&=`0@S2$AC5!G1y}FAIS2%haEre1S)*EBa#u;V*HkZDkU)&<} zr-Wk0&6;|mFT{|cofDiRghG}~M(AW<(Sih{lb6Ak9D%)O^=J*#CVCx!I_SN8A&kgiZ1IS+*3DA}>TENs?;g`y3%PK`nB`xVck zJz(%_(on4!lW?^jSYED~EgFt)&uA7I*A(zDo7KE#9{^9&9-!KCdb;86w@wJIrJ3)s zf84M*YM32lU_%j$|0tx%rA)I&3wUXfe2HhM?z5Ov9f3Rm#iK<@(zDw149P;~g+f0h za(3jbh`MUuFrbpT_4I-lUpV8|Q!}z`5SmH~3uqb8Vov+!+U5y9(5J!V9wKO!eUv)F zp=ST+#C_W=*_&;~$ols;zP4N&cXkY*ZWe<|L`k(n*>y5}Y(Ux32jyYe#bXCEb}KiF z&x3&OsIw{75rl9Z8CMJV)-e>@nR&Duy;)Uonu)`by>yRw|Et8+6;d)TSdh79#XBWa zATQCY#C&nYN+V0z=W4m(I1U^Hp%5uvaf`z7vjL}xIA0L=<}{6^1^T^?eo(rlaPQtJ zU0+E3iv5Ebi@gRqbL%e|!z=PAc(iFrg3?s3jB}2xfzN#6Wy=fhg++V7Y|n7!WG9iF z2Amf{ba)a3!AU`#wfMe)JMY-%J9()f~LaNN#^wKn$x>$y0y};60KM!PRZum zYn?=8vX+7mo*^rJuDliTtUG0sk|7t~Y$Bb@3?(z$_Z&af^3>ZGs9V)laIV{xRI{JQ zn~|jzDX_ zv6Ed?y6d_JQUhPFpp36^(=ppRDxkMKYM+Y-zzUAs(LQZYW*j$ag67Zr32?@$PHg%oY(62Mg zK5@QTa&ZYq$NLtKK_QnOU->%i!Yn5xT1a_}R$)~J4&SlQ`cnA%^D8b-9eK#OY%s?=NX$!MVbGE~Gw@88~{{@$7rTbo}$hSs5(bZg2ejzl#NB2P;kwRXWrf5 z+qG?qq(|{+j%ZoqBv3GK-qh89t2sQSsA;&gRGC3}C}--S)kK+mcV4gHXdQt@|KFPo z?p+ewbcRMiwic6N7~Ygl=#PCt8SM_o%0IpcyEOaV?qtMM9@Squ=PEy(#(&naFv=!C~O!)q#1V zxM2RQsdN)Q;G(&N42T4C>w;OF3D zb)+wXIuAjZ9|YR@ZNB*FQ?Bk;*ZLwRz>@~ek+ccqp%9w|T@PvKIl65aNgz>lAQ$L1 z!pkqM3EmN1p_vJLM`pi}3#8;&uQHqUV4DyzpV;U|*+HHh?3{z>Jz5GutUIyrvrHa@ zlnUM{jzSrFvJ57H$SW2{1uY#i>@#Rrv6Ka_7TX~^QnoQ`7>3D9#WX!T9FK7|Ti%%O zi0rh|yWYpbgOQ|<9F-o?35BXo9cowdX2zYjOhLK1Gv6&BZ?rq9T&!zv#W3{D=5tEU zm5em5>1><|AsQbB2ZmdA z#|=ZWNQhE!-s5Ayw}miM=6eGn28-(q1BcHnARqF=^Cz6VGH`LVVYT!e-`OKNPYEm9 zBf%ded>Ejqd%y2Ve)qRu!sBr<ZD+X0_d~%vB zHJu3MHLMopkLcVyfS=UoFl^Qn{`lAxl$(m;hjk~r1!e3`9@WZ~$#Kg~JQt~?GqSaX z!_X7kxkU{i6{i_3sLeM-)Ts4paNczBj&1Ac@MYi&I4w3ppd^7OZ|`w_zGB@e{YAs` zpX`8yqay@3KHOs#O=+unz+vRLwy}cc9jFep`z`m+*Q_>~buYwKWPcF}uHZ=cC^Y+y z`B7kYAhZi_KDEBV1>2rz?s#tRm@j_nihD1v==#DduU>NWMBrWTK4N|hp%I+U@!7Lk zDfiFU^r?``z<0m*X*8@^90tUDW8O;52aa<(QO@q&qq`ieXq1c-Wpi07$f;)0SjlK2 zLdurGI}Br(SnWWPLY7HzXd9gxOG2UK0Zou{O(C4*H1;_qCrBR6OeWBp3wg*$5|&r6 zxKqsFX%H^%Z8&~%PH{u!ht!DEV#8G`g_L{7n3Ocws1tl37h5w=K0U8T*1YNOxRVC> zo%m?$*%)ey=4!Qi{0hogASUI_2^^tKQgJlI^)EICi1kOv0P>Desjh8Qn`25bLVi6CI-S@ zVRk35I1c!zl;~~6N;Jc65sE9!4+9_i(RcE@`6ceXv}EWD_fFRQ&@-cqKXe5F9|f0Q-(pvL#bLD^CcM>&3Q;@YHI$E zr3Vfv;|GOKSf32c7l9HWT`8-x#PMwd<8u-E?C4YVsLi?lJUXQzf*RX-a+Dicw6^_u zXeS{zgsFc7EsGZ+h@hGodW%P0uh)-XL3tQPvP-kyEgTQysXXkX>o#@9HpF|(%*iE9 zO5D**$T}JW`eFz;g}z(TS5AR*HKxMZ1=A1N0>G_>AbMX(PKu9;L?wn`TZrOl610mM z_wOfCHvf}CVHiB$dZlo5r{mdo&e%Il#93lC?~wrF1KzcWGe+;829EFC;;UbLnX~(W zSMObN>(-oS-?`8J6Q0lro(2_H#kyS3o%H_s=7ARk*aEN~@I zHi5hn^5EG}$fYHFq2v}&Vr)6uzs2fu!>g~p!n2zI(bl)Z=)#sJ-`$i8CG|DaxY(Ae zZfX?EnQ;iB1VWe0q*m{h7#w69b8;%CsxCThVYCQ&5Y}gf z?x2N*=j#4|4B42wMHrG})hVf%Ffiv_wM{oQWR?I)sVeT*rMS!M9fEH^Z2cjGPJn*3 z0#!Df&70Ekyd^M{UHAIkoSmC*(i>&Vj!_9dxNE+kBe~7_n(vYeO|(0CpOa}j04WY9 zW{hO1cLmDmHKO%kWI{A6gV+e-m39Gsfq8$_O+k@>bCEmmYN;8|$ov!G5r4vXlaJat*E}&ZI*K1BsPAOes z7S?E4LJ}m;@#;+QxV2cJsFBnBG}1^tfLkLgheB3z8YqP7jAx-UFx4v3OVuY8Qi+f{)Q+ z65LjyTS`HPWa2O_<}F&uMtKUO8cmh#ZWuzWUu$-eqM4>q=C>N!gMwd}7|l5cE>c{W za($k7_DR0{*%Q9mcl0YkWkVB%Fmq_r7!y`)TM?wO(C*T(S`IV^Ez&4^M=b|ObJiyt zi-mBCga(&ebY1A~_GHxjKw=>`2~uy2sqAgdiYFIG5W_f1F~Q0o1^%RscG#S*M*R0{<&bX5_J7IWb&o>VZd zO^glV2D463sky|KZ**`tV|BHrFUbmy6O$9D;`~r=4npI>`Gj~+Qpc(<#Nz2n&uRr_ zW}}WTj;=2(*O_imy2>+2*~pGLS=_0LY(pDI5#A$V(%0`+zEkGZ&8UA{Eg$cKa#PE* zyOMh|-3dhzzg32sS#%+%gjU`_PSskvii(S7)CpxM=3gTA{ri;gT66ySTSWi>AOJ~3 zK~#H+#fg?|J}hGq5-<2!Ehx7VG(Zg-a}r3|Qv-`}!Smi9cp5EdeC_$AdD0JkW`We#t9Za>*@c9LM-+s_aUPmx+M zP)`iX-d+O|$m@aJmr65jw|UMIklL{%h0?YRM@O8Tt#F$av6xp)P7dvqG&t6q!lpO# zEAvk&TZ65d!<1{WF`bxJ&6m7(3Av_DmhUKx;+-=ZgBDU}_{n2iP*O_77^iAIb|r77 zJF$9F%my&$$qG?WG$+GMQUIkuTE7A>crmin7y>3WSx-lg*J=B_O;WKOUZduR5b$mQ zr}(|d{AdqpH+CVH23L$+7E3S>4{sEE-@x17d55ol=>(_3kUSy{P7`D`3iYoU_-|3UoUY_VyfU zjlCY4pa>~}N=A$=N7wc2-)d1G=}r=eciw6nu4DH|qqmC-WIfuk5#uDq}`B)j-(glq43nR z%AKcY#1QZ?p)L`c0{#*wO*K5KrkG_+E6=zvuvj=&sb@%IM2H%mQO#Ps&xjM6#@MWV zm+&GuX$d~!WKF=)uQF%%Hu$*5(c6!>SZ-jsLc1%xF34JFeP;hwA<&R-C;Fm!>zWxC;j!9T^Nm@u=rCr-f^#)j#-6Kp*3LJL(9S*T3y#Ru z-3=Gt%nX~s0M$}(v8k%&)(VGUT|zM>@rW*p6oz3Sx`x;YdxsH8o>f|r`ansFvf`OBFc1$!O zE)tvx?3y+c=RL|m7drOe`3#%O1$yRLcbUcDD9xJVXCkQz10$`G&m?fViM-O^W_8fe zG;8we6<)rYkIh)>5q|g&+XwZ8-sHe|?Fx#ga)^!7zD+k7G9&)y#Xgr(o z+T0pKzg|}$D&O&yapOHfOghr9uTWJkE-oJLf-)9}^?Ln=v6Dv?l$?@rTS_*k_B@b> zzIG_)Rq84?CHg?gJwYM|dk5qpae8u}rljdEqGB%cS&J1FsJ4UUD3vNJnRQN_h!tyn>w7SwR~<~r9;JAU#Go*!iL}oMAS@`t`4N&Bymd$e zBWFQ~WEv#hkQDZCeu>bTJAEJU-o3Z6-6f2>jFZz7oIPG^cLWD7BTyD_MS;aMIHYY4 z6t#3HQUJ<0df;ap6%|)HN9HF(;6lhrNo$@Q?%dgfj~VaH5QWCS;$?+A+p zVYScLdu!AbMk0Lu+X3&qzra`sLyCB`iFhgp@T&tnOiv+CcUT<|7Ty7lFvtimOGsJZ zJVhLrxAD<%2WP7#eAwd7-3R!H3U))ldh4(oqK++0V84&uZbTH1;si{B%{r-_1Z$u& zONK)oZA^jOgr?KRsRg>fQinp>C0Rg25ie!{Bf|ELbc_P)BhR$06&CxV+?#`p>=dh@UOPC)5pF}Eu!pj`k98Jw;V$y{1gmGq z=v{GA{835q)^z`$SO>aVXQk9W&oaEDX zCje}$v6b7AvC~^*AsoFzTEKdk1!kMR^h|Rt0Z=%R!1#`0w1`!(t!k_Xdml$(-Hjg9w<8urC`g4=>7X}Oeot9 z1%#5-CUI9BIQPiA9f*}+w@n@%OO&w^*otwGDm6w>T-GjA3b-T#lVKK&GV>JnO<$ z=dJn-5a?PZvF5PRrQrG3vFGW6gC~bH>`=xXN-0|vw z^Rs}T|KBH&v4?|4@W9?dkHy{s6bd*2XD83_=of2{9H8q3izUMc!Q#-vtu*iFbhp6z z<8yRg3vC%4m1o7(~%*4V16K0%QkBAh_VMIvVkvKX5Gwi?IP5 zfk7C{5l-_1oG}!|ad@zgv(vSjW0Obl5rqqep}_kEk|cdCS%d3Svt2A87a+w{*|{LVqm;o$7IUH} zbD$%!?H(+u)C8vHU+oC(!R20Xjkk3%Q46QPVz>OM?wwT(m%5X)v$NL{YZ~74?xYrt zd3SQ1<>Sk&ATN1Fv<^jqGZ4^q5nb0|f3=6lj~^lzQ7sMuoHNKN_aFmsU4UaXVA5{H z!8vb{8Vn}{E*T{kP*QSNSQKTYItV#kUzzrU0lfh*R&I|{S#hydg z3F01WDxMcBoCFRTOb#Rr_5dB-MU)6WIf0jq-~zhXgV4iqL7;-gL67x$0kWQj;u$V# zM1`|8F^fieChX&)yoa@X1LIL>lRNz z=P42whV6N$Yj}d3JW|Fc$XZ~5cTtH;a4thaQ7Zsay^t3NW_9r|NV@Sz4j=xnEqGi3g>d+; zL)UkR&SSBPc<+1P!=wND6+Zs2U%_vI)dF}cdvMlNQBL|xBq61QoO=kO@?UyJ$Vo|g z&guNmgdzfR1;QS*xPx(jAB+9~v^zoCZILCTkg9EWzQ;HI&+pi9NMVc#r#m5cnsoknlijsyu#&Dx%f(ma{?vQbKN&Qc}Q(|QBDpvH45WGhWJuc49wM!NKIyWATUNerSEO`hwo6!1qfYTI#QZ&1X zCLRe9eZtc5`DsR8V}}yRVPTOn>!(iu08gGgd2RRO8(&a9Eq3yvwV0Tgt48SwGjbYH z7&tmOz|-Sn{j+r^F2rU|T}VKzfmJ&Wcrs-8UmAj5UQ;vV7s{eTcWd|h+T3hiwLF&_J=644~chiw|^Ta7$MXl$3u+c3S(r*(LNqgF)ob< zvIoNRZy%?U;4E6KAgf0dTHTg+K%(&Kh=RMoJ2d13*+Ya?7zP#)C1> z6HaiB5F7weo(M=##sQoL&7dwtIVHk?WOzqLRbnjq9%^`hO4 zcTV+?)wKG`isG!8&?lOd&r)3WI_*w2r^gV^*zI<&1&qBhOxde8JJ)q5FHb_V_O^bn zbtwD$hX4ediwgtMtUw7{!W}`p%H21s52aRhsZqkAjJc8TSJ5x`*C;yiDV_r8YB-U8(`gCAz} zivoY7J}OH*!Cv?V&U}x}Vuh~z2F`JgJ86xjKga$(Qc&7K!Cg@>a+H8g`Wi<6Jq+P3 zl!JuO9Uw4_OVrT0RPUhkADNBkc!XoOn>Eg*_0Kn6yPhaaj`9>F%=P{CMO8qKb%Qf|+ zNzL`*D~O$g_Z}DP4T^!Ri~=9r3`f(}o1FS~2zjty;B?%ni&q4E2gs1n!9j|kBtWu9 z$vu1l;03WeLRjo0?*>TO!I48;5>~5T{Z{-A5Fq;-R*EVM1+GK;36(c#HPE4 z?r0Bu?s4(#7)OVCQFd;JRd|T5e}J=L4;wzf;o@za?H+^WBP{w2hz^lPLSYA?9$6x` zsR!d-T$BS09Fd%dEIp_@#2Kj{4BP^Y9uAXiA^U&}0s6#18IZshDdEA+10`!V&Zz4S zfr7E*LZt=5u~?)@jU6Sp;D9{h?AaM|*7GjTsZ2sNcQ|pe$WPmQ8MvyOl@{o$z;I3= z0Kq$yl+=QP^xArMd~8}SM#&?*SxP!mS%wmo#mI{Fy_+DAChUbs(++4J)Wupw3i4q3=Y) z(5+Rax)rjnoLEp;)Pj)!4+nM&taAs#2-od!Z?yul%Hy*zobMnWD9(Y3K>Q&#%X@He z*gqISc>{6-Qf3U}4l$l11$LoFxOV^~ht=i+E&#;^ zuz!XSSJ>PC76w`1gw~MUVUT_F=`s3#A8<>Ih$ys=L3->cVk{9CxkDy3ePM|Z0uq#4 zq9#*r;%1oX5CIsx1F-?0MUYE@Yk4%*74pQZo9(7F zCUuoX2up)o)c!*Mo=wWZGRp_Oj@D+Y?-h((JQIE6i5QE^LA3zw< zcL8zl02BvxOe2T&`T%QQV!cT?;EZM2V!>Nzi}zM+YVTo$FRpEbD5;t4nQ0 zW`gs4c-LChSm!yedK5V=_X5Cs$SS)iFm10A(an{)t}>@dmc z7N$&5uBE7_Y?+Uuq$IFpH3ll-S0HjDcM}k9A|%g3X27w&?mz4_zL8fCebP$^^8GS}-|hoIidD0C@E1(HCpw;~$aJ&q$DJ^UCkMjRgALEm>+?d`$)U{6^!L8_tE%z~q% zBjjAL-E1HLMoHKV1*fMMIO!7ZEfU^ZB-{-l)VJr z($x9P0bQDTq);o|gni?koIU&y5XSlW`D@+m+^B*wkH)x;k8;%}=$ajmwv@&VsGWt* z!v&|O8?4t`knKram@axp!Zok4Vtr4~zwtj)NTOsFw^W>1-3X<&Nr-;k|I|8zH6WKY469fQJ z1VK8mDDg@&f5i-t1XQA}%e83alGGPf7#rZN#D6F3YLojkiu}t7PVyJM~HFj&NMonI&5H(E8HBaA}9|;kH z*KLh(0Ymiqa1JmrpM99-u%`tgr)-qBX+*9vi&_AqcTE=J2*_;&qIQ1N`LBvl-KTnp z;!@GDQK*sZVCNjz?;@Ndj2GwFo}EHOzOe4(jV~y#f}Ol-cT%hQC7_jHL?lJ=i@Di@ z0wg6hH1@tx9?7|eudqFB#fcfLt4469X++nlnvD=K;@IH2fgUDzGPabDm zhb$|cb^CDKLjqyQnpQ|MSXZT4IxT@t7?}VhV{XF3d39rV4j^Z-A1*3W)NYFcRl<^~ zqBG~Fh!s}7QSC&S8RTsI@%DGF{;n7IIA+6`#2oW@igJY@k0WaIMJc8A^vzjXmRL6;B8VX(acVcO zBOOz^5Zd}#pz;fdvZlRm!4LUUj8FUA41Afp!yloUjxk?OL*AGg`J) zyg9`a2x%M*Ak?RF$;GrUCYa;8x>coAjXELn_F0e_dfR5lJVYRMgv^Fpphb7qCv(mM z2L*pkIAtqbnrQ8!0C_6h##*(L2n_@#a_}Tms-Ib6)D4Y*8{n!YT*{=aQ7bv68n>g4 z``($JO1*>`MyIu$VjUF~jGq^i7~_>BH?iw-t~;(c3RYUQWxV>L2xPEC?z<|tdAx)q4itq+^?n||odoZf_k z!Wl#;60zP968DYu$uj7_<2@4W>6}fyOj(u9PT7?prz&VpYPKYdES3jUjGV@~tuP%I z6|srNkTNFOLVdb1^y$ySD7HxfIUOHt1j&VGTN{`gy+BYfj-z5PTm!CP!Q=##52GYS%fGVt9phP8GaNst z1;<99CaEW9M%~qg3^wLT6S?Wlt%U|gAgf}!Iug~jvxwS9)G^07{XW7Z`>!K_7B12t zFCxSc+w0W#WMaNLa+#11T)=kSblxLdkQoXUfCJM6{O5vgx z6al@%&e>?dnm%ZLEhGXWmC(0mp>u$nf~6p0{0YrOE`?1(Pd3s>vu}`T zYu>sL0$naZR!qk+foieW3Qg)#;7KzIZMp&os!#_ zy=L$Tkc@!~B9M*CVAFe%SOg0+)}$7=>z;DYwJP*nk)c`b&flW|03ZNKL_t*Z5`%Ag zozss$Y@^N>L1Mdc1?5$-lULXB%&5`rrkIFFH3Jtk>ptjtKutFm3QS4^8ByD6yHP=^ zF`+6`70rfWD`*NHic-pL1ghN!dDqsSRP`WrHDkrBrs~xaP=8)4IJQm|>#n>#AuD@T zageEaIPV)M>#P$HW^_SWusQ39mrF4Z-s!!w#fvz{Q`Z7xqqct&X3A|b8jdigg3v|X z2(ba0<}U)$|6c6??0g$*mZ0YVPP>a-w8+%Wj@YKiIX!Rnf#YOme&igSQ=j1&d|P8z zZ(J?~J_HNCw=UL3WRSpnY9N1=a&S?zZoLc~oHy_{1{0-T`=t9sF}ZT70K$G}#z`l~ z7&jMSW_Bbk7>+Bt0rsa8I+c#5_w-KTisp^YSJyPg7+H~#X$+ehE#cq`s zQDo|JYD6YvzRH#fd^0m2BB$FV3yccR*;5YSG#Xe8BbZU^NVu>?ixkt_$fb)@O4k3j z7R*wb-)+vtZa~*IH@bQ?%&4#xG&S!oZF8YFb50pB!kM#94$Q5Pu;DSz0NT3s(N%9& zYXR>x7%L?OH(9?gkjfUSTGv}qK+#c#?8JNc#(U{wn8uwMkHgz%>1?d(x@gh14uz=| z4I>9PjgM}?J$#7M`67?tbmcF!Gk#2sqAl<~fS~peC1dum5O5(2d%tE3pD}KyqC%4j z+5UI0j|vbEyJk)B@y8!Gi`3hK@+k_+%Qidn?&MnP{bZ>$8*?us>M{l5HdSnu!Z#YZ z6reh$6{X_mJdF!5OrQ&1?IA6a(uHUpj%5LfZjfNx6|u1aG7*|8(Fzu`S!vqN=?wvU z0+;p!Z04R-PG_&%dyg?COS1686+G@8_-L+t95I95FHL#cMwL#Qw!g+@f zJi0C-XB~N*2y(JKYv(~;=>*0Ir+i}Y&RA|dC^MvDh0Ai*I%IJ zkt@<>uY598mZOGKiM8Psvz3_zpt3`)wZ??E3SUSnqb@_b*7NcPd-WM<~CmmJ2DrZ*si|7%YUPtE-C*0)8lPABi&g4cFlzDgZG6nLB zn6eOk`j(limOxsbj#Q%@R-jG9*2i|CI#(I8m71*uKyQi((Qg|R`}t~WT`?KWb#cxc z`&C~@NlK*3CMt8}mAK|zD?YihNV&kXzR%!mE{=tQi-RbI4PZeYXSSD(?OE)c8RL=) zMD+a<8)u{fy7txy~xw}R>GsY@P-6bo&Q8^wEcq>jS z1a@!`gtmFZq{R_N7lRVzM38dQ4#X2;*O`r{!1cXeE1ALY$b&%8VN63~1B<8;7U!bH z!x6YBZsMJX58m`b0#6l3N@@{mhScMb5WH_)A;C8nw`*CkEzD;wGuHFm1+O?37-x?j zA`d&{oPVRZ$&D*0S9K>ZV#~g0%Oe%IlgkRwwk;u=2yo4x&o&x`X7Q-7Q1k+btL7Yl zvv6!%qll5o6j@{gWEG^X6#n*9pZS-HiRe*7xJx$D6`Pw_^>oRtu&B4Pt~Lux0~u>E z;5KSW11@z_M5YFwFd5-#?OgGRIxuPkCr!*vDQ#>47t_4JI)tffaaLUQW-IVj)!c-1 z6JgDXAb8g}DKP~5do60Q4{$^cG>t*MKqz@#qx%4FUrVK67Ii5d$jJ(r0 zj1NEj@De@ZH(6N1O(`bNcPCeAdFGwW)f=9=ahY21xeQ%u3;kR&3bpmB1~@h6{Auw5 zN8Y*uXa7!hOGiWdb?#<}bB$8X*12eRL1wmG*OoyO1x>Ij&NwbC6aU3TYB^_Z^F@%7 zt&Hu4uR-O~-nXs1siPSeo^3Vjn%%;~SZp(8VnK*@OS3}FEN!y_1F6~Q z>QdLgmE>kvPn;Dz5+(WRYtVo;?+NTR8%Wp51|&OYpMS(Kj@XSElr*-4S&&mk=pta9 zAsivN&^k^>Zo*z5@F8L>BT`E6q?@Mzr<8kEivkke5;bel_PYYqA_anC=Y(Id;h|6X zK1S!!M^%GwkDp-NXl(5BAnfhP^Bd?+UdTnU-z^ufsb*{8ATtp{6?n~Y03$EemR~9u zS)b)n=Ocq+z229hu{KA9@Xc>sQcb~ z8@qyHA4Sh$88gIK$0We8-D=U`+(dy~GR9$0uvKP}qarAIG~l_ie>F+5rY&3tpIjog ziN@G2XSq7#T62jXKYom17{0V(^2Qew-=2W-(v8n`ILjwKz>2qAVs}y7>{Q|!WI`S0 z+aH-RA=}#4E(Wn;M3=Y)>bib(bcpkdwcZ4uL&dBWymLt7h+)_v=ZWuAQq}@%od;_Ct#we@6wjQ~QGME5D}Q!=W^QNP1o0$p!dl3gzbcgO zZ6k}fPuQ?G3F?Tl*{s{^V9ryKGCRczBJ!-makfce ziwv103H78*@&SQ!PlPA3agGaQihPnI1Z|C&bqykQjL-n1kd*Kylv^E zMUj@)g%r+qtyJF9#K667tbV;_c|7~uq{@LNw8qEUL%Hx-9|gIQ3`hTvt?i`BRFO26m4T=+b1p= zEX8y^niV9Xp0NsS7ci@7lj3TM&$Q3fR^s#P>Z%rH5u;*I%-EivqKsNhj*pK&q0#v= zyObLd^ffOqSFvSZtvjjUYJH+=K`K=@A~Vp^(1}T$W`eoP<-v3}W-dge>p?Sf4$hnB zNNJv<)xoTS$&-kU+AUZC!bTmh5`AW)veQKRB4_>}_A{+8G!rT2M(1@<*R$G8R7NN@ z7dmdbBQ2I{ zkuQ7Pxe*2Bs>1PncXAcZavgqhc|A9oDa%Y4*C_VF%_z8qJ6+LM&J;B5A}LaUVm67h zE~EjeA`QQ&SdFfAXC}{8J};U?=wPn%*^H8B-Wb)M5e=`HLe>RDH^xo&|K=21Ssts(@Q#vWfu&vF4&%)pcKvVe)jCyr3l`y3@7ZS zbSLwIa#fL;)A6tMl$~)<=JSh+zb0-6xhdSbO6M`V87CrA&9$|lDL<)uTgc=LOHpDN z*@#q&4L1-HmYfHe2T3b{y0>AYnmPk>FpOySYgeY9db!Qa2^Ev3slIeUp1!>w52ycRTFPPusQq?Af!%GkKofeOpjoQ+IOJ zW@m2s_^L4)t+X`S^u*+B9B#QRw0j;uncwW>9K6>XrYdJkDd3#J#t7BT!kTNIHML{QB{z;v7Y%1}WB@S1 zS*KN3(5fFYwK-;L_nEg&>!7c|Wp@{+NSh4+U>rxBo}PZC3doHcd0vE*T()n}xt8NZ>~0HBKW z=<+$?Mh*KCTMfs4X<|j7ROn?GESwjd~+_yX@mriVMy>X!h7|-ElCTf z_w((JgD1sH2oAx#SNQdreFQlFikQb%Ah2%yRlvnLeURqFEC-VFUXWa@WcI+IWozJn% z<#JYvu}OzvK-YB`cLP$&X0|MtFODze+SDjZ%bAYOFjtKFMnAi>=DhpZ7MT_1E)#>IS0 z7$Jt{$1?7AwjC;l_2{UWQbNh88AW-s<10LEX~cl>c2>!@@pfL&J{QASM5PGzLBiLl zjjvJ+-;O-LfnqZ6POb|`f0>r2`HWV&$&3xE_`r0d>l4RaE;_TDaf+DC7{?t#^w@1S z*sL#*#?deesCu_0-eEF4ntL``AUDr6HX;nimUUxKL_cHX)<_SsZ9;WfZ!i#l^7ZOd z*H1;RQSE0zQbaR@4-BxkV9rc*Dnyd*i5HVDrQv0=xuBgCxBBB+8H2ReN-GR z)!{8A6kF>$d%sMC5IqFSjHRhYE59cj&xcvJVU1upd$6?c2Xc{SM^MV;huE7^JZ^MB zxr%y!U3YSQjK(x3Jf9#KLcn6NXj%!?j7-~_dACwGD%D)M`b++^S9LS+&P~Yh0Dxh!L{zFbxLiUgo#-v(;6DESWubP%VMu(;@z0VqVZl- zN~49uI|uK5>q@$=H#&PXkXW75oY#&d#!d-pfVrtfEPH)<*@C)K$|!k6P8JF3Jqjgs zU5D*vjlvpEzD>!DpR`Ej-3C&kZm^t(cLC&_%KJGh_Ckbl9GiHts>O3PQi34H*ep36 z5&Evfdb0*+H4RVWfDnRmRz!8*g^N1j7d=HId|mLA_yh<50T3|k24gw8OE5>Hquc0`EDWra+%jxx(^EGrjdNle zk?A~4F$vBLqKRcntD`Ailda&f*+f=A(vh1WmuhYVx}-2rB!(|_WYdbArp%Ytm1wu- zjlHVlOi)ZB1jJy8inb;3-lJbE5M!sDlAxUo9HAtJ^BORpO2%fpMPZG&=z|AJ27BMs z$00^6mMefW(y-HWJPf)GirN*V-45^(!3V&)o>G#&Kj%=gc45W5e{)gnBc-HNe`wd@ z8!yMO80SI0VqIPX*PU8II8r?ov-;^$VO#5RyFMqfolF_f4F_}AtBqgdJ$Bone2(tq zx`6bTQtxM-$<`3|zV91}ZL#P<0Cu~b@kSavc?o5hdy7Cyi<_wC%@xmpP|Ns{nG60L zR4p~KfiDBW;wBtq3eTFhOia?gR?U%~$3m!vY|(QWFtY+#$C|bdw%CT?Jfe}$g7=D< zgwQ&Y7y?$SeOvuje;|886X2sNgLk{Z!pe0FO1WrZaUSG#Y=~W_>f_)sZWHzo?kZ)z z58%QW#~sp`(De(DPhh7)y}n<7L@|+^N0kJ`UR@PM{a9GInM!jh7`EzTE2S7KHcx9{ z7I+sBI&WcMI?~p~4OmJCrZIvzZr(>#&no)$&|5 zv(}=rSoH1RT&|X2VGP4quZYWApo(oaY-D1$;!?*jTeHq^iwgc$iYh^1{IiJ%M*@_} zE0IqGXV>ttd5~8HS7{a&Rg2<0&90tH=cW;=ZX+sQ0@B|@@K!{;;SfNK0bLi-cYQN` zie0DHNA?*MW)!3SvjEO_SZ{aOZj(v`5U^VIC`C6iVnOb{cnAaAF=MO_dk|3U!AZFs z&6~EUFG-9MMT(go6_Ds^R~5?v!5F$_92>QsOVO?+cpbT_ETJ-&xgb}=Y9B1S2}o%~ z;iS|8s)n%KK6f=`aqC7BjId7RiZb~m~#@LMpe%W95QqiQzA>Y1X zwhEpV5~p^Q4(dSXNDZC6SEj4?zLC}(5xN+$SoG+-&UhxyLeUFch!}QKz&K z1jcS0TTr`m4k2on6GG5&#F(!H^L)j$c6Sa&o|~`yU5m^xD;2e=Aa!K(K3d|TGz`lb z23Iv=jvThT0sr=I|Mp^=($4_c{wBMh8>8j9%8>dxoaM80L0VL7v(3s@ukiO6JR?hzhMg2o@n~6Sr}APsM@bP z@7ma-=dZBaJ&F*D1|EC&swdk%;;wGHO`6SPX_TR5g9kvYRd5L^(Uf!q#aDt~ZQ? z2ylqHE_M#inWJ6x_p_u#4X3{yd2V2LBA14c=Xn>q-BumayRKmltJM-Acx*R2Z9Kr{ z!bWW!OEPU&@Eq5p@kc5j1kV+oOG_I1d+7?X59|bNUz>r3yT(BEPlmd)H!fr@<1F~SZ8`KDC zOe!$|VYyntcO4e{`&wju0J(teko9Tr9hjWC$T1d+CAct3F6jCQ=Lj(>6@S?6Py`rL zX+*-0$lxc3I$Ni!@K0yYVwpNbQ=nJ1|8(R47a?L=ACkthb=50{ zpe}KCU4BvJ_|u87WE>EJQ;x_udA?}3=Zus_EgHj{dp&b$8#iY;#RRlW9x;)k zuH#{n1|uvs5v9D*h2+MJJfCH=bA3UnVlCI6PIT!u*C+RSy~b*_!eY^zH6dYde-F+% zEh=ry5HMZd*j%1{XQRjSag$_r2hYvP_2;&Xotj`Mv&~VB@Tj3#wPUL9(d-NAI@-;O z-z9L@8J{CYxESF(ZS7r%@Ug>kv4n>@xp#{WyWOrCBnvDiv;aI5Y|l3s#*E!=RJVB_ zKp|kUT7k0$tdHZyp74U429z>lw_al$N8Gt{7mMWryY&vS>ky*XES;hq!(zEo`^AvK zB_WLo%heKH7lBf6^6aVdM(P8`#E!*^gL6O#0FQb;>*`&k=3RRb2q8v`JW=*@{XV*M zBg?e%x8efh3~`z00|K?TR5!odk>@M3>AB93`nrwJ3o}qK15PjH^0-SLA)C!cH$LXS z;mBdRT52Zmn9VkzK9S^7YG1=bo-Z&BSD91$r>|9IZ=1QT-3Cn~Q3Hc%T1VHAFMCmq z0O#xfcLeW4!%b>#jdva)M)PbjBo|QZad3EuZm~qlSqsrPS}aE0#wGBOo3QTL)5rE8u$6SzVYylwyu* z4vT(;Jd7H=#lW3A_b}`>*ll;(-Q)stL8B~e!Ap>byJRTQ@WGuB1k`tmSCZyJs%0Q^69J;CbZ0&#EHl5? z`tvSvN(kgbvsSEI3g>itL$>~|>R@NUYUn$3%N1gXX1hQbhKywwFr);|NzHyltsrwM z*lf2DVGNrsN=oX07Q8ZNtMO63z-~97Bqjb;1E-oIQ1vqk5_?EdfgyQ^lp@lg-QaS$ z!ok5I0B8r~97f3it1&hgg0Mpu_W*I=(%D!Cq;bG@yHR~m-f2OoxCRkQ@$G>n=BO_= z3NlMu8MC?Eli@2GRb=jZhHG`PN6w>ZI;nk*pT=$NtGFt@Q9P8Zu#*?@QC>7#*1tMD zJj80X#A>y|Fbr5O7r0n&aBy&lv$IoNTwLJ6g9rHNqYv?oZ@km&B9D&l;K|b`Aab~O z?>HOjXDUBFY!fLg`#d?jy!$a)t?PI-OV`iI zJB(2CB(ZEE=AyA5-m6!NZEMu`*79`V7nMu^03ZNKL_t(IYjB=P3%rStCpv>Dc}6&H}JpzAO9P6+b!1XHJ&_uiv5EF zoSdBE_kQp9@Z`y3eD8bT!`ayh_V@SD#faENEEY>_wrkwIdl!Ab!2bRUPoF-;d+)vr zat@CkJ#3~u`+Ix1ckdob$@t#)zK17Ip5p%f`}q0Ke~xc|``Z|X0e#;gr4a%B|jM!`svE6L(^>^MzhyiIxI6FJVcYpW4;o|%Phj;Jd z*AE|IwOpX20dL>CgWw2Ho}QUa0kDh_U5x0XgS!{;FaPp$>^55+1ppffs`-$`riQ50 zbpnEO7{;Q8BU}Kmb|$47abspygc(3B@D4h%l!DFq8HV)*_V)I%T&>W@9&f#M2kZ3~ zyWP&fU`B9tZ7%3yhny0a9AbzdEa38pQmo5hYDEQ>(OgoVv^pZll1=F85JK0sL{-)8 z8x}L;Cta~olp7-Ed7}%;%es^2iCtH9EzfO+0Rt-6>kU42ePuvZUDxfQ8xD$qbcrAx z0@5KONGl=TA>G}LG)PE;fOL14l(cl0ba$S+c%Se6>fXyAH;e7sE9V?@jJemoI})33 z^&(Fm#0T?LyR6Z6efRwK+# z@1Dr?)m?2bl$S5_-q%mRa_t(1Ex|&-=Or~XiflY>e7vp`yt;e9K3Q;D>aH{%w!S>j zEFu>G3!PFln5R|M4~d6|woHK#w(OTZ({pn{@`#n4mdRy{=H<1#ZM2bK zmOA}VaLVfI+Pb$VNoM$&nYr+_qm_CLvQ_Ax4|pPxrx+sO(9u)+lO_Myn-C`u!HYf# zCj9f!QM$f6b<)9O2uU0fDaS|p&3@ZjM)EgZVIq{S>DsJ65;%u{c=f6h!*r+H-Be4; zx^3&cOYG?0WYqn+Q}50aky21D*BANQ*CpwNtWScWwp zyq)-W>27ez{e{$8UjE2==k_fb)mTcaPd_f@K>pyA=l#|e>S6OG8Q3%rYeElVt;RMw zOoc=T(rFpzW>1^b>e(44Qd7lG9qbhPZXep=zDn_KZxd07Gn z&rn};d{!&e7%Vj9n&X&Sw(j=6X;DG(;^5n9#MTT(?%jD6pHkr19J$r-0!+GNqrV2B z=p({3ozMK?&y1XsnwGy$6;~P)BUoIhX+(ds8G~`5!tf`d^275?^^WUcMRt6TAaR1^ zoKC%RhznDHr)6IK;3Dz8mhhr}@)O5KQmL`i&9{TaeXJOp{0${43o^m)c&L9+Qs%(r z&{XdHrb|&!g#YjzF~R)r7+`PU0$koPraX5hhVbRE@;VdXx=$U|#*fpy1}AF_OxZ^4 z%?hc*;3Xs^juzLz7{S19y+$K=#0K15;w}>h>l>@W+#Da+(Ya(8w%_bl-IR2Es-tJ1 zZG(U#Zi<-FW@k5xZ~yvC4$tB9YfJB3erg@tDa~ZmSfaZ@>gJ-9Rq911!Z&h|vcqoY z;(g|K^7<~6DwvlM-;Dx&`hZaQk2f1C7XdNP*i{HWO$O>%R2w!lf)_sVSvGIjL>zy6 zcQ;Xlx91FfggoJINdfB*?Ulxx%PCc?J>DhSI^`NGL!*@F1nY6&^%9Ud9cAl-0q297 ziGhWQG_|D~l=75|_{Bf~bksor|7(CFg}8jh6KJ#D_x`POUHRWu;@6z;Jmv6~h@x!z zRzBSmAN5<6dm0s|$;e7J_-aYAiR5_6$Hld7#V%_y+<%q)eYLmlBG^yz(d9abJ$-8P zz|ei;sooHMz6J-pn4Wj6Anno`-t0ZiI6q4~5Z7x<~)=i=q)&t=brhy1dV(R107C$fLhA^)s- zM(bULCy8$?Dl)~Xag!v~STb)mKkq(Mut6-=+=@+IU&5EaHqbB-uwaK^C{_yay`S2OM9&qI+bmce4aD8#r4^FM+cRkzssQnJ?!45? zLtom|GIDP1de`m17Dns9WVP4Jp?Y$+Z{s!}AqZ}*bscIFu#B9VDIbOe9u zcGnA7V)Ut8qFU`pHZw8S_E_N7Gtp^JhqN%U{>Lw+8&~XK`*!b+tom=SWLgvI4>lZ{ zBDt@tm+<4JoB>Q(iG*E69v?Iwu5N8@VO(>|%E=uMXg@pwrLf>ZBaTx?4-bOlF(axF)f$6vMY;9+NSursyAo`mCBuZzm`Bv@I~vG@jqzT&+L%QAQ=|s}&zz9qR+NMGG9Ya7>V1^DSlb==WfW92lOn?T_yJ zX4;J&U(hIXarX13DH*`~QukZV8O*3qZ8 zgH#Wq$nOW2^@WzG>F-Z(Uo}TU0oOJ`3=?eWPw$bbkGI6=-|SK;F_Vdmh&ak7zeioV z9&(zU!UrJbrW8iB^l(wj;>js()1Bu!=(N?%jG**xJE&*mT;FeyZd}Uh3-p{BW&c z>S5o?i`eUa$}7BEZ?xqi_0Szf=w>vsMDum4WHcdIz0V>W0fGqc9~TRts;? zTEhw2wePyMDSkO;r{Pig5>g9ZEhF6R84H=g9a%|<+#N@H6|Ec$hd&p(?vpFi0;e7i zuL5Mmatxr9lk*8U<$v&ggY)n8;Ju-4d+C|clFKIP-7<=haM*Ems&IuDjHCI2!EEmHqNJ-pA+J~wL(nL6Sf77@@3yK2YrJQ`Ct`|6I> zdW_v2aP>)<1BK(u06&o%NaSj(y-Z+Vm*73fp zxW9&39crY{H4NFo_QJz&Qz50`@JbpB$vB71XCd*Vd_#khDLj_rj`NPLvU%gO#y4^X z^Q{@_W82qJrgCz!9%H#SDLgfHb|mUtOdl#}1x!z!!XctYQNYCj zk1}lKk6X@SR$6_bHSD?MWYsi4cinOl;hWp9G^a3tWI>1=A0H3>+Wo~csQa%s#U!PU z3E_xCG4uZP&^4<%BUJn;qQbnZ`i11eXm9D_%fHzu9ilVlsf+`tL7mRK#kEJ_R_@sa z-?DajIc5BEO_j)xUl9B)OwNC;M#m~&O`1iAFZ4~TY|Mca0|Vn~gT?D}3VCh3WA8u` z?*eJ~;CF>`(upDMm4FJh+00&BNeq9@VmGEpFD0e!Ijh!iYo4Zn2JVW0Rmay2-^~kd zauD_((f`b_XCQ&Ld$~#VRs;6u_^$*Xn4Dr1o0vB**2rHV&N2as-}+Z6IO@|6`7Hy{m9Q!y=>2;6aT}a+OW`p z<&So};kxY`RA2eY!_chd^C@i>J3g~QHv|l+Y-1g$l$L%;zcpO_ zSU8q14;=il(*p>0XB=oZy^81kTmGjGI1#C%zOqIyw-tNaHEq-)qN@*S-`K(eL9XGRe~Y zMzCZ1{NGX?3(xAZCprF!zn8xZB#Q(#2{v}r8a2*|WmNf`fLVj?Vav+Y6b+18iHLAe zCtSh+k_a?|4*k)2iIyS!~lFmcZAx z3-ojjxkvqXvf9dpFUpiziqrC|Wlzm{?c@%$UEUjTPY`DN#4NN1>%dp$uF-y^eZM6AB~ebmSO)GIKr1 zNP;aEZ|K~tk7YXF8*w0tw5@ao*=!D_u9{nWcz6&J6Zkun1>FK_5fe_mc*v~1qg zH#QCqgu;nXVG0N&F)2xepRCjcHZ$`XG?p;XXRRlaAW~b(%L~?Eh=VSI=fwNkHb4|k zpZx3g`ntjKVNT8qL_ZP2Km|uFbSj0!iW=4g$CZ!0fQsWK7JMnyi4nSVD8We-P_hf! zbaZ>42qHhOsbgnl3%IMCn}c^2EE6Cc0428P+7}t-U?Q zw6gm8H*d2Q>>V6*ZESGcb;_Jyq9MYA835C_+s`0v-dt7nNxI#nT5X^U5n|4ze(aq5 zP2oo1o0Le*52pQA6;lc)z39YwK~$(tn|DdCckbjR1udE{jY!;Y=)9mwU$=*GIXJNa zJb>~^2t|^#CEZ;XUB|v-HW;2-tEG2T(R7QyHJAzJEuA_Wy|FAZo%zWO*q?_*MiL~D z3c3@5^?dA1Qo;B*N)?R2SwJ9a>gsH4Y(CPo2nhoL2L}hMnz|O+ptlgvuc|)jO(8c>gtFE*LEk<_ zY<%kas=kzQU38E7o0QUgZgX?9i8z66Pkfp&FffyolNDxRz9*1{)G;nbM#hZ#`sZMJ z6VuasGR1;IX=%N)HsB!uavHXno4yG+T(Kqu(`aI4g#y9E!2zb58V{Wk5B-^41U5Kr zQuSR9du;{m?v9_#<4hqqD|lsPr9#m8?zm@)X^zk7rIk&7epg8YRbX!W`xiPFoFc4} zw_ipAL^D^zi`oX0xks0lwE0;E1_rjaw|!_NdyOg+Q&RkO2_I{KgM?=3*x1-CRL=*a zJ_ZuK1PZ-1Wt^`&<(26Ax&_{(&8!7cNJi-^I6in{iIrjW)-a(!Zpe@&9b^y=J?&k3 zMV`fB>B$i{zNbZnW*kyjH%>CqRLS>>NsWITrasC!6ps777v}dRlf-|fzt>Mh)yC~h zbKsbhCB@MhH`Mt8iLvPxIm|-!6+A?%^07L5m&rQ83DvZut~)m?s;h1*d~tD=Z%pK| zQ+tB=k4v&RJK6ZiCmj)mCbD$Lh&BjgauUj}Ut4xI^Q`W6IP2QXD{MVHvi7cb#=dR% z_T&r^X+s3p{Vx*sj)(Ns1UUp!G)Q`s>VmFD8{YMjAUZi+>}ZBy8P-vmczq2E$XuWP zjIvDIm%-@5x<#aer^mX7-N1kAe=XG1UO5eM(unO0*gNB~wbQMONb}h|W)YTo8QpZu z#@No~h=&x=^0zZ$hTNZdU}UWNzJ^x7_37kaY-ib&0HSn>v()s?X;Jyf^)ulr)eOd= z%2Rr}b={uXF`qULPz|H`XX*F)ZG`AE94XB&>1eCuQS))ial8` z-!hE&(9D7nB_uU2td<-(5lR$7IPWwWv88PN=zA>v|MEzg8PI=uBvFxnJ0elk$1=Kq z-Qv=Vi|8}%9V4@1<HYf{M36XqLC+XVgEl5b1gE5w zS?~%^+^3)*%CP>bxhxD`OoS3Axs@T*nl}~rBI|k$s5mZEChE7*dm|2MBLly`Sc3&xRxeOi-&{6L3Pr^AjY_A&>xGp*M+SLm%JJw%7;pJ>;B^=rd@$Qs?R#f1 zQ$CnX@ZkffTVCngOCMiRqJ`AsYxg5(e&C0ogUZtaTGJY2i58AO10xK@ z#a%xK8WBR3FW5r#1fdv3a_{sY4Z3Ztm|KC-wW5e{v?AW(6>T$P*j8q!{kHf6`84x= zi1sgn0Jbw=4{_#~tqlfGz$%^ks>6y}xPTVaipEuoLR*OxTB84X0xD;mQH*I0=M8~_ z2CS|L!Ff}Z;QS_Hr4Uxd>WBBX6b{7xJRTMEED;fos}j-dBeX;ZgH!z1iQ1 zzq1MnMZTqKk9{jbc}ofm<=?+X(255?clK7gu#L>U39;z?oVN%ply`kqOM ztT#gv_o`hX`z_DTe%KakloFo7vo^+1Yqutojq48bQe}05^Uh=rv*Hn)#fPPxz7H1`uCH0rhRKpB%P$>fX%LI#yUYWwL*Q9VpNZWVkE<3YfK@-jQlX!7(xo zbe|(*1_zdH^mKergn;(-pv{Gdf|!7KKP@8n?&bK49E8g1BQ_e2ask(LlDopo(rruaN! z7vkQLa6R|V>D)wAXn)sRI^1tnMIA<5nfbe{G=@KiZ3+b)I+hv~-U6n*3*f#DD{;!v^CqRrCw!y2!mJ@9;l6coM6Ag63#!-JewK0mA2}^H zt_oKb+47_$=ikzm%c6TKwRb#u3s;bdE10O(LIgrXnX3v`qjkn7>^Jdb^`g5^jgvSvlMb}*^`&JkS$+05j=_= zcudqn{Lpx>Fm>k?vm(@RdCVHTE`#oR`lbt(Q13E9OR5YF=~vOwN~ri~4?~u81z`YK zb*KCQMrS1d) zPgEqK85mUlPZ;tNYlOLVwur*Abc*ZLUX);jGEYmz^^8!Wf`zk?G*%~>Q}Y}NSK~UZ zpZ;i?@yLn9x5N~LD|h$9g1(Xkm-I%JZ(t>oWmrZ*Pmc}j&5wwQgF`9e8=x4UCTT1YHqdSlPW(Rx>8ACZt0d|2}LiLY1(*?G{qqt|a2A6OzB(ffaa{RC(h(J2RT z5r@{lyi5VYClGmppub{hj1ILAbl})3eK_dgz!Jn6fG(1jkpX5E@A7ja3j~B6nbp;g zW~W>g6VM|Ll0*hS(c=YSh-puaPnY1F<*+)gd)b0xp3fW!bTKz0n5cQ8i1@?iE6beD z;R}4%d-EL1G{vvdosloZ1R&nO*XdSO77^^5O(^jmmQ1|eB2q$PTFYv;mur%J_?CLC53LKYXb z<{O=Gz&HSUMN?A~PyvKQLlzx4dxg<*?8z9Y9*tUa8k zk@%Z9>0A&9!9zF&u3tOLVN)G%qoB6l_EKS|fNQ2Exv_{Z&HP~~)=><+!@*x9Y#Km)^le zh&8K!iR}C07q7l(pWHogC_0=ACnILN{#5mD(BZ2@b?cQ%8KN5Q?J{@ae!*A*q<_xi z+=Hj#_KTMG$Ln+r#!xf};dk`d1vJnxrr3g49aZu>(sp(nRMGE`-DsYOfJ?n{Rht=Q z5S&{swS)uH1(v+Xlmqa8AfUHd<13s{vlFhHbe36(u(EX-wSRb%=pi%0{(*HS)#P?^ zAm?)N#Anx9ROUtKhl!l^n$@Q{S&I46qX*N9={qOvZ@(6s9~C)$u+1sJ7MZ>lu;duX zSJQ_7IeRcTIi=XrlEQS`a`d2nbe0|fmb~zIne({-V^9wrotvVrr0>#U5TH=3tPUF- z)Stz`1BR&9a^cmlkFKt+)*Jobuxb+wpLce4%H!o6So~2$>k_=fQfs*o`2DadF;e;b z_x;VwYd)8peGb$2%q&%(sFrXnhlh6MGo=NRXB3~;_hRmmF7$>i&2mr4Rkt9@S1%+N zm*(76)0NZVFS zDU{^F8dq)lq}9x^7Qi}zkeZ&kcE)^bcXzJru2|4@lAV72ud%Mse9)gQEY8&1C(_I; zn5a?wo?vNDtkxuj@Eu|CBem=KnN+t69i2tozTtR-zLbPvXlO($p|YFDsNzA=$azBF zl!vTqu?vrgOPh!Ca5^k7vYQ9S(%Wj8K6rA%G4G}2R1?_vQ}ss#E%9FB!q8Lv@aZ}$ zJI<7Vv9U4VmOqU%~_t@4LUGxvAB(A&*tM!KUm zjmw?4FOSkZpBP1wtGS}}C99BaoyXqo?c{nS)fVNBUJNFj%Gn%5QoV7{|9f5?*BWo` zjOmlt3fH$E@Ll!oUgr{LQ3h&h(+T<}F~tv>h^o(+xswu;I1KLRY0yXK`sj2Yo$vqG z<;4a5IFoR3izaq#JuRbkGm0@o?~k9B>e%scq1wad)V$)IZN211y`NdizGm=3RF}9c z!47UFGbmnieQv>Wht$0Rp(gcz_lH{d+>h3J#brHfT=nj{krfXq{;#8RMCz}Tv#t_S zI~K2XBkU?+=v%@DY`ctS{T=fNyJin{k-io5$uEkuKDfE@0e(`4J*lj$%o_-N@%3-b zJ`%?<6O)j1t*_IFWXdz#%Yb!z7xJy<6zD_}F&^V*(o#2jsl!gmP4Lcqt9As#l%SBNl=*(cJV$%9L^Hik5OJz}9Lh;r zK5+QR0(hL^We}?p-dM0bcMu;Ha>v^)S7)`y8lslKWxkA~W6O?tlwgXo<*Ae}Im|?#1Xr z#IKOkUX`%OXbIf@Ei9`Jbo?_+TS&@LdQZGM6*R(mrIc9YC=J{5qW1JaZ5b!vT2z3p zY#oRg-Qlx8tzF?c>y={9jPcZzoG0--PgmLT#5S^e`gie$%}5(26eV?&qdO}jV#@zT zQdP76>Wb%+Qb0ig;F;$*2h?92EVbfvvO>e(QHJWxIDs>U_8l2D+=;U$0^>{X*&f%2 ziR($Bl3m?U^YyFsUe1hN)=x+wE0H=D>d$)jX-XHvx&{Zlb169-iL(rtZ!Iq@<~J{f zsH4`{0M~M6j%;gA27Wc1E0USt#u=t3#4yuwVYkG3Zt#&RM{V zdsleJ^+Z{{crxp!YO!)}g@$D+hNw*ib8O$4@N5o?F>dPxrKs15Q?ez2`;JSO&^=^; zBbF8Kxvv59oH0XRA(q(iCc9?H3M#&thqO*1R!xNEw3tNyUkr9k(yWOZqDxhV`6N!7 zT9jGEEXp}B_`>LDg&dA2 zAIoFA{(fOc%_6I`jbo`}Y%^V0E76bQ^Rnk2&HA^H7Vn84BRL4tQPN-m2Nra!TX(uO z@XLODuSH6HLy8EOOj`LVO?-0}~HZSv2Y$%TThLU+ed_j5BiDdr?qQ>AHbcK+nAeoVW)RG~h56fLZ* zSb)YtF~APuYIvWvw5k^#o3sFbbUrZ&$jt8*&&5?w+QRsmg2&5s#s^k);CB9IrlF$h z&D~QT>|&$EC8?7g00%|JuUR@hRvEzp=^HM!bkQpf^|f6$Q9zwU4?GNEv81B|OKe5R z4$flfj)TzGJ7;B}+aY}9An2KqIko>EtcUoZf0@94k~!u^l<0$52bVd}phs>yf6 zdp>w+);3rvW1sdZ%GV4&;$ypm`8Om2u6W9Y)#e_>8+!pz9@mIsbxSiL`(+fL!!xAc ztuSS=b=P8hW;(^f_bAOi0da6ZSZHo0jTF403k(VxnA|5w5$K6-xpn#6Pc~J~f$~7b z`9=d6|2IVRbm4vl1we@gakgQ+gvci#jx;nj>ekLh4{Wf$ehoBQ#VT2JSVE}0iV6W> z?}6+Gv~FPh)TD>1NY{HYQx-gWrRV$9UuJg7ud+?6iN5eFmGb@jI2|#}MZyc0QZ&admj?VFH{9Ps33Wo2`0xwJ>3Bo*bu{Uqbu>TB_V56;i)_ z!Wm;L^@Nv?56DdnC5QX_-5|r2jg!+K=rU~^w%^ctM@Hn65&;WUr@{PaFv-2{*nk?W z5c37{et|6Tc3SwjakK0556gs2jQseFdcuS)cf@w%)^Gp@sXSg;8<`j@v6ke}+zOMTHhRJ+1lChE!hQzymNJRHE<4CGp4~$s%8R;PL^$MJNy*E@7+(@UAc3m z9-DQ3K`p=qZ)nrPudM5owXe>Sz{{N+s&46tKXjn=5VP)EYbVns8VIuCX3a(ouz<+S)x&2VbdfQ&&JP>DXy@i z7CFD?fr=o9&=4`N;k}#Y%=R3Xj*bw6C9ZctiTuB*tU47s|+_7}0+c0W2C#)~ckDmP8V8_!|jCTyG1p z9(?kmlQd-TwBFxg#-e2{z`wKV(AAX)Vhsdp;C_Iv=ij-qP-^@QaWKcJ zck56~>@=YjLj)S#1mfc1k`6m}$e^|-E^Xt}FYa)lVA3F`cQk3WqU)UUF$CXVy8ZwW zc06HzGNq!~kV@-WqCC7`mHit%Ogei%nPoHmWS(5y_DXTkP(=z~%M>(j`X{U8>lr*_ zD}kANDfmYaBz74}iWg7~t$U{DP`U z_KyhikLvL+d;3VNJWBPVBBq=-H#hz4&A6hk#*bKPp4rB@-)!eKDtbCOagS}=ANP1S z22>Yg06Ih0!ZIk69;jc8wD7N%1s zH|Xe))YQ}fB+A_71sDB@hSt{5%Yy|mI=ol81a)?s*kC$kc71jvf9@vzaD76* z^1!1aiO0}f-Fsf$KR8&1(MSSSx~J#oKmDJ>Iscot;eME~%Rb2vLik&TDT?}|3qx)` z(iivgi}Pbb9o9GGnFEy(I;_DUsdIH*JwT3=NSu|hXn?KYMP`Xp%$F(smn#DIG+BpD zEwa)O3Jyn%#n?@X**)k!wzFKCnCsr@_o=)diDhDEbl+|e#61E4gS?(M@Tg32@$vX! zk)`CA(eDu@B1qcz_J%h5isSto79|TjjMI=IRn12Ph68yIr(W$NpMD&ABKPf!?P7SP z5d@D8hss$)K53@c-@c&@XTZG%YQMI zjo$wY==?#T&8PjrMIQ4vR$mLik6ttQ1kUA&TXfa{6Q_AWc!Pm23KvN1zhP@rdNiTxPK z?ClkqbbnIg;^7Idso?_7F^=hQXQyMP(%9zV&gJadH`{W)xjUZ{ zo_6+W?y)k>G+tF&kdOo1=c|Fk@3MK1L8l0mLh=cj%X)Ny;l4x64xnl2Zi}j=CV$Bn zSPcL8@gRrf#3gs%>Vx) z(*IvIJ(dxLqr~9kXt@v-$T+v)f;7F`thHzJyk4OI1is+sW` t8Kd}j7T3R1zWyy8{P(T!Shgn!BUh+N8b9n-?SOzENpab?C89dM{|5n(w;lih literal 0 HcmV?d00001 diff --git a/data/themes/default/images/adjust_pattern/small_room_bg.png b/data/themes/default/images/adjust_pattern/small_room_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0dc0eacc427e6a96cfdf2a855a5b52bd9638af GIT binary patch literal 10398 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 IM6N<$f^YlMl>h($ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0001.png b/data/themes/default/images/animations/bootsplash_logo/0001.png new file mode 100644 index 0000000000000000000000000000000000000000..478e3a6ff28e761cec4daabeb606f5ed28f8c14a GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*NEPZ!6KiaBo&8ZrWThZcPG j&*kM`0Avnr(BRI@dy#?BW$)67Adh&u`njxgN@xNA(qa}% literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0002.png b/data/themes/default/images/animations/bootsplash_logo/0002.png new file mode 100644 index 0000000000000000000000000000000000000000..cb5e7e95dd36352c37302f8340c9f577935a3bf5 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*Nus&z~kz; zqUyi)<=SvTKiAK;#Z0G}=1uWE22@Q=uwZLt6+_hOdHYLGi~POu+q8Utf9$toitjHo z+gy>+OTRhi_xq<&r~jGX{B1hbw)XWF^K+GRhyv15L)p2LcPMF7la z5OBD_sL-&0*@3~4y@8>LkAaazmVpVIf(D?yw^q+_tlxV(c<*=FZ~wZtZ#;aDnqFgQ aX#d3!uP&l|T8>p3WU!~JpUXO@geCwb;#frh literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0003.png b/data/themes/default/images/animations/bootsplash_logo/0003.png new file mode 100644 index 0000000000000000000000000000000000000000..2ffbec96bba050196be333d4543f7a5fe26ff9e7 GIT binary patch literal 692 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*Nr;%yFMCM(*E1M9>|0YBy3+U2oC!H9PMWMhZCHUqz}_mx4_Z;#x!>%n-v8~` z%FwgSenG?6thM)w57a+A%*w#TVa32AP{P2W@Pa|W;R2&V!vbap21oV=h9*7+MiyCW zDfm(Pm1$jAcCNqu|F64KBme#UeJx6R>6Clb^K0LvMlO5*IP3i9+pi2y@7=bCjdOEd z+PmL5GjG3{5LnE*|5Klf4H^ZjRA zmcNH*O5c@=f8!IgL5Lx)F&P{J=2o981Q^z+`dQz7C}GB6gBd>YFILxUF*8JS!b48~ zgyjc@9^}A!@M)#|wYXVd3cGG@((yBAeqbi@G9f*t_pM)i*X-JTYq#Fr{(kTJd4~m! zXGgxiY{eIO`plj5`NwY-+h4l1Q}$z2|GmV#r8WD$ZC)2txqatc-wTOLtyyIgo=Cv$ jBph2D;wFfB?f1f+=_k4&L7)G#O?nzhDq>xWK5;uz=Zt!I8azp^1-ykwun)iNlJ4MWBR%LxCy^ z7RcB(DBsQ7?tgy&```NS?RgF_zkToi{nz^zGc`P&#rG?y_I~-&DcjfmmjC`fjKOW| zwHq&{2Zil#KejVw^|h+_g8M73AK0^gbIQGK=Prk6e>Ri-J?;Cep!C_>!-c<0oyYkz zqsIAr?f*pW`n>M{9}Ca#b5D5Pv@3;g`MdAGFU$AEe$QW{$^Cokv%fym&fT6?IV&sk zUf+~0bJiEm6xTW!vq0Y0-r?AN`EZtFt=ST7!AE5qk~x2|@*Mu~_!I*}?q}U{ z@I6t7VZ-#aX1nqrNroM((wg}gJX!uK@HsOl_``$mSF`Q;yL;4kKWF^WxgdYTlUJS$ zA7+CB)NKecz1XfgEXh`oDJ zwtH&&_ATv+KQ@Hg{j=GgWKe!PvdJ!Pe(mA=>+R;goAln`N|gEe>(`!FP1~4b+xl_! z^IHG&=WgfEdA75)^7XEt8{cnzv*zc0UBNHHGj1z?koaxPzE?G!%j!VL=G}MByUby{ maccV=;$k0b;vy{Q`;)uo|G{P3cB{VyDfV>rb6Mw<&;$TosViOp literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0005.png b/data/themes/default/images/animations/bootsplash_logo/0005.png new file mode 100644 index 0000000000000000000000000000000000000000..3212120f84a7be28f87110bda06989b3c7ad8acd GIT binary patch literal 880 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*N+>8bN3j3h*&<~^WAXQ zy4QU-#2Z$gzG=;1nt8kI`(&mD%O*YsMh+_m7KIlK0u2k89T;dLP=D@TK)Q*-GQz3JY+{{5SG_u1>$tE+FFV>~c-6>pW-{)h97kNhk8Irqqpxb>A4_Rr`1 z-uM1kzv3r`IZIzHSg*Ns$x`DVQ~t36C5}7FZ_{5IBK&<@?&r5_`~KgW67=eK-DipW zo8PJ%yzAfj{Kogb%OSdt&F+3*eEj3Q_p!6Jn(gc^*Il`D^RK`c#c$rXT{-_1^z=)e zue-DQ^{%|PoYzCnS(e9s|Cl`QQhM)i>z(CyzV%!V@qKLe_0;3OFXjI_w3`2U74JXe zdwGprw(in3>+Ua4sgiH_&-trKdH&qeK+pDI1C2rR9!sL%v?{GY|_V;4u12b1~|C+RQzS;2>QEH&Bx{=CHbwfA?cHT`3H{J{VEqvZ$X?d0;eZ>y^>yO90K&yjtG(bIoS z+ZS1HudCPo6D=p+P{r{}S|E+#+b63M1`dY{j0y}uUox=BGB62X5x}0735hPys%Na8 VB75wzLFZYJT2EI$mvv4FO#n}wapV91 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0006.png b/data/themes/default/images/animations/bootsplash_logo/0006.png new file mode 100644 index 0000000000000000000000000000000000000000..85ee421e2fdb402bf3725f9dbc1d36d46b5617a6 GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7Pr*NW#YY9gO{Aq!Y3r<4SP#`Iw6>>$d%7E;_J^38)t<;8;=jmF>WC56z`_ z-WOWP@MY(49|-vTinn1>N$m8!!3+j&7Z?>79N8NfSY#QP1WFh<9H=SqZ%-9-T;lfI zOJ9Gr`d#XKIpq20pC9*niCKfQi^ zrwzmUu$T+^y{t7}Pk!(C{_S_|ub)4E{{Hd%ck~0s8zC1R<%{({#a@5=Tlw=pOQ5k8 zzvsl=-gYw3nju=~3+Jx}{{Az;Ui`}OP3v9<9n1c1Y5%*#$~W%y<(DE^?5B6>8>inb zx}LdWN~v^S^||WOb>-39*NTdM`S<;K_Ac?CyVm6^%YX8n7IZ4={QC9lkFK|s>p%YR zmi?q4ulB==NA4e1U;Ep7=I%Vp*CrvCcJb!^eBSrveNE@0rhQYFW!CNO4EB2Y&7;mD z#Qf=R*Snew39?Ogj$WD9R&L*T`Q7%$`NpyL_g^cqW$5Slbu4fB!+c)l`^SHO+j4*N z%U`RE68QtP9P5P-FaGlH~kccTSEh4@imOeqO}QGXVum2k(jB|g-+i6E>>lGO)fWr`4GWkZ7+hKIwpcS<6fKnf^|dOt zB>vgX>lM-+%nw4lII8NuZ+STJ*XD(r@8)fPwOse?$CdI=7!G8M2!6SDL*&Qi6ZdzY z|8-~a_npG;if0zEYeWY+%751Q^!K^Abrjo!yQ1=64EvSt%g^k#VR(N;y*g!v@XwXY z@BCi4!++;WpX;TO;Q}SG+bjGQ+BX}0+x<=+H{blT?|3nzhwr?TG zr{BK(@<0FYv>nIetB z-wV5sH0JXyZT}$pJ$`@PS|^Ug{rC58zq|kJ?c32DiY-^Ow%X10JH&TjyU-W0mv3yl zKEHbWSh?kc=$pe2KivDp&{^?~pW%L@h@(IMc79RzI+apu_jIBwR{qRP)V z^roK<{l0hI?Y!-KkJs$JD^}WaWXJuq6FZ*v1!w6zo@V!b&itzj<8trF<%&4&Uk-F2 z=bs$2-8K8xy*~ZMw)c15cI{8?Yu3G96MyALExU8B+3fEXnM=H5ufIN<7JOv?VSlOb z;YKBQijHZTE-Uo5{q$S!<@Y~gP4^P*=Ev7gowshWd1L=$Ij5bD><>yge#tIveyAyYm0PQ;a^cSu^|#s<}{n{e1A*UzO9<-kr66oW42IVy<7J(aaRrTC2IYzVjW3 z@8YlOtC!7_*NUt5zdq#`n_b-H?)>BF2ZYNT3WdI~Th8^He*5LEYT+M0>~hz=t?loZ zy78UQz^~~a)2x8uHrTQ3 zJ-R>beXm_%{jpz`439%f@3-EVaPzlq)4x~7U!E4tEH&GAG^y}2XHD7e*!Oc;Zof6F zj(N4~oZaUK&!0b!o#%aS$Mc>_j(+*?)vv7cb|zm*<9RIR^t<@{-+HCz@8yIY&tEXD zmUq5z{K?cNz6nJqY@M&)s@^r-w$w(>`h9R{==-hJhU^mhj{6rc{C)58+q~Ra+G}_% zSMoAER(^5+$*nhkuWjCUbh@8tIYUs>KZTcX_P*bG_V$wa=+ICL89u)4%sn#}*gINP o14D7$Ha6_}5^F{$Ea>*s{(;HfDM^O+wLpqJUHx3vIVCg!0M^wJN&o-= literal 0 HcmV?d00001 diff --git a/data/themes/default/images/animations/bootsplash_logo/0008.png b/data/themes/default/images/animations/bootsplash_logo/0008.png new file mode 100644 index 0000000000000000000000000000000000000000..94ca82a2c9f16591e350481564713e2b3294ba3e GIT binary patch literal 1323 zcmb_ceNd7I7=Hz`FQaspEj6dBT;^d}14~6(QklIvMQpRQu1yjQ>_dlv4y$>YnpW1# zk&DtavH4X@2Z7~=T;T_%MELq@S%hH7FyT}LNBgtuZvX80*!re z7Oh$Y0Kk&S-4SsB;4o>AzhB^F_s68|IRM}|5gD;PKI^(328knk+?-w@ch-?pd{(ZT zo0G=+>pDB~z8K2G?yXwp>WX_C+OxCJ)m6}str2cLZ%^@Y+bw_5?+1hvV%-Rk@>&=9 z9=dzpA^2}QmUCHiYOD~E3p#EC*5J8FJmUWhJ_|7|^z2LB;*ZKH(r7fQnw{z_E1-g~m)Dc{c8timi7t1v%*IvYLc5L}S#$gFjq2zp*ulDS@nJI8ls zJVHIZxz>9$B{P|{I!30OF&d5ILd{aAvx(AL%Sk{U@$|HqA`lf*6*y1SE1izIeB1>(>jgyn zXz}T3TULQG$|SWhrlv2DWKpYADwSZ0mpzrcI<6hJv$FU8Aih;*GMV(lZESB|NmyuT zzqnD*))sTPGwRf@2CGXa1VI$ecXO|grw7q#QcBXn4w`iknytrV(qH{>6d|gnHtzbX zj29+r&SElkNebLb=Ub87z!imel4oaUOm*gy2a}Um^Lmm3R$M3!E8klXkFF}Xm1

    6Tp`m!|F4{(1|KZ-VFMl_5@-MaRMJ$t5cSZhCUW6EYpZs?X z!yX3yYe5W(`&tX-U+RwOBE_x?TpsSq^N9hUk|DL!GWx=Y%OzP;M;s_|B!eWo&OQ3? zL+6)Y%JW};LgiaY;g0R&qpNyu9LGN6yw5`n>nML@t4HKP2N;c&j;WU&+4U*y&7&nP z`-}aqG$)VAr}Q67bNb`A&D$=8-)2v4Hq(Kuy1H6y6UvS{>J*}UDY6Oga?u989dQ0& zxo(5VpTnCB0$lFqCdG$_C~|G9J1hnXb$@DNaepZkZ8<;E#?B-MWs-{fn%G8mPJeL5 zejUfbVJS`;Pu)AhpR~b}Ty+UJlY?dqjll&G{W{Bz+bE~}NSkMcH;AweMF|HF&e$j8 zs1Ibl5pCSFvq7w@=%cGW_YE$>888WkncxR8Y7 zL^?F8xIaBPaW4CZMn+5c#RXSF4jm)i2fQ%*!rVcE{@S&cN$g177r3_xRzXqWCM8R7 z7DSLD6ahD^33}IHgC*EWlJr<2t4LI9LZ4ksa?)svQ45x_KiQ*$l3p*-mQ>HaAC&3a zeI=ojDsx-MrgbIl*+JBKHG&C#(9&yz$Ch?~dGnX7wSS-@c?CQ#tzDvz>~@)wPYJZf z%9jcG=(#%1C#)mZMt-7A=36}qbT_X-XakQjUhf)1ToqtRf?*HQ^Y|V}GjRVcC=j|$ z>mj?z=`+W(nlr;cCKK=8old0Jyi+B@+U$GyQQ5-y)`(T-Ghft6e%;30cpo&b ztGgy8z}~{_CU|%B#>w zBrKhhlUI?80UYJ3JRSP!2;D1I`w`BAx)0DFx3g{r&(#oj?zZTY5+yZvn-K3qbW(^m zfH=F+@O!ev82ff*RpPGh{k~dt_Mh+i^r`5*jabwGY1qTxNx_3K)djGEKwsV-+W&2+hItX6MG(Jk|6N< zj^rq1Z+?=o@FSv|N>aupj+iqP{eaC!R2Gb(DQax4(;YeU%c?8TQ5M>1TU zHGurFx*O=8gBbE}c{@J?F7B0qONX$+Xb?w3Rar0v`VoU0ObbF0)nDbMBYOGoj)U1E zwrFONj(B;Yn$|AVJJjd(SG+tTJP=r5U_XD66&oB9lJLRfHthFtFE8o!gX23}q{RL* zo!gg?;Y0eqeHHD$hT;0H#mk2cUB=L(+@e$3SuSZm7JJ+-CcWiH@~!q`HjhllI-Dlg z)P1k(CH5(eIPx80P82&yL0BsZPL`gm!*kkq$`3cA zAK~2)I%#;pN{LyBn>43Hq2-oa+!Z8){%@XRu?)}A@@q+v)Tj1UwnXaKx%saoRBxld zALvj0-_WlX_wlqtFt6!K`hOumJ!=KX?=xc5I`;F@Lc{--_+Ls$7pX(-em2KmDjDuV ze4XMdUhzgOJ3MR}Eo9qyVVN6^O6j=aYl*g)nW@2!1P>P}2Gt#I~;=cUE_&9K)% zH^OA}bk-`TxjZz5LyTzdi9biE3sRm(YG#r9WD_w--Jd+i!PLXijlh0Pth|v-tcSA$ z^!$#O1U*C_4CfS0TItRwPn1mQSLXQ0;*RUPp0Fg)BHnER;~PQCdce3?52GbUqbKrg z^v&5xde?lcWJte0e#9IQ!+%K?PK$WI37m5RPBq;~Yn97lZ(d{DnWvGbPO+R*r*$S0s>{+&y)A4T@mjn#(O**Wc5p_qXvBRdfbhvhp)WtGc z8vG^kwGiJ^*ySJ^yhqv!{%TxM_b^IjDnQ_OwqDm*WH`6VE3MQ;qcIvZ=r-ABeVvkGDmCOTcV`>$AT z({KD6*Vy;7x_0Q8zmSB{jY*j)EBg*unUd*k+?1a=XL3#s;8Nb%N8W?EXeo9ekS0SO z0x4RJF&?!@fXXL7QQpH|Et|+Lu-hbpINT*|7&;_Y59wbm-L7?}j-HkpxYRQHyT#OT zBgT(JK&oheMPs=^|;?!#+$B!6SFKdoX_@?6P2p?__=13hMs*QjT z8v^kjz=x3unRCVXj^4$Q;qQnu37J@i>uzSL2+8%w2t8%O5mLt|!B&JApMb04Q%(r^ zyRD87`2|NCK7KkEJ8Uu<&l&?!F(#xDqr@62n?OQ|GtL>_yURW$=T&x+>(Xt@J+Kpf z*lLNrjh%v@9IlE_G6;Nk1-@#!R7%7;ZYe5X^a(D>B0r#oj3_pIn8i`2NM)-7yAJJK z`vobF>(i}u+oCdQ2Tf+5_$^+vbouinFDD~6Gbgiv%e74=a8i|E{|TZXO29d<2)|g* zDg&=hFX=sBx~)$A<639w_PD9D{(J8K2Cbq$s+fBYSLHnTql$pEZ+`ER>1d6qPP}xx zde+o&9He!^|A#qN;o9by!>!j=>Qs~0I9w-=8laJkf4=T*RMJeS`I-ab_6wa%rD z4}ltyN9Hmr?L*gK>*V#}d?44=IeW~3+xXCQ&ahwnSirT-8HbzT%BM=iv>Yz2I>qPc zRC!!#KWPUh<~f>dIg#0+1Lt2n_Q3hwf=DVF!8vqLpJjPR+RpFWt!bsMIk~I4=5WNf zC-5;F-{r3Ack1~PimM-_*Dd>$Z<+NjF}bUC?Ti-VSHEk74|~M;LuZjbwWYKZH-^L{ zcqiVmep|=Cg#qNWVx8M?5|vh&7S{HHDelZJfflQr*zih0WTKN+%abL-Hqj3u(-7>a5zqgH z2fV09luQGTS63geK8rZh-6Rm*es--554+TNJV*3!$~>E_Y3C{>s_#|TuO1Khs2wU@ zRL3JUA;u&D4?O!IXb{Bt@)~tKwS?R>5og+wxGY*jKNSPAY$v7$M34mmPsO8k6?p8_ z@c_@yl_8>*(#8QsXa^ze|7(6$+2!NC!2cK7SC>-__}+)1KRX7F#F;%_kc zr?mDrun7g(&(2xAcur2jCZK?vz;_fffOP~-%b6q_^{Ud_ATex%8?YviO)9Idq8o74 z-op!biK%B%<;Z%vo6NV9fGNg<`4($lHGq09PcZ7*xwW*ax@;0VhJ9iK@st?dFtW0! zC%bg_!b8hbyx1ssp~6(>R=~u`e_;glg4%ErFV$6z>@$g^5DmM+ZeVIn93(MuketrO z^B5#xI{%AKjGa>`Izd4HaXL|aa0QAvg%6%z(!&SOF7d%XMQ4S8iCuHP?!=s37GsA~ z0g*^fa8r38ms+Opes{~Ko!S;;%hj6}KRapOrr2n6hK&|+w_pnZan=~&cj>hnbetyJ zwWuX%@dd{}@bb!)H)mhLkh-tK50w&iV|3FW0m}cI& z9S(v%!Jv`W6PV{mH`%L4u@B&@OzihHTfv6OmKw$m%Yv2Uv;SiARl)Xlq-6Xv~VGr1E{rY_kmwk;)wY9&pYbw9wbt*h%kAR1)6ZqAL z#$d`X9)h*k=-rIcdM*2nJvd7G+(dJgSNo9+;w|}EYGjnRtiZ5sy3b0ZYR|RU1L1Q3 zKQ9=%kB>Vsgm>7`yCd6VqD8w-4m$M}@%fgXerF9*O6OhJ&6O468>|EQ7RH4GDm(@P z8Cb;kNttCkeaK$5*db`k=WHi%ify=St#-mi@H|k!;p3@Q;UI(&a0uN-ds^(^f<3fs z=Wy8XoYVCEdN?Xyq;~~hR5*?3G1kMmZ`pww<~|lXT1ww19-O(Be3c&YzIDDl1RU&6 zTKQ|G2OR?hJ$ky0ZKI_YJKUi4kiO5k%6@;EmOud`M8M$u3_3*ycIZtl@-jT;mM!qD+jB#UN$S&p#3q{FO5<%kiL z>M2I75(JPJ+p2Jwl13?*Xm=q{%aGTh!dbmPvpqap4;Z=iPRUe!5 zJE(V6b#;~H8qMHEO7Q9Hev|x09veYCEI0qKSZW$%Qk4N&#BE^OYGI(SRG;; zXKZF?SgvtusW;Vf5bSpj!m0yaYC<1osVVGwh&FwkpqF2=fwO#UL-88|=3g;$B zc0=v0gV=lGzB7zeyobn_*oIBNsamo0`0=GZ@}%`OM`We8v}##Z)iUYTj;l_u@?NWo$m4I^!HenYd)6N<@extSCDio z!VlO2HE}}*`T+Nd27Cf;6MX3cUp1XB-BAWv$JY}32}!{=e5#Y{9#5yUgY?(_iV0iAN}o>o(5*vOL2~l{h0n?)Z2n-X3@EceL}?HiA2n8! z=T|PTtXy8Wct9nWN?b|vBQg!R0*|MEdKu>=L6x0pNDdPTLJ1;)0=aD?7Q~#X5_%%8IHRvs9h=ujkof zz6V-!U^-E6A~b>4l^6Si9^{J}<-$}=%Ikc{SiVH6$Rqc5mEg*Wg_%urW7yh4)@)RU zJQ!*sx56d zVTp8E(6zZ=#weaMdpetz@$3mqVr4rUS$3Hh$jd{d>0O zbgA}Jt6k}8Y@i8J* zL`%Q;2Zh_0M0Q9di|(+aayRzMY3e9aMAg=ek!}9$!^M0*(0U6#qO3rjSNm|xcc}9B zzn^niR{m-F9P_M8{e!f ziTbYH&UgBnrkpBA?))*+}X4C+ZK>-UKeDP@RcrZ(Nu+|KjftF05Q}0f#W+4<2M_3i|oyHv5t#^w7-)J+JDg z=3k2Ee>La{^|?c;s<-SSgdXZ=(`OE;s@`h)yzW=~gR0)r*)@J2&qt_w3paIgeP)GI z_bcEFz4bI4EBu;<=a?sCY~&Z^3i!Y{8xu}KjcEO9Bngtdh8@mkEBHO?=v>4u|1$RL zuTi7jfs|ni@E!h9#^5_iR6&}Mkxep!RS3g2rT1GbnN{`O=&{$vY`K%!=lG1bzkI-+9G)_J z@ZL@}M~3(8JI;apUR70`-)DxeuV1Gwow^{Y-h9x^nK`+{H8yT|b?U8wV1ZMJDOl7-1C=X$GgR^flS=_x-*{sydzpm)Ic#*- zymsyKx{jT6iJh0GS%&W<**mUDG%&bl$1i5g`l7IBPzc3@Qk;WPVLOSAwu(Oy_R4{T z26OrqH-StHaRcD~&}rq8VkpM*lO~aDfi7T>%4^sou$HtDU0wks^j?Aoncw?F{gZ3*>gpa;>+9g~)~?ZT;rM+L z5IMySyi1_^SFU)n8LvPrcn#5Sv<~lze7W9OC zwDJ%-jD9wB{kzDpULx~z)`McMp8yNz8Y*yK-Z9(HGS)4A{?sO4@-`t~#kQYSd84Rd z#hAO)9h1k(YankJi6$|`0DE9SrLy=dEnd$quU`*^F$br}P^nD3$UXA@pEGCvIi0$q zp#2c;p2{Wd!H+JQOu+Hy)*#r}7Nk{ zF^|~wu<#`%WUXJvm`O8qy8M7Hu@k22bo8^FTy}u{H0+&@&yQT%z8z}WjU)DVT0PpT z%btZU3&GvVZ7^S|{(@xMde?by3B`V#I4voHDX6(%UZsFdAhUvhIjIes&`-Jxy=T94 zX4UZFqsNRNH|B+kimVR(`j02tRjXI8Vl|Tw=6C4bYibSqiF8a(?or;lwIdA}VNOjo zj~JR_HmA^5P-DhGuE#vR!ozxYkBHc~(enMqjm15BhJ};XFAi#(fjeT)l;Fmw9wj9` z*x?=};3?*c#&DV7@@CzS=B_*DNa{9f*znP8H@4_yoJtF#F4R zf0bXOG2+_>w;$hGYEu0N{ZqA2+oHhK6yi^$bU??TS`T?^0Lrxq-I*V`3eQdHJI@ckJ+F^S^Og5#pL2kt(ItoB*u++5WKIzxSfQaP`M99A+kMCQysha=sSE%`#w3i3BwN;17C#D~I^5F`xM2}_T+DOzo^FA_0z7`VPB>Y7{_&>m(b?MS2 zDax|83OJ^W@C+~khl6x?C2$ajKmR04Zr-#^=g6Gg^R38=_f>y#0`!}hr@R~VbL9*E za$A8DE8Gy6KtEPhVrc#U;RBLOy`3Wyj0q`z@!x%Iai=GT$HhjA}QqcIZ6DChw@G+y(=|&7O?9Ts``y8zXIcoIJY~4&C-fR1^tlohD?!YAaA9!1o)C`VF*} z<-;~ysy*6-Uf%VX%M4_wALxNBVIM*K*&uz&KE#$JZccczS;E!l{5w$3*CzbTMYiu0 z9lpc(@g39`-!p`2-0>=&cn{!#uL^X%DP;Q#JfIo{xu_Y+70?Mk6~{5*YGU6iL82qr z8_7Q+pMc{kKe9J(jFS@AO1ZU%(D|to{|=pm<+b=u^;4w;eQ3Sk!LN}4oX0D_yC{XR zrKAjXjk7GTv+KoYm9A_j>9PEkjjw$4%BL`tl4cn22LVoV)Kx&gpwo}l|A4bs|9_Fh z6iy1*C}MprIh^S2;+P=yK_-%d83DWWGfH%J?wcO zUvsjr&qWgHI-<*z^fW0qDRF$89%Aeq_p`ulC#u}AcsN3MeON`R%z)nxh-^r^&I|I| zFI~XSUqA9;ZknIJzh7GJM~AN~Z5YkUo-uvyE6G`@9Xj;w*P%mdRx&_i{sEhQ2G~#e zWW#9ZdXBuNToH_T`h9}EH`^cjspT~?o4tZvlcma)+C$*m##cD}RJuf}RPKm%3D=bS zZ+!clpTKZ~fY?;CFn;{z5~;Gdw6yQJY13;jlyvHxo7b*=-rT(Qxj8dTetw<{NC~|V z>gqCK{IL@^9GwDog}J!q=P#I_pD)XHufXFGyUsSHJ zk4XmPV*q=}`aWrg_a(?N-W_%kZ`2+Vys7($>=(b|eizQx@OpC9+Z=YWM~}B6jqOZ< z$`wn?jh#Bb5)xcc&rfMP;6Y094N2fd#{zwtg$*H}usiH+PQxiQE*Q`9NdbGW{yQ-b zShx5NG75@kS-^TrKfy=Llk5e!*#8#2urMs#s{_cy{o_xF+sUJgkDdbDEb>w9AzI1W zkfWB3jroDt(Io+f6s^4Q(F2lr>H+%-Us#UPHuwTP1nTJ!{KNZrQIA^*Fbb*vDfZQa zQ>Z)vZ}_`XF8_|NFFwCpFu(R99%+>K3dIzQhIjmmGjgkPv(+y2_*^p(Jg}-6l}* zoVd2(?R#u(Y}HkQ+SB;=;^O1u-h);j_Ht>znAozxNr?liKKs0?DlutDMPy7x_TG$u zn3$l7j^^m-DB0O)Y}>|&f7)ai$;SS0$cE>|#CmunCw85lnURq>y({_x=wlNj+oXgl zJ*k_)80zC@^v+55fhwf+dV>3-!iRB!)aXqv2%fkN3c-X8=R1}wE?%6HVZuKd%9UlT zW*OQxY`+=cKRUpl&w~nQh>#;#&IWDc$0x%1I&bgP zxodG0{FzC=4>A}GN%BZ*~i!DiX9+I4Gd zA)1?M1^)|?n{Js0o(!N%=vBoZYXExzBFCzd(1w^1pw?>_Ui-`SqlgDZ!hpP$k>%|Z zl^PcM_1EDE2?Yb&w&~Pq+vLKoSt%*8SoN=mZ|~^T z(6Fz*iil6lAK12S=fYPfhlUhon^R-6va_?_?AS?q;O16O2pLpQNP<(WyL-!)-s_y2 zHA986;DyuzywHn|7|1SI8Nm0)K?Jq#BGHVmz6wu>&zbPzixaZr6F1Gx&7GSozf)#e z+9$=!`+XAlzPC3^DBo9JzK_qb#Ca?q1l(j~V&G0AiV`8WNXZ~GY*pFTI2%g*zXz?x zGsw=Ut5(bf`hv{Oote_TP1~@@aqZXaBNv-RMs~?ULOH)6KW|XSj^U{pnVqY%G8=KF zc2A(uoR;65B(^mMcnRjwH=Uf^U^FB5zL45J$mHT2y1~bxrN4hly05Rs2`8RF#D*zw`-YUsk(zSy`sQKvTQ$!C4bK z;-86GgTuf2O7a88Vq^Bk#F91U#IiE>Q(0M}xsNoM^RNMjIyYSBs>1pIHaDcGcHMtX zPQ#pgYfPZs&4~3c?50h`L_C8r=(wKY(l6Pw5M5+s*9`0~QxNJ84Yb4jRo@HsWD*HC;dwRxPu)SViw9E**t(; z06uk61-^bCY+JMMj4?1dy@Q=}w$X%fWV`orRN1g2M6B)pz!L{7LX|i65%~O|o}Z7Y zzSCLbLEml@V3_v|GCYZcY-JCh4|AkjdP= z2=3B+M?1T)SQq_FSNA}Jhnsy1*QHLnX0dVoGs422qDPGy8x;>I4d$XDLf%5F>!ULP9W&e{~_%?;HxT{ z{_(r#oLfRk@BQW`xgovZ6w(WU5E3AS5FjCh(0d78s&ovXpwdMULYBLN z__%$lT(EsCUh4vlL8}Ht+y^1T;pgd}*2TK^KTq>9-6{rPt|_*V1-1}bEW^)#`<;A_ z^||xgd7UUn-op0E^GqjGs7om$4TBs+;}5%T!Ge^Y#!cQZ#8FIq%M_A;-&CdREgX(a zOUs{-m3e_Nb9`nVJ0G5q9TIx}d_+=Wc44!$H!CE#uxNq2nDx*b3@(M;>j%l_S&z}( z6A}l?=Y(lP()|NS;30<$SJt3?nqdx;k5XdLGOJ80rC~)~2w&vpOy4myI|c@57cY;1 zyzubz=i^4@P0Y-Y{N=Uti;9+}mNUP8!67alojWHb4&bd>QVZ=mJP2*^cN8dhyM4gW zl0y}_rZXh`F`2@P3MoWUxO)ix?cRO#sMMO6_;Mot;iGlnK>6&zfd^UoL3J)Yih2=~ z#%qgQMz~sY$gg6FkcJqZl#rBspb`HLBqb*%hR4Jt)Fj|vO>A_xXsON3$)MD1aB|y& zNN7^h;iROl&VlM!iC0CUAMpl$2OUjMlVaR^2|Yn8=)Q7vHz*db))A$3TMiB!xJ4c3 zHDZuRdr!){2@qL+B`1dY!_2}FwF|mfFVZr87qtv}uxDCD& z2aroIIYn6pFw|uBz$NoCp&@8yc1xa@pHf-jUlC?>@$B5Wu~vRpm^Z`{;J;khdzL|F zyLx)~=aro~6Q7)tGhwPiH|C!+uMv7z0Ly`56*Zfxpx)oOPx2gAz)5R#}Q78A`^-> zR^mWhLAtTa;od$exjtA+3d;fm3d2VXmA6#pKNK6QpH>(b5}8?@*0)EGg$w#hZzP!# zjG+mMgMJ;9kceyrRf)dBLT9U1blX-{7%8}yB{iqUXG%T^Wm87<>N!q6qR5UrXw;z} z?x4^I9v5C<7NIxzYJu!E1w*!hpNiX0L-Fhc783p;3C`{R#nPm+_{l4v*d zGZ}X754tXht&p9IrJOXmYMQ8C4tyPW0W?AmEss`&){<9-EnQO8SU+^vuKN0+!Qs^` zW>a7JQiu-{ALJK=NA}I|*A6pVQawHL$`M2#IIwo}jJiPg*g>zD<=tIFl4=Jg!&}-{ z4XrI`dZ919v|h^E&!CaKTVKIL$qmEPn*s#j&94_nf5?dL)6o}M9j^`pl}cbakS=Qy5q%Bu6m~`jmA2H$C;X7uoVf5UG>5Y2W+_Q zC*ezB8gwRNPbwbDifJ5n)&Xm@xrtrGnZP^efVl&v<9G;xs%4W=-w)zs;9YRQdI7JO zFdHz$ZdJS>o15?fFZ;d%!x(JFUC&pg+1Qbz8A)PIuWQn75*#&G4TXTzYrZ_}TcA)h z?DN8>#=Q2+FRzVxst}tnDIf1WJg9nCza5WW88LbM=;le21U7t#eEjY``NWW>XT%?2 z<_CouK5sk>>g}K3FjU6H?=nX=Jtf;Z^ z^&J_5O<{~~-n#p}O><#p%Xjhd(*=@8_$FNUdvMK1Cc53{0vpNvai`M?+|MT64=2lR zw5OzOT~t!C2=2D<+Yn*e;0%91#cKEWXBVLN6B1sAOGh-4kEyPmxDiKL@KyEVaOG6H zOL!D(WUR7WCd9;qCnhB&DNAW`Vv^LhJJ7i+UoV}V1NZQSl%)?GXh2{^@ewL`I|lAc zLe`VhFws5iO=4CfPlJzlj2MQFd6`ownyR+T_J)Rt{aLSsOVQEYVrvrP1G5@-3F1p# z1t|(AwWsFB(Q*zN#9-&pXtqlsq_!lkNnHF2%V&v^-rWYW^xB$sTCf&l#=CJ^c&BM^ z&K^Or@Wq5U%p)w^=Ugxv@kfB+b1;xHU@b4c#gm9 zb#Uyvc~?DOl)AeZ^u3Dv*JC;N^Y{N}@3OM~TVS(nSybLj5)E?-%hIP5;&Ng4;$ zAF#*s?>BJUO>n!b&rKcfezPkjrtpf2$6)uTbW2N!D?nNUQ%{)SfyTUavdB|XlarP% z2?-T%yG2FiH6|q*^sZ|?yL9&Q2@Ui1e8|lsG0MrwcDGO74)-0@ifvqihMN9pC3tPF&a36rq8pNVH#Rs6avxPs~ z|6;rSk5m`!4#1@ctpA7e?z8^aJXBZrcb0$kVcv(mu#cT75)Hd12=A5p1VbsQ_JIAq ziQ(rBPMxDwnvsVX19TvMP(eKMY}YK5P~Iz+aIpLJv|U zoI_Y{z?o0Zo;^Et>e)GSbmG%}f_rDXAxw@I{1V7dIET!~89zd*+!_RyBrFZQ! zH9r?TZ0+qIED1}QP+as7wZ&}>!4Ks+;}6nd7(?hUH^Eo#HD?YxGDQqsx|EGyvP6EY z18u-pXiGB&3GIc3vm^FW>nBW@(xD(?Dexs;=6&+x@o#&t$neI%Cxv0~k!&T!qQ}%n zUL;~8TY2u>xrUHJLrU)Se3!0HI|bq3OtCT?=bO^}vb?(z2dtm9uv$wIbKbETY5k&& zxPDOS7eitOwCCW5-Dm|rys{d0&dABtiEX>f{r#5~6-`xnfii!f4Bn~XGHDmd^t2=| zxN7HE_uT0tOqsFp)vQsi(+c6w6yOXh^yF5d7(C(eY7z13rt`ScMh*tU6S?olc1y!y zqb7pKst@Aj(Lv!W=U)F0Z;s``xvJ0d_WIv^I__lo`xUSWf9uw9xy5eM|Fd1|_W#qa zZQIVu$*|>fUfcsdn861(Qx5q_^u;v@((owrAL(DA4iuYJ+}be{J0Cw%btxC;-cp^(#H0a-=60TuPafu6_5<7*WiBag?nawoXw%VJ2X`5U9E^Co za0qTf=Pq7eep%h%y2hs@!;Q{}$*$iyJ*QAg40I>AHF_|2TQhwzT^Gn}%Tt#Y^_Zy2 z59Htq_B{n%gR<9&4yYwO7y#n%8@oNo!$^=lRDmKEheK=iF5#Lx+~En#*3Dy1Zn_ zkdozR!`)0Kx7%SZCX}2FFIgUx7f5LDv3hhVW4~P(XVzdx)FBA(3TI11C)n&sX!=8-w2r@@J6k!hXg8pBb zoDgw(%ag;0hexNaVisviOk6?tN?4IemE8*xqIOI)mUkcY$l==BRfBVTM9_p|nnu_~ zr_d(Z(26V0J#lDO+JR|2AD@<2cKJo7Wvn1a=cs??jj%xP4gVwod|z^NLn)s@!6 z+TPc5Do!q;T6Pnrc)F+P!s+z&nZSf4JGGUp4;ql4^9+b%jPrv%1G~wEN6{@5qM@h+ z2?)2V?Qv!0NaGiman)J$4?~iAB*qOJcC=tgehv;T)(%NX96DCqcfEDZuiCEed0AES z3i3U@o(Xnw?QY2oMleXxv8}>>#10Ht(aD!Kq7jmLnrbwa^&ah7*OD$c$$to;;knrn zp@I-<%E^ulmX@rj=+mcS#mX&xDkPU4dBw%uKg;M|T%4ZE#u1iq&34UfLDg-$ zq}#T)bR&5_3L~6$W82g0n@u}!S>My{e?wkD<8>cSiVudj?dhEx*}tss=|;Zs#skld zIBt#Sg5}oEO|qYEq`ZPQ;_t5mHRw&&m4Zd~-MCY&qmOhOCyhpu3@LZY(Xnl7>aCqG zy>#Q7r(SvqH_OfX>MME0mtPW(SX&2tkq&r!&^>hjbK|9#cHY9rQ_}4(zoY^@KHy{( z>0M6uNV4D%B{-z{g~KbYqEs%;1-w{=!#{?<{4CC`w9&b2|*12w(0?@9`qP#ucfLMry|g{3_jD4ftjbM>&qaQpIo8Ja!-cN)^9V^F#;y z!SW>OvVI)siI!|^2I^m_&@WFC&+10HMrv9N8bCp}oqp|RmHzphepoJOw;$+V%jxf- z(64=6rN4sC`Expb@kB?K4&loc(pr^%6NjUmLcfaNs`)pk(~iGN#c$PI(`Z4F9e<{R zubHDcr7-|*$DhRUBQ}@)?Y^W;4|hbSHekfyv>k{^&#WV7!_Q zGXO_?#Z~7z9K;fxICm|r)QgM}vwTNs=YevK`uoZ`N;KO3Bj2HRtfwU; zT?3y!lX}?NKrz~*b^u?A^S1;a$l+*@@a4%W{$b5KNFU+A2VB8Fta*{c?f8?VW9IVupg04B}k6GBPd0azJQQFZTd#;;$KJMK(9PAKN^pjCyizb8R zp+rv(AB=Y_8}&G=Dy&9M%P_#P27~T?h*v4&zFKpXx6sR8zqVeLtAFwOVU+{a2(fXk^HWBYeo!dR49(IUMDPUpVJnPjqU=vM^4kf)A?htN(R% z-u06wDfMgS*hX%t@Y8qD7YyyE*M z`0%TvzZcYbeT&cQcn&9i{-FODa@&XV^F^_%I!~*#7gT;;)`*};#fP5xLFMNdJ|9tz z_$jYc@mpCLhuiU2srap$*LZ*J_!X+WUXe2SxFDdWj2HV3v0v1s>hyVby3}@BHCH%YN;~25N?{0Zr`0x{!*uIfVgjTK(fJgekHt~;viX7<{DSXv7a=yZY1^h{z>--V=(yVD= z;4%1z7_tMO>w9ejm+OxBNoW^%sDBF`mm++*Lbpg62dyH%Dn8&pay@WGyB;Mv)DO8H zhI$Y}f?Om@AF#2ghtC`BcYya*>eswyJF3*rU!@Q3E*XiPK!JlR5pPNbdkn z`gOOyKk)mhaNJzuz#jy-g5Rv!-vK`b`b)uY)`;>A2R`X<1%J3^LkIkE4*cO7iR1m{qbBk4uV6h_*3TVW9#S~|X1NCIEtdz)LM{)GU(}=EE9?I_E)N~?NgfnA z-@BNZSBae?We;qttnfnTK&y@#P8;?;X%g zQs)^;Q2m6j%p=W9d>&yZgX$-Iod@_crMC^UtI1LSO11u07QyF{Qh$!Tir0@lrZu!W z+v!<~aeP*#e+s8Ro!8%h_m+OqQGaWQN?{AchuU2VIeb?86WRqH<^@?j1aAO6zo_*8 z!uy4Cgzu<7T9Rp9b4?WY|EZnjG%qzzqa674dJX79>Gtx537~`8)47gR;ha8wlWQcy z3PyCxv!xj>I=m%juw%FFO zC{Q$z!=2FoFVyiX;Qdtb(f=OW?R@-R;cz?tN)^9VvzCvC9e*Xq$9Qlku+{p@2p|0g z9_cmBUT**R%4LKPI50UpfWx1a2P5Ywt+Q8=&4WfZgV(c89wIHn`D?(XH#IuI;eUZY z&tlzF@DFR+xZKA9^oZS}rU=`|BVN%edYEK7T$+lf<8QV|1q?&k125{XymRu0u7el>YE?et`3G znkkwcwzpmNnz5Rlnt!1j#!TfQ96>(I)ZD8Se-@> z_=EV-e}mt`Uh05P>jbYK`*zVR!CpUKCzSffvgLf8Q0nJ)onYp2i*j~+$T{Se&9RZ@ zK{=vF?yG-I>96*GxWuXWaut8y0esNLal1mn$E?zhQRflQfu+e-_yc~fRO;8P;PnsY za0Oqn-`qJp9r2T(FUGdestatwx7|klJ=OYWaDC97*W(TQbG+v|;0Y!e0vK|92ex!pQ5LS$}0yV_P-*IKE;x`f|O&`Cwbi`GEOq9~XT9`n8oU zsi+5hcG&a9R6m0j0^CWiy3fzOA|2L=~Jx3*FzQ8{we9W_Q-3bma>d>x&KMC>)Jm}%kHGCX7{)@VMfP+5F z*U`2M@*1Lt=A)qO5-R@BT8VCMZ zG;hZ**ZVr~$J+j@;1hqiKe&|W#H`=g&L7=K;O|!9`VRadyCj_VcRY-)_WF&E`p4TY z$p;+tx8qN^4?og@Kf(5){DK3Y_@>l95o)cy{sRvDiMAUZ@Z0-4?!NkS9QfmGUn%&! zzjH8-yr+=dx0U)y9(08N52e529o}Eq84mj&GZA{v?srzG{^}J8vJbfGuVOwntMUVX z74@t5ke`*R{4{X+>42~5=d3^BXMrBzVO+Lj92ofXEb9M(%Ma>>R*%-MrPCI!aZ)+= zFGx=R%jJ%ja~-X5;p0r@W;x2~T*tV!^K~VcI|Y9XJP49I!vEPoa!2jxTqhaY@xS46 zr{GVr$&UJ)4Kxl4{@9<|@mF%WQ}FF_$N5Tn3*!L3f=_GIaR6V*{sbI+1^fVq&xXHP zsPI)ZaX!JH1f9bG@1{FW^HS_&lY##$hogQ$QuLe%-GK2?@L?Z5;J5YW_=Bj@j@r&51A{us?J2mWq8UJCvgn~jf`f=}b6)IW(VZO}>b@FO2D1%Hx8*P(tI zF9mDJ$9OGMWGnK>J@nfaG#xK(R318(W zr-yZ{U*RXGhjpx9;U^-d;6q1z;wSJpKTmLe?gKwHDnG%Wc6{)yhssa%6mVX@Y6l@7 zmTRmun#}_rpe4XJ#SWSPyQ!#759ko68NjjnRcU*2{{VP=9c$qFo8wDlKLV5B+QkY! z*;$5cjN?&h?4Rma`Wwdik8%#XOzH1vK3-_YK@aI^rT*=h7o?{L*=|XDbUj=n#awFF za8R?3$PpJIq+ z8}Rjpv$ko9OelFacpnORO$V!$zBR#zU)uqG3saBkBKRh>9VsgK$I{#3YdgTtgto)4 zbb!AB6=JXFwGQz2k`*{;)yAS-GghQCoYsRfMwyqP{w1r=aGDbRxTPGuRd}Kwf%;Gm z?75$}^$J}0gTvc-drgJYEYuksyw!JA;rlpT;Vs2{)^mOo14^=bnbY(j{Fdg84sha= zf`3evB?Z47eg=_z;>UyVH~t3xp5|;jJ|AnP{^NfGKdX739U>NE7} zLB1MlIX@zVyPO{mnKcYl;Scat|Dg(>#qk|{HRx1$N4{cAbw6;~j9{4kXq!u|gJxNM zwv#_=m)mu=kAy{hJWBbKgSO$k%!BY-w($hFT>w7Ca3e*+$IL@x1b+K7((#Uh|6jnPI>6uCrNG;W9zGrlJ;!Zhc>TXU06%NP1W@LraEbHWtWjk7 zJ~Hw$lQ1Fjw4*wELL^k5tOmvWfhLNDR`&w0{Hr!T+Wh(8eUgNS^8T0E9aB)UKjPE7oKNWjY|aj{ch_)9g@0|k+b(xduNAxC z2Da>oM|QYQ%;JAPxX#_sd~+XMC-T^z?S0al=!c@O^@ba^xg75iz*hsV6T9=jADsU; zGe;;;guLKuA>cn?ZC+jRTn$pm^ZHa2jJ8$9E`t&5BM86pND@@58unWAI|B7 zJUv)HheHo^fD`|@jy7Q4bN(N6@PTx6qyh7s_ZRZ3@}Kl`qyf60^BHmkIO^g0Inppx zg@fOK6aTqCWT;o``KP@euAd_f4GLWJ<#5P9*UyoLVJiMAd;MHDM;aRMt4GnlrO=PL z1jm`4bsS%Td)ndH>sqY9xn3grhXelseI?CN@gIP5JqZ2Y5uf|)nfCe(hg6$E(T9K= z_S}aLtw6DJ;M083yC%?%0r;c9EA4R5`5ViIJuYL72i(GY}-vefZ}EL=lt%I6fakOTC&B&`rWy+ zge}$eXqLZZbC&b^AJqnkI$b7queYmzXXD5|k8R+(of(KxjpcC1dS)1@^m`YY0lgfK zn5g3aJ)kEzU$g&=kM`{T;vt-{anwU_1J*U_g;GD~Q#9&{^?IERzWayU-?OeeVQIKlP* zV}~2AD?XJb8t{XF>%?GQUeC)D?|6B`A+W%6%_ls}WfH%UOj5KQbihIp zrsBLrq{!i*W2Idt#rHW6&FmcSCznavN7zrx;XK3|gz{zR_gK!4Tk>yIGk68=@@M_= zY?<=RCh$6L7EqZ#^XeAISL_nv71ytr-y1r>iB}wsd9$(|&UwY*hU=Oo_rY~y4*#3v z@+!AY`)~>mYLxaKgx}I!Y%kB{QmOZldS>Q9AK|cO5#g&bNt*A;R6pkX2;!{@C*E>6 z=)PpJK}S{gyc`L z84oe=3hgWP)7-^uYsa_A@DD3_pX1mXJW+L=?Nj)sv^MKR*e;4L)NkW>=}hrE6}fv4 zb2pdc1@U&0Fn52Tb2TF7Ec*XEDH@80%H@A)K_)MSL{!E|p`-T7e8F>0{IY{_I7lg6q>!+rHb>lqH$U)*} z+ik$ncbuibC-VRe$HiKq7xIN`@wd?pZz8at5}nh5!xS9!S2THC zWXV9mO^{#7JJ~Sam!&qH;LeutciuS8=PddCHwUvN9dJ6-!`wXZG8B8J?&NuUH4K9# z5IvGRZwvOXN)e|^d{w@9;Y6LBX(um$($vW}?PQ|tvtq3%cPI-=Q3HKSEcwF8!R!o6 zzIbAAdxN+)W*4gm{Q}NX>BNsX{b*O|rBYVyhf>tu9Twy$`lohz&rJMNe0uQ73!Cu$ zV3Q1sJ<}xEvc)FQtMnA7_enzVCQK^B#ev8Kdkq)5V*gQIa{JyTDd9HfbDUbngL8+M zv6t&uRxN)QKkaqM-EYfF*!ey>NS8>j(Bta) zP6_deGYSh@;t~>*;^SKi3unZ~B?@aoDW4oYZUx_O*-)H|5>Qj?#`>Ina?wjlkE|_3J zr68wXIq1AEQ=jsl61`{kw{Xg}$rJMOx4`kfp7Mq`WgIbFC@3v0$S*F=-+S_{XZD?X z>yL->OH1<$N_*t*J9%>7-jgTUuy@6>Gp_uvQ>XUwrzNGr=($s;&7C`K>fC+Tk01Z| z^X;bIz`{?-b8#j(0|LBijbzQBYc7%QQBDffy`qp(k@0&N?b&SJ_ zuY8;$sh|^X5A?%Tr;x4fK(-m_*;TNDP5BezSty{Pk*<_nR8W4$t!TU$J?|pf`?~MM z$-R3|pR!J|13GqoQE88FSmnu+@(U-0Q0n`u%3r70vkOa07nOAEy1a~c-O;ms*HuVI zX2{EK++cI=p69$!o+qiS;Bu)6mxi&Um}ihZWKUt?TajcLpc(RNJcnH1IdUh!wsZ0! z-RR__u1|nVLuvnCfwVsto+f$kSTC`J9o-&1Z18=N?=Ruc(#j%6zm|Q}-K{Cs0kIJpU22BrRPR-Rlh5hs= zHIp@O;isGJJz*{VM2?bR*3G&j6jrQA^f^}>^nGdJA$X%Zfik9DdZGU4UwkH6_ros|M) zvaIN+cTWu8GAJ{*JkI(t8zFB+^`KXyt-y7eot0Hg4?iEfrSHfAx5lf z@k4o(JXId^;iv2|wu-I)Ocz;-LcBDU+aZStCU%1~mJiHh%HQ?nKjsO#d9sy>^IGJM z;xXJR6sC;1?PYzYZXbAs7>yO@Kr~&&&G@O;bY&OGkHMI}z)lO_3ZL5b;|qet`kwG9 zZHzM8E$k`&0e(V$ebCh5_r$WZK|0iha@*x!gp0@jxpBGR^ZC$lik_@-Yyqm>@-@Yw(D#Rt9t{_(@HPid0}aWmNC~I{`m99 zKL7P}-R4crQiF%bNB8DRMK0VQ)jVg*mSQk>(ObrKEWH*_U&4a7{{8N2&+UIsd-Y#$ zzWA|U+lxB=AAjgJL;hB=C8CSeAN+DfDZJonRu(j6of9ffoq9;%YZ+hPq<+?9#%L9L zj25;(l{dSkSoqq=mqug~rt*a|P&O$puBAX=OPFwx;ho*ZkI`}n9v}iG?hs#f$M|Br z-$maA%?bHafpSS}$+K6jA1wERw(jKTtOSC;1ox(_W;0k4MtwdOIM}ybruAc?cPOT% zbBf@66f}*v3^Q8Sh_@I`sEac9gCCT1#NvZDRV^NWf{4+#Z(Dwx`;+A-{Ga=y<-WhP zlUA>u@~Hd+^LTX1>eZ9iGY|QP^=)1L0!ZVVZYvZ&;Pc*{?+-youn%m%Lo(cKbCI)* za89!qwWVS|oUA}hhWEo0bF&s&4n6pd+cC^nb4L0}+f}&%hf@#BN9}+Q?sqo&=*9Y% zPc3*${*k$#T5#&+(+f_6vfHN?usVBO`nS$Cn5^^%Xslj#$;=;D*p3|+51r09C_Kj8LX>wHPG zS`(w4uidY<0U4#*>C4`dG>JLigOdA-Im^E=XQ7(K%2((chmP@i?|J&9fz)dLrP-i0 zY6~58kxkd3Ci9cJe|9!GjyFk0_basu`&21{& zLSsBhrjbM+uqx+UlgRwiNSZo%xAr^eQH5{llidbmC_`U$B%xAo`n2BQ(u&{2{qjPj zwO**z$qVmJmlrC18i9`OR@?22d?oPIBGi5`$4?~Dh2}|tu9DpE?--kN-FiVtxh|w` z`0KvOL#&SoQ-2bsS=auAX~z4>v@=!OIpqq?Zbn?NL6>YO-{O3EK7CtTsngN}<uz2Je zQ0!tQLkjYa;2+O)vX*d?@s9YXxbI5f8d6L_7I#8~W=AHzYu8*qpEvJ)d8al|K90+2 z?{3+(Yafjh(+mXd|3Eot7JlE1l3+u5O_ zM{#jUF%mBH#$6Dxed5wmx@$k*zEEeV=)H1fd2b{^+>h+z=E#D=$jB~T5aJOurD*RO zc;%wp0oTqcdac`$+DXs-5cS1xd&*X}IU^ANGWh4k)P(rhhO{)Ni0YIDn`>$|JoUn; zQ7>nvrAwLN5j}f_M?{48>KPHv9^LHMrAu1+n1H}dbC*~3{p7vNGg_RWda3W_;Mr01 z9rhEw)oxGF-g+y?N zOnT%js99gpIbt7M)g9TUL%V0^>sM^qeA-P7#!;#OXm_EVljf29nlH6`&PqD7!qXQu%uAV5^wg(zMAN6-J)yu zl|_V?3EEZj=iQnA(8{F?7W^)wD9R2&*~2JHvmcoaC^rS=6{Eo%+A|#gdZGs8F&ijo zA4aJK3zn{YX#Smf^H=e9w+i1QZwd69BX>+8?LXJR$h%1TG>yNO`PNwElP>|6(IIEMjGgIKVd zBd@RRXW?xstC`_|!739zrLstOR%$ zIUe?-RJ<&}&T$xg92Evi#eTy3Xcr!*9mXQWer!Krwe2v?9^iEYY>)%iWE;bdh$8{3 zbHIiGc9_EkJ7AQH@FwLa)V<* zU>N5T_(tQkAM!jVsua=<1Uw0nMolv4MFX$;{1$PCa9r-euk1QwO)c9}-6r2)k!{sm z%F5POtlqhEb;Vj-If5JBWZMn4Gdh}OvM%__jPCX?OUgS3pMNLWLb_+L?HOrWwbeZZR8 z$V;cY^s3T3i^AAlow~^9VuRY6h0w5`@;OTe%hh@tOPBtub<9&S-r_N5%6pZL`&&p~ z#$ry`Ny6<$xF5-$iBTZ^iQ7t{Z%~@z9y3 zxJ>4rwqlqwF8hfnjTke9iB7J(eGA)31hS_xEb_UY#q#g}`etcXsBr$7ron<%{?x-` z$3|t2uf$^i4(t&(ny1{DLF<%n2O27k1&e#FFALqQ*S2kw_dLetNQ321Wn2YptHs4p zVYTQJ7Gh~E`b3sC`sBzd2_2z|12-D%xgJ@LG;!+h{hzMNTUIhQIYEm%oeuNwn{B!a zhYlSQZSu@{0Ri$q&5^lTQ%`L>bw$3zI$gmpXzNK^q3%cMlthfT$%E1=EBXXv+mksW zZK|G#@B;l7S~^W(F37KgdzwDo{CQANuc67wWbbsZD6b#gw<3Dq=E}I(gGUe#3k~Tp zIK?@f$>-l>KQZsuEolP=Y_;O{o!!F{5;M}8*tCP4Z+~U25z73#wOG=sgZeGC-hdoJ z3u*Cg8-5GnJV-P7XqC*CZbl^8ffYyT=!l;p@f5j?%;IykC2g<1{r1~z$&wAM48OcB z&tI}$ewFncSS-xCdGpk%o2Mu>9DUpAf2G=Hl&hS zf&LYFh5JX>4=Ws=dF_Dp+mInEW!u;C9wCphl_UL!utL_me#M}-r;U1Rz>q;jwHd!Z zcl-OMals+-y%Rg6H|2&2XU5}p)rdX;0W34jCm|~{F`=s=c-J0N=&}I|tar6nAF6*6 zw^E%72o9BhN=!^ii;3^-WZL=MOE0-;buV0DA43h%Iex|rsb(haW4k*GK%rI zxrXRk)|~~XR<$(&i`#sg-zod8pdxBhs&)`Cy%Tijy}1uPQNW&++#{+>fnav z(G3l}&mVs^=MXc$NA_u58XE5SS^e(a zZfIc9{#kz3>-bCjSIdT*{NIL_4Q>0y8v5R_K`vx(GDAy?{JZ_P7Q`~Z{~p*^!h5^0 zpaaMfp^N4zk$MahjoJwMi;_v1sOD-GAc50dx3zC*f(b=@Mbl&r|X5UII*6LA#0nYye^pD^zOCd@AC^9(-5&B*~S-ArFvO>#4veJ zop}-d%Z1X1a?zluMT4S*?$)^upC#w+ z3@80oXXhYaFW(bhnJMYxj=a8ZWp(dfem>np2U>EA2NY*?i;Yk6&FI{v=j!=AdKG2Q zC}QV!dU=HR43Ceg$<2=s^Yu)MA8&m)Fx0q z)Bt2HTh_ZdJ2JVX_w1@}F;4}V#TcEzJt!czpsZJ6XnuaqxZ(d@G-b`=hf1a;r1}Oq zb@KLijqr3CP*6Cmp}bHW+xG6H;sA@gPfo#@^7$j{2fvp8*u8VX&dx4=&RsBf{2;#v z!2fQPYr(_pPD}@5I=V)R#V-`Mo%xT101X5S-aRoge$mJi#$ zcEbvG37{J;z4Q?;Oku?nTLw35`)K9fXIEU`RySbu z(E2_jMi?W@Gvy}+bssY_XRuKHfwjEU6rfwx8hn5ZxiRnW30t>P@(Hy3o);L&?!C!$ zUDL(SOjVD_f5`V98GtY~t-CZwv1DP622g%9+)3zxHQvia{P8eCOCt$cT8ahgCxNAy z<9~Xc4S4P6m*bZAnk2tFNv@wHpPAHaSv<>#XVLK+YNCbXr-cF5=T2`tEpK7X^nH5c z#*L?OZVS2v=Tfy_LT*y|s2J_mvztybAz7aV?NGlFCZg#D>sr}BkZ@IiGE9;)yWBQQ zJ8SBspBFBa<%RMuOCM&hUiS-!Kh-Qg;WTqz{r^mw|L;k^GV#@0E+NIjnp0kWeX1*Z z%g55vXV1EGDx+JP`IL8HRqqT7>mCvD)90N#p9(egruAT{d|6t77Ra4;|36Urv60_kQK_fb{5X zJEQtp0$udDBh%ew>Kp7KHtF2duE$R3T>?o3n}hXjTl7IumFva6E@5-peqC-vKDM!1 zo$V56(SlE~{fu61<33n3PMEIMG3PalY1~-bHmy!0DmWe#MNJXgHVZSxuhr@nKX+PMzi|6M&d(|z)N8?@`khrDo;J0K^=;Pb!AXOgn+K=X_bHp5d+pa>ujS4X z&&J2c#x<08o-KDRap}Eh(YB2&9k<*t=I?#-?lE1O)gphNZ*2Lj#Z)MN8|3?6cJL0Y z6QvJ^B=jK!nxTX;OhvdF!^~+u-l2Be$`zLgc$p({!2q`)|KIy)NR-zc+3dTP`Gl86 zKeL7n+q=oMqD<{kNq%-_5AF825Dr1M?8ocW~u*11P_FW=7kkoiLS z|IuBN2huNJNtZFV0?BKQ@Pb)^DMgMW`C)33RX4tTIrNHjdD#27yq0WrRyFzkVZ%l> z&DcAC{@zhjnym@$?z?umyMMLbl5t6K3qQ!Ptj`ZK=G_~YXAG9g+}sbzSLCaQ++iqC z{C_9x*&?lseXdAx675`QrgFLvmC(}p3v8yMg&Hs=oP;wFC*;$=PMZInND>jDRm zxdhJIf;~^Ktuu)yip=iEc$023^R?h_B$1?4w97Ls?dn#zYr1f|dPpLdz@e38b8<)m zb7psL6C2w6i_6Q43(Ct2E`0ONh4;VxR=cBv)CK$AA*s9Tp-XF9io1%ZPMtP=%D;Y- ztMA-l2Yw^Hi}_^e4BGra7gkZ&SFrXWc07AHQkcR-QsxxmHSz{*GkUL+~11{C?Po0d8L2Qzx*O+Sd2-?s-CM_-o4fxXy)KO~#&|PTe1$ zA%BRwxWB^5EyPRYUzM@PhExW|K9a^9k*IFMH_-OD>(X{he@JK0AeMy-;f(HzdFF^W zW5CINqAwmIP>d@d4p59RNU)J-M7D=rX@zvyV15*wRm$4yBx8+Q5ueOqFU6f-@>pp| zbZA0QjEAq_tkXprgTsToU3~n4V#AVR@}m5sBrh+QWqT^iLOp$40^~tgUpzgwATBUG zG0N<%3-*u7&I$JMb`KfWue@8XZ(w9Za%52I?27f9o-=EIDz@%tqu*O(jEG1w#(IW0 z8Fl)Ah>GGF-(0@1bWLotYDon-iXGiVR9=YHg`VKrjU?({z@<)n3tlsll$S6XiYT+;W($+?rB4 zY*D!4qt$_L3Nyh5;uSKgy6VFuZq?=~jwEr2n`QPIVXF!6$*-oQr-X$@nJum*QRaet zbMv6I*4dfe$ECbjR*;w2W4~VhJ|%kj;hx6uf(5ts&FyXq?^Mt%$lr#iM2{OV-RKz+ zVT#EPb9ZNgk8kvV2?_o4o5rwE`MESxh_7dSY(=-Id^v zmjAfS?OB>x+qiJXvd$rHp1uJ`K9t|LzU^zQ-7KUSjcFmn8hVz^TQRoTR2kx*|9)vR z&7GH_Q^rE4&>jijKjSe8++?e|7WgTR+t3!iL1ts&K8%$&$)WNl?a+Gx(oOoFW!)f5 zyc;82vLPAL%@;`x@(aJsR2vV~Cie^a$!!V@b4wz=x6SDhs!( z^hS#1kqwOo#SniMSXal-cB- z=B7F_f0{`DEOK{`%G3&iMlXXgE6NtE2I0HLnA$X!((&0g~cuGzjocR zOzm&Tj&tp)C&umTd!S!_UY6N6R#%gvGi6$s;h0!B*xb-LvCx!jj5WqLY@Ama-3{v& z@{UO-w7+22J{eSUHo#mbGKo*3LMIvUe=HS8~(=N|9)0kg)vL9-O?V@`SWvOX0B0S7APJKHdY)%2ue6hli>z{ zKt8K1cFG)B%6z4VY>2_f)T@O_TPwyafJ(q~TF-rTQWbpL2maJr#ya7uC~vwJ7u`sKyrw^z637uLaL@%67N^$iIz zH#BX1b?yv{rDbe$X-Ib3&?bZU#EsVZ5fSA{{{D%vivx}~n&MMB$Jb-E(FkM{aov35u1Lh=cP0uSHzaTaH%CMeJfun|X z-?`nbKtAwHT7dV+>HyaDxd9{7G8c__bXA|~C!P?J7W93-#|U|e{2Qxf{_8rI43NFI zp?S<)SHxeAV_x8sRsp{Fu_1dZe7e?03EZY=z+_ju1L?y)eMa_Wh0m}; zVWD+l!R|3fXU&{B>*$!>1@fEE$ZxJ*Ek1eClAdlEH8LY3L+3e_Pmjj>J-e-Uckiih z+$CMT7lT=IucW$~gF>9+aKZtv2*f_1U$EiBmI$?bto!6e z?4+<_yqsg5J6_Q#v+lm4Ex#M1ExLOgeUorgsK!u*I`r6?BWoFV_R>8(>8TV)NliC; z!PKA{J$1%3#Pu}l5j&UwMt#$$jEqqke>mfW$+vr$bDto2zU=#q{7au89b;Xed{X}P zNg>brmbhus#VJ!R3J2RX!u~Ule43kmZ;_<2*6?42Yp3M{FzTwU^=F74Y<=m{v=?Bz zyTcC3#5{vh2$g2Ph?fGb?qSXd)GOvkuE4_^;fTP~<%%w;LPZ{z3kc|CDw;v1aWP@_WMdyM?pz zS?0il@6Vb2{=k}=0SDioJ?H&_wLeX~A>ZBngnaMD#ECbU_KD3*cZ2NNCOKO=F5W?0 zygTTnNv|qNKIy_RtGFGYL==cjRkOKr=@q$_P}GLtJlZ{O&$}~b<`%4(xV5gt)y-5l zymv;3f69~cKPTk&T{0~-^S$UxEyI1n!;^e`#TOPoJD?+#-I&)vATm*vEC4}WOL z3zG^g@=p1;C$~*}B&Tp0>)f_|!R_5`|JXNrc(?9Rv3(1P&sdkFpSi8u1?S+5pqrdU zA~6CYL~#d;8$#N&O4;>^_*rT|S&v|=+lKK-P44C8Eq^X=5*mM{TcQ7>EwH}j6Wn|E z6BWipTDP!l31bCofOUoT>V%1xuTGdib4k(+makF{B8)EGgbL$9YoaX}*#3x)bG;A2 z^A1Jhp?Z-#R|+d|+T1Xo#MA)!Wx4g$*I5zkapXwjup`U`hh;RASm>ll@)wgP`}u6z zGjl<@Iexjts$8$BEPw>G_n@d)p;HZ~p^0()7UrEMoV*@%DS3 zC9)hWH1WQeeGRJofl8;lIA#u_?tyW2Uj(JKjIPVd>Nz$%!Uoe$Q3Mni^8RUc5BL z--OW0(ww>oZ1vzSImANFXn)r9qI`&2Xk1ckE;x&=GQ$VK1unmiEg=H<@QrI; zH+%4)u}cG;NF5@w(TI;~t|J5BkDF=#i?%OQa5-S8vj3r+{0qjdfkrWsbTGr@p{Zl< zo>{n6GGx(H3v2qy?~Zqu9~YW_|Egtj)})NrO*B3pR;m_w>>q)=k1l$+{uHE24Vcs@iZ*j8idm zC+!m$5E)W-r6@MVl#n4;qk3e^H{x1*v)+i9`{AL@%|lt*q^B>-rv$g}+9Je}%`688 z^4;W9Q>MzNm>b_h8ZiP<+#K30vi^I)u#Fq##qy-Rd)azEpEuh4C7a$4T%!AJ;m@P@ z9+9R9T+ad)(GHQBnJriqlYJ}^7A=pfGK-n5dTwX`6xQ$YV|BG3$ah}JACx9voRdAC z?O)ztkY9^sZ_CzETDfN6Ky88?#ZLIOPPhJdWcg_sr-oWfJGJf4#34~{&vh+ltg*>k z!$YjXCtW~~p!v7BR{M(f21bb@caEKJ#~xdxnV&s@rt7dnWuaRuv2^QAIH@Qc=v5sa z*DcVTH?n5-{LHBZ{Tt%U(LwQy$3HG!d89T9B~=- zojHk*YG1(klSao4mKN#~cCYY>16TB!COMBAcmBz_#q+i_Z`-n2d-bcYtZ%YcY_M$P za-pyldE;JcMOFCQ)8?zq*L(64sx)qRQ-$sVF++Gfge~&Nxfr20r?ZWWS-<&X&Idb~ z7edhNUF|;?AAYxOp8Txz>>oGTFzah2qLcWF^#~uEepmpIm$Re2V!t&++-D6xBz)TD zDvhzm2>-q}LAYwoS1p#M_sp}FN*^h7CCJ^xuXPskQ4kBG6$=v$H+|55oRz|VTCU)T z$FQ&j=GL&DZ4B!3=t}u}wn$!p?*h?X-poeIk6qnVwdUZj;{Lb2R@RrrU7NA!W0rV^ zC4Tg&eDhQJi>p&N$!|?w+uOij07T3P(Rq4D%UwtBXwl!$i37D~5Nnu5{IcDVk4jgx zS15Bk~m7G^rbhmUwuRSmgEPQ6!x6I zxv6KT@D*F8P57j#WWwV4%xUJLS8vEaZtq>`?&2Ao9#hn1)WGVDs(7QjXF&Sks%qTd z8W@liKYQ9{PtjM3c6AFVTveA}T%X_Bvbx2uA$Q{5=J~E&r_Q`AU)+DGXX%c`9s#E0 zp61ACH)T|BI) zK9p;f`Lr*co(}$D<>aoRQDHKzynnIoMu=L+vW-=lig>u85{EvH6sv^KAA7PmduVNq zw61y3grJCsxOkt!th|`E<>N;8E)S3K^Op6h&PC(h_;DM@W=(#2a$#=@-G8|!MryVeh#{lvJSzyPDsJvkuotswuj+_fvt z3RT`^J!{>AlOo~+jJ{DlTV`)dyn9K=w=7#(Hngiw(i`6CUgj-DT3_{a@-9!CzNs)R z7_VW0<7;e3wcE9qH2K7n@CZdl&?7D&<_^6FjAV&qhmO{v<1n6#$$5;TEfix-wFu*r znJepREOd{K_j0e<8{Wz6k{%uG8WI*!5Y{|&xjCbxXK0#t@066#z%yrEGH7T=DX>Vjq#G+-@9j}-o==2TDZ)zEZ1m>O%8U?FRiGVeKkd&9N$nq zSAPEZG549>|LOhm4L0Z$%zNnP$+mB_uOi#9Ki|7RS1^aUKNlKKW_x%_vgGb%4D(9! zOfe>>(Jls`LTq&R>gBB4%7)UW0Slj!pOR0!^a?9Fu%8vZa__X8o0#UFSF@sZ-O8Gr zuPaijtGf@I)uZkuR&eMrD>-;jK6conr-uidT$R$VZ)zo{BL}{GsZ zC~1>)UYLJGkYoxI+_AfjNQVIb%Gq;&b3BWb|Dj{AkJ@P7SSsIp|MzS4tmyWEiJL<* zguCUL174E9ahe#`RLl4vMA;p}1FUXya<;F|MpKDmN}RCMn$4)ipSLKyyXI zfas>i)vqj>mtQ}1=;Og`R-y}hHd`_*)d zHTfDtLW0AigH64LKCz%CBEUO8I4HZ};Pz>CO_`hAg-w|edxC>33)f$oI~9G(v3;q_ z)MZmve5Uobq(jcQ)KPD+;_Hq7OBlz3d-JpwBg`ZWPj0ni68O<3l2}A)VvXLNX`MeL~o6 zGS-@UOgFqbzH;i|t?RFUwv{D+@zoR0ck?sFdq;cw`ek}sh8N$(7F@j;>97 zX!S>cvMV2C|^4Pq>10%+ckIl`<8yb|*ls;;}+ATjT53P5< zDQrrrSkyoHi1Gs=S*8iFUB|xn9m+aPXU)7k=^ZtbF^nj~fpjBxyKr*s|D)|Y0HZ3N z|8MubcSiz&^w5(_r3VN}fFwYGP!f7gLMI8mgLLUlDFRAIrKo^3i723=QUnB1K@e0d zprDd~D5#L!+x$PX@80D?@%#1n`~5jCclX}gnc3Oh+1Z)dS=nc*!WLaWP#rsP$E~tUAt%(^5_N72|*Sb&M>n`FGuu4Bmg};s`VxIASKq{vkvDCJpu=WmMYWR zyP8VXkeDzN$ks%UeTR15H`I8U!E?uT}3GH_7YYJR~R;jlS2 z?&TI0K!rEakX^J3@d%;t7g}&;t$`mQNIoTS2HMo#YP?54a!2n#y;W8+kVIClsA$u? zJfhTHRc9F}s;y2{?v0x{hG5U=2Y}SK5QjnM$)IlqAgZ7Nh8kI%(4`nQtQkkl?#OA| zIy<{{+Z@(sk-l%yB51nZI*%URx#Q?jg-=bHqQp)CoX$n3tOvAH(2WqM#R3pl>WnT` zgAgt!eafV+hFY~FVud&;-VsaLXqNgTYtxn0DOi2;!sQz`FI>3Ef3GT@6NA_~Hkb`( zt1g{pwek3mZybGp|GuL~VMCdL{`wx)5vAc#2&ABV8R{LUU>1 zV=uLc#oYev)8AMFarw8SNA47k5bGP>z~N6mtnCf4;qDYikQo(><=@959zLK?*~jdF z_@3GIu&v50$1K(sks7%a7>u(;EKMQ<^W|u1)?p>~|Pp!Ijn`bnNtyiIR*)3vW zy$<2QBj$gs{Hgq+pXl7KXRVmsB*uzzpu^ zD6jmIRDarujj$gdKz@bN>eHC(sa*nnePX;7u3_Ya`1$(9aD~Hjr$B_**oigspJ_VU zQBd{l8|?J-tmU)bPHHM%Y`XY^VeOUsdmKL@oxmrE*1Y%ZbD!u5Y(4e{Ef=T6d-^q= zWhvqb=ZyYD^TRB;&cO^}SOaKb$LuS`U&@#ICSzSwuvNP_xnL{wUOcajl+W8puci`q zylGz&z0}bw9sVno6L1ZAmv9ZijN6BxP#+EyleAy7BUpz+P50no9z1{+`slwNi1gdR z_v$$}`3AkS=HqydK9!9H(fl2Kpg@WVCD3ux@vilY$@DQPOX;cv%mf*hI%s3se_jQn zA}&0}=*-x9??cgjzOfC!GQ>`R*y!0TXcgaC7NKg##E4IfnrFE`BXV0UejMz-c@rM?I(uD zrj|DDGszOw)3~o)EbM@^76b$TwBC3IF(lO)Do*pV)?3UMpW-!-TUamdujecM5&pLr z;K)*;?ZET?kSZbalvx>`>(s|cceYup<6Kcpt}tiVl^8#bTwmm0h>Aqi>qu6A*^>13 zfu7z~TeccA`{kE0Q9aKyuk6}6|J1nGMUN{hukdwmR49Ki);q&TyI8O8gh6u~H|yGW z$NYIY6YABaE)b_qjg>AwhnH`_W)_p#;ow*ZAY*I|hdlDaDmRLJO%c%iBx3YYC6M{S zXb?}qm~u9Pc0jrT3sYhujBr8nP_x{PpH?duk+?A^V5>j7Jq!nl{w5Yx>HfyBcX}n3 ztG()lcZalT%T{cObIS{5;5}`-0RHs1>_)Fi2WSn%7`zaI~MXHKos3^ozT7{6u z1|j#P@RdVDZL3o8*~l`jAhnzGCQ5RzgS~IIA2eplkY#~WCruhBZcooF7tIDR?e_T2 zUY>fI@`hi~(_c4j_-uNhuabx=Rhrprrel1i3jT3Z>z1#uVf5aX9hom{{PNgsE!)F? z02MyQ{`y^K;7jB|%rHIR- zm9xB$oP(%bywtj2;G#;Aein~}A^7eDsGkgo?_Hxt=oz;6NVSPi9r9nEG_cCfFL#Dk ztV9SN^cY{K&M|dS;r^?WCO&0N9==Vv;HdRMVj}Qytb>2lXfIkMSsFbs(c0{BzVXZ+ z1d&zWf~g6!urWayLlJC_bn^sH6w9OQtKt{0>rzYb|P=xPExzklO4XJKAc`sJB_=;jH<{RxL%|H!H6WiyhW@>+vd8SYX{c32~u4 zS?%aat;cVvUY+>CEacc82-z>C8wO-74N7Hzu42BJ!WOFi3pcT_X_$gu#^YG`XChxt zFybi=d^6vMeJmekhi0wGx;3GC6(9E-;L)yu%1GB zx(@hso$lM(nfFT%c;r5wqxV zUys2==POz*Mm_Oc`H0Rzw6tTtNIG2CwcRo{->9!~*Jf#_d~U+AA_f!uqx&{X2FEA^ zd}urJJS+1YEBv;0mCt3!=h~@8|Ht)GjSakXh45R6lWyfa;T5LqrBdAP6|2uiO}}vUhl|t2 ztJ5!j|HB36%Pi-Fk%`ZhrsWFOIRwbH9A|{Y}VA(1~$K z{RS)D5b9Y7HgJ+5qppo4NSJC&Q(qLbBO^#4xxZ~zwL0VK^b0?He{uSN_|(|w+O?x& z(;D{6sMj#QUZ!}JjRJi&hxhBV^@JH+2P69zy->+j?t(bgR2i($O5l4RMOwN!Bw8 zEk{Zx+EzlZSSP!U&4PGV>+D_|gTJy)tslex*(KXZ&+gYS&EQ08`~cY|(=+SEH>{VT z=9a9sDp_$uG;vnn(Wqo&NiELRkSwgHWZJxLUFQrvvpf)OjhrKvH?>V_XOfkEvCNrSB9jfAldJj_-pZZB6PK`OR-CwVVg(+zFqVz6 z^qO`>&b=|rW@OgjCuXpLb8|1}&eg7nNh?kiPF5Gm0?aZL@b?<<5wR0R5$jR$+8*)p z+}y%js$cG0ergF7F%STL(F4Gjwk;(0F%otJDJ^G+mn3`}5d*ztvXdT3Kfy0&(jOIX z;0dzHTJSr$bJ+kwr+d3ND{}24>jc-Z#BGbBnhltfn>$y$BuS7p zoVfgi<0FDW#3%_TmV=LlmPJ~$79;r>j~p}1hA~^1!TxmcYwPr?ht$ur&N@DMU1=a7 zSxY|8g0Loqn-cD^FEbA5RoC%r4lO22zrf1N5@#QJKEej00E@>mO^ePDr5&=wp}efK zN`u!OpCEI{!_Ol_iw_HeF@bf}B>Qpa zdm~w#Xus>-kz&1zmn?Pi`8(q6$>$|6UF{7xMmrFMSUW*8+g()I2?!sv{rF&mTs?qb z+#zTH#2|ZiBWQoTls`5anpo;NU$pLkYc0%&_>34}TAUa!!(yowo%F6;xpn7ORVtUO zn$)06o9-DY9U7(|qQ>Z1r4_DMDQj=ssC}#S%od&E5_r$v)vE@Fh6dXsJGM@W3Jr}) z>MwrbwX)9kGp_b%)+91Cv|3^^@yWxoTl?Lh%Y7FWL;*GBZ7;eWQesvQ;D{=?-=;<4}6T4lOf!wCU0ysjBmO<#N1d_vFNCp`npYn)QgZ z6D9r5%0AKGps{sF<7(CFk8Qsgb1btkXZ!7Bv2${Hmi}Vy9C2o6ar^a@gOBwz#zJq5 z@0T#Xsr_gy1ejx-VLuvwUygGYE5{;>HOKq=V#kUTdOF{JVg>8@zHC2p+?)L%%pCjJ z8RH!PJH;m$l`rxvjL-%(U-Y1M;sMLQ7eK% zaJo3<8Q>WGn_SXZ8<~~Tmx(iTSXFUt4vXdE+$#lBX%nMXCOsr~z3>A>z(#@*f^izA zo^*VK7J7+9u##~3GWP^ipOHeC#W`NV<1QJDvJpOT&`Oy_rWU>qtQ=^xQIMnHjNM(fy)-aZiwX*?S-o0pou=i87!Ci3m~#A2XFG6DAgs}(QL`qKYXRXMgBqA8B{gRA z5FOk(kI%Io!DyCYX$~If$ZtBsTp(? zLoE>1(AC>JTeu{LjrLATHrm^0{Prf>PZ;Bg^e56k+Jo!F$493l_lr(a!D(}DC~h3r zlwq_Fd%8kEaENC>`9Kd3t!$O5p<&f(+9NAgE~l092*ky(DuLyX8g-ags#I9#(D2Ik z(yE6?Y0nCtWjso0Ucr^aL#x#aDdjQWkS6?BwTy4LXPGjdWxQ&KMfmvo28M*!^7f!B zQRPZ&mz+w`N=^0k^$)EPiCah~Z1wc;t`QmP@9V2sUvM_19Dn;z@2=zxi-_{W9Aii@ zzaRzj-8u7DywK>btJBzW00a4ikf>i>qr^^wUSKz0gKmRk&mGc5$QvJNeXg-beIQj#d|qAamj|muDNT%qi)xan5Y=m_=W9U$duz$ZUD-icb0=C+vFV^cp0jZ z6QO=oyXZ)Cp_KS`7d_CPQ~#FuXoI++u-e&fzT1$+FN4sU>feqYR8ES~cYu%Ng!+}H z$Z{?!p&k~C#tH6I4)@S)vOWCRYV8MYs*JD;dq}D{vAc~+j0Ek6%atlMjBB2}F1bZq z!-|#PoFiVwY&|EpcI|GRMrGg69@VLP?OOb1kJQ%98o}*vZ`7=Hs*BhK6DRk{h^t#S zE~C%ni9~mG;Q!0O?^hBL^Z;4;hlr|PyH@vNJg)hPXll_+(p0GuzgYs$0+UrGX+r(E z<+7!cwo9%{Xy$Zj_zJ!;|6(;ifvM-!ESIXUL`|B6;v}Do!jM1jD*7|55e&^tb3L?v zD94!jNt-1d9s5_6S7?x2zD!FN$49J?2GHfphBm;4NeYKJUSUJzqKVg~?j+VKy~SE; zV?!prZ0V!T*A~eLM2H#+RmaPHb_6=A06g)6%rSEW*1!}_h0UTl`q0N*QB zZg?<*-E;J;S*upfp52EI{$uda?#2(*C!t+xkFGBy#fJq4hcw2Iu02xQB^U~H&X|b{ z=1v@wlNnpLZfqug&0T@8Qq%o6wYNVqfZqm6nb}o#$=lce?oq7mPwxegD$e<}RwG>)7i+}la#SER}Ivz6ok{Nnmr?F8w%QJ-l6B@ znwn{Q3f`p!H5M7+khr@ zIFmNJu{Kx6?vx92;)c42>J$ z**r_T&Vnc|hv#KEl$VJh!DGPOq&+RyBvCFSg~9DuR{b;6TCrt|VY2}1=iD&N7W?-b z`iJBNY=YXG&b3Xv%XndMIYv=GlZx}@En6-_@D7-v{&j=+L$-|l`wfeR$$O)YlAa)! zQNw730QLLNOykCuEry8$EdqKZvn4$+J{a_XA8#6Kn+Q0~oyHD>`(Z?nfDo7Tkon>J z8wQsPC-2{HSU_YGOP>D;o|gk(8vyS6;4AFdMa?D8GmFf7*tsX~#TxfqI%8)<9aN-Q zJl-{nBi{(POK-()3$iN_iyB=^HMEFSc4_dU#@Il+v_1P!&-d4FwQR{woa;Hdt5Y}V zdZOp(O{+JtxHP0kQ(X2L6`m_QS~fn)js$SXl4K|hF-R9+Dhy#!vB0Lj+MjuGUBC#W@3R+6q zB@55UWN&g&yorc}-3c<`RrE(%OFDa@vD%K}N0z6`mE3?iY0F!x`wQEt z{#}-{XT`+jT?+Hn{j$8Pj#M61ADCj&p$)~}-fQTd>F zXTOu(kRNH$a(S9DW6w=p&g^MvAR@oZaxsxTyS$6)FL`Y0z8b}?5Cyg%&BXTIqyp>$H42VZz13qKp@m|x9GGs2DuYaZ?XX(Hr+X&hp}B;&(Vj# zRCI3`Uzek^e#$b(?y>yZQ@m!@S-t95r7OyBLHQ8%gi)UCc4YF2g^C)hT6J|WUps{T zk$FfTlEZc7zGKfAe(lq2{lY}O>KLWlFe-1cYav<{qdX!Kkb&8-=*6gmbR~zcJ(MZR z45RX*Kg&?MjMJ-5(7(+7lwTX;*hBQA{1~HrgtY6~Vc`qFw*X#->x1+mLxor7A-*nK zSAJ8vjM1xpn$2rXq|&>FQTG-a1Mnqz&;hGwigd6Lw7raaJA`28Z zVb1crgMam1rhLU!PZNfu%qPsxH7$ZB{HtxuiLhgB7q1st3|&Q>rg{>;6c_JJI503! zc3sUiE%LM1*WJ)kXih|8mq0)&FldqUA;5qZCyz`Rk}EzjNE>h3|Hm4%IGq4WZSgv@ z6ok`!2!k{@B-_r_uSr8Mp;Pm0cP-km@03uQi~A6jEuo#4)W;307%SGmX|Abf=?gva zHRxhg+7^V|!gfCoiU6{+&4&+D@Y)RF$8OOVrQ7-Q{ch+(c{mRj-v~~!4r^%j59~cR z%17B~|D%Q&B8qA_a`A^gpNf3FLFJhlO2 z;x_QBO%ERi(pfW5+>gGnHwZspqhHalun2};5Bx=E)ju!~82E#*TPn;a!obg4A3ogu zGu}=3p#r7Y8J2VYyz-Ny@)G?D52r66-9CP&Ex%vXXvvodTodrqL~ZZlL%`3e*;zdN%tQyg6A)J z7_1vyPmD@eYn{KtJ{EVjf!oJ4j|`x9ydty>>9T0}N749nQ4M?2E+Mt4@5I<5{FpadU2 ztoIXJSs$D)flkf;Jf%N-svr7J^eJW8DHdV$Y#J9Mq3;`OcADv&b3FE@100s#18GGo zy53l0m#nQceDu?$LyUKW12@l7$%04`i{t-By`X~wq&1*o5WZ?3;`4HvW1(aZ*X|2=DY-|20Ji%EK!CM~&tAGy6;a|h;A zW35lZMRpWuv~t zTYZ_mTI?D^dH6lW+W=zFLF;MO<~HxdwATD5aOHu2GjWFJHTcKjNzrwIw=bjm=uS*PC=4Iqy56p#u_h zgLb2TiLXq+EUE+t2%hAElM^Pr#0!!^P72LsqZ6*VstZ&0&d8i`)?~_A`NLQ>=AH#l z3~Jr@VqkIchUW0&n8TZ4#3K@d`PhO;;@AUN&xLozXq*Lhh2^tat24z$ zVJOO6a+SgKL5=Of)Z7INMmWNhZ`leI&0oFx&VHQD(_COdu1GvanKCloAU;ZynCOq@ zW23UV4`JkUskrX5P(m>A8h}`KB8b75kknF)8)jazw@_p*vsY4-uez~5qO8agWm)eY zJq{gEKVsep*S;w3h&+7{NBkc8Lpow-DYq)t<$lf#2tgzl5d7j3;B5rW+96OVe8wkz z`EusTN-b|2F7|qqsXKa1zkXvz*Dd40I)}Gij+C)~Enm)Wvhk-s{&>*J>cQi#i(fSH z%k^==)mIMs`1HrvrE2V`ANHc>B1+-->Up)8?99Py3jgZTPOS?=>=Q^tz-#V=yJXf3zdbieD`eM9x# zfr&H+yedsCOxl(4QnMW?e1QHky|s%4HCY&T70EZ+Ye&&$HOJZjk~@&BBn+tmv9l}; zI#P@u#tWSUf>_?tn1T7;lNDJhy=$eDm0GV$|D7eLi@_{!VtV@PJsGn$=vPn^Ie1;5 zk*4)Dy;&T|HU+k^YuZKaAY@y(%oibXvD-R zQ+{ik##ma6mXWzVefnPUtk`g7a0r`qrEQyc*+iCerf{n=C2je#7dCBrf&c87ST(S< z@dGAGsI8b=HN^XKXpNYCWWVEc#Miu?=!$et1qBWjX@%7z1x@MEN1vzt+hxVIxnRZ7;L~`^_M43Y#J14IIW8#um*jJl#d-dM5Zx`RM z_gOJ|cv97J>g2*jWveC*AG?BY)!QBIm&LN#qWuRmvmYcU!+%@QG-*=v77sv|0z8|w z->flc+fdqL6ahxceV_@5ur>@}WCX(!8R@lU&Rdwp0osMy=HQ@cp~?ZSI|!+b`=ui{_J(nijx0ot*q2JM-XvFdKDafh^Zxb$`JhL zgH2@BS*)FQ@PiUy$1gsdMbB8gc)U0v(%E*V)NkSV0ipISYKgx^y1IDuH1UJTGr0Oq zw&W_KJT}Tzbp(2ng>>WnN^NyS;R^=87h+G09b*I@G?EkaTBxo=fC*Oh+L8NjTdO~~ zMD4v$JcZ{zkk2_~(n1!;;p!Go*-{@|vR1#3#SqTZ13VgYkY5B(uF$Z(CP7{A_?6eu z&nc}7?R3v+)~D$m#9zA<6=$T%KE=yut@wSSll&CN)H#JS`2Bp`-9_18DW&#n-rA2YyV_wU8eI`anbwQjcSy<)cOMXt8S;>-Ht< zK1}Rl-G+&sU*ZCv^Yz(p*jpm)o3mfz8!a)vISZYW`Lj4>gz`Bem&aKq=wxGImiM@o zGvyhBU(U0VlxOH{BxY$@bV)sD&6P7QbSDUPTU3Of>V2e#ertrtpA*Vjer(NM_23<) zL;UQS`h3!BWf|K|-$>7u7brS~+LN-8bL6Irh1EGw$b1ZP60dMs0yt>mu<6$=EyE zYDF=~H0QWc5%drV=8i?Bchs=vod@-4nLPZSi<-41D4CJ_(u^((dA$}bb3jQ>MJGiA ziplw7|KYq*;PWxdGw7F#XbzevjoT4nHM(ea?GIzGLGCIAXcw zGnC;H9!V*Ji1%j~F0j5AFA`weB?1mz(FvPutOQj;ro7Mc9rf9TXD=qlPQ3W+g%%Ci z7iw=utqf(F?o}hF9khsx>5jSl&ziu;7&xOIQ@4=TAa#b)xCA@Y02U?Qd;SG=OJQHd z>L@Vk>h>&@TC^Qnk2Qbcd7L=*m3Ud*;wVt8g?&ptOZFVnWwGRyrxcJjOMy?=5uZJZ zsSl=R7gn!7ds=+;LSB<~TC!ooOtDqJ$ZMW%(XnIF=Q`H>#WYIW5Y9FrB@6Qes!Ust zF(b3U!s_wUX4kJ?m_7A@aE!|4lXy-2;^#>nJGMAY-^A9L8#chnhyBZ9v5J&>GSgUn z?B1)0@#NgyD@PTwuX!??+h~GA-X9)&)+)nS@&4pOzo$|gH*Q?kyH^1B3=4~YV^aSK z?V2EHwcLHaAt#oXW}gh})~sXu)W|?RCoxzY5La_vdu>S1cUWfN^tJVrkRV)=n9fjc9Mce}1jJUs!DVAwR1Ws@ z9GEozxfb=jPkF~BSbc3R8{%XwI$_IsZ`^Y&anC1~?zNd%seDLqxpE<%-h~w_m-nj~ z9PFv2CUk1IJ1zC;U@x1vxUqXIV;vhU32e+*FBYT(H))!h)+0SFtw~edXHg~Yi(5*l ze!{0>c-ML{)oO&5E`w8`SNc>67+9}f*KiCa)zV7Tu^t59!6`r&qM$|BGr)u~yETZOqb z7#~^OLPl3D?#5NBmh9r*&IWPy`A06Gqq|y2j*sFo;B0!g3w$p%oZg3hh)-d*pS3f_ zN3a|!6aSY@_s>oF@R)nJqZGbFjf*#uV!DPF8|U8skd>809d!)a8cRkN<_z+RFELok z$>}=~9zMku5g#PQPSit#Pl_fMv%!vV`!1zDeM(3cugLID2?_Q()5dobzr~CQ2(MPp z%PZM6uBg=#{K{4L3FP)Z>D^j2iPTi&pmi4~pLuvkBqwJ~YADV{%~({wF~Wwes-t{~ zXO#72ee2dkWS~kiRPBs9C0JTOhGtkSzL1eknG}>x329a;(1y4RNqxzFhz;P_|3F9g z$t~azxSF5woD7X+D2Dt&QIXpxbPS6sTcR#yN|)}~IJSD_GX2|KtW={>r^uR83b;C* zPpMKJCm?W(-Sg43Si6^}*dD6H+9Lw|{mX|UXSi3}7NyD}TZhtaR+P6#NxAx=szo(R z=+|Oi>XcVwqMJqedWauOaDkOk)TmkMolbW8K>Vrjijn2Yrg2|ZF|uY{%(Mmx;g#8) zlkvlwM>ML2MZU?aB=9N`^Gz38S@@z>l2cD$STGdtCon8BD#9j<#@i&f$}$qN*q5$Q z_M@oC*P19SrD4;w@W_WbR;EjQLP(%(>6m8r`mI}5tMLfOy2i2RJTz?Zoy8rh^(x5R|I9Y@ZLX%zyd zT`Tbb^HS8vrYDzk9#E??4!h@m+^=@j*hY;T){U;r{t#b}^7XAB4TfR<9%zoAg|CTUoF;S247KxDAk9bDatjU!6%-9BYnK z+2{|Jq_xD;YA5kD>URt=zyuGtEH?cQ}@ zX*RFL-P^BKy4>rO(%7mf)};1b?{!E?P&vL*JdhiFKUz0oq~b-3G?@p|7_(TpMIGz2 zwnMiiWo(+qysY%iebYB|?7q0H)#f$3e~-=ml`h@Wl8`}3O-Si*uWNgJRjiFuDA)F6 zRz_Q{JfO^F#Vf*qPzs4B@+tV-xmb&@Pum`(R>?1Rn%FEZvrqcOecf8_7&c)~a+?{+ zahZM7*;D(vr|cLuelM@Iv0r9pmu_#gdOfT2!KsVJOr7oa6DwYzLmT$gTA>ZG-uA;G zM)DoQkz0Y@$EN-Kea9Y+ns@kO>aX8*?4FR^9)T#EMVg3a=k$K;Ep|>s1ICM3a0F-J*f)LGz+t%q zmrN+5TD{lz?eV&k#tooxsEn|M${rVQG%}PZxqLO+7$M|y(&E~$?Sn>bpEcyb&~|Y~ z3wOvGe2||mpVl4C8!2|Bu#5__eIr=+6ygEdNv>+Gly6`w#P~CM5b`t83d7lff;pjO z)W3}$6rdR$Xuzf(17`XAQ}-$SMw(t`Qz!D|)}(gb=$l8WCTVPMo)Zs?LOsGz4=no3 zo(fFGcxW0diK$E}KXla%>9VVO89miNrG^>()x+6ck)1p#O|-g2xTsyp_ETP38KBCT zJd>tRxD;WeLj}=uCG�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