diff --git a/ChangeLog b/ChangeLog
index ee1097b..d3da71d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2000-03-13  Bruno Haible  <haible@clisp.cons.org>
+
+        Provide all encodings used by AIX locales.
+        * tools/Makefile (all): Add cp856.h, cp922.h, cp1046.h, cp1124.h,
+          cp1129.h.
+          (cp856.h, cp922.h, cp1046.h, cp1124.h, cp1129.h): New targets.
+        * src/cp856.h, src/cp922.h, src/cp943.h, src/cp1046.h, src/cp1124.h,
+          src/cp1129.h: New files.
+        * src/converters.h: Include them if USE_AIX is defined.
+        * src/encodings_aix.def: New file, with CP856, CP922, CP943, CP1046,
+          CP1124, CP1129.
+        * src/genflags.c: Define USE_AIX. Include encodings_aix.def.
+        * src/genaliases2.c: New file.
+        * src/iconv.c: Define USE_AIX on AIX.
+          Include encodings_aix.def and aliases_aix.h.
+          (aliases2_lookup): New function.
+          (iconv_open): Call aliases2_lookup.
+        * src/Makefile.in (iconv.lo): Depend on encodings_aix.def and
+          aliases_aix.h.
+        * Makefile.devel (all): Add src/aliases_aix.h.
+          (src/aliases_aix.h): New rule.
+          (src/flags.h): Depend on src/encodings_aix.def.
+
 2000-02-24  Bruno Haible  <haible@clisp.cons.org>
 
         * src/iconv.c (iconv): Don't write beyond the end of the output buffer.
@@ -13,24 +36,6 @@
 
 2000-02-05  Bruno Haible  <haible@clisp.cons.org>
 
-        Provide all encodings used by AIX locales.
-        * tools/Makefile (all): Add cp856.h, cp922.h, cp1046.h, cp1124.h,
-          cp1129.h.
-          (cp856.h, cp922.h, cp1046.h, cp1124.h, cp1129.h): New targets.
-        * src/cp856.h, src/cp922.h, src/cp943.h, src/cp1046.h, src/cp1124.h,
-          src/cp1129.h: New files.
-        * src/converters.h: Include them if either USE_AIX or USE_ALL is
-          defined.
-        * src/encodings.def: Add CP856, CP922, CP943, CP1046, CP1124, CP1129.
-        * src/genflags.c: Define USE_ALL.
-        * src/use_aliases2.h: New file.
-        * src/genaliases2.c: New file.
-        * src/iconv.c: Include use_aliases2.h and aliases2.h.
-          (iconv_open): Call aliases2_lookup.
-        * src/Makefile.in (iconv.lo): Depend on aliases2.h.
-          (aliases2.h): New rule.
-          (clean): Remove aliases2.h.
-
         * src/tis620.h: Simplify.
 
 2000-01-27  Bruno Haible  <haible@clisp.cons.org>
diff --git a/Makefile.devel b/Makefile.devel
index 4cef91f..6a052d6 100644
--- a/Makefile.devel
+++ b/Makefile.devel
@@ -10,7 +10,7 @@
 RM = rm -f
 
 
-all : configures src/config.h.msvc include/iconv.h.msvc src/aliases.h src/flags.h src/translit.h
+all : configures src/config.h.msvc include/iconv.h.msvc src/aliases.h src/aliases_aix.h src/flags.h src/translit.h
 
 
 # Before making a new release:
@@ -61,8 +61,13 @@
 	./genaliases > src/aliases.gperf
 	$(RM) genaliases
 
+src/aliases_aix.h : src/encodings_aix.def src/genaliases2.c
+	$(CC) $(CFLAGS) -DUSE_AIX src/genaliases2.c -o genaliases
+	./genaliases > src/aliases_aix.h
+	$(RM) genaliases
 
