1 /*****************************************************************************
3 * Template for the set.h file for VMS *
4 * Created from setup.h_in *
5 * Author : J.Jansen (joukj@hrem.stm.tudelft.nl) *
6 * Date : 15 March 2005 *
8 *****************************************************************************/
10 /* This define (__WX_SETUP_H__) is used both to insure setup.h is included
11 * only once and to indicate that we are building using configure. */
12 #ifndef __WX_SETUP_H__
13 #define __WX_SETUP_H__
19 #include <wx/vms_x_fix.h>
21 /* never undefine inline or const keywords for C++ compilation */
24 /* Define to empty if the keyword does not work. */
27 /* Define as __inline if that's what the C compiler calls it. */
30 #endif /* __cplusplus */
32 /* fill in with the string wxGetOsDescription() will return */
33 #define WXWIN_OS_DESCRIPTION "OpenVMS"
35 /* the installation location prefix from configure */
36 #undef wxINSTALL_PREFIX
38 /* Define this to get extra features from GNU libc. */
41 /* Define to `int' if <sys/types.h> doesn't define. */
44 /* Define to `int' if <sys/types.h> doesn't define. */
47 /* Define to `long' if <sys/types.h> doesn't define. */
50 /* Define to `int' if <sys/types.h> doesn't define. */
53 /* Define to `unsigned' if <sys/types.h> doesn't define. */
56 /* Define if ssize_t type is available. */
57 #define HAVE_SSIZE_T 1
59 /* Define if you have the ANSI C header files. */
62 /* Define to `int' if <sys/types.h> doesn't define. */
65 /* Define if your processor stores words with the most significant
66 byte first (like Motorola and SPARC, unlike Intel and VAX). */
67 #undef WORDS_BIGENDIAN
69 /* Define this if you want to use GPE features */
70 /* #undef __WXGPE__ */
72 /* Define this if your version of Motif is greater than 2.0 */
73 /* #undef __WXMOTIF20__ */
76 /* Define this if your version of GTK+ is greater than 1.2 */
79 /* Define this if your version of GTK+ is greater than 1.2.7 */
80 #define __WXGTK127__ 1
82 /* Define this if your version of GTK+ is greater than 2.0 */
83 /* #undef __WXGTK20__ */
85 /* Define this if your version of GTK+ is greater than 2.4 */
86 /* #undef __WXGTK24__ */
90 * Define to 1 for Unix[-like] system
119 /* NanoX (with wxX11) */
120 #define wxUSE_NANOX 0
122 /* PowerPC Darwin & Mac OS X */
125 /* Hack to make IOGraphicsTypes.h not define Point conflicting with MacTypes */
128 /* MS-DOS with DJGPP */
131 /* Stupid hack; __WINDOWS__ clashes with wx/defs.h */
152 /* --- start common options --- */
160 #define WXWIN_COMPATIBILITY_2_2 1
162 #define WXWIN_COMPATIBILITY_2_4 1
164 #define wxDIALOG_UNIT_COMPATIBILITY 1
168 #define wxUSE_DEBUG_CONTEXT 0
170 #define wxUSE_DEBUGREPORT 0
172 #define wxUSE_MEMORY_TRACING 0
174 #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
176 #define wxUSE_DEBUG_NEW_ALWAYS 0
178 #define wxUSE_ON_FATAL_EXCEPTION 0
180 #define wxUSE_STACKWALKER 0
183 #ifndef wxUSE_UNICODE
184 #define wxUSE_UNICODE 0
187 #define wxUSE_UNICODE_MSLU 0
189 #define wxUSE_WCHAR_T 1
192 #define wxUSE_EXCEPTIONS 0
194 #define wxUSE_EXTENDED_RTTI 0
200 #define wxUSE_LOGWINDOW 1
202 #define wxUSE_LOGGUI 1
204 #define wxUSE_LOG_DIALOG 0
206 #define wxUSE_CMDLINE_PARSER 1
208 #define wxUSE_THREADS 1
210 #define wxUSE_STREAMS 1
212 #define wxUSE_STD_IOSTREAM 0
214 #define wxUSE_STD_STRING 0
216 #define wxUSE_LONGLONG 1
219 #define wxUSE_FFILE 1
221 #define wxUSE_FSVOLUME 1
223 #define wxUSE_STDPATHS 1
225 #define wxUSE_TEXTBUFFER 1
227 #define wxUSE_TEXTFILE 1
231 #define wxUSE_DATETIME 1
233 #define wxUSE_TIMER 1
235 #define wxUSE_STOPWATCH 1
237 #define wxUSE_CONFIG 1
239 #define wxUSE_CONFIG_NATIVE 0
241 #define wxUSE_DIALUP_MANAGER 1
243 #define wxUSE_DYNLIB_CLASS 1
245 #define wxUSE_DYNAMIC_LOADER 0
247 #define wxUSE_SOCKETS 1
249 #define wxUSE_FILESYSTEM 1
251 #define wxUSE_FS_ZIP 1
253 #define wxUSE_FS_INET 1
255 #define wxUSE_ARCHIVE_STREAMS 1
257 #define wxUSE_ZIPSTREAM 1
261 #define wxUSE_APPLE_IEEE 0
263 #define wxUSE_JOYSTICK 0
265 #define wxUSE_FONTMAP 1
267 #define wxUSE_MIMETYPE 1
269 #define wxUSE_PROTOCOL 1
271 #define wxUSE_PROTOCOL_FILE 1
272 #define wxUSE_PROTOCOL_FTP 1
273 #define wxUSE_PROTOCOL_HTTP 1
277 #define wxUSE_URL_NATIVE 0
279 #define wxUSE_REGEX 0
281 #define wxUSE_SYSTEM_OPTIONS 1
283 #define wxUSE_SOUND 1
285 #define wxUSE_MEDIACTRL 1
287 #define wxUSE_QUICKTIME 1
289 #define wxUSE_DIRECTSHOW 1
291 #define wxUSE_GSTREAMER 0
302 #define wxUSE_CONTROLS 1
305 #define wxUSE_POPUPWIN 0
307 #define wxUSE_POPUPWIN 1
310 #define wxUSE_TIPWINDOW 1
312 #define wxUSE_BUTTON 1
313 #define wxUSE_BMPBUTTON 1
314 #define wxUSE_CALENDARCTRL 1
315 #define wxUSE_CHECKBOX 1
316 #define wxUSE_CHECKLISTBOX 1
317 #define wxUSE_CHOICE 1
318 #define wxUSE_COMBOBOX 1
319 #define wxUSE_DATEPICKCTRL 1
320 #define wxUSE_GAUGE 1
321 #define wxUSE_LISTBOX 1
322 #define wxUSE_LISTCTRL 1
323 #define wxUSE_RADIOBOX 1
324 #define wxUSE_RADIOBTN 1
325 #define wxUSE_SCROLLBAR 1
326 #define wxUSE_SLIDER 1
327 #define wxUSE_SPINBTN 1
328 #define wxUSE_SPINCTRL 1
329 #define wxUSE_STATBOX 1
330 #define wxUSE_STATLINE 1
331 #define wxUSE_STATTEXT 1
332 #define wxUSE_STATBMP 1
333 #define wxUSE_TEXTCTRL 1
334 #if defined (__WXMOTIF__) || defined( __WXGTK__ )
335 #define wxUSE_TOGGLEBTN 1
337 #define wxUSE_TOGGLEBTN 0
339 #define wxUSE_TREECTRL 1
341 #define wxUSE_STATUSBAR 1
343 #define wxUSE_NATIVE_STATUSBAR 0
345 #define wxUSE_TOOLBAR 1
346 #define wxUSE_TOOLBAR_NATIVE 1
348 #define wxUSE_NOTEBOOK 1
350 #define wxUSE_LISTBOOK 1
352 #define wxUSE_CHOICEBOOK 1
354 #define wxUSE_TAB_DIALOG 1
358 #define wxUSE_MINIFRAME 1
361 #define wxUSE_ACCEL 1
363 #define wxUSE_HOTKEY 1
365 #define wxUSE_CARET 1
367 #define wxUSE_DISPLAY 1
369 #define wxUSE_GEOMETRY 1
371 #define wxUSE_IMAGLIST 1
373 #define wxUSE_MENUS 1
377 #define wxUSE_SPLITTER 1
379 #if defined (__WXMOTIF__) || defined( __WXX11__ )
380 #define wxUSE_TOOLTIPS 0
382 #define wxUSE_TOOLTIPS 1
385 #define wxUSE_VALIDATORS 1
388 #define wxUSE_COMMON_DIALOGS 1
390 #define wxUSE_BUSYINFO 1
392 #define wxUSE_CHOICEDLG 1
394 #define wxUSE_COLOURDLG 1
396 #define wxUSE_DIRDLG 1
399 #define wxUSE_FILEDLG 1
401 #define wxUSE_FINDREPLDLG 1
403 #define wxUSE_FONTDLG 1
405 #define wxUSE_MSGDLG 1
407 #define wxUSE_PROGRESSDLG 1
409 #define wxUSE_STARTUP_TIPS 1
411 #define wxUSE_TEXTDLG 1
413 #define wxUSE_NUMBERDLG 1
415 #define wxUSE_SPLASH 1
417 #define wxUSE_WIZARDDLG 1
420 #define wxUSE_METAFILE 1
421 #define wxUSE_ENH_METAFILE 1
422 #define wxUSE_WIN_METAFILES_ALWAYS 1
427 #define wxUSE_DOC_VIEW_ARCHITECTURE 1
429 #define wxUSE_MDI_ARCHITECTURE 1
431 #define wxUSE_PRINTING_ARCHITECTURE 1
435 #define wxUSE_GLCANVAS 1
438 #define wxUSE_CLIPBOARD 1
440 #define wxUSE_DATAOBJ 1
443 #define wxUSE_DRAG_AND_DROP 1
445 #define wxUSE_DRAG_AND_DROP 0
448 #define wxUSE_ACCESSIBILITY 0
451 #define wxUSE_SNGLINST_CHECKER 1
453 #define wxUSE_DRAGIMAGE 1
459 #define wxUSE_MS_HTML_HELP 0
462 #define wxUSE_WXHTML_HELP 1
464 #define wxUSE_RESOURCES 1
469 #define wxUSE_PROLOGIO 1
471 #define wxUSE_CONSTRAINTS 1
474 #define wxUSE_SPLINES 1
477 #define wxUSE_MOUSEWHEEL 1
481 #define wxUSE_POSTSCRIPT 1
483 #define wxUSE_AFM_FOR_POSTSCRIPT 1
487 #define wxODBC_FWD_ONLY_CURSORS 1
489 #define wxODBC_BACKWARD_COMPATABILITY 0
492 #define REMOVE_UNUSED_ARG 1
494 #define wxUSE_IOSTREAMH 1
498 #define wxUSE_IMAGE 1
500 #define wxUSE_LIBPNG 1
502 #define wxUSE_LIBJPEG 1
504 #define wxUSE_LIBTIFF 1
516 #define wxUSE_ICO_CUR 1
518 #define wxUSE_PALETTE 1
520 /* --- end common options --- */
522 /* for some features we don't have dedicated configure switches, so just choose
523 * the common values automatically */
524 #if (defined(__WIN95__) && !defined(__WXUNIVERSAL__)) || defined(__WXPM__)
525 #define wxUSE_OWNER_DRAWN 1
528 #if defined(__WXPM__)
529 #define wxUSE_OWNER_DRAWN 1
532 /* enable rich edit under Win32 */
533 #if defined(__WIN95__) && !defined(__WINE__) && !defined(__GNUWIN32_OLD__)
534 #define wxUSE_RICHEDIT 1
536 #define wxUSE_RICHEDIT 0
545 * Define if your compiler supports the explicit keyword
547 #define HAVE_EXPLICIT 1
550 * Define if your compiler supports const_cast<>()
552 #define HAVE_CONST_CAST 1
555 * Define if your compiler supports reinterpret_cast<>()
557 #define HAVE_REINTERPRET_CAST 1
560 * Define if your compiler supports const_cast<>()
562 #define HAVE_STATIC_CAST 1
565 * Define if your compiler has C99 va_copy
570 * Define if va_list type is an array
572 #undef VA_LIST_IS_ARRAY
575 * Define if your compiler has std::wstring
577 /* #unfine HAVE_STD_WSTRING */
579 * Define if your compiler has compliant std::string::compare
581 #undef HAVE_STD_STRING_COMPARE
583 * Define if your compiler has <hash_map>
587 * Define if your compiler has <ext/hash_map>
589 #undef HAVE_EXT_HASH_MAP
591 * Define if your compiler has std::hash_map/hash_set
593 #undef HAVE_STD_HASH_MAP
595 * Define if your compiler has __gnu_cxx::hash_map/hash_set
597 #undef HAVE_GNU_CXX_HASH_MAP
600 * The built-in regex supports advanced REs in additional to POSIX's basic
601 * and extended. Your system regex probably won't support this, and in this
602 * case WX_NO_REGEX_ADVANCED should be defined.
604 #undef WX_NO_REGEX_ADVANCED
606 * Use SDL for audio (Unix)
608 #define wxUSE_LIBSDL 0
610 * Use GNOME print for printing under GTK+ 2.0
612 #define wxUSE_LIBGNOMEPRINT 0
616 #define wxUSE_BUILTIN_IODBC 0
620 #define wxUSE_FREETYPE 1
624 #define wxHAVE_GLIBC2 0
628 #define wxHAVE_LIB_XPM 1
630 * Use consistent PostScript fonts for AFM and printing (!)
632 #define wxUSE_NORMALIZED_PS_FONTS 1
635 #define WX_NORMALIZED_PS_FONTS wxUSE_NORMALIZED_PS_FONTS
640 #define wxUSE_OPENGL 1
643 * Set to 1 to compile MS Windows XP theme engine support
645 /* #define wxUSE_UXTHEME 1 */
648 * Set to 1 to auto-adapt to MS Windows XP themes where possible
649 * (notably, wxNotebook pages)
651 /* #define wxUSE_UXTHEME_AUTO 1*/
654 * Work around a bug in GNU libc 5.x wcstombs() implementation.
656 * Note that you must link your programs with libc.a if you enable this and you
657 * have libc 5 (you should enable this for libc6 where wcsrtombs() is
658 * thread-safe version of wcstombs()).
660 #define wxUSE_WCSRTOMBS 0
663 * Use the new experimental implementation of wxString::Printf()?
665 * Warning: enabling this may cause internal compiler errors with gcc!
667 #define wxUSE_EXPERIMENTAL_PRINTF 0
670 * Use wxGetResource & wxWriteResource (change .Xdefaults)
672 #define wxUSE_X_RESOURCES 1
678 /* for compatibility */
679 #define wxUSE_WX_RESOURCES wxUSE_RESOURCES
682 * Use wxWindows help facility
686 * Use built-in HTML-based help controller
688 #define wxUSE_WXHTML_HELP 1
690 * Use MS HTML Help controller (win32)
692 #define wxUSE_MS_HTML_HELP 0
694 * Use MS HTML Help via libmspack (Unix)
696 #define wxUSE_LIBMSPACK 1
699 * Matthews garbage collection (used for MrEd?)
701 #define WXGARBAGE_COLLECTION_ON 1
706 #define wxUSE_WEBKIT 1
709 * The const keyword is being introduced more in wxWindows.
710 * You can use this setting to maintain backward compatibility.
711 * If 0: will use const wherever possible.
712 * If 1: will use const only where necessary
713 * for precompiled headers to work.
714 * If 2: will be totally backward compatible, but precompiled
715 * headers may not work and program size will be larger.
717 #define CONST_COMPATIBILITY 0
719 /* define with the name of timezone variable */
722 /* The type of 3rd argument to getsockname() - usually size_t or int */
723 #define SOCKLEN_T size_t
725 /* The type of 5th argument to getsockopt() - usually size_t or int */
726 #define SOCKOPTLEN_T size_t
728 /* The type of statvfs(2) argument */
731 /* The signal handler prototype */
732 #undef wxTYPE_SA_HANDLER
734 /* gettimeofday() usually takes 2 arguments, but some really old systems might
735 * have only one, in which case define WX_GETTIMEOFDAY_NO_TZ */
736 #undef WX_GETTIMEOFDAY_NO_TZ
738 /* struct tm doesn't always have the tm_gmtoff field, define this if it does */
739 #define WX_GMTOFF_IN_TM
741 /* Define if you have poll(2) function */
744 /* Define if you have pw_gecos field in struct passwd */
747 /* Define if you have __cxa_demangle() in <cxxabi.h> */
748 #undef HAVE_CXA_DEMANGLE
750 /* Define if you have dlopen() */
751 #define HAVE_DLOPEN 1
753 /* Define if you have gettimeofday() */
754 #define HAVE_GETTIMEOFDAY
756 /* Define if you have ftime() */
759 /* Define if you have support for large (64 bit size) files */
760 #undef HAVE_LARGEFILE_SUPPORT
762 /* Define if you have localtime() */
763 #define HAVE_LOCALTIME
765 /* Define if you have nanosleep() */
766 #undef HAVE_NANOSLEEP
768 /* Define if you have sched_yield */
769 #undef HAVE_SCHED_YIELD
771 /* Define if you have pthread_mutexattr_t and functions to work with it */
772 #undef HAVE_PTHREAD_MUTEXATTR_T
774 /* Define if you have PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP */
775 #undef HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER
777 /* Define if you have pthread_cancel */
778 #define HAVE_PTHREAD_CANCEL 1
780 /* Define if you have sigaction() */
781 #define HAVE_SIGACTION 1
783 /* Define if you have sigemptyset() */
784 #define HAVE_SIGEMPTYSET 1
786 /* Define if you have the putenv function. */
787 #define HAVE_PUTENV 1
789 /* Define if you have the setenv function. */
792 /* Define if you have shl_load() */
795 /* define if you have statfs function */
798 /* define if you have statvfs function */
801 /* Define if you have strptime() */
802 #define HAVE_STRPTIME 1
804 /* Define if you have all functions to set thread priority */
805 #define HAVE_THREAD_PRIORITY_FUNCTIONS 1
807 /* Define if you can specify exit functions to a thread */
808 #define HAVE_THREAD_CLEANUP_FUNCTIONS 1
810 /* Define if you have timegm() function */
813 /* Define if you have vsnprintf() */
814 #undef HAVE_VSNPRINTF
816 /* Define if you have vsnprintf() declaration in the header */
817 #undef HAVE_VSNPRINTF_DECL
819 /* Define if you have usleep() */
820 #define HAVE_USLEEP 1
822 /* Define if you have wcslen function */
823 #define HAVE_WCSLEN 1
825 /* define if you have vsscanf function */
828 /* The number of bytes in a char. */
829 #define SIZEOF_CHAR 1
831 /* The number of bytes in a wchar_t. */
832 #define SIZEOF_WCHAR_T 4
834 /* The number of bytes in a int. */
837 /* The number of bytes in a pointer. */
838 #define SIZEOF_VOID_P 4
840 /* The number of bytes in a long. */
841 #define SIZEOF_LONG 4
843 /* The number of bytes in a long long. */
844 #define SIZEOF_LONG_LONG 8
846 /* The number of bytes in a short. */
847 #define SIZEOF_SHORT 2
849 /* The number of bytes in a size_t. */
850 #define SIZEOF_SIZE_T 4
852 /* Define if size_t on your machine is the same type as unsigned int. */
853 #define wxSIZE_T_IS_UINT 1
855 /* Define if size_t on your machine is the same type as unsigned long. */
856 #undef wxSIZE_T_IS_ULONG
858 /* Define if you have the dlopen function. */
859 #define HAVE_DLOPEN 1
861 /* Define if you have the dlerror function. */
862 #define HAVE_DLERROR 1
864 /* Define if you have Posix fnctl() function. */
867 /* Define if you have BSD flock() function. */
870 /* Define if you have the gethostname function. */
871 #define HAVE_GETHOSTNAME 1
873 /* Define if you have the inet_addr function. */
874 #define HAVE_INET_ADDR 1
876 /* Define if you have the inet_aton function. */
877 #undef HAVE_INET_ATON
879 /* Define if you have the mktemp function. */
880 #define HAVE_MKTEMP 1
882 /* Define if you have the mkstemp function. */
883 #define HAVE_MKSTEMP 1
885 /* Define if you have the nanosleep function. */
886 #undef HAVE_NANOSLEEP
888 /* Define if you have the putenv function. */
889 #define HAVE_PUTENV 1
891 /* Define if you have the setenv function. */
894 /* Define if you have the shl_load function. */
897 /* Define if you have strtok_r function. */
900 /* Define if you have thr_setconcurrency function */
901 #undef HAVE_THR_SETCONCURRENCY
903 /* Define if you have the uname function. */
906 /* Define if you have the usleep function. */
907 #define HAVE_USLEEP 1
909 /* Define if you have the <X11/XKBlib.h> header file. */
910 #undef HAVE_X11_XKBLIB_H
912 /* Define if you have the fnmatch() function */
915 /* Define if you have the <fnmatch.h> header file. */
916 #undef HAVE_FNMATCH_H
918 /* Define if you have the <iostream> header file. */
921 /* Define if you have the <linux/joystick.h> header file. */
922 #undef HAVE_LINUX_JOYSTICK_H
924 /* Define if you have the <sched.h> header file. */
927 /* Define if you have the <unistd.h> header file. */
928 #define HAVE_UNISTD_H 1
930 /* Define if you have the <fcntl.h> header file. */
931 #define HAVE_FCNTL_H 1
933 /* Define if you have the <wchar.h> header file. */
934 #define HAVE_WCHAR_H 1
936 /* Define if you have the <wcstr.h> header file. */
939 /* Define if you have the <wctype.h> header file. */
942 /* Define if you have the <iconv.h> header file and iconv() symbol. */
943 #define HAVE_ICONV_H 1
945 /* Define as "const" if the declaration of iconv() needs const. */
948 /* Define if you have the <langinfo.h> header file. */
949 #define HAVE_LANGINFO_H 1
951 /* Define if you have the <w32api.h> header file (mingw,cygwin). */
954 /* Define if you have the <esd.h> header file. */
955 /* #undef HAVE_ESD_H */
957 /* Define if you have the <sys/soundcard.h> header file. */
958 /* #undef HAVE_SYS_SOUNDCARD_H */
960 /* Define if you have wcsrtombs() function */
961 #define HAVE_WCSRTOMBS 1
963 /* Define this if you have wputc() */
966 /* Define this if you have wputchar() */
967 #define HAVE_WPUTCHAR 1
969 /* Define this if you have putws() */
972 /* Define this if you have fputws() */
973 #define HAVE_FPUTWS 1
975 /* Define this if you have strcasecmp() function in <string.h> */
976 #define HAVE_STRCASECMP_IN_STRING_H 1
978 /* Define this if you have strcasecmp() function in <strings.h> */
979 #undef HAVE_STRCASECMP_IN_STRINGS_H
981 /* Define this if you have wprintf() and related functions */
982 #define HAVE_WPRINTF 1
984 /* Define this if you have vswprintf() and related functions */
985 #define HAVE_VSWPRINTF 1
987 /* Define this if you have _vsnwprintf */
988 #undef HAVE__VSNWPRINTF
990 /* Define this if you are using gtk and gdk contains support for X11R6 XIM */
993 /* Define if fseeko and ftello are available. */
994 #define HAVE_FSEEKO 1
996 /* Define this is you have X11/extensions/shape.h */
997 #define HAVE_XSHAPE 1
999 /* Define this if you have type SPBCDATA */
1000 #undef HAVE_SPBCDATA
1002 /* Define if you have pango_font_family_is_monospace() (Pango >= 1.3.3) */
1003 #undef HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE
1005 /* Define if you have Pango xft support */
1006 #undef HAVE_PANGO_XFT
1008 /* ---------------------------------------------------------------------
1009 Win32 adjustments section
1010 ---------------------------------------------------------------------
1015 /* we need to define wxUSE_XPM_IN_MSW for MSW compilation for compatibil
1016 with wx/msw/setup.h */
1017 #define wxUSE_XPM_IN_MSW wxUSE_XPM
1019 #define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1
1021 #endif /* __WIN32__ */
1023 /* --------------------------------------------------------*
1024 * This stuff is static, it doesn't get modified directly
1028 #include "wx/chkconf.h"
1031 define some constants identifying wxWindows version in more details t
1032 just the version number
1035 /* wxLogChain class available */
1036 #define wxHAS_LOG_CHAIN 1
1038 /* define this when wxDC::Blit() respects SetDeviceOrigin() in wxGTK */
1039 #define wxHAS_WORKING_GTK_DC_BLIT 1
1041 #endif /* __WX_SETUP_H__ */