1 # This file is generated by gyp; do not edit. 2 3 include $(CLEAR_VARS) 4 5 LOCAL_MODULE_CLASS := STATIC_LIBRARIES 6 LOCAL_MODULE := components_autofill_core_browser_gyp 7 LOCAL_MODULE_SUFFIX := .a 8 LOCAL_MODULE_TARGET_ARCH := $(TARGET_$(GYP_VAR_PREFIX)ARCH) 9 gyp_intermediate_dir := $(call local-intermediates-dir,,$(GYP_VAR_PREFIX)) 10 gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared,,,$(GYP_VAR_PREFIX)) 11 12 # Make sure our deps are built first. 13 GYP_TARGET_DEPENDENCIES := \ 14 $(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \ 15 $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \ 16 $(call intermediates-dir-for,GYP,third_party_icu_icui18n_gyp,,,$(GYP_VAR_PREFIX))/icui18n.stamp \ 17 $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp,,,$(GYP_VAR_PREFIX))/icuuc.stamp \ 18 $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_libphonenumber_libphonenumber_without_metadata_gyp,,,$(GYP_VAR_PREFIX))/third_party_libphonenumber_libphonenumber_without_metadata_gyp.a \ 19 $(call intermediates-dir-for,STATIC_LIBRARIES,ui_base_ui_base_gyp,,,$(GYP_VAR_PREFIX))/ui_base_ui_base_gyp.a \ 20 $(call intermediates-dir-for,GYP,components_autofill_regexes_gyp,,,$(GYP_VAR_PREFIX))/autofill_regexes.stamp \ 21 $(call intermediates-dir-for,GYP,components_components_resources_gyp,,,$(GYP_VAR_PREFIX))/components_resources.stamp \ 22 $(call intermediates-dir-for,GYP,components_components_strings_gyp,,,$(GYP_VAR_PREFIX))/components_strings.stamp 23 24 GYP_GENERATED_OUTPUTS := 25 26 # Make sure our deps and generated files are built first. 27 LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS) 28 29 LOCAL_CPP_EXTENSION := .cc 30 $(gyp_intermediate_dir)/autofill_regex_constants.cc: $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc 31 mkdir -p $(@D); cp $< $@ 32 LOCAL_GENERATED_SOURCES := \ 33 $(gyp_intermediate_dir)/autofill_regex_constants.cc 34 35 GYP_COPIED_SOURCE_ORIGIN_DIRS := \ 36 $(gyp_shared_intermediate_dir) 37 38 LOCAL_SRC_FILES := \ 39 components/autofill/core/browser/address.cc \ 40 components/autofill/core/browser/address_field.cc \ 41 components/autofill/core/browser/address_i18n.cc \ 42 components/autofill/core/browser/autocomplete_history_manager.cc \ 43 components/autofill/core/browser/autofill_country.cc \ 44 components/autofill/core/browser/autofill_data_model.cc \ 45 components/autofill/core/browser/autofill_download_manager.cc \ 46 components/autofill/core/browser/autofill_external_delegate.cc \ 47 components/autofill/core/browser/autofill_field.cc \ 48 components/autofill/core/browser/autofill_manager.cc \ 49 components/autofill/core/browser/autofill_metrics.cc \ 50 components/autofill/core/browser/autofill_profile.cc \ 51 components/autofill/core/browser/autofill_regexes.cc \ 52 components/autofill/core/browser/autofill_scanner.cc \ 53 components/autofill/core/browser/autofill_type.cc \ 54 components/autofill/core/browser/autofill_xml_parser.cc \ 55 components/autofill/core/browser/contact_info.cc \ 56 components/autofill/core/browser/credit_card.cc \ 57 components/autofill/core/browser/credit_card_field.cc \ 58 components/autofill/core/browser/email_field.cc \ 59 components/autofill/core/browser/form_field.cc \ 60 components/autofill/core/browser/form_group.cc \ 61 components/autofill/core/browser/form_structure.cc \ 62 components/autofill/core/browser/name_field.cc \ 63 components/autofill/core/browser/password_generator.cc \ 64 components/autofill/core/browser/personal_data_manager.cc \ 65 components/autofill/core/browser/phone_field.cc \ 66 components/autofill/core/browser/phone_number.cc \ 67 components/autofill/core/browser/phone_number_i18n.cc \ 68 components/autofill/core/browser/state_names.cc \ 69 components/autofill/core/browser/validation.cc \ 70 components/autofill/core/browser/webdata/autofill_change.cc \ 71 components/autofill/core/browser/webdata/autofill_entry.cc \ 72 components/autofill/core/browser/webdata/autofill_table.cc \ 73 components/autofill/core/browser/webdata/autofill_webdata_backend_impl.cc \ 74 components/autofill/core/browser/webdata/autofill_webdata_service.cc 75 76 77 # Flags passed to both C and C++ files. 78 MY_CFLAGS_Debug := \ 79 -fstack-protector \ 80 --param=ssp-buffer-size=4 \ 81 \ 82 -fno-strict-aliasing \ 83 -Wall \ 84 -Wno-unused-parameter \ 85 -Wno-missing-field-initializers \ 86 -fvisibility=hidden \ 87 -pipe \ 88 -fPIC \ 89 -Wno-unused-local-typedefs \ 90 -ffunction-sections \ 91 -funwind-tables \ 92 -g \ 93 -fstack-protector \ 94 -fno-short-enums \ 95 -finline-limit=64 \ 96 -Wa,--noexecstack \ 97 -U_FORTIFY_SOURCE \ 98 -Wno-extra \ 99 -Wno-ignored-qualifiers \ 100 -Wno-type-limits \ 101 -Wno-unused-but-set-variable \ 102 -Os \ 103 -g \ 104 -gdwarf-4 \ 105 -fdata-sections \ 106 -ffunction-sections \ 107 -fomit-frame-pointer \ 108 -funwind-tables 109 110 MY_DEFS_Debug := \ 111 '-DV8_DEPRECATION_WARNINGS' \ 112 '-D_FILE_OFFSET_BITS=64' \ 113 '-DNO_TCMALLOC' \ 114 '-DDISABLE_NACL' \ 115 '-DCHROMIUM_BUILD' \ 116 '-DUSE_LIBJPEG_TURBO=1' \ 117 '-DENABLE_WEBRTC=1' \ 118 '-DUSE_PROPRIETARY_CODECS' \ 119 '-DENABLE_BROWSER_CDMS' \ 120 '-DENABLE_CONFIGURATION_POLICY' \ 121 '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \ 122 '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \ 123 '-DENABLE_EGLIMAGE=1' \ 124 '-DCLD_VERSION=1' \ 125 '-DENABLE_PRINTING=1' \ 126 '-DENABLE_MANAGED_USERS=1' \ 127 '-DDATA_REDUCTION_FALLBACK_HOST="http://compress.googlezip.net:80/"' \ 128 '-DDATA_REDUCTION_DEV_HOST="https://proxy-dev.googlezip.net:443/"' \ 129 '-DDATA_REDUCTION_DEV_FALLBACK_HOST="http://proxy-dev.googlezip.net:80/"' \ 130 '-DSPDY_PROXY_AUTH_ORIGIN="https://proxy.googlezip.net:443/"' \ 131 '-DDATA_REDUCTION_PROXY_PROBE_URL="http://check.googlezip.net/connect"' \ 132 '-DDATA_REDUCTION_PROXY_WARMUP_URL="http://www.gstatic.com/generate_204"' \ 133 '-DVIDEO_HOLE=1' \ 134 '-DENABLE_LOAD_COMPLETION_HACKS=1' \ 135 '-DMOJO_USE_SYSTEM_IMPL' \ 136 '-DSK_ENABLE_INST_COUNT=0' \ 137 '-DSK_SUPPORT_GPU=1' \ 138 '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \ 139 '-DSK_ENABLE_LEGACY_API_ALIASING=1' \ 140 '-DSK_ATTR_DEPRECATED=SK_NOTHING_ARG1' \ 141 '-DGR_GL_IGNORE_ES3_MSAA=0' \ 142 '-DSK_WILL_NEVER_DRAW_PERSPECTIVE_TEXT' \ 143 '-DSK_SUPPORT_LEGACY_TEXTRENDERMODE' \ 144 '-DSK_BUILD_FOR_ANDROID' \ 145 '-DSK_USE_POSIX_THREADS' \ 146 '-DSK_DEFERRED_CANVAS_USES_FACTORIES=1' \ 147 '-DSK_FM_NEW_MATCH_FAMILY_STYLE_CHARACTER=1' \ 148 '-DU_USING_ICU_NAMESPACE=0' \ 149 '-DU_ENABLE_DYLOAD=0' \ 150 '-DFEATURE_ENABLE_SSL' \ 151 '-DFEATURE_ENABLE_VOICEMAIL' \ 152 '-DEXPAT_RELATIVE_PATH' \ 153 '-DGTEST_RELATIVE_PATH' \ 154 '-DNO_MAIN_THREAD_WRAPPING' \ 155 '-DNO_SOUND_SYSTEM' \ 156 '-DANDROID' \ 157 '-DPOSIX' \ 158 '-DWEBRTC_POSIX' \ 159 '-DXML_STATIC' \ 160 '-DI18N_ADDRESSINPUT_USE_BASICTYPES_OVERRIDE=1' \ 161 '-DI18N_PHONENUMBERS_USE_ICU_REGEXP=1' \ 162 '-DPROTOBUF_USE_DLLS' \ 163 '-DGOOGLE_PROTOBUF_NO_RTTI' \ 164 '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \ 165 '-DPOSIX_AVOID_MMAP' \ 166 '-DUSE_OPENSSL=1' \ 167 '-DUSE_OPENSSL_CERTS=1' \ 168 '-D__STDC_CONSTANT_MACROS' \ 169 '-D__STDC_FORMAT_MACROS' \ 170 '-D__GNU_SOURCE=1' \ 171 '-DUSE_STLPORT=1' \ 172 '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \ 173 '-DCHROME_BUILD_ID=""' \ 174 '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \ 175 '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \ 176 '-D_DEBUG' 177 178 179 # Include paths placed before CFLAGS/CPPFLAGS 180 LOCAL_C_INCLUDES_Debug := \ 181 $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \ 182 $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \ 183 $(gyp_shared_intermediate_dir) \ 184 $(LOCAL_PATH) \ 185 $(LOCAL_PATH)/skia/config \ 186 $(LOCAL_PATH)/third_party/khronos \ 187 $(LOCAL_PATH)/gpu \ 188 $(LOCAL_PATH)/third_party/WebKit/Source \ 189 $(gyp_shared_intermediate_dir)/angle \ 190 $(LOCAL_PATH)/third_party/skia/src/core \ 191 $(LOCAL_PATH)/third_party/skia/include/core \ 192 $(LOCAL_PATH)/third_party/skia/include/effects \ 193 $(LOCAL_PATH)/third_party/skia/include/pdf \ 194 $(LOCAL_PATH)/third_party/skia/include/gpu \ 195 $(LOCAL_PATH)/third_party/skia/include/lazy \ 196 $(LOCAL_PATH)/third_party/skia/include/pathops \ 197 $(LOCAL_PATH)/third_party/skia/include/pipe \ 198 $(LOCAL_PATH)/third_party/skia/include/ports \ 199 $(LOCAL_PATH)/third_party/skia/include/utils \ 200 $(LOCAL_PATH)/skia/ext \ 201 $(LOCAL_PATH)/third_party/fips181 \ 202 $(PWD)/external/icu/icu4c/source/common \ 203 $(PWD)/external/icu/icu4c/source/i18n \ 204 $(LOCAL_PATH)/third_party/webrtc/overrides \ 205 $(LOCAL_PATH)/third_party/libjingle/overrides \ 206 $(LOCAL_PATH)/third_party/libjingle/source \ 207 $(LOCAL_PATH)/testing/gtest/include \ 208 $(LOCAL_PATH)/third_party \ 209 $(LOCAL_PATH)/third_party/expat/files/lib \ 210 $(LOCAL_PATH)/third_party/libaddressinput/chromium/override \ 211 $(LOCAL_PATH)/third_party/libaddressinput/src/cpp/include \ 212 $(gyp_shared_intermediate_dir)/third_party/libaddressinput \ 213 $(gyp_shared_intermediate_dir)/protoc_out/third_party/libphonenumber \ 214 $(LOCAL_PATH)/third_party/libphonenumber/src \ 215 $(gyp_shared_intermediate_dir)/protoc_out \ 216 $(LOCAL_PATH)/third_party/protobuf \ 217 $(LOCAL_PATH)/third_party/protobuf/src \ 218 $(gyp_shared_intermediate_dir)/components \ 219 $(gyp_shared_intermediate_dir)/components/strings \ 220 $(PWD)/frameworks/wilhelm/include \ 221 $(PWD)/bionic \ 222 $(PWD)/external/stlport/stlport 223 224 225 # Flags passed to only C++ (and not C) files. 226 LOCAL_CPPFLAGS_Debug := \ 227 -fno-exceptions \ 228 -fno-rtti \ 229 -fno-threadsafe-statics \ 230 -fvisibility-inlines-hidden \ 231 -Wsign-compare \ 232 -Wno-uninitialized \ 233 -std=gnu++11 \ 234 -Wno-narrowing \ 235 -Wno-literal-suffix \ 236 -Wno-non-virtual-dtor \ 237 -Wno-sign-promo 238 239 240 # Flags passed to both C and C++ files. 241 MY_CFLAGS_Release := \ 242 -fstack-protector \ 243 --param=ssp-buffer-size=4 \ 244 \ 245 -fno-strict-aliasing \ 246 -Wall \ 247 -Wno-unused-parameter \ 248 -Wno-missing-field-initializers \ 249 -fvisibility=hidden \ 250 -pipe \ 251 -fPIC \ 252 -Wno-unused-local-typedefs \ 253 -ffunction-sections \ 254 -funwind-tables \ 255 -g \ 256 -fstack-protector \ 257 -fno-short-enums \ 258 -finline-limit=64 \ 259 -Wa,--noexecstack \ 260 -U_FORTIFY_SOURCE \ 261 -Wno-extra \ 262 -Wno-ignored-qualifiers \ 263 -Wno-type-limits \ 264 -Wno-unused-but-set-variable \ 265 -Os \ 266 -fno-ident \ 267 -fdata-sections \ 268 -ffunction-sections \ 269 -fomit-frame-pointer \ 270 -funwind-tables 271 272 MY_DEFS_Release := \ 273 '-DV8_DEPRECATION_WARNINGS' \ 274 '-D_FILE_OFFSET_BITS=64' \ 275 '-DNO_TCMALLOC' \ 276 '-DDISABLE_NACL' \ 277 '-DCHROMIUM_BUILD' \ 278 '-DUSE_LIBJPEG_TURBO=1' \ 279 '-DENABLE_WEBRTC=1' \ 280 '-DUSE_PROPRIETARY_CODECS' \ 281 '-DENABLE_BROWSER_CDMS' \ 282 '-DENABLE_CONFIGURATION_POLICY' \ 283 '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \ 284 '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \ 285 '-DENABLE_EGLIMAGE=1' \ 286 '-DCLD_VERSION=1' \ 287 '-DENABLE_PRINTING=1' \ 288 '-DENABLE_MANAGED_USERS=1' \ 289 '-DDATA_REDUCTION_FALLBACK_HOST="http://compress.googlezip.net:80/"' \ 290 '-DDATA_REDUCTION_DEV_HOST="https://proxy-dev.googlezip.net:443/"' \ 291 '-DDATA_REDUCTION_DEV_FALLBACK_HOST="http://proxy-dev.googlezip.net:80/"' \ 292 '-DSPDY_PROXY_AUTH_ORIGIN="https://proxy.googlezip.net:443/"' \ 293 '-DDATA_REDUCTION_PROXY_PROBE_URL="http://check.googlezip.net/connect"' \ 294 '-DDATA_REDUCTION_PROXY_WARMUP_URL="http://www.gstatic.com/generate_204"' \ 295 '-DVIDEO_HOLE=1' \ 296 '-DENABLE_LOAD_COMPLETION_HACKS=1' \ 297 '-DMOJO_USE_SYSTEM_IMPL' \ 298 '-DSK_ENABLE_INST_COUNT=0' \ 299 '-DSK_SUPPORT_GPU=1' \ 300 '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \ 301 '-DSK_ENABLE_LEGACY_API_ALIASING=1' \ 302 '-DSK_ATTR_DEPRECATED=SK_NOTHING_ARG1' \ 303 '-DGR_GL_IGNORE_ES3_MSAA=0' \ 304 '-DSK_WILL_NEVER_DRAW_PERSPECTIVE_TEXT' \ 305 '-DSK_SUPPORT_LEGACY_TEXTRENDERMODE' \ 306 '-DSK_BUILD_FOR_ANDROID' \ 307 '-DSK_USE_POSIX_THREADS' \ 308 '-DSK_DEFERRED_CANVAS_USES_FACTORIES=1' \ 309 '-DSK_FM_NEW_MATCH_FAMILY_STYLE_CHARACTER=1' \ 310 '-DU_USING_ICU_NAMESPACE=0' \ 311 '-DU_ENABLE_DYLOAD=0' \ 312 '-DFEATURE_ENABLE_SSL' \ 313 '-DFEATURE_ENABLE_VOICEMAIL' \ 314 '-DEXPAT_RELATIVE_PATH' \ 315 '-DGTEST_RELATIVE_PATH' \ 316 '-DNO_MAIN_THREAD_WRAPPING' \ 317 '-DNO_SOUND_SYSTEM' \ 318 '-DANDROID' \ 319 '-DPOSIX' \ 320 '-DWEBRTC_POSIX' \ 321 '-DXML_STATIC' \ 322 '-DI18N_ADDRESSINPUT_USE_BASICTYPES_OVERRIDE=1' \ 323 '-DI18N_PHONENUMBERS_USE_ICU_REGEXP=1' \ 324 '-DPROTOBUF_USE_DLLS' \ 325 '-DGOOGLE_PROTOBUF_NO_RTTI' \ 326 '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \ 327 '-DPOSIX_AVOID_MMAP' \ 328 '-DUSE_OPENSSL=1' \ 329 '-DUSE_OPENSSL_CERTS=1' \ 330 '-D__STDC_CONSTANT_MACROS' \ 331 '-D__STDC_FORMAT_MACROS' \ 332 '-D__GNU_SOURCE=1' \ 333 '-DUSE_STLPORT=1' \ 334 '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \ 335 '-DCHROME_BUILD_ID=""' \ 336 '-DNDEBUG' \ 337 '-DNVALGRIND' \ 338 '-DDYNAMIC_ANNOTATIONS_ENABLED=0' \ 339 '-D_FORTIFY_SOURCE=2' 340 341 342 # Include paths placed before CFLAGS/CPPFLAGS 343 LOCAL_C_INCLUDES_Release := \ 344 $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \ 345 $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \ 346 $(gyp_shared_intermediate_dir) \ 347 $(LOCAL_PATH) \ 348 $(LOCAL_PATH)/skia/config \ 349 $(LOCAL_PATH)/third_party/khronos \ 350 $(LOCAL_PATH)/gpu \ 351 $(LOCAL_PATH)/third_party/WebKit/Source \ 352 $(gyp_shared_intermediate_dir)/angle \ 353 $(LOCAL_PATH)/third_party/skia/src/core \ 354 $(LOCAL_PATH)/third_party/skia/include/core \ 355 $(LOCAL_PATH)/third_party/skia/include/effects \ 356 $(LOCAL_PATH)/third_party/skia/include/pdf \ 357 $(LOCAL_PATH)/third_party/skia/include/gpu \ 358 $(LOCAL_PATH)/third_party/skia/include/lazy \ 359 $(LOCAL_PATH)/third_party/skia/include/pathops \ 360 $(LOCAL_PATH)/third_party/skia/include/pipe \ 361 $(LOCAL_PATH)/third_party/skia/include/ports \ 362 $(LOCAL_PATH)/third_party/skia/include/utils \ 363 $(LOCAL_PATH)/skia/ext \ 364 $(LOCAL_PATH)/third_party/fips181 \ 365 $(PWD)/external/icu/icu4c/source/common \ 366 $(PWD)/external/icu/icu4c/source/i18n \ 367 $(LOCAL_PATH)/third_party/webrtc/overrides \ 368 $(LOCAL_PATH)/third_party/libjingle/overrides \ 369 $(LOCAL_PATH)/third_party/libjingle/source \ 370 $(LOCAL_PATH)/testing/gtest/include \ 371 $(LOCAL_PATH)/third_party \ 372 $(LOCAL_PATH)/third_party/expat/files/lib \ 373 $(LOCAL_PATH)/third_party/libaddressinput/chromium/override \ 374 $(LOCAL_PATH)/third_party/libaddressinput/src/cpp/include \ 375 $(gyp_shared_intermediate_dir)/third_party/libaddressinput \ 376 $(gyp_shared_intermediate_dir)/protoc_out/third_party/libphonenumber \ 377 $(LOCAL_PATH)/third_party/libphonenumber/src \ 378 $(gyp_shared_intermediate_dir)/protoc_out \ 379 $(LOCAL_PATH)/third_party/protobuf \ 380 $(LOCAL_PATH)/third_party/protobuf/src \ 381 $(gyp_shared_intermediate_dir)/components \ 382 $(gyp_shared_intermediate_dir)/components/strings \ 383 $(PWD)/frameworks/wilhelm/include \ 384 $(PWD)/bionic \ 385 $(PWD)/external/stlport/stlport 386 387 388 # Flags passed to only C++ (and not C) files. 389 LOCAL_CPPFLAGS_Release := \ 390 -fno-exceptions \ 391 -fno-rtti \ 392 -fno-threadsafe-statics \ 393 -fvisibility-inlines-hidden \ 394 -Wsign-compare \ 395 -Wno-uninitialized \ 396 -std=gnu++11 \ 397 -Wno-narrowing \ 398 -Wno-literal-suffix \ 399 -Wno-non-virtual-dtor \ 400 -Wno-sign-promo 401 402 403 LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION)) 404 LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION)) 405 LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION)) 406 LOCAL_ASFLAGS := $(LOCAL_CFLAGS) 407 ### Rules for final target. 408 409 LOCAL_SHARED_LIBRARIES := \ 410 libstlport \ 411 libdl 412 413 # Add target alias to "gyp_all_modules" target. 414 .PHONY: gyp_all_modules 415 gyp_all_modules: components_autofill_core_browser_gyp 416 417 # Alias gyp target name. 418 .PHONY: autofill_core_browser 419 autofill_core_browser: components_autofill_core_browser_gyp 420 421 include $(BUILD_STATIC_LIBRARY) 422