Merge branch 'tizen_3.0' into tizen_4.0
[platform/core/api/webapi-plugins.git] / packaging / webapi-plugins.spec
index 68b2bbe..5db3100 100644 (file)
@@ -1,7 +1,5 @@
 %bcond_with wayland
 
-%{!?profile:%define profile tv}
-
 %define _manifestdir %{TZ_SYS_RW_PACKAGES}
 %define _desktop_icondir %{TZ_SYS_SHARE}/icons/default/small
 
@@ -17,354 +15,349 @@ Group:      Development/Libraries
 Summary:    Tizen Web APIs implemented
 Source0:    %{name}-%{version}.tar.gz
 
-%ifarch %{arm} aarch64
-# ARM
-%define tizen_is_emulator           0
-%else
-# I586
-%define tizen_is_emulator           1
-%endif
-
-%if "%{_repository}" == "arm64-wayland"
-# 64bit
-%define tizen_is_arm64           1
-%else
-# 32bit
-%define tizen_is_arm64           0
-%endif
-
 ####################################################################
 #       Common Profile : artik                                     #
 ####################################################################
-%if "%{?profile}" == "common"
-
-%define tizen_privilege_engine                        CYNARA
-
-%define tizen_feature_account_support                 0
-%define tizen_feature_alarm_support                   1
-%define tizen_feature_app_control_settings_support    1
-%define tizen_feature_application_support             1
-%define tizen_feature_archive_support                 0
-%define tizen_feature_badge_support                   0
-%define tizen_feature_bluetooth_support               1
-%define tizen_feature_bookmark_support                0
-%define tizen_feature_calendar_support                0
-%define tizen_feature_contact_support                 0
-%define tizen_feature_content_support                 1
-%define tizen_feature_datacontrol_support             0
-%define tizen_feature_datasync_support                0
-%define tizen_feature_download_support                1
-%define tizen_feature_exif_support                    1
-%define tizen_feature_feedback_support                0
-%define tizen_feature_filesystem_support              1
-%define tizen_feature_fm_radio_support                0
-%define tizen_feature_ham_support                     0
-%define tizen_feature_iotcon_support                  0
-%define tizen_feature_location_batch                  0
-%define tizen_feature_key_manager_support             0
-%define tizen_feature_media_controller_support        0
-%define tizen_feature_media_key_support               0
-%define tizen_feature_message_port_support            1
-%define tizen_feature_messaging_support               0
-%define tizen_feature_nfc_emulation_support           0
-%define tizen_feature_nfc_support                     0
-%define tizen_feature_notification_support            0
-%define tizen_feature_package_support                 1
-%define tizen_feature_player_util_support             0
-%define tizen_feature_power_support                   0
-%define tizen_feature_preference_support              0
-%define tizen_feature_push_support                    0
-%define tizen_feature_se_support                      0
-%define tizen_feature_sensor_support                  0
-%define tizen_feature_sound_support                   1
-%define tizen_feature_system_info_support             1
-%define tizen_feature_system_setting_support          0
-%define tizen_feature_telephony_support               0
-%define tizen_feature_time_support                    1
-%define tizen_feature_web_setting_support             0
-%define tizen_feature_widget_service_support          0
-%define tizen_feature_wi_fi_support                   1
-%define tizen_feature_inputdevice_support             0
-%define tizen_feature_callhistory_support             0
-%define tizen_feature_nbs_support                     0
-%define tizen_feature_tvinputdevice_support           0
-
-%endif # tizen_profile_common
+
+%define tizen_common_privilege_engine                        CYNARA
+
+%define tizen_common_feature_account_support                 0
+%define tizen_common_feature_alarm_support                   1
+%define tizen_common_feature_app_control_settings_support    1
+%define tizen_common_feature_application_support             1
+%define tizen_common_feature_archive_support                 0
+%define tizen_common_feature_badge_support                   0
+%define tizen_common_feature_bluetooth_support               1
+%define tizen_common_feature_bookmark_support                0
+%define tizen_common_feature_calendar_support                0
+%define tizen_common_feature_contact_support                 0
+%define tizen_common_feature_content_support                 1
+%define tizen_common_feature_datacontrol_support             0
+%define tizen_common_feature_datasync_support                0
+%define tizen_common_feature_download_support                1
+%define tizen_common_feature_exif_support                    1
+%define tizen_common_feature_feedback_support                0
+%define tizen_common_feature_filesystem_support              1
+%define tizen_common_feature_fm_radio_support                0
+%define tizen_common_feature_ham_support                     0
+%define tizen_common_feature_iotcon_support                  0
+%define tizen_common_feature_location_batch                  0
+%define tizen_common_feature_key_manager_support             0
+%define tizen_common_feature_media_controller_support        0
+%define tizen_common_feature_media_key_support               0
+%define tizen_common_feature_message_port_support            1
+%define tizen_common_feature_messaging_support               0
+%define tizen_common_feature_nfc_emulation_support           0
+%define tizen_common_feature_nfc_support                     0
+%define tizen_common_feature_notification_support            0
+%define tizen_common_feature_package_support                 1
+%define tizen_common_feature_player_util_support             0
+%define tizen_common_feature_power_support                   0
+%define tizen_common_feature_preference_support              0
+%define tizen_common_feature_push_support                    0
+%define tizen_common_feature_se_support                      0
+%define tizen_common_feature_sensor_support                  0
+%define tizen_common_feature_sound_support                   1
+%define tizen_common_feature_system_info_support             1
+%define tizen_common_feature_system_setting_support          0
+%define tizen_common_feature_telephony_support               0
+%define tizen_common_feature_time_support                    1
+%define tizen_common_feature_web_setting_support             0
+%define tizen_common_feature_widget_service_support          0
+%define tizen_common_feature_wi_fi_support                   1
+%define tizen_common_feature_inputdevice_support             0
+%define tizen_common_feature_callhistory_support             0
+%define tizen_common_feature_nbs_support                     0
+%define tizen_common_feature_tvinputdevice_support           0
+%define tizen_common_feature_voicecontrol_support            0
+%define tizen_common_feature_ppm_support                     0
+
 
 ####################################################################
 #       Mobile Profile :  TM1(32bit), Redwood(SM-Z910F), KIRAN(Z130H)          #
 #                         TM2(64bit)
 ####################################################################
-%if "%{?profile}" == "mobile"
-
-%define tizen_privilege_engine                        CYNARA
-
-%define tizen_feature_account_support                 1
-%define tizen_feature_alarm_support                   1
-%define tizen_feature_app_control_settings_support    1
-%define tizen_feature_application_support             1
-%define tizen_feature_archive_support                 1
-%define tizen_feature_badge_support                   1
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_bluetooth_support               0
-%else
-%define tizen_feature_bluetooth_support               1
-%endif
-%define tizen_feature_bookmark_support                1
-%define tizen_feature_calendar_support                1
-%define tizen_feature_contact_support                 1
-%define tizen_feature_content_support                 1
-%define tizen_feature_datacontrol_support             1
-%define tizen_feature_datasync_support                0
-%define tizen_feature_download_support                1
-%define tizen_feature_exif_support                    1
-%define tizen_feature_feedback_support                1
-%define tizen_feature_filesystem_support              1
 
-# FM radio feature
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_fm_radio_support                1
-%else
-%if 0%{?tizen_is_arm64}
-%define tizen_feature_fm_radio_support                0
+%define tizen_mobile_privilege_engine                        CYNARA
+
+%define tizen_mobile_feature_account_support                 1
+%define tizen_mobile_feature_alarm_support                   1
+%define tizen_mobile_feature_app_control_settings_support    1
+%define tizen_mobile_feature_application_support             1
+%define tizen_mobile_feature_archive_support                 1
+%define tizen_mobile_feature_badge_support                   1
+%define tizen_mobile_feature_bluetooth_support               1
+%define tizen_mobile_feature_bookmark_support                1
+%define tizen_mobile_feature_calendar_support                1
+%define tizen_mobile_feature_contact_support                 1
+%define tizen_mobile_feature_content_support                 1
+%define tizen_mobile_feature_datacontrol_support             1
+%define tizen_mobile_feature_datasync_support                0
+%define tizen_mobile_feature_download_support                1
+%define tizen_mobile_feature_exif_support                    1
+%define tizen_mobile_feature_feedback_support                1
+%define tizen_mobile_feature_filesystem_support              1
+
+%ifarch aarch64
+%define tizen_mobile_feature_fm_radio_support                0
 %else
