source: rtems/cpukit/configure.ac @ 89ac281

Last change on this file since 89ac281 was 2afb22b, checked in by Chris Johns <chrisj@…>, on Dec 23, 2017 at 7:18:56 AM

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

  • Property mode set to 100644
File size: 14.1 KB
Line 
1## Process this file with autoconf to produce a configure script.
2
3AC_PREREQ([2.69])
4AC_INIT([rtems-cpukit],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
5AC_CONFIG_SRCDIR([score])
6RTEMS_TOP([..],[])
7RTEMS_SOURCE_TOP
8RTEMS_BUILD_TOP
9
10RTEMS_CANONICAL_TARGET_CPU
11
12AM_INIT_AUTOMAKE([no-define nostdinc subdir-objects foreign 1.12.2])
13AM_MAINTAINER_MODE
14
15RTEMS_ENABLE_MULTIPROCESSING
16RTEMS_ENABLE_POSIX
17RTEMS_ENABLE_RTEMS_DEBUG
18RTEMS_ENABLE_NETWORKING
19RTEMS_ENABLE_PARAVIRT
20RTEMS_ENABLE_PROFILING
21RTEMS_ENABLE_DRVMGR
22
23RTEMS_ENV_RTEMSCPU
24RTEMS_CHECK_RTEMS_DEBUG
25
26AC_DEFUN([RTEMS_TOOL_CHAIN_ERROR],AC_MSG_ERROR([please update your tool chain via the RSB <https://docs.rtems.org/branches/master/rsb/quick-start.html>]))
27
28# Is this a supported CPU?
29AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
30if test -d "$srcdir/score/cpu/$RTEMS_CPU"; then
31  AC_MSG_RESULT(yes)
32else
33  AC_MSG_ERROR(no)
34fi
35
36RTEMS_PROG_CC_FOR_TARGET
37AM_PROG_CC_C_O
38RTEMS_CANONICALIZE_TOOLS
39RTEMS_PROG_CCAS
40AC_PROG_RANLIB
41
42RTEMS_CHECK_NEWLIB
43
44# BSD-isms, used throughout the sources
45# Not really used by this configure script
46# FIXME: They should be eliminated if possible.
47AC_CHECK_FUNCS([strsep strcasecmp snprintf])
48AC_CHECK_FUNCS([strdup strndup strncasecmp])
49AC_CHECK_FUNCS([bcopy bcmp])
50AC_CHECK_FUNCS([isascii fileno])
51
52# <FIXME>
53#   Check for functions supplied by newlib >= 1.17.0
54# Newlib's posix/ directory
55AC_CHECK_FUNCS([readdir_r isatty])
56AC_CHECK_FUNCS([creat \
57  opendir closedir readdir rewinddir scandir seekdir \
58  sleep \
59  telldir \
60  usleep],,
61  [RTEMS_TOOL_CHAIN_ERROR])
62AC_CHECK_FUNCS([__assert])
63AC_CHECK_FUNCS([execl execlp execle execv execvp execve])
64AC_CHECK_FUNCS([regcomp regexec regerror regfree])
65
66# Mandated by POSIX, decls not present in some versions of newlib
67AC_CHECK_DECLS([flockfile],[AC_CHECK_FUNCS([flockfile])],,[#include <stdio.h>])
68AC_CHECK_DECLS([funlockfile],[AC_CHECK_FUNCS([funlockfile])],,[#include <stdio.h>])
69AC_CHECK_DECLS([ftrylockfile],[AC_CHECK_FUNCS([ftrylockfile])],,[#include <stdio.h>])
70
71# Newlib proprietary
72AC_CHECK_MEMBER([struct _Thread_queue_Queue._name],[],[RTEMS_TOOL_CHAIN_ERROR],[#include <sys/lock.h>])
73
74# Mandated by POSIX, older newlibs bogusly provided CLOCK_PROCESS_CPUTIME+CLOCK_THREAD_CPUTIME
75AC_CHECK_DECL([CLOCK_PROCESS_CPUTIME_ID],[],[RTEMS_TOOL_CHAIN_ERROR],[#include <time.h>])
76AC_CHECK_DECL([CLOCK_THREAD_CPUTIME_ID],[],[RTEMS_TOOL_CHAIN_ERROR],[#include <time.h>])
77
78# Mandated by POSIX, decls not present in some versions of newlib,
79# some versions stubbed in newlib's rtems crt0
80RTEMS_CHECK_FUNC([seteuid],[#include <unistd.h>])
81RTEMS_CHECK_FUNC([geteuid],[#include <unistd.h>])
82RTEMS_CHECK_FUNC([setegid],[#include <unistd.h>])
83RTEMS_CHECK_FUNC([getegid],[#include <unistd.h>])
84RTEMS_CHECK_FUNC([setuid],[#include <unistd.h>])
85RTEMS_CHECK_FUNC([getuid],[#include <unistd.h>])
86RTEMS_CHECK_FUNC([setgid],[#include <unistd.h>])
87RTEMS_CHECK_FUNC([getgid],[#include <unistd.h>])
88RTEMS_CHECK_FUNC([setsid],[#include <unistd.h>])
89RTEMS_CHECK_FUNC([getsid],[#include <unistd.h>])
90RTEMS_CHECK_FUNC([setpgid],[#include <unistd.h>])
91RTEMS_CHECK_FUNC([getpgid],[#include <unistd.h>])
92RTEMS_CHECK_FUNC([setpgrp],[#include <unistd.h>])
93RTEMS_CHECK_FUNC([getpgrp],[#include <unistd.h>])
94
95# pthread-functions not declared in some versions of newlib.
96RTEMS_CHECK_FUNC([pthread_attr_getguardsize],[#include <pthread.h>])
97RTEMS_CHECK_FUNC([pthread_attr_setguardsize],[#include <pthread.h>])
98RTEMS_CHECK_FUNC([pthread_attr_setstack],[#include <pthread.h>])
99RTEMS_CHECK_FUNC([pthread_attr_getstack],[#include <pthread.h>])
100
101# These are SMP related and were added to newlib by RTEMS.
102RTEMS_CHECK_FUNC([pthread_attr_setaffinity_np],[
103  #define _GNU_SOURCE
104  #include <pthread.h>])
105RTEMS_CHECK_FUNC([pthread_attr_getaffinity_np],[
106  #define _GNU_SOURCE
107  #include <pthread.h>])
108RTEMS_CHECK_FUNC([pthread_setaffinity_np],[
109  #define _GNU_SOURCE
110  #include <pthread.h>])
111RTEMS_CHECK_FUNC([pthread_getaffinity_np],[
112  #define _GNU_SOURCE
113  #include <pthread.h>])
114RTEMS_CHECK_FUNC([pthread_getattr_np],[
115  #define _GNU_SOURCE
116  #include <pthread.h>])
117
118# Mandated by POSIX, not declared in some versions of newlib.
119AC_CHECK_DECLS([getrusage],,,[#include sys/resource.h])
120
121# Newlib's unix/ directory
122AC_CHECK_FUNCS([ttyname getcwd])
123# </FIXME>
124
125# Check if the installed toolchain provides these headers
126# and error out if not.
127AC_CHECK_HEADERS([errno.h sched.h semaphore.h sys/cdefs.h sys/queue.h tar.h threads.h],,
128  [RTEMS_TOOL_CHAIN_ERROR])
129
130## error out if libc doesn't provide stdint.h
131AS_IF([test x"${ac_cv_header_stdint_h}" != xyes],
132[RTEMS_TOOL_CHAIN_ERROR])
133
134## error out if libc doesn't provide inttypes.h
135AS_IF([test x"${ac_cv_header_inttypes_h}" != xyes],
136[RTEMS_TOOL_CHAIN_ERROR])
137
138AC_HEADER_STDBOOL
139AS_IF([test x"${ac_cv_header_stdbool_h}" != xyes],
140[RTEMS_TOOL_CHAIN_ERROR])
141
142AC_CHECK_TYPES([ uint8_t,  int8_t])
143AC_CHECK_TYPES([uint16_t, int16_t])
144AC_CHECK_TYPES([uint32_t, int32_t])
145AC_CHECK_TYPES([uint64_t, int64_t])
146AC_CHECK_TYPES([uintmax_t, intmax_t])
147AC_CHECK_TYPES([uintptr_t, intptr_t])
148
149# Some toolchain sanity checks and diagnostics
150RTEMS_CHECK_GCC_SANITY
151
152# These are conditionally defined by the toolchain
153# FIXME: we should either conditionally compile those parts in
154# RTEMS depending on them, or abort - For now, simply check.
155AC_CHECK_HEADER([pthread.h],[
156  AC_CHECK_TYPES([pthread_rwlock_t])
157  AC_CHECK_TYPES([pthread_barrier_t])
158  AC_CHECK_TYPES([pthread_spinlock_t])
159  AC_CHECK_TYPES([struct _pthread_cleanup_context],[],[RTEMS_TOOL_CHAIN_ERROR],[#include <pthread.h>])
160  AC_CHECK_TYPES([struct _Priority_Node],[],[RTEMS_TOOL_CHAIN_ERROR],[#include <pthread.h>])
161])
162
163AC_CHECK_HEADER([signal.h],[
164  AC_CHECK_TYPES([sighandler_t])
165])
166
167if test x"$RTEMS_USE_NEWLIB" = xyes ; then
168  AC_CHECK_DECLS([__getreent],[],[RTEMS_TOOL_CHAIN_ERROR],[#include <sys/reent.h>])
169fi
170
171RTEMS_CHECK_MULTIPROCESSING
172RTEMS_CHECK_POSIX_API
173RTEMS_CHECK_NETWORKING
174RTEMS_CHECK_SMP
175if test "${RTEMS_HAS_SMP}" = "yes"; then
176  AC_CHECK_HEADERS([stdatomic.h],[],[RTEMS_TOOL_CHAIN_ERROR])
177fi
178
179rtems_major=`echo _RTEMS_VERSION | sed "s/\..*//"`
180rtems_minor=`echo _RTEMS_VERSION | sed "s/[[0-9]][[0-9]]*\.//;s/\..*//"`
181rtems_revision=`echo _RTEMS_VERSION | sed "s/[[0-9]][[0-9]]*\.//;s/[[0-9]][[0-9]]*\.//;s/\..*//"`
182
183_RTEMS_CPUOPT_INIT
184
185RTEMS_CPUOPT([RTEMS_DEBUG],
186  [test x"${enable_rtems_debug}" = x"yes"],
187  [1],
188  [if RTEMS_DEBUG is enabled])
189
190RTEMS_CPUOPT([RTEMS_MULTIPROCESSING],
191  [test x"$enable_multiprocessing" = xyes],
192  [1],
193  [if multiprocessing is enabled])
194
195RTEMS_CPUOPT([RTEMS_NEWLIB],
196  [test x"$RTEMS_USE_NEWLIB" = xyes],
197  [1],
198  [if using newlib])
199
200RTEMS_CPUOPT([RTEMS_POSIX_API],
201  [test x"$rtems_cv_HAS_POSIX_API" = xyes],
202  [1],
203  [if posix api is supported])
204
205RTEMS_CPUOPT([RTEMS_SMP],
206  [test x"$RTEMS_HAS_SMP" = xyes],
207  [1],
208  [if SMP is enabled])
209
210RTEMS_CPUOPT([RTEMS_PARAVIRT],
211  [test x"$RTEMS_HAS_PARAVIRT" = xyes],
212  [1],
213  [PARAVIRT is enabled])
214
215RTEMS_CPUOPT([RTEMS_PROFILING],
216  [test x"$RTEMS_HAS_PROFILING" = xyes],
217  [1],
218  [if profiling is enabled])
219
220RTEMS_CPUOPT([RTEMS_NETWORKING],
221  [test x"$rtems_cv_HAS_NETWORKING" = xyes],
222  [1],
223  [if networking is enabled])
224
225RTEMS_CPUOPT([RTEMS_DRVMGR_STARTUP],
226  [test x"$enable_drvmgr" = xyes],
227  [1],
228  [if driver manager api is supported])
229
230RTEMS_CPUOPT([RTEMS_VERSION],
231  [true],
232  ["]_RTEMS_VERSION["],
233  [RTEMS version string])
234
235## Header file differences that need to be known in .h after install
236
237## Deactivate ada bindings
238RTEMS_CPUOPT([__RTEMS_ADA__],
239  [test x"${enable_ada}" = x"yes"],
240  [1],
241  [Define to 1 if ada/gnat bindings are built-in])
242
243# These are used to provide <rtems/inttypes.h
244AC_CHECK_SIZEOF([mode_t])
245AC_CHECK_SIZEOF([off_t])
246AC_CHECK_SIZEOF([time_t])
247AC_CHECK_SIZEOF([size_t])
248AC_CHECK_SIZEOF([blksize_t])
249AC_CHECK_SIZEOF([blkcnt_t])
250
251## Provide sizeof(mode_t) information via cpuopts.h
252RTEMS_CPUOPT([__RTEMS_SIZEOF_MODE_T__],
253  [true],
254  [${ac_cv_sizeof_mode_t}],
255  [sizeof(mode_t)])
256
257## Provide sizeof(off_t) information via cpuopts.h
258RTEMS_CPUOPT([__RTEMS_SIZEOF_OFF_T__],
259  [true],
260  [${ac_cv_sizeof_off_t}],
261  [sizeof(off_t)])
262
263## Provide sizeof(time_t) information via cpuopts.h
264RTEMS_CPUOPT([__RTEMS_SIZEOF_TIME_T__],
265  [true],
266  [${ac_cv_sizeof_time_t}],
267  [sizeof(time_t)])
268
269## Provide sizeof(blksize_t) information via cpuopts.h
270RTEMS_CPUOPT([__RTEMS_SIZEOF_BLKSIZE_T__],
271  [true],
272  [${ac_cv_sizeof_blksize_t}],
273  [sizeof(blksize_t)])
274
275## Provide sizeof(blkcnt_t) information via cpuopts.h
276RTEMS_CPUOPT([__RTEMS_SIZEOF_BLKCNT_T__],
277  [true],
278  [${ac_cv_sizeof_blkcnt_t}],
279  [sizeof(blkcnt_t)])
280
281## Then we propagate a private copy of the value into cpuopts.h
282## so it is always available to the RTEMS header files.
283
284RTEMS_CPUOPT([__RTEMS_MAJOR__],
285  [true],
286  [$rtems_major],
287  [major version portion of an RTEMS release])
288
289RTEMS_CPUOPT([__RTEMS_MINOR__],
290  [true],
291  [$rtems_minor],
292  [minor version portion of an RTEMS release])
293
294RTEMS_CPUOPT([__RTEMS_REVISION__],
295  [true],
296  [$rtems_revision],
297  [revision version portion of an RTEMS release])
298
299_RTEMS_CPUOPT_FINI
300
301AC_ENABLE_MULTILIB([Makefile],[..])
302
303# libmisc/shell/* wants to assign file descriptors to stdio file descriptors.
304AC_MSG_CHECKING([for assignable stdio])
305AC_COMPILE_IFELSE(
306  [AC_LANG_PROGRAM(
307    [#include <stdio.h>],
308    [stdin = fopen("/tmp", "r")])],
309  [HAVE_ASSIGNABLE_STDIO=yes],
310  [HAVE_ASSIGNABLE_STDIO=no])
311AC_MSG_RESULT([$HAVE_ASSIGNABLE_STDIO])
312
313# libmisc/serdbg exploits weak symbols
314RTEMS_CHECK_GCC_WEAK
315
316# FIXME: These checks are only in here to provide
317# configuration-time diagnostics and are not really used.
318AC_CHECK_DECLS([_POSIX_LOGIN_NAME_MAX],,,[#include <limits.h>])
319AC_CHECK_DECLS([CHAR_BIT],,,[#include <limits.h>])
320
321# FIXME: Mandatory in SUSv4, optional in SUSv3.
322#   Not implemented in GCC/newlib, so far.
323AC_CHECK_DECLS([WORD_BIT],,,[#include <limits.h>])
324AC_CHECK_DECLS([LONG_BIT],,,[#include <limits.h>])
325
326## BSD-ism, excluded from POSIX, but available on most platforms
327AC_CHECK_DECLS([sbrk],,,[#include <unistd.h>])
328AC_CHECK_DECLS([rcmd],,,[#include <unistd.h>])
329
330## Check if libc provides BSD's strlcpy/strlcat
331AC_CHECK_FUNCS(strlcpy strlcat)
332
333## Check if libc provides decl of utime
334## FIXME: utime has been deprecated in SUSv4.
335##        and is likely to be removed in future versions.
336## FIXME (BUG in newlib): SUSv4 saids including <utime.h> should be sufficient.
337AC_CHECK_DECLS([utime],,,[#include <sys/types.h>
338#include <utime.h>])
339## Check if libc provides decl of utimes
340AC_CHECK_DECLS([utimes],,,[#include <sys/time.h>])
341
342# Ensure that Newlib does not provide things now in <machine/_timecounter.h>
343AC_CHECK_DECLS([_Timecounter_Time_second],[RTEMS_TOOL_CHAIN_ERROR],,[#include <sys/time.h>])
344
345# ... far too many conditionals ...
346AM_CONDITIONAL(LIBRPC,[test x"$rtems_cv_HAS_NETWORKING" = x"yes"])
347AM_CONDITIONAL(NEWLIB,test x"$RTEMS_USE_NEWLIB" = x"yes")
348
349AM_CONDITIONAL(HAS_MP,test x"$enable_multiprocessing" = x"yes" )
350AM_CONDITIONAL(HAS_SMP,[test "$RTEMS_HAS_SMP" = "yes"])
351
352AM_CONDITIONAL(HAS_PTHREADS,test x"$rtems_cv_HAS_POSIX_API" = x"yes")
353AM_CONDITIONAL(LIBNETWORKING,test x"$rtems_cv_HAS_NETWORKING" = x"yes")
354
355AM_CONDITIONAL([LIBSHELL],[test x"$HAVE_ASSIGNABLE_STDIO" = x"yes"])
356AM_CONDITIONAL([LIBSERDBG],[test x"$rtems_cv_cc_attribute_weak" = x"yes"])
357AM_CONDITIONAL([LIBGNAT],[test x"$rtems_cv_HAS_POSIX_API" = x"yes" \
358&& test x"$enable_ada" = x"yes"])
359
360AM_CONDITIONAL([LIBUTF8PROC],[test $ac_cv_sizeof_size_t -gt 2])
361
362AM_CONDITIONAL([LIBDOSFS],[dnl
363test x"$ac_cv_type_uint8_t" = xyes \
364&& test x"$ac_cv_type_uint16_t" = xyes])
365
366AC_CONFIG_HEADER(config.h)
367
368## These are needed by the NFS Client
369AC_CHECK_PROG(RPCGEN,rpcgen,rpcgen)
370AM_CONDITIONAL([RPCTOOLS],[test "$RPCGEN" = rpcgen \
371&& test -n "$AWK" \
372&& test "$enable_rpcgen" = yes])
373
374# Filter dynamic loading to only build for architectures that have
375# reloc backends
376AC_MSG_CHECKING([whether CPU supports libdl])
377case $RTEMS_CPU in
378  arm | i386 | m68k | mips | moxie | powerpc | sparc)
379   HAVE_LIBDL=yes ;;
380  # bfin has an issue to resolve with libdl. See ticket #2252
381  bfin)
382   HAVE_LIBDL=no ;;
383  # lm32 has an issue to resolve with libdl. See ticket #2283
384  lm32)
385   HAVE_LIBDL=no ;;
386  # v850 has an issue to resolve with libdl. See ticket #2260
387  v850)
388   HAVE_LIBDL=no ;;
389  *)
390   HAVE_LIBDL=no ;;
391esac
392AM_CONDITIONAL(LIBDL,[test x"$HAVE_LIBDL" = x"yes"])
393AC_MSG_RESULT([$HAVE_LIBDL])
394
395# Filter debugger to only build for architectures that have a target backend
396AC_MSG_CHECKING([whether CPU supports libdebugger])
397case $RTEMS_CPU in
398  arm | i386)
399   HAVE_LIBDEBUGGER=yes ;;
400  *)
401   HAVE_LIBDEBUGGER=no ;;
402esac
403AM_CONDITIONAL(LIBDEBUGGER,[test x"$HAVE_LIBDEBUGGER" = x"yes"])
404AC_MSG_RESULT([$HAVE_LIBDEBUGGER])
405
406AC_MSG_CHECKING([whether CPU supports SHA])
407case $RTEMS_CPU in
408  m32c)
409   HAVE_SHA=no ;;
410  *)
411   HAVE_SHA=yes ;;
412esac
413AM_CONDITIONAL(SHA,[test x"$HAVE_SHA" = x"yes"])
414AC_MSG_RESULT([$HAVE_SHA])
415
416# Filter libpci to only build for architectures that have support for it
417AC_MSG_CHECKING([whether CPU supports libpci])
418case $RTEMS_CPU in
419  sparc)
420   HAVE_LIBPCI=yes ;;
421  *)
422   HAVE_LIBPCI=no ;;
423esac
424AM_CONDITIONAL(LIBPCI,[test x"$HAVE_LIBPCI" = x"yes"])
425AC_MSG_RESULT([$HAVE_LIBPCI])
426
427# Filter libdrvmgr to only build for architectures that have support for it
428AC_MSG_CHECKING([whether CPU supports libdrvmgr])
429case $RTEMS_CPU in
430  sparc)
431   HAVE_LIBDRVMGR=yes ;;
432  *)
433   HAVE_LIBDRVMGR=no ;;
434esac
435AM_CONDITIONAL(LIBDRVMGR,[test x"$HAVE_LIBDRVMGR" = x"yes"])
436AC_MSG_RESULT([$HAVE_LIBDRVMGR])
437
438
439RTEMS_AMPOLISH3
440
441# Explicitly list all Makefiles here
442AC_CONFIG_FILES([
443Doxyfile
444Makefile
445dev/Makefile
446dtc/libfdt/Makefile
447rtems/Makefile
448sapi/Makefile
449score/Makefile
450score/cpu/Makefile
451score/cpu/arm/Makefile
452score/cpu/bfin/Makefile
453score/cpu/epiphany/Makefile
454score/cpu/i386/Makefile
455score/cpu/lm32/Makefile
456score/cpu/m68k/Makefile
457score/cpu/m32c/Makefile
458score/cpu/mips/Makefile
459score/cpu/moxie/Makefile
460score/cpu/nios2/Makefile
461score/cpu/or1k/Makefile
462score/cpu/powerpc/Makefile
463score/cpu/riscv/Makefile
464score/cpu/sh/Makefile
465score/cpu/sparc/Makefile
466score/cpu/sparc64/Makefile
467score/cpu/v850/Makefile
468score/cpu/no_cpu/Makefile
469posix/Makefile
470libblock/Makefile
471libdrvmgr/Makefile
472libfs/Makefile
473libfs/src/nfsclient/Makefile
474libgnat/Makefile
475libcrypt/Makefile
476libcsupport/Makefile
477libnetworking/Makefile
478libpci/Makefile
479librpc/Makefile
480libmisc/Makefile
481libi2c/Makefile
482libmd/Makefile
483libdl/Makefile
484libstdthreads/Makefile
485libdebugger/Makefile
486zlib/Makefile
487ftpd/Makefile
488telnetd/Makefile
489pppd/Makefile
490mghttpd/Makefile
491wrapup/Makefile])
492
493AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.