1use ExtUtils::MakeMaker;
2use ExtUtils::Constant 0.23;
3
4WriteMakefile(
5    'NAME'		=> 'I18N::Langinfo',
6    'VERSION_FROM'	=> 'Langinfo.pm', # finds $VERSION
7     ABSTRACT_FROM	=> 'Langinfo.pm', # retrieve abstract from module
8     AUTHOR		=> 'Jarkko Hietaniemi <jhi@hut.fi>',
9    realclean => {FILES=> 'const-c.inc const-xs.inc'},
10);
11
12# Some older versions of glibc use only enums, no defines, hence all this
13# hassle (so old glibc that the define is GNU_LIBRARY, not GLIBC):
14my @names = 'CODESET'; # CODESET isn't an enum in old glibc's langinfo.h
15push @names,           # This lot are always enums in old langinfo.h:
16    {name=>$_, type=>"IV",
17     macro=>["#if defined($_) || (defined(_NL_ITEM))\n",
18             "#endif\n"]}
19      foreach qw (ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5 ABDAY_6 ABDAY_7
20                  ABMON_1 ABMON_10 ABMON_11 ABMON_12 ABMON_2 ABMON_3 ABMON_4
21                  ABMON_5 ABMON_6 ABMON_7 ABMON_8 ABMON_9 ALT_DIGITS AM_STR
22                  DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 D_FMT D_T_FMT ERA
23                  ERA_D_FMT ERA_D_T_FMT ERA_T_FMT MON_1 MON_10 MON_11 MON_12
24                  MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9 NOEXPR NOSTR
25                  PM_STR T_FMT T_FMT_AMPM YESEXPR YESSTR
26                  _NL_ADDRESS_POSTAL_FMT
27                  _NL_ADDRESS_COUNTRY_NAME
28                  _NL_ADDRESS_COUNTRY_POST
29                  _NL_ADDRESS_COUNTRY_AB2
30                  _NL_ADDRESS_COUNTRY_AB3
31                  _NL_ADDRESS_COUNTRY_CAR
32                  _NL_ADDRESS_COUNTRY_NUM
33                  _NL_ADDRESS_COUNTRY_ISBN
34                  _NL_ADDRESS_LANG_NAME
35                  _NL_ADDRESS_LANG_AB
36                  _NL_ADDRESS_LANG_TERM
37                  _NL_ADDRESS_LANG_LIB
38                  _NL_IDENTIFICATION_TITLE
39                  _NL_IDENTIFICATION_SOURCE
40                  _NL_IDENTIFICATION_ADDRESS
41                  _NL_IDENTIFICATION_CONTACT
42                  _NL_IDENTIFICATION_EMAIL
43                  _NL_IDENTIFICATION_TEL
44                  _NL_IDENTIFICATION_FAX
45                  _NL_IDENTIFICATION_LANGUAGE
46                  _NL_IDENTIFICATION_TERRITORY
47                  _NL_IDENTIFICATION_AUDIENCE
48                  _NL_IDENTIFICATION_APPLICATION
49                  _NL_IDENTIFICATION_ABBREVIATION
50                  _NL_IDENTIFICATION_REVISION
51                  _NL_IDENTIFICATION_DATE
52                  _NL_IDENTIFICATION_CATEGORY
53                  _NL_MEASUREMENT_MEASUREMENT
54                  _NL_NAME_NAME_FMT
55                  _NL_NAME_NAME_GEN
56                  _NL_NAME_NAME_MR
57                  _NL_NAME_NAME_MRS
58                  _NL_NAME_NAME_MISS
59                  _NL_NAME_NAME_MS
60                  _NL_PAPER_HEIGHT
61                  _NL_PAPER_WIDTH
62                  _NL_TELEPHONE_TEL_INT_FMT
63                  _NL_TELEPHONE_TEL_DOM_FMT
64                  _NL_TELEPHONE_INT_SELECT
65                  _NL_TELEPHONE_INT_PREFIX
66                 );
67push @names,           # This lot are only enums for __SVR4_I386_ABI_L1__:
68    {name=>$_, type=>"IV",
69     macro=>["#if defined($_) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n",
70             "#endif\n"]}
71      foreach qw (CRNCYSTR THOUSEP RADIXCHAR);
72
73ExtUtils::Constant::WriteConstants(
74				   PROXYSUBS => {autoload => 1},
75				   NAME => 'I18N::Langinfo',
76				   NAMES => \@names,
77				  );
78