-%define tizen_feature_fm_radio_support                1
-%endif
+%define tizen_mobile_feature_fm_radio_support                1
 %endif
 
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_ham_support                     1
-%else
-%define tizen_feature_ham_support                     0
-%endif
-%define tizen_feature_iotcon_support                  1
-%define tizen_feature_location_batch                  0
-%define tizen_feature_key_manager_support             1
-%define tizen_feature_media_controller_support        1
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_media_key_support               0
-%else
-%define tizen_feature_media_key_support               1
-%endif
-%define tizen_feature_message_port_support            1
-%define tizen_feature_messaging_support               1
+%define tizen_mobile_feature_ham_support                     0
 
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_nfc_emulation_support           0
-%define tizen_feature_nfc_support                     1
-%else
-%define tizen_feature_nfc_emulation_support           0
-%define tizen_feature_nfc_support                     0
-%endif
-%define tizen_feature_notification_support            1
-%define tizen_feature_package_support                 1
-%define tizen_feature_player_util_support             1
-%define tizen_feature_power_support                   1
-%define tizen_feature_preference_support              1
-%define tizen_feature_push_support                    1
+%define tizen_mobile_feature_iotcon_support                  1
+%define tizen_mobile_feature_location_batch                  0
+%define tizen_mobile_feature_key_manager_support             1
+%define tizen_mobile_feature_media_controller_support        1
+
+%define tizen_mobile_feature_media_key_support               1
+
+%define tizen_mobile_feature_message_port_support            1
+%define tizen_mobile_feature_messaging_support               1
+
+%define tizen_mobile_feature_nfc_emulation_support           0
+%define tizen_mobile_feature_nfc_support                     0
+
+%define tizen_mobile_feature_notification_support            1
+%define tizen_mobile_feature_package_support                 1
+%define tizen_mobile_feature_player_util_support             1
+%define tizen_mobile_feature_power_support                   1
+%define tizen_mobile_feature_preference_support              1
+%define tizen_mobile_feature_push_support                    1
 
 # secure element feature
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_se_support                      0
-%else
-%if 0%{?tizen_is_arm64}
-%define tizen_feature_se_support                      0
+%ifarch aarch64
+%define tizen_mobile_feature_se_support                      0
 %else
-%define tizen_feature_se_support                      1
-%endif
+%define tizen_mobile_feature_se_support                      1
 %endif
 
-%define tizen_feature_sensor_support                  1
-%define tizen_feature_sound_support                   1
-%define tizen_feature_system_info_support             1
-%define tizen_feature_system_setting_support          1
+%define tizen_mobile_feature_sensor_support                  1
+%define tizen_mobile_feature_sound_support                   1
+%define tizen_mobile_feature_system_info_support             1
+%define tizen_mobile_feature_system_setting_support          1
 
 # telephony feature
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_telephony_support               1
-%else
-%if 0%{?tizen_is_arm64}
-%define tizen_feature_telephony_support               0
+%ifarch aarch64
+%define tizen_mobile_feature_telephony_support               0
+%define tizen_mobile_feature_callhistory_support             0
+%define tizen_mobile_feature_nbs_support                     0
 %else
-%define tizen_feature_telephony_support               1
-%endif
+%define tizen_mobile_feature_telephony_support               1
+%define tizen_mobile_feature_callhistory_support             1
+%define tizen_mobile_feature_nbs_support                     1
 %endif
 
-%define tizen_feature_time_support                    1
-%define tizen_feature_web_setting_support             1
-%define tizen_feature_widget_service_support          1
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_wi_fi_support                   0
-%else
-%define tizen_feature_wi_fi_support                   1
-%endif
-%define tizen_feature_inputdevice_support             1
+%define tizen_mobile_feature_time_support                    1
+%define tizen_mobile_feature_web_setting_support             1
+%define tizen_mobile_feature_widget_service_support          1
 
-%if 0%{?tizen_feature_telephony_support}
-%define tizen_feature_callhistory_support             1
-%define tizen_feature_nbs_support                     1
-%else
-%define tizen_feature_callhistory_support             0
-%define tizen_feature_nbs_support                     0
-%endif
+%define tizen_mobile_feature_wi_fi_support                   1
 
-%define tizen_feature_tvinputdevice_support           0
+%define tizen_mobile_feature_inputdevice_support             1
 
-%endif # tizen_profile_mobile
+%define tizen_mobile_feature_tvinputdevice_support           0
+
+%define tizen_mobile_feature_voicecontrol_support            1
+%define tizen_mobile_feature_ppm_support                     1
 
 ####################################################################
-#       Wearable Profile :  B2 / TW1                      #
+#       Wearable Profile :  B2 / TW2                      #
 ####################################################################
-%if "%{?profile}" == "wearable"
 
-%define tizen_privilege_engine                        CYNARA
+%define tizen_wearable_privilege_engine                        CYNARA
 
 # Account API is optional in Tizen Wearable Profile.
-%define tizen_feature_account_support                 0
+%define tizen_wearable_feature_account_support                 1
 
-%define tizen_feature_alarm_support                   1
-%define tizen_feature_app_control_settings_support    1
-%define tizen_feature_application_support             1
+%define tizen_wearable_feature_alarm_support                   1
+%define tizen_wearable_feature_app_control_settings_support    1
+%define tizen_wearable_feature_application_support             1
 
 # Archive API is optional in Tizen Wearable Profile.
-%define tizen_feature_archive_support                 1
+%define tizen_wearable_feature_archive_support                 1
 
 # Badge API is mandatory in Tizen Wearable Profile.
-%define tizen_feature_badge_support                   1
+%define tizen_wearable_feature_badge_support                   1
 
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_bluetooth_support               0
-%else
-%define tizen_feature_bluetooth_support               1
-%endif
+%define tizen_wearable_feature_bluetooth_support               1
 
 # Bookmark API is optional in Tizen Wearable Profile.
-%define tizen_feature_bookmark_support                0
+%define tizen_wearable_feature_bookmark_support                0
 
 # Calendar API is mandatory in Tizen Wearable Profile.