-src/flags.h : src/encodings.def src/converters.h src/genflags.c
+
+src/flags.h : src/encodings.def src/encodings_aix.def src/converters.h src/genflags.c
 	$(CC) $(CFLAGS) src/genflags.c -o genflags
 	./genflags > src/flags.h
 	$(RM) genflags
diff --git a/src/Makefile.in b/src/Makefile.in
index 4f426cf..1a8957d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -67,15 +67,9 @@
 libiconv_plug_osf.so : $(SOURCES)
 	$(CC) $(CFLAGS) $(INCLUDES) -fPIC -DPIC -DLIBICONV_PLUG $(SOURCES) $(PLUG_SOURCES) -shared -o libiconv_plug_osf.so
 
-iconv.lo : $(srcdir)/iconv.c $(srcdir)/converters.h $(srcdir)/encodings.def $(srcdir)/aliases.h $(srcdir)/flags.h aliases2.h
+iconv.lo : $(srcdir)/iconv.c $(srcdir)/converters.h $(srcdir)/encodings.def $(srcdir)/encodings_aix.def $(srcdir)/aliases.h $(srcdir)/aliases_aix.h $(srcdir)/flags.h
 	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/iconv.c
 
-aliases2.h : $(srcdir)/genaliases2.c $(srcdir)/encodings.def
-	$(CC) $(CFLAGS) $(srcdir)/genaliases2.c -o genaliases2
-	./genaliases2 > aliases2.tmp
-	$(MV) aliases2.tmp aliases2.h
-	$(RM) genaliases2
-
 
 # Installs the library and include files only. Typically called with only
 # $(libdir) and $(includedir) - don't use $(prefix) and $(exec_prefix) here.
@@ -104,7 +98,7 @@
 mostlyclean : clean
 
 clean : force
-	$(RM) *.o *.lo *.a *.la libiconv_plug* aliases2.h core
+	$(RM) *.o *.lo *.a *.la libiconv_plug* core
 	$(RM) -r .libs _libs
 
 distclean : clean
diff --git a/src/aliases_aix.h b/src/aliases_aix.h
new file mode 100644
index 0000000..6e3b46c
--- /dev/null
+++ b/src/aliases_aix.h
@@ -0,0 +1,6 @@
+  { "CP856", ei_cp856 },
+  { "CP922", ei_cp922 },
+  { "CP943", ei_cp943 },
+  { "CP1046", ei_cp1046 },
+  { "CP1124", ei_cp1124 },
+  { "CP1129", ei_cp1129 },
diff --git a/src/converters.h b/src/converters.h
index 14c4f25..b836700 100644
--- a/src/converters.h
+++ b/src/converters.h
@@ -207,7 +207,7 @@
 
 /* Encodings used by system dependent locales. */
 
-#if defined(USE_AIX) || defined(USE_ALL)
+#ifdef USE_AIX
 #include "cp856.h"
 #include "cp922.h"
 #include "cp943.h"
diff --git a/src/encodings.def b/src/encodings.def
index e796878..fa6b387 100644
--- a/src/encodings.def
+++ b/src/encodings.def
@@ -16,7 +16,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/* The list of all user-visible encodings. */
+/* The list of all system independent user-visible encodings. */
 
 /* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
    in a file named "foobar.h" through the functions foobar_mbtowc and
@@ -36,8 +36,6 @@
  */
 
 
