List of modules, and dependencies.
[gnulib.git] / MODULES.txt
1 This is a list of the modules which make up gnulib, with dependencies.
2
3 * Support for systems lacking ANSI C 89.
4
5 -------------------------------------------------------------------------------
6 lib/            lib/                  m4/
7 Header          Implementation        Autoconf macro              Depends on
8 -------------------------------------------------------------------------------
9
10 ---             ---                   c-bs-a.m4                   ---
11                                       AC_C_BACKSLASH_A
12
13 <assert.h>      ---                   assert.m4                   ---
14                                       jm_ASSERT
15
16 <stdlib.h>      atexit.c              AC_REPLACE_FUNCS(atexit)    ---
17
18 <stdlib.h>      strtod.c              AC_REPLACE_FUNCS(strtod)    ---
19                                       AC_STDC_HEADERS
20                                       AC_CHECK_HEADERS(float.h)
21                                       AC_CHECK_FUNCS(isascii)
22                                       AC_CHECK_LIB(m, pow, ...)
23
24 <stdlib.h>      strtol.c              AC_REPLACE_FUNCS(strtol)    ---
25                                       AC_STDC_HEADERS
26                                       AC_CHECK_HEADERS(limits.h)
27                                       AC_CHECK_FUNCS(isascii)
28
29 <stdlib.h>      strtoul.c             AC_REPLACE_FUNCS(strtoul)   strtol
30
31 <string.h>      memchr.c              AC_REPLACE_FUNCS(memchr)    ---
32                                       AC_CHECK_HEADERS(limits.h)
33                                       AC_CHECK_HEADERS(stdlib.h)
34                                       see also jm_PREREQ_MEMCHR
35
36 <string.h>      memcmp.c              memcmp.m4                   ---
37                                       jm_FUNC_MEMCMP
38
39 <string.h>      memcpy.c              AC_REPLACE_FUNCS(memcpy)    ---
40
41 <string.h>      memmove.c             AC_REPLACE_FUNCS(memmove)   ---
42
43 <string.h>      memset.c              AC_REPLACE_FUNCS(memset)    ---
44
45 <string.h>      strcspn.c             AC_REPLACE_FUNCS(strcspn)   ---
46                                       AC_CHECK_HEADERS(string.h)
47
48 strpbrk.h       strpbrk.c             AC_REPLACE_FUNCS(strpbrk)   ---
49                                       AC_CHECK_HEADERS(string.h)
50
51 strstr.h        strstr.c              AC_REPLACE_FUNCS(strstr)    ---
52                                       AC_CHECK_HEADERS(string.h)
53
54 <string.h>      strerror.c            AC_REPLACE_FUNCS(strerror)  ---
55
56 <time.h>        mktime.c              AC_FUNC_MKTIME              ---
57                                       AC_STDC_HEADERS
58                                       AC_CHECK_HEADERS(limits.h)
59                                       see also jm_FUNC_MKTIME
60
61 -------------------------------------------------------------------------------
62
63 These modules are not listed among dependencies below, for simplicity.
64
65 * Enhancements for ANSI C 89 functions.
66
67 + Memory management functions <stdlib.h>
68
69 -------------------------------------------------------------------------------
70 lib/            lib/                  m4/
71 Header          Implementation        Autoconf macro              Depends on
72 -------------------------------------------------------------------------------
73
74 <stdlib.h>      malloc.c              malloc.m4                   ---
75                                       jm_FUNC_MALLOC
76                                       or autoconf >= 2.57
77                                       AC_FUNC_MALLOC
78
79 <stdlib.h>      realloc.c             realloc.m4                  ---
80                                       jm_FUNC_REALLOC
81                                       or autoconf >= 2.57
82                                       AC_FUNC_REALLOC
83
84 -------------------------------------------------------------------------------
85
86 + Date and time <time.h>
87
88 -------------------------------------------------------------------------------
89 lib/            lib/                  m4/
90 Header          Implementation        Autoconf macro              Depends on
91 -------------------------------------------------------------------------------
92
93 <time.h>        strftime.c            strftime.m4                 ---
94                                       jm_FUNC_GNU_STRFTIME
95
96 -------------------------------------------------------------------------------
97
98 * Extra functions based on ANSI C 89.
99
100 + Memory management functions <stdlib.h>
101
102 -------------------------------------------------------------------------------
103 lib/            lib/                  m4/
104 Header          Implementation        Autoconf macro              Depends on
105 -------------------------------------------------------------------------------
106
107 xalloc.h        xmalloc.c             AC_STDC_HEADERS             malloc
108                 xstrdup.c             AC_CHECK_HEADERS(string.h)  realloc
109                                                                   error
110                                                                   gettext
111
112 30 lines        alloca.c              AC_FUNC_ALLOCA              xalloc
113
114 bumpalloc.h     ---                   ---                         xalloc
115
116 -------------------------------------------------------------------------------
117
118 + Integer arithmetic functions <stdlib.h>
119
120 -------------------------------------------------------------------------------
121 lib/            lib/                  m4/
122 Header          Implementation        Autoconf macro              Depends on
123 -------------------------------------------------------------------------------
124
125 gcd.h           gcd.c                 ---                         ---
126
127 -------------------------------------------------------------------------------
128
129 + Environment variables <stdlib.h>
130
131 -------------------------------------------------------------------------------
132 lib/            lib/                  m4/
133 Header          Implementation        Autoconf macro              Depends on
134 -------------------------------------------------------------------------------
135
136 NYI             putenv.c              putenv.m4                   ---
137                                       jm_FUNC_PUTENV
138                                       AC_CHECK_HEADERS(string.h)
139                                       AC_CHECK_HEADERS(unistd.h)
140                                       AC_CHECK_FUNCS(strchr)
141                                       AC_CHECK_FUNCS(memcpy)
142
143 setenv.h        setenv.c              setenv.m4                   ---
144                 unsetenv.c            gt_FUNC_SETENV
145                                       AC_FUNC_ALLOCA
146
147 -------------------------------------------------------------------------------
148
149 + Character handling <ctype.h>
150
151 + String handling <string.h>
152
153 -------------------------------------------------------------------------------
154 lib/            lib/                  m4/
155 Header          Implementation        Autoconf macro              Depends on
156 -------------------------------------------------------------------------------
157
158 NYI             bcopy.c               AC_REPLACE_FUNCS(bcopy)     ---
159
160 NYI             memrchr.c             AC_REPLACE_FUNCS(memrchr)   ---
161                                       AC_CHECK_HEADERS(stdlib.h)
162                                       AC_CHECK_HEADERS(limits.h)
163                                       AC_GNU_SOURCE
164
165 stpcpy.h        stpcpy.c              AC_REPLACE_FUNCS(stpcpy)    ---
166                                       AC_GNU_SOURCE
167
168 strcase.h       strcasecmp.c          AC_REPLACE_FUNCS(strcasecmp)  ---
169                 strncasecmp.c         AC_REPLACE_FUNCS(strncasecmp)
170
171 NYI             strdup.c              AC_REPLACE_FUNCS(strdup)    ---
172                                       AC_STDC_HEADERS
173
174 NYI             strndup.c             AC_REPLACE_FUNCS(strndup)   strnlen
175                                       AC_STDC_HEADERS
176                                       AC_CHECK_DECLS(strnlen)
177                                       AC_GNU_SOURCE
178
179 NYI             strnlen.c             AC_REPLACE_FUNCS(strnlen)   ---
180                                       AC_FUNC_STRNLEN
181                                       AC_STDC_HEADERS
182                                       AC_CHECK_HEADERS(string.h)
183                                       AC_CHECK_HEADERS(memory.h)
184                                       AC_CHECK_DECLS(memchr)
185                                       AC_GNU_SOURCE
186                                       see also jm_PREREQ_STRNLEN
187
188 -------------------------------------------------------------------------------
189
190 + Numeric conversion functions <stdlib.h>
191
192 -------------------------------------------------------------------------------
193 lib/            lib/                  m4/
194 Header          Implementation        Autoconf macro              Depends on
195 -------------------------------------------------------------------------------
196
197 xstrtod.h       xstrtod.c             AC_STDC_HEADERS             ---
198
199 xstrtol.h       xstrtol.c             xstrtoimax.m4               ---
200                 xstrtoul.c            xstrtoumax.m4
201                 xstrtoimax.c          AC_STDC_HEADERS
202                 xstrtoumax.c          AC_CHECK_HEADERS(string.h)
203                                       AC_CHECK_HEADERS(limits.h)
204                                       AC_CHECK_HEADERS(inttypes.h)
205                                       AC_CHECK_FUNCS(isascii)
206                                       AC_CHECK_DECLS(strtol)
207                                       AC_CHECK_DECLS(strtoul)
208                                       AC_CHECK_DECLS(strtoimax)
209                                       AC_CHECK_DECLS(strtoumax)
210                                       see also jm_AC_PREREQ_XSTRTOIMAX
211                                       see also jm_AC_PREREQ_XSTRTOUMAX
212
213 NYI             strtoimax.c           longlong.m4                 ---
214                                       AC_CHECK_HEADERS(inttypes.h)
215                                       AC_CHECK_HEADERS(stdlib.h)
216                                       AC_CHECK_DECLS(strtol)
217                                       AC_CHECK_DECLS(strtoll)
218                                       jm_AC_TYPE_LONG_LONG
219
220 NYI             strtoumax.c           longlong.m4                 ---
221                                       AC_CHECK_HEADERS(inttypes.h)
222                                       AC_CHECK_HEADERS(stdlib.h)
223                                       AC_CHECK_DECLS(strtoul)
224                                       AC_CHECK_DECLS(strtoull)
225                                       jm_AC_TYPE_UNSIGNED_LONG_LONG
226
227 -------------------------------------------------------------------------------
228
229 + Date and time <time.h>
230
231 -------------------------------------------------------------------------------
232 lib/            lib/                  m4/
233 Header          Implementation        Autoconf macro              Depends on
234 -------------------------------------------------------------------------------
235
236 getdate.h       getdate.y             bison.m4                    unlocked-io
237                                       AC_STDC_HEADERS
238                                       AC_HEADER_TIME
239                                       AC_CHECK_HEADERS(stdlib.h)
240                                       AC_CHECK_HEADERS(string.h)
241                                       AC_CHECK_HEADERS(sys/time.h)
242                                       AC_CHECK_FUNCS(isascii)
243                                       AC_STRUCT_TIMEZONE
244                                       HAVE_TM_GMTOFF see strftime.m4
245                                       jm_BISON
246
247 -------------------------------------------------------------------------------
248
249 + Input/Output <stdio.h>
250
251 -------------------------------------------------------------------------------
252 lib/            lib/                  m4/
253 Header          Implementation        Autoconf macro              Depends on
254 -------------------------------------------------------------------------------
255
256 unlocked-io.h   ---                   jm-glibc-io.m4              ---
257                                       jm_FUNC_GLIBC_UNLOCKED_IO
258                                       AC_GNU_SOURCE
259
260 -------------------------------------------------------------------------------
261
262 + Command-line arguments
263
264 -------------------------------------------------------------------------------
265 lib/            lib/                  m4/
266 Header          Implementation        Autoconf macro              Depends on
267 -------------------------------------------------------------------------------
268
269 argmatch.h      argmatch.c            ---                         gettext
270                                                                   error
271                                                                   quotearg
272                                                                   quote
273                                                                   unlocked-io
274
275 version-etc.h   version-etc.c         ---                         unlocked-io
276                                                                   gettext
277
278 long-options.h  long-options.c        AC_CHECK_HEADERS(stdlib.h)  version-etc
279
280 -------------------------------------------------------------------------------
281
282 + Cryptographic computations
283
284 -------------------------------------------------------------------------------
285 lib/            lib/                  m4/
286 Header          Implementation        Autoconf macro              Depends on
287 -------------------------------------------------------------------------------
288
289 md5.h           md5.c                 AC_STDC_HEADERS             unlocked-io
290                                       AC_CHECK_HEADERS(limits.h)
291                                       AC_CHECK_FUNCS(memcpy)
292
293 sha.h           sha.c                 AC_STDC_HEADERS             unlocked-io
294                                       AC_CHECK_FUNCS(memcpy)      md5
295
296 -------------------------------------------------------------------------------
297
298 + Misc
299
300 -------------------------------------------------------------------------------
301 lib/            lib/                  m4/
302 Header          Implementation        Autoconf macro              Depends on
303 -------------------------------------------------------------------------------
304
305 diacrit.h       diacrit.c             ---                         ---
306
307 getstr.h        getstr.c              AC_STDC_HEADERS             unlocked-io
308
309 getline.h       getline.c             getline.m4                  getstr
310                                       AM_FUNC_GETLINE
311                                       AC_CHECK_FUNCS(getdelim)
312                                       AC_GNU_SOURCE
313
314 linebuffer.h    linebuffer.c          ---                         xalloc
315                                                                   unlocked-io
316
317 obstack.h       obstack.c             AC_CHECK_HEADERS(stddef.h)  gettext
318                                       AC_CHECK_HEADERS(string.h)
319
320 hash-pjw.h      hash-pjw.c            ---                         ---
321
322 hash.h          hash.c                AC_CHECK_HEADERS(stdlib.h)  malloc
323                                       AC_HEADER_STDBOOL           realloc
324                                       AC_CHECK_DECLS(malloc)
325                                       AC_CHECK_DECLS(free)
326                                       see also jm_PREREQ_HASH
327
328 readtokens.h    readtokens.c          AC_STDC_HEADERS             xalloc
329                                       AC_CHECK_HEADERS(string.h)  unlocked-io
330                                       AC_CHECK_HEADERS(memory.h)
331
332 strverscmp.h    strverscmp.c          AC_REPLACE_FUNCS(strverscmp) ---
333                                       AC_GNU_SOURCE
334
335 -------------------------------------------------------------------------------
336
337 * Support for systems lacking ISO C 99.
338
339 + Boolean type and values <stdbool.h>
340
341 -------------------------------------------------------------------------------
342 lib/            lib/                  m4/
343 Header          Implementation        Autoconf macro              Depends on
344 -------------------------------------------------------------------------------
345
346 ---             ---                   stdbool.m4                  ---
347                                       AC_HEADER_STDBOOL
348
349 -------------------------------------------------------------------------------
350
351 + Numeric conversion functions <stdlib.h>
352
353 -------------------------------------------------------------------------------
354 lib/            lib/                  m4/
355 Header          Implementation        Autoconf macro              Depends on
356 -------------------------------------------------------------------------------
357
358 <stdlib.h>      strtoll.c             AC_REPLACE_FUNCS(strtoll)   strtol
359
360 <stdlib.h>      strtoull.c            AC_REPLACE_FUNCS(strtoull)  strtoul
361
362 -------------------------------------------------------------------------------
363
364 * Enhancements for ISO C 99 functions.
365
366 -------------------------------------------------------------------------------
367 lib/            lib/                  m4/
368 Header          Implementation        Autoconf macro              Depends on
369 -------------------------------------------------------------------------------
370
371 -------------------------------------------------------------------------------
372
373 * Extra functions based on ISO C 99.
374
375 -------------------------------------------------------------------------------
376 lib/            lib/                  m4/
377 Header          Implementation        Autoconf macro              Depends on
378 -------------------------------------------------------------------------------
379
380 -------------------------------------------------------------------------------
381
382 * Support for systems lacking POSIX:2001.
383
384 -------------------------------------------------------------------------------
385 lib/            lib/                  m4/
386 Header          Implementation        Autoconf macro              Depends on
387 -------------------------------------------------------------------------------
388
389 <unistd.h>      chown.c               chown.m4                    ---
390                                       jm_FUNC_CHOWN
391
392 <unistd.h>      dup2.c                AC_REPLACE_FUNCS(dup2)      ---
393                                       AC_CHECK_HEADERS(unistd.h)
394                                       AC_CHECK_HEADERS(fcntl.h)
395
396 <unistd.h>      ftruncate.c           ftruncate.m4                ---
397                                       jm_FUNC_FTRUNCATE
398
399 <unistd.h>      getgroups.c           getgroups.m4                xalloc
400                                       jm_FUNC_GETGROUPS
401
402 <sys/time.h>    gettimeofday.c        gettimeofday.m4             ---
403                                       AC_FUNC_GETTIMEOFDAY_CLOBBER
404
405 <sys/stat.h>    mkdir.c               mkdir-slash.m4              xalloc
406                                       AC_CHECK_HEADERS(stdlib.h)  dirname
407                                       AC_CHECK_HEADERS(string.h)
408                                       AC_CHECK_DECLS(free)
409                                       UTILS_FUNC_MKDIR_TRAILING_SLASH
410
411 <stdlib.h>      mkstemp.c             mkstemp.m4                  ---
412                 tempname.c            UTILS_FUNC_MKSTEMP
413                                       jm_PREREQ_TEMPNAME
414
415 <sys/stat.h>    stat.c                stat.m4                     ---
416                                       jm_FUNC_STAT
417
418 <sys/stat.h>    lstat.c               lstat.m4                    stat
419                                       jm_FUNC_LSTAT               xalloc
420                                       AC_HEADER_STAT
421                                       AC_CHECK_HEADERS(stdlib.h)
422                                       AC_CHECK_DECLS(free)
423
424 timespec.h      ---                   timespec.m4                 ---
425                                       st_mtim.m4
426                                       AC_CHECK_HEADERS(sys/time.h)
427                                       jm_CHECK_TYPE_STRUCT_TIMESPEC
428                                       AC_STRUCT_ST_MTIM_NSEC
429                                       AC_CHECK_DECLS(nanosleep)
430
431 <time.h>        nanosleep.c           nanosleep.m4                timespec
432                 timespec.h (BAD)      jm_FUNC_NANOSLEEP
433                                       AC_CHECK_HEADERS(unistd.h)
434
435 regex.h         regex.c               regex.m4                    alloca
436                                       jm_INCLUDED_REGEX           unlocked-io
437                                       jm_PREREQ_REGEX             gettext
438
439 <stdio.h>       rename.c              rename.m4                   xalloc
440                                       vb_FUNC_RENAME              dirname
441                                       AC_CHECK_HEADERS(stdlib.h)
442                                       AC_CHECK_HEADERS(string.h)
443                                       AC_CHECK_DECLS(free)
444
445 <unistd.h>      rmdir.c               AC_REPLACE_FUNCS(rmdir)     ---
446                                       AC_HEADER_STAT
447
448 <utime.h>       utime.c               utime.m4                    safe-read
449                                       utimbuf.m4                  full-write
450                                       utimes.m4
451                                       jm_FUNC_UTIME
452
453 -------------------------------------------------------------------------------
454
455 * Enhancements for POSIX:2001 functions.
456
457 -------------------------------------------------------------------------------
458 lib/            lib/                  m4/
459 Header          Implementation        Autoconf macro              Depends on
460 -------------------------------------------------------------------------------
461
462 dirname.h       dirname.c             dos.m4                      xalloc
463                 basename.c            jm_AC_DOS
464                 stripslash.c          jm_PREREQ_DIRNAME
465
466 getopt.h        getopt.c              AC_CHECK_HEADERS(string.h)  gettext
467                 getopt1.c
468
469 unistd-safer.h  dup-safer.c           AC_CHECK_HEADERS(unistd.h)  ---
470                                       AC_CHECK_HEADERS(fcntl.h)
471
472 fnmatch_.h      fnmatch.c             fnmatch.m4                  alloca
473                 fnmatch_loop.c        mbstate_t.m4
474                                       AC_FUNC_FNMATCH_GNU
475                                       AC_STDC_HEADERS
476                                       AC_CHECK_HEADERS(string.h)
477                                       AC_CHECK_HEADERS(strings.h)
478
479 exclude.h       exclude.c             jm_PREREQ_EXCLUDE           xalloc
480                                       AC_CHECK_HEADERS(stdlib.h)  strcase
481                                       AC_CHECK_HEADERS(string.h)  unlocked-io
482                                       AC_CHECK_HEADERS(strings.h) fnmatch
483                                       AC_CHECK_HEADERS(sys/types.h)
484                                       AC_CHECK_HEADERS(inttypes.h)
485                                       AC_CHECK_HEADERS(stdint.h)
486
487 -------------------------------------------------------------------------------
488
489 * Extra functions based on POSIX:2001.
490
491 + Numeric conversion functions
492
493 -------------------------------------------------------------------------------
494 lib/            lib/                  m4/
495 Header          Implementation        Autoconf macro              Depends on
496 -------------------------------------------------------------------------------
497
498 human.h         human.c               AC_CHECK_HEADERS(inttypes.h) gettext
499                                       AC_CHECK_HEADERS(string.h)   argmatch
500                                       AC_CHECK_HEADERS(limits.h)   error
501                                       AC_CHECK_HEADERS(stdlib.h)   xstrtol
502                                       AC_CHECK_DECLS(getenv)
503                                       jm_PREREQ_HUMAN
504
505 -------------------------------------------------------------------------------
506
507 + File system functions
508
509 -------------------------------------------------------------------------------
510 lib/            lib/                  m4/
511 Header          Implementation        Autoconf macro              Depends on
512 -------------------------------------------------------------------------------
513
514 acl.h           acl.c                 acl.m4                      ---
515                                       AC_FUNC_ACL
516
517 backupfile.h    backupfile.c          d-ino.m4                    argmatch
518                 addext.c              dos.m4                      dirname
519                 getversion.c          jm_PREREQ_ADDEXT
520                                       jm_CHECK_TYPE_STRUCT_DIRENT_D_INO
521                                       jm_AC_DOS
522                                       AC_STDC_HEADERS
523                                       AC_CHECK_HEADERS(stdlib.h)
524                                       AC_CHECK_DECLS(malloc)
525                                       AC_CHECK_DECLS(getenv)
526
527 fsusage.h       fsusage.c             fsusage.m4                  full-read
528                                       jm_FILE_SYSTEM_USAGE
529                                       STATFS_TRUNCATES_BLOCK_COUNTS ?
530                                       jm_AC_TYPE_UINTMAX_T
531                                       AC_LIBOBJ(fsusage)
532                                       AC_CHECK_HEADERS(inttypes.h)
533                                       AC_CHECK_HEADERS(stdint.h)
534                                       AC_CHECK_HEADERS(limits.h)
535                                       AC_CHECK_HEADERS(fcntl.h)
536                                       AC_CHECK_HEADERS(dustat.h)
537                                       AC_CHECK_HEADERS(sys/param.h)
538                                       AC_CHECK_HEADERS(sys/mount.h)
539                                       AC_CHECK_HEADERS(sys/vfs.h)
540                                       AC_CHECK_HEADERS(sys/fs/s5param.h)
541                                       AC_CHECK_HEADERS(sys/filsys.h)
542                                       AC_CHECK_HEADERS(sys/statfs.h)
543                                       AC_CHECK_HEADERS(sys/statvfs.h)
544
545 dirfd.h         dirfd.c               dirfd.m4                    ---
546                                       UTILS_FUNC_DIRFD
547
548 NYI             euidaccess.c          AC_GNU_SOURCE               ---
549                                       AC_REPLACE_FUNCS(euidaccess)
550                                       AC_CHECK_HEADERS(unistd.h)
551                                       AC_CHECK_FUNCS(getgroups)
552
553 file-type.h     file-type.c           AC_HEADER_STAT              gettext
554
555 NYI             fileblocks.c          AC_STRUCT_ST_BLOCKS         ---
556                                       AC_CHECK_HEADERS(unistd.h)
557                                       AC_CHECK_HEADERS(sys/param.h)
558
559 filemode.h      filemode.c            AC_HEADER_STAT              ---
560
561 NYI             isdir.c               AC_HEADER_STAT              ---
562
563 NYI             lchown.h              lchown.m4                   chown
564                 lchown.c              jm_FUNC_LCHOWN
565                                       AC_HEADER_STAT
566
567 makepath.h      makepath.c            afs.m4                      alloca
568                                       AC_FUNC_ALLOCA              chown
569                                       AC_HEADER_STAT              gettext
570                                       AC_CHECK_HEADERS(unistd.h)  save-cwd
571                                       AC_CHECK_HEADERS(string.h)  dirname
572                                                                   error
573                                                                   quote
574
575 modechange.h    modechange.c          AC_CHECK_HEADERS            xstrtol
576                                       AC_HEADER_STAT
577
578 mountlist.h     mountlist.c           ls-mntd-fs.m4               xalloc
579                                       fstypename.m4               unlocked-io
580                                       jm_LIST_MOUNTED_FILESYSTEMS
581                                       jm_FSTYPENAME
582                                       AC_LIBOBJ(mountlist)
583                                       AC_STDC_HEADERS
584                                       AC_CHECK_HEADERS(unistd.h)
585                                       AC_CHECK_HEADERS(string.h)
586                                       AC_CHECK_HEADERS(fcntl.h)
587                                       AC_CHECK_HEADERS(sys/mntent.h)
588
589 path-concat.h   path-concat.c         dos.m4                      strdup
590                                       jm_AC_DOS                   xalloc
591                                       AC_STDC_HEADERS             dirname
592                                       AC_CHECK_HEADERS(string.h)
593                                       AC_CHECK_HEADERS(strings.h)
594                                       AC_CHECK_HEADERS(memory.h)
595                                       AC_CHECK_HEADERS(stdlib.h)
596                                       AC_CHECK_HEADERS(unistd.h)
597                                       AC_CHECK_FUNCS(mempcpy)
598                                       AC_CHECK_DECLS(malloc)
599
600 pathmax.h       ---                   AC_CHECK_HEADERS(unistd.h)  ---
601                                       AC_CHECK_HEADERS(limits.h)
602                                       AC_CHECK_HEADERS(sys/param.h)
603
604 same.h          same.c                AC_CHECK_HEADERS(unistd.h)  xalloc
605                                       AC_CHECK_HEADERS(stdlib.h)  error
606                                       AC_CHECK_HEADERS(string.h)  dirname
607                                       AC_CHECK_DECLS(free)
608
609 save-cwd.h      save-cwd.c            AC_STDC_HEADERS             error
610                                       AC_CHECK_HEADERS(unistd.h)
611                                       AC_CHECK_HEADERS(fcntl.h)
612                                       AC_CHECK_FUNCS(fchdir)
613
614 savedir.h       savedir.c             AC_STDC_HEADERS             xalloc
615                                       AC_DIR_HEADER
616                                       AC_FUNC_CLOSEDIR_VOID
617
618 xgetcwd.h       xgetcwd.c             getcwd.m4                   xalloc
619                                       jm_PREREQ_XGETCWD           pathmax
620
621 xreadlink.h     xreadlink.c           jm_PREREQ_XREADLINK         xalloc
622
623 -------------------------------------------------------------------------------
624
625 + File descriptor based Input/Output
626
627 -------------------------------------------------------------------------------
628 lib/            lib/                  m4/
629 Header          Implementation        Autoconf macro              Depends on
630 -------------------------------------------------------------------------------
631
632 safe-read.h     safe-read.c           AC_CHECK_HEADERS(unistd.h)  ---
633
634 safe-write.h    safe-write.c          ---                         safe-read
635
636 full-read.h     full-read.c           ---                         safe-read
637
638 full-write.h    full-write.c          ---                         safe-write
639
640 -------------------------------------------------------------------------------
641
642 + File stream based Input/Output
643
644 -------------------------------------------------------------------------------
645 lib/            lib/                  m4/
646 Header          Implementation        Autoconf macro              Depends on
647 -------------------------------------------------------------------------------
648
649 __fpending.h    __fpending.c          fpending.m4                 ---
650                                       jm_FUNC_FPENDING
651
652 closeout.h      closeout.c            AC_CHECK_HEADERS(stdlib.h)  unlocked-io
653                                                                   gettext
654                                                                   error
655                                                                   quotearg
656                                                                   fpending
657
658 stdio-safer.h   fopen-safer.c         AC_CHECK_HEADERS(unistd.h)  unistd-safer
659
660 NYI             getpass.c             AC_REPLACE_FUNCS(getpass)   unlocked-io
661                                                                   getline
662
663 -------------------------------------------------------------------------------
664
665 + Users and groups
666
667 -------------------------------------------------------------------------------
668 lib/            lib/                  m4/
669 Header          Implementation        Autoconf macro              Depends on
670 -------------------------------------------------------------------------------
671
672 NYI             getugroups.c          AC_STDC_HEADERS             ---
673                                       AC_CHECK_HEADERS(unistd.h)
674                                       AC_CHECK_HEADERS(string.h)
675                                       AC_TYPE_GETGROUPS
676
677 group-member.h  group-member.c        group-member.m4             xalloc
678                                       jm_FUNC_GROUP_MEMBER
679                                       AC_STDC_HEADERS
680                                       AC_CHECK_HEADERS(unistd.h)
681                                       AC_FUNC_GETGROUPS
682                                       AC_GNU_SOURCE
683
684 NYI             idcache.c             AC_STDC_HEADERS             xalloc
685                                       AC_CHECK_HEADERS(unistd.h)
686                                       AC_CHECK_HEADERS(string.h)
687
688 NYI             userspec.c            AC_STDC_HEADERS             alloca
689                                       AC_FUNC_ALLOCA              xalloc
690                                       AC_CHECK_HEADERS(string.h)  xstrtol
691                                       AC_CHECK_HEADERS(limits.h)  strdup
692                                       AC_CHECK_HEADERS(unistd.h)  gettext
693                                       AC_CHECK_HEADERS(sys/param.h)
694
695 -------------------------------------------------------------------------------
696
697 + Date and time
698
699 -------------------------------------------------------------------------------
700 lib/            lib/                  m4/
701 Header          Implementation        Autoconf macro              Depends on
702 -------------------------------------------------------------------------------
703
704 NYI             gettime.c             for clock_gettime           gettimeofday
705                 timespec.h (BAD)      see jm-macros.m4
706
707 NYI             settime.c             for clock_settime           ---
708                 timespec.h (BAD)      see jm-macros.m4
709
710 NYI             stime.c               ---                         ---
711                 (TODO: remove)
712
713 posixtm.h       posixtm.c             AC_HEADER_TIME              unlocked-io
714                                       AC_CHECK_HEADERS(string.h)
715                                       AC_CHECK_HEADERS(stdlib.h)
716
717 -------------------------------------------------------------------------------
718
719 + Networking functions
720
721 -------------------------------------------------------------------------------
722 lib/            lib/                  m4/
723 Header          Implementation        Autoconf macro              Depends on
724 -------------------------------------------------------------------------------
725
726 NYI             gethostname.c         AC_REPLACE_FUNCS(gethostname) ---
727                                       AC_CHECK_FUNCS(uname)
728
729 NYI             xgethostname.c        ---                         gehostname
730                                                                   xalloc
731                                                                   error
732
733 NYI             canon-host.c          jm_PREREQ_CANON_HOST        ---
734                                       AC_CHECK_HEADERS(stdlib.h)
735
736 -------------------------------------------------------------------------------
737
738 + Internationalization functions
739
740 -------------------------------------------------------------------------------
741 lib/            lib/                  m4/
742 Header          Implementation        Autoconf macro              Depends on
743 -------------------------------------------------------------------------------
744
745 gettext.h       libintl               gettext.m4 et al.           ---
746                 (part of gettext)     (use gettextize)
747                                       AM_GNU_GETTEXT
748
749 iconv.h         libiconv              iconv.m4 et al.             ---
750                 (part of libiconv)    AM_ICONV
751
752 NYI             localcharset.c        codeset.m4                  ---
753                 config.charset        glibc21.m4
754                 ref-add.sin           AC_CANONICAL_HOST
755                 ref-del.sin           jm_LANGINFO_CODESET
756                                       jm_GLIBC21
757                                       AC_CHECK_HEADERS(stddef.h)
758                                       AC_CHECK_HEADERS(stdlib.h)
759                                       AC_CHECK_HEADERS(string.h)
760                                       AC_CHECK_FUNCS(setlocale)
761                                       see libiconv/libcharset/INTEGRATE
762
763 hard-locale.h   hard-locale.c         jm_PREREQ_HARD_LOCALE       ---
764
765 mbswidth.h      mbswidth.c            mbswidth.m4                 ---
766                                       mbrtowc.m4
767                                       mbstate_t.m4
768                                       jm_PREREQ_MBSWIDTH
769
770 memcasecmp.h    memcasecmp.c          AC_STDC_HEADERS             ---
771                                       HAVE_ISASCII
772
773 memcoll.h       memcoll.c             AC_CHECK_HEADERS(string.h)  ---
774
775 xmemcoll.h      xmemcoll.c            ---                         memcoll
776                                                                   gettext
777                                                                   error
778                                                                   quotearg
779
780 unicodeio.h     unicodeio.c           AC_CHECK_HEADERS(stddef.h)  iconv
781                                       AC_CHECK_HEADERS(string.h)  gettext
782
783 NYI             rpmatch.c             AC_REPLACE_FUNCS(rpmatch)   gettext
784                                       AC_STDC_HEADERS             regex
785
786 NYI             yesno.c               AC_CHECK_HEADERS(stdlib.h)  unlocked-io
787                                                                   rpmatch
788
789 -------------------------------------------------------------------------------
790
791 + Executing programs
792
793 + Java
794
795 + Misc
796
797 -------------------------------------------------------------------------------
798 lib/            lib/                  m4/
799 Header          Implementation        Autoconf macro              Depends on
800 -------------------------------------------------------------------------------
801
802 exitfail.h      exitfail.c            AC_CHECK_HEADERS(stdlib.h)  ---
803
804 c-stack.h       c-stack.c             c-stack.m4                  gettext
805                                       jm_PREREQ_C_STACK
806
807 error.h         error.c               error.m4                    unlocked-io
808                                       strerror_r.m4               gettext
809                                       jm_PREREQ_ERROR
810
811 fatal.h         fatal.c               AC_STDC_HEADERS             unlocked-io
812                                       AC_CHECK_FUNCS(vprintf)     error
813                                       AC_CHECK_FUNCS(doprnt)
814
815 NYI             getloadavg.c          getloadavg.m4               ---
816                                       AC_FUNC_GETLOADAVG
817
818 getpagesize.h   ---                   jm_PREREQ_GETPAGESIZE       ---
819
820 NYI             getusershell.c        AC_REPLACE_FUNCS(getusershell) xalloc
821                                       AC_CHECK_HEADERS(stdlib.h)  unlocked-io
822                                       AC_CHECK_FUNCS(isascii)
823
824 physmem.h       physmem.c             jm_PREREQ_PHYSMEM           ---
825
826 posixver.h      posixver.c            jm_PREREQ_POSIXVER          ---
827
828 quotearg.h      quotearg.c            mbrtowc.m4                  xalloc
829                                       jm_PREREQ_QUOTEARG          gettext
830                                       AC_CHECK_FUNCS(mbsinit)
831
832 quote.h         quote.c               AC_CHECK_HEADERS(stddef.h)  quotearg
833
834 readutmp.h      readutmp.c            jm_PREREQ_READUTMP          xalloc
835                                       AC_CHECK_DECLS(getutent)    unlocked-io
836
837 sig2str.h       sig2str.c             AC_REPLACE_FUNCS(sig2str)   ---
838                 (TODO: use strsignal)
839
840 -------------------------------------------------------------------------------
841
842
843 Ideally a module could consist of:
844 - A header file: lib/module.h
845 - One or more implementation files: lib/module.c et al.
846 - One or more autoconf macro files: m4/module.m4 et al.
847 - A configure.ac fragment: m4/module.ac
848 - A Makefile.am fragment: lib/module.am
849 - Some documentation
850 - A POT file and some PO files
851 - A testsuite
852 - A dependency list: modules/module.dep