-%define tizen_feature_calendar_support                0
-%define tizen_feature_contact_support                 0
-%define tizen_feature_content_support                 1
-%define tizen_feature_datacontrol_support             1
-%define tizen_feature_datasync_support                0
-%define tizen_feature_download_support                1
-%define tizen_feature_exif_support                    1
-%define tizen_feature_feedback_support                1
-%define tizen_feature_filesystem_support              1
-%define tizen_feature_fm_radio_support                0
-%define tizen_feature_ham_support                     1
-%define tizen_feature_iotcon_support                  1
-%define tizen_feature_location_batch                  0
-%define tizen_feature_media_controller_support        1
+%define tizen_wearable_feature_calendar_support                1
+%define tizen_wearable_feature_contact_support                 1
+%define tizen_wearable_feature_content_support                 1
+%define tizen_wearable_feature_datacontrol_support             1
+%define tizen_wearable_feature_datasync_support                0
+%define tizen_wearable_feature_download_support                1
+%define tizen_wearable_feature_exif_support                    1
+%define tizen_wearable_feature_feedback_support                1
+%define tizen_wearable_feature_filesystem_support              1
+%define tizen_wearable_feature_fm_radio_support                0
+%define tizen_wearable_feature_ham_support                     1
+%define tizen_wearable_feature_iotcon_support                  1
+%define tizen_wearable_feature_location_batch                  0
+%define tizen_wearable_feature_media_controller_support        1
 
 # MediayKey API is optional in Tizen Wearable Profile.
 # tizen.org/feature/network.bluetooth.audio.media is required for MediayKey API
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_media_key_support               0
-%else
-%define tizen_feature_media_key_support               1
-%endif
-%define tizen_feature_key_manager_support             1
-%define tizen_feature_message_port_support            1
-%define tizen_feature_messaging_support               0
-%define tizen_feature_nfc_emulation_support           0
-%define tizen_feature_nfc_support                     1
-%define tizen_feature_notification_support            1
-%define tizen_feature_package_support                 1
-%define tizen_feature_player_util_support             1
-%define tizen_feature_power_support                   1
-%define tizen_feature_preference_support              1
-%define tizen_feature_push_support                    1
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_se_support                      0
-%else
-%define tizen_feature_se_support                      1
-%endif
-%define tizen_feature_sensor_support                  1
-%define tizen_feature_sound_support                   1
-%define tizen_feature_system_info_support             1
-%define tizen_feature_system_setting_support          1
-%if 0%{?tizen_is_emulator}
-%define tizen_feature_telephony_support               1
-%else
-%define tizen_feature_telephony_support               0
-%endif
-%define tizen_feature_time_support                    1
-%define tizen_feature_web_setting_support             0
-%define tizen_feature_widget_service_support          1
-%define tizen_feature_wi_fi_support                   1
-%define tizen_feature_inputdevice_support             1
-%define tizen_feature_tvinputdevice_support           0
+%define tizen_wearable_feature_media_key_support               1
+%define tizen_wearable_feature_key_manager_support             1
+%define tizen_wearable_feature_message_port_support            1
+%define tizen_wearable_feature_messaging_support               0
+%define tizen_wearable_feature_nfc_emulation_support           0
+%define tizen_wearable_feature_nfc_support                     1
+%define tizen_wearable_feature_notification_support            1
+%define tizen_wearable_feature_package_support                 1
+%define tizen_wearable_feature_player_util_support             1
+%define tizen_wearable_feature_power_support                   1
+%define tizen_wearable_feature_preference_support              1
+%define tizen_wearable_feature_push_support                    1
+%define tizen_wearable_feature_se_support                      1
+%define tizen_wearable_feature_sensor_support                  1
+%define tizen_wearable_feature_sound_support                   1
+%define tizen_wearable_feature_system_info_support             1
+%define tizen_wearable_feature_system_setting_support          1
 
 #- telephony related APIs
 # CallHistory API is optional in Tizen Wearable Profile.
 # NetworkBearerSelection API is optional in Tizen Wearable Profile.
-%if 0%{?tizen_feature_telephony_support}
-%define    tizen_feature_callhistory_support          1
-%define    tizen_feature_nbs_support                  1
-%else
-%define    tizen_feature_callhistory_support          0
-%define    tizen_feature_nbs_support                  0
-%endif
+%define tizen_wearable_feature_telephony_support               0
+%define tizen_wearable_feature_callhistory_support             0
+%define tizen_wearable_feature_nbs_support                     0
+
+%define tizen_wearable_feature_time_support                    1
+%define tizen_wearable_feature_web_setting_support             0
+%define tizen_wearable_feature_widget_service_support          1
+%define tizen_wearable_feature_wi_fi_support                   1
+%define tizen_wearable_feature_inputdevice_support             1
+%define tizen_wearable_feature_tvinputdevice_support           0
+
+%define tizen_wearable_feature_voicecontrol_support            1
+%define tizen_wearable_feature_ppm_support                     1
 
-%endif # tizen_profile_wearable
 
 ####################################################################
 #       TV Profile                                                 #
 ####################################################################
-%if "%{?profile}" == "tv"
 