-#ifndef USE_SYSDEPENDENT_ONLY
-
 DEFENCODING(( "US-ASCII",               /* IANA */
               "ASCII",                  /* IANA, JDK 1.1 */
               "ISO646-US",              /* IANA */
@@ -755,41 +753,3 @@
             iso2022_kr,
             { iso2022_kr_mbtowc },        { iso2022_kr_wctomb, iso2022_kr_reset })
 
-#endif /* USE_SYSDEPENDENT_ONLY */
-
-/* Encodings used by system dependent locales. */
-
-#if defined(USE_AIX) || defined(USE_ALL)
-
-DEFENCODING(( "CP856",
-            ),
-            cp856,
-            { cp856_mbtowc },             { cp856_wctomb, NULL })
-
-DEFENCODING(( "CP922",
-            ),
-            cp922,
-            { cp922_mbtowc },             { cp922_wctomb, NULL })
-
-DEFENCODING(( "CP943",
-            ),
-            cp943,
-            { cp943_mbtowc },             { cp943_wctomb, NULL })
-
-DEFENCODING(( "CP1046",
-            ),
-            cp1046,
-            { cp1046_mbtowc },            { cp1046_wctomb, NULL })
-
-DEFENCODING(( "CP1124",
-            ),
-            cp1124,
-            { cp1124_mbtowc },            { cp1124_wctomb, NULL })
-
-DEFENCODING(( "CP1129",
-            ),
-            cp1129,
-            { cp1129_mbtowc },            { cp1129_wctomb, NULL })
-
-#endif
-
diff --git a/src/encodings_aix.def b/src/encodings_aix.def
new file mode 100644
index 0000000..ef4594d
--- /dev/null
+++ b/src/encodings_aix.def
@@ -0,0 +1,49 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU ICONV Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU ICONV Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Encodings used by system dependent locales on AIX. */
+
+DEFENCODING(( "CP856",
+            ),
+            cp856,
+            { cp856_mbtowc },             { cp856_wctomb, NULL })
+
+DEFENCODING(( "CP922",
+            ),
+            cp922,
+            { cp922_mbtowc },             { cp922_wctomb, NULL })
+
+DEFENCODING(( "CP943",
+            ),
+            cp943,
+            { cp943_mbtowc },             { cp943_wctomb, NULL })
+
+DEFENCODING(( "CP1046",
+            ),
+            cp1046,
+            { cp1046_mbtowc },            { cp1046_wctomb, NULL })
+
+DEFENCODING(( "CP1124",
+            ),
+            cp1124,
+            { cp1124_mbtowc },            { cp1124_wctomb, NULL })
+
+DEFENCODING(( "CP1129",
+            ),
+            cp1129,
+            { cp1129_mbtowc },            { cp1129_wctomb, NULL })
diff --git a/src/genaliases2.c b/src/genaliases2.c
index e806fb8..074f5de 100644
--- a/src/genaliases2.c
+++ b/src/genaliases2.c
@@ -21,17 +21,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "use_aliases2.h"
-
-static int empty = 1;
-
 static void emit_encoding (const char* const* names, size_t n, const char* c_name)
 {
   for (; n > 0; names++, n--) {
-    if (empty) {
-      printf("static struct alias sysdep_aliases[] = {\n");
-      empty = 0;
-    }
     printf("  { \"");
     /* Output *names in upper case. */
     {
@@ -51,35 +43,17 @@
 
 int main ()
 {
-#define USE_SYSDEPENDENT_ONLY
 #define DEFENCODING(xxx_names,xxx,xxx_ifuncs,xxx_ofuncs1,xxx_ofuncs2) \
   {                                                           \
     static const char* const names[] = BRACIFY xxx_names;     \
     emit_encoding(names,sizeof(names)/sizeof(names[0]),#xxx); \
   }
 #define BRACIFY(...) { __VA_ARGS__ }
-#include "encodings.def"
+#ifdef USE_AIX
+#include "encodings_aix.def"
+#endif
 #undef BRACIFY
 #undef DEFENCODING
-#undef USE_SYSDEPENDENT_ONLY
-  if (!empty) {
-    printf("};\n\n");
-    printf("#ifdef __GNUC__\n");
-    printf("__inline\n");
-    printf("#endif\n");
-    printf("const struct alias *\n");
-    printf("aliases2_lookup (register const char *str)\n");
-    printf("{\n");
-    printf("  struct alias * ptr;\n");
-    printf("  unsigned int count;\n");
-    printf("  for (ptr = sysdep_aliases, count = sizeof(sysdep_aliases)/sizeof(sysdep_aliases[0]); count > 0; ptr++, count--)\n");
-    printf("    if (!strcmp(str,ptr->name))\n");
-    printf("      return ptr;\n");
-    printf("  return NULL;\n");
-    printf("}\n");
-  } else {
-    printf("#define aliases2_lookup(str)  NULL\n");
-  }
   fflush(stdout);
   if (ferror(stdout))
     exit(1);
diff --git a/src/genflags.c b/src/genflags.c
index b0f93fd..f009f12 100644
--- a/src/genflags.c
+++ b/src/genflags.c
@@ -22,7 +22,7 @@
 #include <stdlib.h>
 
 /* Consider all encodings, including the system dependent ones. */
-#define USE_ALL
+#define USE_AIX
 
 #include "converters.h"
 
@@ -91,7 +91,9 @@
     struct wctomb_funcs ofuncs = xxx_ofuncs1,xxx_ofuncs2; \
     emit_encoding(&ofuncs,#xxx);                          \
   }
+/* Consider all encodings, including the system dependent ones. */
 #include "encodings.def"
+#include "encodings_aix.def"
 #undef DEFENCODING
 
   fflush(stdout);
diff --git a/src/iconv.c b/src/iconv.c
index 4eaede2..16a190d 100644
--- a/src/iconv.c
+++ b/src/iconv.c
@@ -23,6 +23,14 @@
 #include "config.h"
 
 /*
+ * Consider those system dependent encodings that are needed for the
+ * current system.
+ */
+#ifdef _AIX
+#define USE_AIX
+#endif
+
+/*
  * Converters.
  */
 #include "converters.h"
@@ -36,7 +44,6 @@
 /*
  * Table of all supported encodings.
  */
-#include "use_aliases2.h"
 struct encoding {
   struct mbtowc_funcs ifuncs; /* conversion multibyte -> unicode */
   struct wctomb_funcs ofuncs; /* conversion unicode -> multibyte */
@@ -46,6 +53,9 @@
 #define DEFENCODING(xxx_names,xxx,xxx_ifuncs,xxx_ofuncs1,xxx_ofuncs2) \
   ei_##xxx ,
 #include "encodings.def"
+#ifdef USE_AIX
+#include "encodings_aix.def"
+#endif
 #undef DEFENCODING
 ei_for_broken_compilers_that_dont_like_trailing_commas
 };
@@ -54,6 +64,9 @@
 #define DEFENCODING(xxx_names,xxx,xxx_ifuncs,xxx_ofuncs1,xxx_ofuncs2) \
   { xxx_ifuncs, xxx_ofuncs1,xxx_ofuncs2, ei_##xxx##_oflags },
 #include "encodings.def"
+#ifdef USE_AIX
+#include "encodings_aix.def"
+#endif
 #undef DEFENCODING
 };
 
@@ -71,7 +84,28 @@
  * Defines
  *   const struct alias * aliases2_lookup (const char *str);
  */
-#include "aliases2.h"
+#if defined(USE_AIX) /* || ... */
+static struct alias sysdep_aliases[] = {
+#ifdef USE_AIX
+#include "aliases_aix.h"
+#endif
+};
+#ifdef __GNUC__
+__inline
+#endif
+const struct alias *
+aliases2_lookup (register const char *str)
+{
+  struct alias * ptr;
+  unsigned int count;
+  for (ptr = sysdep_aliases, count = sizeof(sysdep_aliases)/sizeof(sysdep_aliases[0]); count > 0; ptr++, count--)
+    if (!strcmp(str,ptr->name))
+      return ptr;
+  return NULL;
+}
+#else
+#define aliases2_lookup(str)  NULL
+#endif
 
 #if 0
 /* Like !strcasecmp, except that the both strings can be assumed to be ASCII
diff --git a/src/use_aliases2.h b/src/use_aliases2.h
deleted file mode 100644
index 701c5cf..0000000
--- a/src/use_aliases2.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* Define macros indicating which system dependent encodings should be used. */
-
-#ifdef _AIX
-#define USE_AIX
-#endif