-%define tizen_privilege_engine                        CYNARA
-
-%define tizen_feature_account_support                 0
-%define tizen_feature_alarm_support                   1
-%define tizen_feature_app_control_settings_support    0
-%define tizen_feature_application_support             1
-%define tizen_feature_archive_support                 1
-%define tizen_feature_badge_support                   0
-%define tizen_feature_bluetooth_support               0
-%define tizen_feature_bookmark_support                0
-%define tizen_feature_calendar_support                0
-%define tizen_feature_callhistory_support             0
-%define tizen_feature_contact_support                 0
-%define tizen_feature_content_support                 1
-%define tizen_feature_datacontrol_support             1
-%define tizen_feature_datasync_support                0
-%define tizen_feature_download_support                1
-%define tizen_feature_exif_support                    1
-%define tizen_feature_feedback_support                0
-%define tizen_feature_filesystem_support              1
-%define tizen_feature_fm_radio_support                0
-%define tizen_feature_ham_support                     0
-%define tizen_feature_iotcon_support                  1
-%define tizen_feature_key_manager_support             1
-%define tizen_feature_media_controller_support        0
-%define tizen_feature_media_key_support               1
-%define tizen_feature_message_port_support            1
-%define tizen_feature_messaging_support               0
-%define tizen_feature_nbs_support                     0
-%define tizen_feature_nfc_emulation_support           0
-%define tizen_feature_nfc_support                     0
-%define tizen_feature_notification_support            0
-%define tizen_feature_package_support                 1
-%define tizen_feature_player_util_support             0
-%define tizen_feature_power_support                   0
-%define tizen_feature_preference_support              0
-%define tizen_feature_push_support                    1
-%define tizen_feature_se_support                      0
-%define tizen_feature_sensor_support                  0
-%define tizen_feature_sound_support                   0
-%define tizen_feature_system_info_support             1
-%define tizen_feature_system_setting_support          0
-%define tizen_feature_telephony_support               0
-%define tizen_feature_time_support                    1
-%define tizen_feature_web_setting_support             1
-%define tizen_feature_widget_service_support          0
-%define tizen_feature_wi_fi_support                   1
-%define tizen_feature_inputdevice_support             0
-%define tizen_feature_tvinputdevice_support           1
-
-%endif # tizen_profile_tv
+%define tizen_tv_privilege_engine                        CYNARA
+
+%define tizen_tv_feature_account_support                 0
+%define tizen_tv_feature_alarm_support                   1
+%define tizen_tv_feature_app_control_settings_support    0
+%define tizen_tv_feature_application_support             1
+%define tizen_tv_feature_archive_support                 1
+%define tizen_tv_feature_badge_support                   0
+%define tizen_tv_feature_bluetooth_support               0
+%define tizen_tv_feature_bookmark_support                0
+%define tizen_tv_feature_calendar_support                0
+%define tizen_tv_feature_callhistory_support             0
+%define tizen_tv_feature_contact_support                 0
+%define tizen_tv_feature_content_support                 1
+%define tizen_tv_feature_datacontrol_support             1
+%define tizen_tv_feature_datasync_support                0
+%define tizen_tv_feature_download_support                1
+%define tizen_tv_feature_exif_support                    1
+%define tizen_tv_feature_feedback_support                0
+%define tizen_tv_feature_filesystem_support              1
+%define tizen_tv_feature_fm_radio_support                0
+%define tizen_tv_feature_ham_support                     0
+%define tizen_tv_feature_iotcon_support                  1
+%define tizen_tv_feature_key_manager_support             1
+%define tizen_tv_feature_media_controller_support        0
+%define tizen_tv_feature_media_key_support               0
+%define tizen_tv_feature_message_port_support            1
+%define tizen_tv_feature_messaging_support               0
+%define tizen_tv_feature_nbs_support                     0
+%define tizen_tv_feature_nfc_emulation_support           0
+%define tizen_tv_feature_nfc_support                     0
+%define tizen_tv_feature_notification_support            0
+%define tizen_tv_feature_package_support                 1
+%define tizen_tv_feature_player_util_support             0
+%define tizen_tv_feature_power_support                   0
+%define tizen_tv_feature_preference_support              0
+%define tizen_tv_feature_push_support                    1
+%define tizen_tv_feature_se_support                      0
+%define tizen_tv_feature_sensor_support                  0
+%define tizen_tv_feature_sound_support                   0
+%define tizen_tv_feature_system_info_support             1
+%define tizen_tv_feature_system_setting_support          0
+%define tizen_tv_feature_telephony_support               0
+%define tizen_tv_feature_time_support                    1
+%define tizen_tv_feature_web_setting_support             1
+%define tizen_tv_feature_widget_service_support          0
+%define tizen_tv_feature_wi_fi_support                   1
+%define tizen_tv_feature_inputdevice_support             0
+%define tizen_tv_feature_tvinputdevice_support           1
+%define tizen_tv_feature_voicecontrol_support            1
+%define tizen_tv_feature_ppm_support                     0
+
+# common, or "unified (undefined)"
+%define unified_build   1
+# GBM Product Build Optimization. Not for 4.0 Public Unified Build.
+%if "%{?profile}" == "tv" || "%{?profile}" == "mobile" || "%{?profile}" == "wearable" || "%{?profile}" == "ivi"
+%define unified_build  0
+%endif
+
+# GBM Product Build Optimization. Not for 4.0 Public Unified Build.
+%if "%{?profile}" == "tv" || "%{?profile}" == "mobile" || "%{?profile}" == "wearable" || "%{?profile}" == "common"
+%define tizen_privilege_engine                        %{expand:%tizen_%{?profile}_privilege_engine}
+
+%define tizen_feature_account_support                 %{expand:%tizen_%{?profile}_feature_account_support}
+%define tizen_feature_alarm_support                   %{expand:%tizen_%{?profile}_feature_alarm_support}
+%define tizen_feature_app_control_settings_support    %{expand:%tizen_%{?profile}_feature_app_control_settings_support}
+%define tizen_feature_application_support             %{expand:%tizen_%{?profile}_feature_application_support}
+%define tizen_feature_archive_support                 %{expand:%tizen_%{?profile}_feature_archive_support}
+%define tizen_feature_badge_support                   %{expand:%tizen_%{?profile}_feature_badge_support}
+%define tizen_feature_bluetooth_support               %{expand:%tizen_%{?profile}_feature_bluetooth_support}
+%define tizen_feature_bookmark_support                %{expand:%tizen_%{?profile}_feature_bookmark_support}
+%define tizen_feature_calendar_support                %{expand:%tizen_%{?profile}_feature_calendar_support}
+%define tizen_feature_contact_support                 %{expand:%tizen_%{?profile}_feature_contact_support}
+%define tizen_feature_content_support                 %{expand:%tizen_%{?profile}_feature_content_support}
+%define tizen_feature_datacontrol_support             %{expand:%tizen_%{?profile}_feature_datacontrol_support}
+%define tizen_feature_datasync_support                %{expand:%tizen_%{?profile}_feature_datasync_support}
+%define tizen_feature_download_support                %{expand:%tizen_%{?profile}_feature_download_support}
+%define tizen_feature_exif_support                    %{expand:%tizen_%{?profile}_feature_exif_support}
+%define tizen_feature_feedback_support                %{expand:%tizen_%{?profile}_feature_feedback_support}
+%define tizen_feature_filesystem_support              %{expand:%tizen_%{?profile}_feature_filesystem_support}
+%define tizen_feature_fm_radio_support                %{expand:%tizen_%{?profile}_feature_fm_radio_support}
+%define tizen_feature_ham_support                     %{expand:%tizen_%{?profile}_feature_ham_support}
+%define tizen_feature_iotcon_support                  %{expand:%tizen_%{?profile}_feature_iotcon_support}
+%define tizen_feature_location_batch                  %{expand:%tizen_%{?profile}_feature_location_batch}
+%define tizen_feature_key_manager_support             %{expand:%tizen_%{?profile}_feature_key_manager_support}
+%define tizen_feature_media_controller_support        %{expand:%tizen_%{?profile}_feature_media_controller_support}
+%define tizen_feature_media_key_support               %{expand:%tizen_%{?profile}_feature_media_key_support}
+%define tizen_feature_message_port_support            %{expand:%tizen_%{?profile}_feature_message_port_support}
+%define tizen_feature_messaging_support               %{expand:%tizen_%{?profile}_feature_messaging_support}
+%define tizen_feature_nfc_emulation_support           %{expand:%tizen_%{?profile}_feature_nfc_emulation_support}
+%define tizen_feature_nfc_support                     %{expand:%tizen_%{?profile}_feature_nfc_support}
+%define tizen_feature_notification_support            %{expand:%tizen_%{?profile}_feature_notification_support}
+%define tizen_feature_package_support                 %{expand:%tizen_%{?profile}_feature_package_support}
+%define tizen_feature_player_util_support             %{expand:%tizen_%{?profile}_feature_player_util_support}
+%define tizen_feature_power_support                   %{expand:%tizen_%{?profile}_feature_power_support}
+%define tizen_feature_preference_support              %{expand:%tizen_%{?profile}_feature_preference_support}
+%define tizen_feature_push_support                    %{expand:%tizen_%{?profile}_feature_push_support}
+%define tizen_feature_se_support                      %{expand:%tizen_%{?profile}_feature_se_support}
+%define tizen_feature_sensor_support                  %{expand:%tizen_%{?profile}_feature_sensor_support}
+%define tizen_feature_sound_support                   %{expand:%tizen_%{?profile}_feature_sound_support}
+%define tizen_feature_system_info_support             %{expand:%tizen_%{?profile}_feature_system_info_support}
+%define tizen_feature_system_setting_support          %{expand:%tizen_%{?profile}_feature_system_setting_support}
+%define tizen_feature_telephony_support               %{expand:%tizen_%{?profile}_feature_telephony_support}
+%define tizen_feature_time_support                    %{expand:%tizen_%{?profile}_feature_time_support}
+%define tizen_feature_web_setting_support             %{expand:%tizen_%{?profile}_feature_web_setting_support}
+%define tizen_feature_widget_service_support          %{expand:%tizen_%{?profile}_feature_widget_service_support}
+%define tizen_feature_wi_fi_support                   %{expand:%tizen_%{?profile}_feature_wi_fi_support}
+%define tizen_feature_inputdevice_support             %{expand:%tizen_%{?profile}_feature_inputdevice_support}
+%define tizen_feature_callhistory_support             %{expand:%tizen_%{?profile}_feature_callhistory_support}
+%define tizen_feature_nbs_support                     %{expand:%tizen_%{?profile}_feature_nbs_support}
+%define tizen_feature_tvinputdevice_support           %{expand:%tizen_%{?profile}_feature_tvinputdevice_support}
+%define tizen_feature_voicecontrol_support            %{expand:%tizen_%{?profile}_feature_voicecontrol_support}
+%define tizen_feature_ppm_support                     %{expand:%tizen_%{?profile}_feature_ppm_support}
+%endif
 
 BuildRequires: pkgconfig(security-privilege-manager)
 BuildRequires: ninja
@@ -396,7 +389,7 @@ BuildRequires: pkgconfig(capi-network-bluetooth)
 BuildRequires: pkgconfig(capi-network-wifi-manager)
 BuildRequires: pkgconfig(tapi)
 BuildRequires: pkgconfig(libpcrecpp)
-BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-appfw-app-common)
 BuildRequires: pkgconfig(capi-appfw-app-manager)
 BuildRequires: pkgconfig(capi-appfw-package-manager)
 BuildRequires: pkgconfig(capi-content-media-content)
@@ -417,69 +410,82 @@ BuildRequires: pkgconfig(wayland-client)
 BuildRequires: pkgconfig(security-privilege-checker)
 %endif
 
-%if "%{?tizen_privilege_engine}" == "CYNARA"
+%if "%{?tizen_privilege_engine}" == "CYNARA" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(cynara-client)
 BuildRequires: pkgconfig(libsmack)
 %endif
 
-%if 0%{?tizen_feature_account_support}
+%if "%{?tizen_feature_account_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(accounts-svc)
 %endif
 
-%if 0%{?tizen_feature_alarm_support}
+%if "%{?tizen_feature_alarm_support}" == "1" || "%{?unified_build}" == "1"
+BuildRequires: pkgconfig(capi-appfw-app-control)
+BuildRequires: pkgconfig(capi-appfw-application)
 BuildRequires: pkgconfig(capi-appfw-alarm)
 BuildRequires: pkgconfig(alarm-service)
 %endif
 
-%if 0%{?tizen_feature_bookmark_support}
+%if "%{?tizen_feature_application_support}" == "1" || "%{?unified_build}" == "1"
+BuildRequires: pkgconfig(capi-appfw-app-control)
+BuildRequires: pkgconfig(capi-appfw-event)
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "mobile" || "%{?profile}" == "wearable"
+BuildRequires: pkgconfig(capi-context)
+%endif
+
+%endif
+
+%if "%{?tizen_feature_bluetooth_support}" == "1" || "%{?unified_build}" == "1"
+BuildRequires: pkgconfig(capi-appfw-app-control)
+%endif
+
+%if "%{?tizen_feature_bookmark_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-web-bookmark)
 BuildRequires: pkgconfig(bookmark-adaptor)
 %endif
 
-%if 0%{?tizen_feature_datacontrol_support}
+%if "%{?tizen_feature_datacontrol_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-data-control)
 %endif
 
-%if 0%{?tizen_feature_download_support}
+%if "%{?tizen_feature_download_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-web-url-download)
 %endif
 
-%if 0%{?tizen_feature_ham_support}
+%if "%{?tizen_feature_ham_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(motion)
 BuildRequires: pkgconfig(capi-system-sensor)
 BuildRequires: pkgconfig(capi-location-manager)
 BuildRequires: pkgconfig(sensor)
 %endif
 
-%if 0%{?tizen_feature_iotcon_support}
+%if "%{?tizen_feature_iotcon_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(iotcon)
 %endif
 
-%if 0%{?tizen_feature_player_util_support}
+%if "%{?tizen_feature_player_util_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(chromium-efl)
 %endif
 
-%if 0%{?tizen_feature_power_support}
-BuildRequires: pkgconfig(deviced)
-%endif
-
-%if 0%{?tizen_feature_power_support}
+%if "%{?tizen_feature_power_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-appfw-application)
 %endif
 
-%if 0%{?tizen_feature_push_support}
+%if "%{?tizen_feature_push_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(push)
+BuildRequires: pkgconfig(capi-appfw-app-control)
 %endif
 
-%if 0%{?tizen_feature_key_manager_support}
+%if "%{?tizen_feature_key_manager_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(key-manager)
 %endif
 
-%if 0%{?tizen_feature_media_controller_support}
+%if "%{?tizen_feature_media_controller_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-media-controller)
 %endif
 
-%if 0%{?tizen_feature_messaging_support}
+%if "%{?tizen_feature_messaging_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(ecore-file)
 BuildRequires:  pkgconfig(email-service)
 BuildRequires:  pkgconfig(msg-service)
@@ -487,69 +493,154 @@ BuildRequires:  pkgconfig(db-util)
 BuildRequires:  pkgconfig(dbus-glib-1)
 %endif
 
-%if 0%{?tizen_feature_badge_support}
+%if "%{?tizen_feature_badge_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(badge)
 %endif
 
-%if 0%{?tizen_feature_calendar_support}
+%if "%{?tizen_feature_calendar_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(calendar-service2)
 %endif
 
-%if 0%{?tizen_feature_contact_support}
+%if "%{?tizen_feature_contact_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(contacts-service2)
 %endif
 
-%if 0%{?tizen_feature_callhistory_support}
+%if "%{?tizen_feature_callhistory_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(contacts-service2)
 %endif
 
-%if 0%{?tizen_feature_exif_support}
+%if "%{?tizen_feature_exif_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(libexif)
 %endif
 
-%if 0%{?tizen_feature_nfc_support}
+%if "%{?tizen_feature_nfc_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(capi-network-nfc)
+BuildRequires:  pkgconfig(capi-appfw-app-control)
 %endif
 
-%if 0%{?tizen_feature_fm_radio_support}
+%if "%{?tizen_feature_fm_radio_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-media-radio)
 %endif
 
-%if 0%{?tizen_feature_feedback_support}
+%if "%{?tizen_feature_feedback_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(feedback)
 %endif
 
-%if 0%{?tizen_feature_se_support}
+%if "%{?tizen_feature_se_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(capi-network-smartcard)
 %endif
 
-%if 0%{?tizen_feature_message_port_support}
+%if "%{?tizen_feature_message_port_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-message-port)
 %endif
 
-%if 0%{?tizen_feature_notification_support}
+%if "%{?tizen_feature_notification_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(capi-appfw-app-control)
+%endif
+
+%if "%{?tizen_feature_preference_support}" == "1" || "%{?unified_build}" == "1"
+BuildRequires: pkgconfig(capi-appfw-preference)
 %endif
 
-%if 0%{?tizen_feature_sound_support}
+%if "%{?tizen_feature_sound_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(capi-media-sound-manager)
 %endif
 
-%if 0%{?tizen_feature_sensor_support}
+%if "%{?tizen_feature_sensor_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(capi-system-sensor)
 %endif
 
-%if 0%{?tizen_feature_media_key_support}
+%if "%{?tizen_feature_media_key_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires:  pkgconfig(capi-system-media-key)
 %endif
 
-%if 0%{?tizen_feature_widget_service_support}
+%if "%{?tizen_feature_widget_service_support}" == "1" || "%{?unified_build}" == "1"
 BuildRequires: pkgconfig(widget_service)
 %endif
 
+%if "%{?tizen_feature_voicecontrol_support}" == "1" || "%{?unified_build}" == "1"
+BuildRequires: pkgconfig(voice-control)
+%endif
+
+%if "%{?tizen_feature_ppm_support}" == "1" || "%{?unified_build}" == "1"
+BuildRequires: pkgconfig(capi-privacy-privilege-manager)
+%endif
+
+Requires:      %{name}-compat = %{version}-%{release}
+%if "%{?unified_build}" == "1"
+Recommends:    %{name}-profile_common = %{version}-%{release}
+%endif
+
 %description
 Tizen Web APIs implemented.
 
+%package profile_common
+Summary:       webapi-plugin binaries for common profile
+Provides:      %{name}-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile
+Conflicts:     %{name}-profile_wearable
+Conflicts:     %{name}-profile_tv
+Conflicts:     %{name}-profile_ivi
+%description profile_common
+Tizen Web API implementation binaries for Tizen common profile.
+
+%package profile_mobile
+Summary:       webapi-plugin binaries for mobile profile
+Provides:      %{name}-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_common
+Conflicts:     %{name}-profile_wearable
+Conflicts:     %{name}-profile_tv
+Conflicts:     %{name}-profile_ivi
+%description profile_mobile
+Tizen Web API implementation binaries for Tizen mobile profile.
+
+%ifarch %{ix86} x86_64
+%package mobile-extension-emulator
+Summary:       webapi-plugin binaries for mobile emulator
+Requires:      %{name}-profile_mobile = %{version}-%{release}
+%description mobile-extension-emulator
+Tizen Web API implementation binaries for Tizen mobile emulator.
+%endif
+
+%package profile_wearable
+Summary:       webapi-plugin binaries for wearable profile
+Provides:      %{name}-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile
+Conflicts:     %{name}-profile_common
+Conflicts:     %{name}-profile_tv
+Conflicts:     %{name}-profile_ivi
+%description profile_wearable
+Tizen Web API implementation binaries for Tizen wearable profile.
+
+%ifarch %{ix86} x86_64
+%package wearable-extension-emulator
+Summary:       webapi-plugin binaries for wearable emulator
+Requires:      %{name}-profile_wearable = %{version}-%{release}
+%description wearable-extension-emulator
+Tizen Web API implementation binaries for Tizen wearable emulator.
+%endif
+
+%package profile_tv
+Summary:       webapi-plugin binaries for tv profile
+Provides:      %{name}-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile
+Conflicts:     %{name}-profile_wearable
+Conflicts:     %{name}-profile_common
+Conflicts:     %{name}-profile_ivi
+%description profile_tv
+Tizen Web API implementation binaries for Tizen tv profile.
+
+%package profile_ivi
+Summary:       webapi-plugin binaries for ivi profile
+Provides:      %{name}-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile
+Conflicts:     %{name}-profile_wearable
+Conflicts:     %{name}-profile_tv
+Conflicts:     %{name}-profile_common
+%description profile_ivi
+Tizen Web API implementation binaries for Tizen ivi profile.
+
 %package devel
 Summary:    webapi-plugins development headers
 Group:      Development/Libraries
@@ -564,75 +655,572 @@ webapi-plugins development headers
 %build
 
 export GYP_GENERATORS='ninja'
-GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=%{profile} -Dprivilege_engine=%{tizen_privilege_engine}"
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "mobile"
+# MOBILE
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=mobile -Dprivilege_engine=%{tizen_mobile_privilege_engine}"
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
+GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
+
+# feature flags
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_mobile_feature_account_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_mobile_feature_alarm_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_mobile_feature_app_control_settings_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_mobile_feature_application_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_mobile_feature_archive_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_mobile_feature_badge_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_mobile_feature_bluetooth_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_mobile_feature_bookmark_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_mobile_feature_calendar_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_mobile_feature_callhistory_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_mobile_feature_contact_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_mobile_feature_content_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_mobile_feature_datacontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_mobile_feature_datasync_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_mobile_feature_download_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_mobile_feature_exif_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_mobile_feature_feedback_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_mobile_feature_filesystem_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_mobile_feature_fm_radio_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_mobile_feature_ham_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_mobile_feature_iotcon_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_mobile_feature_location_batch}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_mobile_feature_key_manager_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_mobile_feature_media_controller_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_mobile_feature_media_key_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_mobile_feature_message_port_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_mobile_feature_messaging_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_mobile_feature_nbs_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_mobile_feature_nfc_emulation_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_mobile_feature_nfc_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_mobile_feature_notification_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_mobile_feature_package_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_mobile_feature_player_util_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_mobile_feature_power_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_mobile_feature_preference_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_mobile_feature_push_support}"
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_mobile_feature_sap_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_mobile_feature_sensor_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_mobile_feature_se_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_mobile_feature_sound_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_mobile_feature_system_info_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_mobile_feature_system_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_mobile_feature_telephony_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_mobile_feature_time_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_mobile_feature_inputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_mobile_feature_web_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_mobile_feature_widget_service_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_mobile_feature_wi_fi_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_mobile_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_voicecontrol_support=%{?tizen_mobile_feature_voicecontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ppm_support=%{?tizen_mobile_feature_ppm_support}"
+
+./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
+
+ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_mobile
+%if "%{?profile}" == "mobile"
+ln -sf bin_mobile Default
+%endif
+popd
+
+# mobile-extension-emulator
+%ifarch %{ix86} x86_64
+
+%define tizen_mobile_feature_bluetooth_support               0
+
+# FM radio feature
+%define tizen_mobile_feature_fm_radio_support                1
+
+%define tizen_mobile_feature_ham_support                     1
+%define tizen_mobile_feature_media_key_support               0
+%define tizen_mobile_feature_nfc_emulation_support           0
+%define tizen_mobile_feature_nfc_support                     1
+
+# secure element feature
+%define tizen_mobile_feature_se_support                      0
+
+# telephony feature
+%define tizen_mobile_feature_telephony_support               1
+%define tizen_mobile_feature_callhistory_support             1
+%define tizen_mobile_feature_nbs_support                     1
+
+%define tizen_mobile_feature_wi_fi_support                   0
+
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=mobile -Dprivilege_engine=%{tizen_mobile_privilege_engine}"
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
+GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
+
+# feature flags
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_mobile_feature_account_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_mobile_feature_alarm_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_mobile_feature_app_control_settings_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_mobile_feature_application_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_mobile_feature_archive_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_mobile_feature_badge_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_mobile_feature_bluetooth_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_mobile_feature_bookmark_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_mobile_feature_calendar_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_mobile_feature_callhistory_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_mobile_feature_contact_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_mobile_feature_content_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_mobile_feature_datacontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_mobile_feature_datasync_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_mobile_feature_download_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_mobile_feature_exif_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_mobile_feature_feedback_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_mobile_feature_filesystem_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_mobile_feature_fm_radio_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_mobile_feature_ham_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_mobile_feature_iotcon_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_mobile_feature_location_batch}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_mobile_feature_key_manager_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_mobile_feature_media_controller_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_mobile_feature_media_key_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_mobile_feature_message_port_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_mobile_feature_messaging_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_mobile_feature_nbs_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_mobile_feature_nfc_emulation_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_mobile_feature_nfc_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_mobile_feature_notification_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_mobile_feature_package_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_mobile_feature_player_util_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_mobile_feature_power_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_mobile_feature_preference_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_mobile_feature_push_support}"
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_mobile_feature_sap_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_mobile_feature_sensor_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_mobile_feature_se_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_mobile_feature_sound_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_mobile_feature_system_info_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_mobile_feature_system_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_mobile_feature_telephony_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_mobile_feature_time_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_mobile_feature_inputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_mobile_feature_web_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_mobile_feature_widget_service_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_mobile_feature_wi_fi_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_mobile_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_voicecontrol_support=%{?tizen_mobile_feature_voicecontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ppm_support=%{?tizen_mobile_feature_ppm_support}"
+
+./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
+
+ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_mobile_emulator
+%if "%{?profile}" == "mobile"
+ln -sf bin_mobile_emulator Default
+%endif
+popd
+%endif # mobile-extension-emulator
+%endif # MOBILE
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "wearable"
+# WEARABLE
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=wearable -Dprivilege_engine=%{tizen_wearable_privilege_engine}"
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
+GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
+
+# feature flags
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_wearable_feature_account_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_wearable_feature_alarm_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_wearable_feature_app_control_settings_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_wearable_feature_application_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_wearable_feature_archive_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_wearable_feature_badge_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_wearable_feature_bluetooth_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_wearable_feature_bookmark_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_wearable_feature_calendar_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_wearable_feature_callhistory_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_wearable_feature_contact_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_wearable_feature_content_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_wearable_feature_datacontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_wearable_feature_datasync_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_wearable_feature_download_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_wearable_feature_exif_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_wearable_feature_feedback_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_wearable_feature_filesystem_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_wearable_feature_fm_radio_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_wearable_feature_ham_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_wearable_feature_iotcon_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_wearable_feature_location_batch}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_wearable_feature_key_manager_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_wearable_feature_media_controller_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_wearable_feature_media_key_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_wearable_feature_message_port_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_wearable_feature_messaging_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_wearable_feature_nbs_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_wearable_feature_nfc_emulation_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_wearable_feature_nfc_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_wearable_feature_notification_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_wearable_feature_package_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_wearable_feature_player_util_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_wearable_feature_power_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_wearable_feature_preference_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_wearable_feature_push_support}"
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_wearable_feature_sap_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_wearable_feature_sensor_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_wearable_feature_se_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_wearable_feature_sound_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_wearable_feature_system_info_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_wearable_feature_system_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_wearable_feature_telephony_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_wearable_feature_time_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_wearable_feature_inputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_wearable_feature_web_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_wearable_feature_widget_service_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_wearable_feature_wi_fi_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_wearable_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_voicecontrol_support=%{?tizen_wearable_feature_voicecontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ppm_support=%{?tizen_wearable_feature_ppm_support}"
+
+./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
+
+ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_wearable
+%if "%{?profile}" == "wearable"
+ln -sf bin_wearable Default
+%endif
+popd
+
+# wearable-extension-emulator
+%ifarch %{ix86} x86_64
+
+%define tizen_wearable_feature_bluetooth_support             0
+
+# MediayKey API is optional in Tizen Wearable Profile.
+# tizen.org/feature/network.bluetooth.audio.media is required for MediayKey API
+%define tizen_wearable_feature_media_key_support             0
+
+#- telephony related APIs
+# CallHistory API is optional in Tizen Wearable Profile.
+# NetworkBearerSelection API is optional in Tizen Wearable Profile.
+%define tizen_wearable_feature_se_support                    0
+%define tizen_wearable_feature_telephony_support             1
+%define tizen_wearable_feature_callhistory_support           1
+%define tizen_wearable_feature_nbs_support                   1
+%define tizen_wearable_feature_sensor_support                1
+
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=wearable -Dprivilege_engine=%{tizen_wearable_privilege_engine}"
 GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
 GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
 
 # feature flags
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_is_emulator=%{?tizen_is_emulator}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_feature_account_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_feature_alarm_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_feature_app_control_settings_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_feature_application_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_feature_archive_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_feature_badge_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_feature_bluetooth_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_feature_bookmark_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_feature_calendar_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_feature_callhistory_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_feature_contact_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_feature_content_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_feature_datacontrol_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_feature_datasync_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_feature_download_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_feature_exif_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_feature_feedback_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_feature_filesystem_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_feature_fm_radio_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_feature_ham_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_feature_iotcon_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_feature_location_batch}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_feature_key_manager_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_feature_media_controller_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_feature_media_key_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_feature_message_port_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_feature_messaging_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_feature_nbs_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_feature_nfc_emulation_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_feature_nfc_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_feature_notification_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_feature_package_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_feature_player_util_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_feature_power_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_feature_preference_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_feature_push_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_feature_sap_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_feature_sensor_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_feature_se_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_feature_sound_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_feature_system_info_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_feature_system_setting_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_feature_telephony_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_feature_time_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_feature_inputdevice_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_feature_web_setting_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_feature_widget_service_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_feature_wi_fi_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_wearable_feature_account_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_wearable_feature_alarm_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_wearable_feature_app_control_settings_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_wearable_feature_application_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_wearable_feature_archive_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_wearable_feature_badge_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_wearable_feature_bluetooth_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_wearable_feature_bookmark_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_wearable_feature_calendar_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_wearable_feature_callhistory_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_wearable_feature_contact_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_wearable_feature_content_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_wearable_feature_datacontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_wearable_feature_datasync_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_wearable_feature_download_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_wearable_feature_exif_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_wearable_feature_feedback_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_wearable_feature_filesystem_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_wearable_feature_fm_radio_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_wearable_feature_ham_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_wearable_feature_iotcon_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_wearable_feature_location_batch}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_wearable_feature_key_manager_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_wearable_feature_media_controller_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_wearable_feature_media_key_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_wearable_feature_message_port_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_wearable_feature_messaging_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_wearable_feature_nbs_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_wearable_feature_nfc_emulation_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_wearable_feature_nfc_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_wearable_feature_notification_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_wearable_feature_package_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_wearable_feature_player_util_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_wearable_feature_power_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_wearable_feature_preference_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_wearable_feature_push_support}"
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_wearable_feature_sap_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_wearable_feature_sensor_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_wearable_feature_se_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_wearable_feature_sound_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_wearable_feature_system_info_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_wearable_feature_system_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_wearable_feature_telephony_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_wearable_feature_time_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_wearable_feature_inputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_wearable_feature_web_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_wearable_feature_widget_service_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_wearable_feature_wi_fi_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_wearable_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_voicecontrol_support=%{?tizen_wearable_feature_voicecontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ppm_support=%{?tizen_wearable_feature_ppm_support}"
 
 ./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
 
 ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_wearable_emulator
+%if "%{?profile}" == "wearable"
+ln -sf bin_wearable_emulator Default
+%endif
+popd
+%endif # wearable-extension-emulator
+%endif # WEARABLE
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "tv"
+# TV
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=tv -Dprivilege_engine=%{tizen_tv_privilege_engine}"
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
+GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
+
+# feature flags
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_tv_feature_account_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_tv_feature_alarm_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_tv_feature_app_control_settings_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_tv_feature_application_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_tv_feature_archive_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_tv_feature_badge_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_tv_feature_bluetooth_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_tv_feature_bookmark_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_tv_feature_calendar_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_tv_feature_callhistory_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_tv_feature_contact_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_tv_feature_content_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_tv_feature_datacontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_tv_feature_datasync_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_tv_feature_download_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_tv_feature_exif_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_tv_feature_feedback_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_tv_feature_filesystem_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_tv_feature_fm_radio_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_tv_feature_ham_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_tv_feature_iotcon_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_tv_feature_location_batch}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_tv_feature_key_manager_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_tv_feature_media_controller_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_tv_feature_media_key_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_tv_feature_message_port_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_tv_feature_messaging_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_tv_feature_nbs_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_tv_feature_nfc_emulation_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_tv_feature_nfc_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_tv_feature_notification_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_tv_feature_package_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_tv_feature_player_util_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_tv_feature_power_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_tv_feature_preference_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_tv_feature_push_support}"
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_tv_feature_sap_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_tv_feature_sensor_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_tv_feature_se_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_tv_feature_sound_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_tv_feature_system_info_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_tv_feature_system_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_tv_feature_telephony_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_tv_feature_time_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_tv_feature_inputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_tv_feature_web_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_tv_feature_widget_service_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_tv_feature_wi_fi_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_tv_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_voicecontrol_support=%{?tizen_tv_feature_voicecontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ppm_support=%{?tizen_tv_feature_ppm_support}"
+
+./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
+
+ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_tv
+%if "%{?profile}" == "tv"
+ln -sf bin_tv Default
+%endif
+popd
+
+%endif # TV
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "common" || "%{?profile}" == "ivi"
+
+# UNIFIED / COMMON or IVI
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=common -Dprivilege_engine=%{tizen_common_privilege_engine}"
+
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
+GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
+
+# feature flags
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_common_feature_account_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_common_feature_alarm_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_common_feature_app_control_settings_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_common_feature_application_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_common_feature_archive_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_common_feature_badge_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_common_feature_bluetooth_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_common_feature_bookmark_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_common_feature_calendar_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_common_feature_callhistory_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_common_feature_contact_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_common_feature_content_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_common_feature_datacontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_common_feature_datasync_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_common_feature_download_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_common_feature_exif_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_feedback_support=%{?tizen_common_feature_feedback_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_common_feature_filesystem_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_common_feature_fm_radio_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_common_feature_ham_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_iotcon_support=%{?tizen_common_feature_iotcon_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_common_feature_location_batch}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_common_feature_key_manager_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_common_feature_media_controller_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_common_feature_media_key_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_common_feature_message_port_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_common_feature_messaging_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_common_feature_nbs_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_common_feature_nfc_emulation_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_common_feature_nfc_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_common_feature_notification_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_common_feature_package_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_player_util_support=%{?tizen_common_feature_player_util_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_common_feature_power_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_preference_support=%{?tizen_common_feature_preference_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_common_feature_push_support}"
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_common_feature_sap_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_common_feature_sensor_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_common_feature_se_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_common_feature_sound_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_common_feature_system_info_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_common_feature_system_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_common_feature_telephony_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_common_feature_time_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_common_feature_inputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_common_feature_web_setting_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_widget_service_support=%{?tizen_common_feature_widget_service_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_common_feature_wi_fi_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_tvinputdevice_support=%{?tizen_common_feature_tvinputdevice_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_voicecontrol_support=%{?tizen_common_feature_voicecontrol_support}"
+GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ppm_support=%{?tizen_common_feature_ppm_support}"
+
+./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
+
+%if "%{?unified_build}" == "1"
+# UNIFIED
+ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_common
+ln -sf bin_common Default
+
+# IVI does not have independent configurations, yet.
+# Copying the whole result in order to support ivi subpacakge
+cp -R bin_common bin_ivi
+
+popd
+%else # UNIFIED
+# COMMON or IVI
+ninja -C out/Default %{?_smp_mflags}
+pushd out
+mv Default bin_%{?profile}
+ln -sf bin_%{?profile} Default
+popd
+%endif # COMMON or IVI
+%endif # UNIFIED / COMMON or IVI
 
 %install
-mkdir -p %{buildroot}/usr/share/license
-cp LICENSE %{buildroot}/usr/share/license/%{name}
-cat LICENSE.BSD-3-Clause >> %{buildroot}/usr/share/license/%{name}
-cat LICENSE.MIT >> %{buildroot}/usr/share/license/%{name}
 
 # Extensions.
 mkdir -p %{buildroot}%{crosswalk_extensions_path}
-install -p -m 644 out/Default/libtizen*.so %{buildroot}%{crosswalk_extensions_path}
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "common"
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/common
+install -p -m 644 out/bin_common/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/common
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/common out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/common \
+       %{buildroot}%{crosswalk_extensions_path}/common > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/common/plugins.json
+%endif
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "mobile"
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/mobile
+install -p -m 644 out/bin_mobile/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/mobile
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/mobile out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/mobile \
+       %{buildroot}%{crosswalk_extensions_path}/mobile > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/mobile/plugins.json
+
+# mobile-extension-emulator
+%ifarch %{ix86} x86_64
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/mobile_emulator
+install -p -m 644 out/bin_mobile_emulator/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/mobile_emulator
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/mobile_emulator out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/mobile_emulator \
+       %{buildroot}%{crosswalk_extensions_path}/mobile_emulator > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/mobile_emulator/plugins.json
+%endif // mobile-extension-emulator
+
+%endif // mobile
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "wearable"
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/wearable
+install -p -m 644 out/bin_wearable/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/wearable
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/wearable out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/wearable \
+       %{buildroot}%{crosswalk_extensions_path}/wearable > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/wearable/plugins.json
+
+# wearable-extension-emulator
+%ifarch %{ix86} x86_64
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/wearable_emulator
+install -p -m 644 out/bin_wearable_emulator/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/wearable_emulator
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/wearable_emulator out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/wearable_emulator \
+       %{buildroot}%{crosswalk_extensions_path}/wearable_emulator > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/wearable_emulator/plugins.json
+%endif // wearable-extension-emulator
+
+%endif // wearable
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "tv"
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/tv
+install -p -m 644 out/bin_tv/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/tv
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/tv out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/tv \
+       %{buildroot}%{crosswalk_extensions_path}/tv > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/tv/plugins.json
+%endif
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "ivi"
+mkdir -p %{buildroot}%{crosswalk_extensions_path}/ivi
+install -p -m 644 out/bin_ivi/libtizen*.so %{buildroot}%{crosswalk_extensions_path}/ivi
+# execute desc_gentool
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path}/ivi out/Default/desc_gentool \
+       %{crosswalk_extensions_path}/ivi \
+       %{buildroot}%{crosswalk_extensions_path}/ivi > plugins.json
+
+# temporary plugins description for lazy loading
+install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/ivi/plugins.json
+%endif
 
 # devel files
 mkdir -p %{buildroot}%{_libdir}/pkgconfig
@@ -653,20 +1241,139 @@ cp -a tools/gyp %{buildroot}%{_includedir}/%{name}/tools/gyp
 cp -a tools/slimit %{buildroot}%{_includedir}/%{name}/tools/slimit
 cp -a out/Default/desc_gentool %{buildroot}%{_includedir}/%{name}/tools/desc_gentool
 
-# execute desc_gentool
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path} out/Default/desc_gentool \
-       %{crosswalk_extensions_path} \
-       %{buildroot}%{crosswalk_extensions_path} > plugins.json
+%files
+%manifest webapi-plugins.manifest
+%license LICENSE
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "common"
+%post profile_common
+ln -sf %{crosswalk_extensions_path}/common/* %{crosswalk_extensions_path}
+%preun profile_common
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  rm %{crosswalk_extensions_path}/libtizen*.so
+  rm %{crosswalk_extensions_path}/plugins.json
+fi
+%files profile_common
+%dir %{crosswalk_extensions_path}/common/
+%{crosswalk_extensions_path}/common/libtizen*.so
+%{crosswalk_extensions_path}/common/plugins.json
+%manifest webapi-plugins.manifest
+%endif
 
-# temporary plugins description for lazy loading
-install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/plugins.json
+%if "%{?unified_build}" == "1" || "%{?profile}" == "mobile"
+%post profile_mobile
+ln -sf %{crosswalk_extensions_path}/mobile/* %{crosswalk_extensions_path}
+%preun profile_mobile
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  if [ -n "$(ls %{crosswalk_extensions_path}/ | grep libtizen*.so)" ]; then
+    rm %{crosswalk_extensions_path}/libtizen*.so
+  fi
+  if [ -f %{crosswalk_extensions_path}/plugins.json ]; then
+    rm %{crosswalk_extensions_path}/plugins.json
+  fi
+fi
+%files profile_mobile
+%dir %{crosswalk_extensions_path}/mobile/
+%{crosswalk_extensions_path}/mobile/libtizen*.so
+%{crosswalk_extensions_path}/mobile/plugins.json
+%manifest webapi-plugins.manifest
+
+# mobile-extension-emulator
+%ifarch %{ix86} x86_64
+%post mobile-extension-emulator
+ln -sf %{crosswalk_extensions_path}/mobile_emulator/* %{crosswalk_extensions_path}
+%preun mobile-extension-emulator
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  if [ -n "$(ls %{crosswalk_extensions_path}/ | grep libtizen*.so)" ]; then
+    rm %{crosswalk_extensions_path}/libtizen*.so
+  fi
+  if [ -f %{crosswalk_extensions_path}/plugins.json ]; then
+    rm %{crosswalk_extensions_path}/plugins.json
+  fi
+fi
+%files mobile-extension-emulator
+%dir %{crosswalk_extensions_path}/mobile_emulator/
+%{crosswalk_extensions_path}/mobile_emulator/libtizen*.so
+%{crosswalk_extensions_path}/mobile_emulator/plugins.json
+%manifest webapi-plugins.manifest
+%endif // mobile-extension-emulator
+%endif // mobile
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "wearable"
+%post profile_wearable
+ln -sf %{crosswalk_extensions_path}/wearable/* %{crosswalk_extensions_path}
+%preun profile_wearable
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  if [ -n "$(ls %{crosswalk_extensions_path}/ | grep libtizen*.so)" ]; then
+    rm %{crosswalk_extensions_path}/libtizen*.so
+  fi
+  if [ -f %{crosswalk_extensions_path}/plugins.json ]; then
+    rm %{crosswalk_extensions_path}/plugins.json
+  fi
+fi
+%files profile_wearable
+%dir %{crosswalk_extensions_path}/wearable/
+%{crosswalk_extensions_path}/wearable/libtizen*.so
+%{crosswalk_extensions_path}/wearable/plugins.json
+%manifest webapi-plugins.manifest
 
+# wearable-extension-emulator
+%ifarch %{ix86} x86_64
+%post wearable-extension-emulator
+ln -sf %{crosswalk_extensions_path}/wearable_emulator/* %{crosswalk_extensions_path}
+%preun wearable-extension-emulator
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  if [ -n "$(ls %{crosswalk_extensions_path}/ | grep libtizen*.so)" ]; then
+    rm %{crosswalk_extensions_path}/libtizen*.so
+  fi
+  if [ -f %{crosswalk_extensions_path}/plugins.json ]; then
+    rm %{crosswalk_extensions_path}/plugins.json
+  fi
+fi
+%files wearable-extension-emulator
+%dir %{crosswalk_extensions_path}/wearable_emulator/
+%{crosswalk_extensions_path}/wearable_emulator/libtizen*.so
+%{crosswalk_extensions_path}/wearable_emulator/plugins.json
+%manifest webapi-plugins.manifest
+%endif // wearable-extension-emulator
+%endif // wearable
+
+%if "%{?unified_build}" == "1" || "%{?profile}" == "tv"
+%post profile_tv
+ln -sf %{crosswalk_extensions_path}/tv/* %{crosswalk_extensions_path}
+%preun profile_tv
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  rm %{crosswalk_extensions_path}/libtizen*.so
+  rm %{crosswalk_extensions_path}/plugins.json
+fi
+%files profile_tv
+%dir %{crosswalk_extensions_path}/tv/
+%{crosswalk_extensions_path}/tv/libtizen*.so
+%{crosswalk_extensions_path}/tv/plugins.json
+%manifest webapi-plugins.manifest
+%endif
 
-%files
-%{crosswalk_extensions_path}/libtizen*.so
-%{crosswalk_extensions_path}/plugins.json
-%{_datadir}/license/%{name}
+%if "%{?unified_build}" == "1" || "%{?profile}" == "ivi"
+%post profile_ivi
+ln -sf %{crosswalk_extensions_path}/ivi/* %{crosswalk_extensions_path}
+%preun profile_ivi
+# This is an un-installation.
+if [ "$1" == "0" ]; then
+  rm %{crosswalk_extensions_path}/libtizen*.so
+  rm %{crosswalk_extensions_path}/plugins.json
+fi
+%files profile_ivi
+%dir %{crosswalk_extensions_path}/ivi/
+%{crosswalk_extensions_path}/ivi/libtizen*.so
+%{crosswalk_extensions_path}/ivi/plugins.json
 %manifest webapi-plugins.manifest
+%endif
 
 %files devel
 %{_includedir}/*