1 dnl $Id: configure.in,v 1.169 2002-10-11 14:18:22 didg Exp $
2 dnl configure.in for netatalk
4 AC_INIT(bin/adv1tov2/adv1tov2.c)
6 NETATALK_VERSION=`cat $srcdir/VERSION`
7 AC_SUBST(NETATALK_VERSION)
10 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
11 AM_CONFIG_HEADER(config.h)
13 dnl Checks for programs.
25 dnl *********************************************************************
26 dnl FIXME! FIXME! These should be selectable properly, and should produce
27 dnl the proper flags and defines...
28 dnl *********************************************************************
30 dnl Checks for libraries.
31 dnl Replace `main' with a function in -labs:
32 AC_CHECK_LIB(abs, main)
33 dnl Replace `main' with a function in -laudit:
34 AC_CHECK_LIB(audit, main)
35 dnl Replace `main' with a function in -lauth:
36 AC_CHECK_LIB(auth, main)
37 dnl Replace `main' with a function in -lcmd:
38 AC_CHECK_LIB(cmd, main)
39 dnl Replace `main' with a function in -lcrypt:
40 AC_CHECK_LIB(crypt, main)
41 dnl Replace `main' with a function in -ld:
43 dnl Replace `main' with a function in -ldl:
44 AC_CHECK_LIB(dl, main)
45 dnl Replace `main' with a function in -lkauth:
46 AC_CHECK_LIB(kauth, main)
47 dnl Replace `main' with a function in -lkrb:
48 AC_CHECK_LIB(krb, main)
49 dnl Replace `main' with a function in -llwp:
50 AC_CHECK_LIB(lwp, main)
51 dnl Replace `main' with a function in -ln:
53 dnl Replace `main' with a function in -lnsl:
54 AC_CHECK_LIB(nsl, main)
55 dnl Replace `main' with a function in -lprot:
56 AC_CHECK_LIB(prot, main)
57 dnl Replace `main' with a function in -lrx:
58 AC_CHECK_LIB(rx, main)
59 dnl Replace `main' with a function in -lrxkad:
60 AC_CHECK_LIB(rxkad, main)
61 dnl Replace `main' with a function in -lsocket:
62 AC_CHECK_LIB(socket, main)
63 dnl Replace `main' with a function in -lsys:
64 AC_CHECK_LIB(sys, main)
65 dnl Replace `main' with a function in -lubik:
66 AC_CHECK_LIB(ubik, main)
69 # Check presence of some functions
71 # Check for XPG4 access() function
72 # Be sure to test before adding AFS libs in LIBS path as AFS lib
73 # has such a function that works only on AFS filesystems.
74 AC_CHECK_FUNCS(access)
76 AC_CHECK_FUNCS(pread pwrite)
78 dnl Checks for header files.
82 AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h sys/mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h)
83 AC_CHECK_HEADER(sys/cdefs.h,,
84 AC_MSG_RESULT([enabling generic cdefs.h from tree])
85 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
88 dnl Checks for typedefs, structures, and compiler characteristics.
100 dnl Checks for library functions.
102 AC_PROG_GCC_TRADITIONAL
109 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
112 dnl Checks for (v)snprintf
113 NETATALK_SNPRINTF_CHECK
115 dnl --------------------------------------------------------------------------
116 dnl specific configuration comes in here:
117 dnl --------------------------------------------------------------------------
119 AC_DEFINE(ADMIN_GRP, 1)
121 AC_ARG_WITH(admin-group,
122 [ --disable-admin-group disable admin group],
123 if test "$enableval" = "no"; then
124 AC_DEFINE(ADMIN_GRP, 0)
125 AC_MSG_RESULT([disabling administrative group support])
134 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
135 use --without-logfile to disable logger],
136 if test "$withval" = "no"; then
137 AC_DEFINE(DISABLE_LOGGER, 1)
138 AC_MSG_RESULT([logger disabled])
139 elif test "$withval" != "yes"; then
140 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval")
141 AC_MSG_RESULT([logfile set to $withval])
143 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
144 AC_MSG_RESULT([logfile set to default])
146 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
147 AC_MSG_RESULT([logfile set to default])
150 AC_ARG_WITH(cracklib,
151 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
152 if test "x$withval" != "xno" ; then
154 AC_CHECK_LIB(crack, main,
155 AC_DEFINE(USE_CRACKLIB)
157 AC_MSG_RESULT([enabling cracklib support])
158 if test "$cracklib" = "yes"; then
159 cracklib="/usr/lib/cracklib_dict"
161 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
162 [path to cracklib dictionary])
163 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
164 AC_MSG_ERROR([cracklib not found!])
170 [ --disable-ddp disable DDP],
171 if test "$enableval" = "no"; then
173 AC_MSG_RESULT([disabling DDP])
178 [ --enable-debug enable debug code],
179 if test "$enableval" != "no"; then
180 if test "$enableval" = "yes"; then
183 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
185 AC_MSG_RESULT([enabling debugging code])
191 [ --enable-afp3 enable AFP 3.x calls],
192 if test "$enableval" = "yes"; then
195 AC_MSG_RESULT([enabling AFP 3.x calls])
199 if test "$afp3" = "yes"; then
204 dnl ----------- A NOTE ABOUT DROPKLUDGE
205 dnl The trouble with this fix is that if you know what the file is called, it
206 dnl can be read from the Unix side. That's okay for most academic institutions
207 dnl since the students don't have telnet access to the Mac servers. There is
208 dnl currently no one working on further development/fixes of DROPKLUDGE.
211 AC_ARG_ENABLE(dropkludge,
212 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
213 if test "$enableval" = "yes"; then
214 AC_DEFINE(DROPKLUDGE, 1)
215 AC_MSG_RESULT([enabling experimental dropbox support])
219 AC_ARG_ENABLE(force-uidgid,
220 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
221 if test "$enableval" = "yes"; then
222 AC_DEFINE(FORCE_UIDGID, 1)
223 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
227 dnl Don't use DB3 unless it's needed
230 dnl Determine DID scheme
231 AC_MSG_CHECKING([for DID scheme to use])
233 [ --with-did=SCHEME set DID scheme (cnid,last)],
234 [ did_scheme="$withval" ],
235 [ did_scheme="cnid" ]
238 if test "x$did_scheme" = "xlast"; then
239 AC_DEFINE(USE_LASTDID, 1)
240 AC_MSG_RESULT([last])
241 elif test "x$did_scheme" = "xcnid"; then
243 AC_DEFINE(CNID_DB, 1)
244 AC_MSG_RESULT([enabling build with CNID DB support])
246 AC_MSG_ERROR([unknown DID scheme])
248 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
250 dnl Determine whether or not to use filename mangling
251 AC_MSG_CHECKING([whether or not to use filename mangling])
252 AC_ARG_WITH(mangling,
253 [ --with-mangling enable filename mangling],
254 if test "$withval" = "yes"; then
255 if test "x$did_scheme" != "xcnid"; then
256 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
258 AC_DEFINE(FILE_MANGLING, 1)
264 , AC_MSG_RESULT([no])
267 dnl Determine whether or not to use CDB or transactional DB store
268 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
270 [ --with-cdb enable CNID with Concurrent Data Store],
271 if test "$withval" = "yes"; then
272 if test "x$did_scheme" != "xcnid"; then
273 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
275 AC_DEFINE(CNID_DB_CDB, 1)
281 , AC_MSG_RESULT([no])
284 dnl Check for Berkeley DB3 library
285 if test "x$db3_required" = "xyes"; then
286 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
289 dnl Check for quota support
292 dnl Check for optional server location protocol support (used by MacOS X)
295 dnl Check for PAM libs
297 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
298 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
304 AC_MSG_CHECKING([whether shadow support should be enabled])
306 [ --with-shadow enable shadow password support],
307 [shadowpw="$withval"],
310 if test "x$shadowpw" = "xyes"; then
313 AC_MSG_RESULT([$shadowpw])
315 AC_ARG_ENABLE(shell-check,
316 [ --disable-shell-check disable checking for a valid shell],
317 if test "$enableval" = "no"; then
318 AC_DEFINE(DISABLE_SHELLCHECK, 1)
319 AC_MSG_RESULT([disabling valid shell check])
323 AC_MSG_CHECKING([whether flock locks should be enabled])
324 AC_ARG_WITH(flock-locks,
325 [ --with-flock-locks enable flock locks support],
326 [flock_locks="$withval"],
329 if test "x$flock_locks" = "xyes"; then
330 AC_DEFINE(USE_FLOCK_LOCKS)
332 AC_MSG_RESULT([$flock_locks])
334 AC_ARG_WITH(tcp-wrappers,
335 [ --with-tcp-wrappers enable TCP wrappers support],
336 AC_CHECK_LIB(wrap, tcpd_warn,
338 AFPD_LIBS="$AFPD_LIBS -lwrap"
339 AC_MSG_RESULT([enabling TCP wrappers support])
343 AC_ARG_ENABLE(redhat,
344 [ --enable-redhat use redhat-style sysv configuration ],
345 if test "$enableval" = "yes"; then
348 AC_MSG_RESULT([enabling redhat-style sysv support])
352 [ --enable-suse use suse-style sysv configuration ],
353 if test "$enableval" = "yes"; then
356 AC_MSG_RESULT([enabling suse-style sysv support])
359 AC_ARG_ENABLE(cobalt,
360 [ --enable-cobalt use cobalt-style sysv configuration ],
361 if test "$enableval" = "yes"; then
364 AC_MSG_RESULT([enabling cobalt-style sysv support])
367 AC_ARG_ENABLE(netbsd,
368 [ --enable-netbsd use NetBSD-style rc.d configuration ],
369 if test "x$enableval" = "xyes"; then
372 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
375 dnl ----- timelord compilation (disabled by default)
376 AC_MSG_CHECKING([whether timelord should be compiled])
378 AC_ARG_ENABLE(timelord,
379 [ --enable-timelord enable compilation of timelord server],
380 [compile_timelord="$enableval"],
381 [compile_timelord="no"]
383 AC_MSG_RESULT([$compile_timelord])
385 AC_ARG_WITH(uams-path,
386 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
387 uams_path="$withval",
388 uams_path="${PKGCONFDIR}/uams"
391 AC_ARG_WITH(catsearch,
392 [ --with-catsearch enable fpCatSearch functionality (experimental)],
393 if test "$withval" = "yes"; then
394 AC_DEFINE(WITH_CATSEARCH, 1)
398 dnl --------------------------------------------------------------------------
399 dnl FHS stuff has to be done last because it overrides other defaults
400 dnl --------------------------------------------------------------------------
403 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
404 if test "$enableval" = "yes"; then
405 uams_path="/usr/lib/netatalk"
407 PKGCONFDIR=${sysconfdir}/netatalk
409 mandir="/usr/share/man"
410 AC_DEFINE(FHS_COMPATIBILITY)
412 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
415 dnl --------------------------------------------------------------------------
416 dnl post-FHS substitutions, etc
417 dnl --------------------------------------------------------------------------
420 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
421 [path to UAMs [default=PKGCONF/uams]])
422 UAMS_PATH="${uams_path}"
425 dnl --------------------------------------------------------------------------
426 dnl drop in includes for top level directory structures here...
427 dnl --------------------------------------------------------------------------
429 dnl Note: $(top_srcdir)/include should be added before all other includes
430 dnl so that includes from that directory a preferred to includes from
431 dnl /usr/include or similar places.
432 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
433 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
435 dnl --------------------------------------------------------------------------
436 dnl specific configuration comes in here:
437 dnl --------------------------------------------------------------------------
439 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
441 dnl --------------------- determine operating system from "target"
443 *aix*) this_os=aix ;;
444 *freebsd*) this_os=freebsd ;;
445 *hpux11*) this_os=hpux11 ;;
446 *irix*) this_os=irix ;;
447 *linux*) this_os=linux ;;
448 *osx*) this_os=macosx ;;
449 *darwin*) this_os=macosx ;;
450 *netbsd*) this_os=netbsd ;;
451 *openbsd*) this_os=openbsd ;;
452 *osf*) this_os=tru64 ;;
453 *solaris*) this_os=solaris ;;
457 i386|i486|i586|i686|k7) this_cpu=x86 ;;
458 alpha) this_cpu=alpha ;;
459 mips) this_cpu=mips ;;
460 powerpc|ppc) this_cpu=ppc ;;
463 dnl --------------------- operating system specific flags (port from sys/*)
465 dnl ----- AIX specific -----
466 if test x"$this_os" = "xaix"; then
467 AC_MSG_RESULT([ * AIX specific configuration])
468 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
470 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
471 dnl compilation environment. It's enough to get things defined
472 dnl right in endian.h provided that long long is supported, though.
473 AC_DEFINE(HAVE_32BIT_LONGS)
476 dnl ----- FreeBSD specific -----
477 if test x"$this_os" = "xfreebsd"; then
478 AC_MSG_RESULT([ * FreeBSD specific configuration])
480 AC_DEFINE(SENDFILE_FLAVOR_BSD)
482 AC_DEFINE(NO_CRYPT_H, 1)
485 dnl ----- HP-UX 11 specific -----
486 if test x"$this_os" = "xhpux11"; then
487 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
489 AC_DEFINE(_ISOC9X_SOURCE)
490 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
493 dnl ----- IRIX specific -----
494 if test x"$this_os" = "xirix"; then
495 AC_MSG_RESULT([ * IRIX specific configuration])
497 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
500 dnl ----- Linux specific -----
501 if test x"$this_os" = "xlinux"; then
502 AC_MSG_RESULT([ * Linux specific configuration])
504 dnl ----- check if we need the quotactl wrapper
505 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
506 AC_CHECK_FUNC(quotactl,,
507 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
508 AC_MSG_RESULT([enabling quotactl wrapper])
511 dnl ----- as far as I can tell, dbtob always does the wrong thing
512 dnl ----- on every single version of linux I've ever played with.
513 dnl ----- see etc/afpd/quota.c
514 AC_DEFINE(HAVE_BROKEN_DBTOB)
516 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
517 dnl ----- check if version is newer than 2.2.x
519 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
520 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
521 if [ $majorvers -ge 2 ]; then
522 if [ $minorvers -ge 2 ]; then
524 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
525 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
527 AC_MSG_RESULT([ * found Linux 2.0.x ])
531 dnl ----- Linux/alpha specific -----
532 if test x"$this_cpu" = "xalpha"; then
533 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
534 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
539 dnl ----- Mac OSX specific -----
540 if test x"$this_os" = "xmacosx"; then
541 AC_MSG_RESULT([ * Mac OSX specific configuration])
543 AC_DEFINE(HAVE_BROKEN_CPP)
544 AC_DEFINE(HAVE_2ARG_DBTOB)
545 dnl AC_DEFINE(NO_DLFCN_H)
546 AC_DEFINE(MACOSX_SERVER)
549 dnl ----- NetBSD specific -----
550 if test x"$this_os" = "xnetbsd"; then
551 AC_MSG_RESULT([ * NetBSD specific configuration])
553 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
554 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
555 # If this test is true, it's not an ELF box.
556 # This REALLY should be a configure test.
557 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
559 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
562 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
563 AC_DEFINE(UAM_DHX, 1)
564 AC_DEFINE(NO_CRYPT_H, 1)
567 dnl ----- OpenBSD specific -----
568 if test x"$this_os" = "xopenbsd"; then
569 AC_MSG_RESULT([ * OpenBSD specific configuration])
571 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
573 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
574 AC_DEFINE(UAM_DHX, 1)
575 AC_DEFINE(NO_CRYPT_H, 1)
578 dnl ----- Solaris specific -----
579 if test x"$this_os" = "xsolaris"; then
580 AC_MSG_RESULT([ * Solaris specific configuration])
582 AC_DEFINE(_ISOC9X_SOURCE)
583 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
585 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
588 AC_MSG_RESULT([enabling Solaris kernel module build])
592 dnl ----- Tru64 specific -----
593 if test x"$this_os" = "xtru64"; then
594 AC_MSG_RESULT([ * Tru64 specific configuration])
596 AC_DEFINE(HAVE_64BIT_LONGS)
597 dnl AC_DEFINE(USE_MOUNT_H)
598 AC_DEFINE(USE_OLD_RQUOTA)
599 dnl AC_DEFINE(USE_UFS_QUOTA_H)
601 AC_CHECK_LIB(security,set_auth_parameters)
602 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
607 dnl -- look for openssl
610 dnl --------------------- check for building PGP UAM module
612 AC_ARG_ENABLE(pgp-uam,
613 [ --enable-pgp-uam enable build of PGP UAM module],
614 if test "$enableval" = "yes"; then
615 if test "$compile_ssl" = "yes"; then
616 AC_DEFINE(UAM_PGP, 1)
618 AC_MSG_RESULT([enabling build with PGP UAM module])
623 dnl --------------------- check for building Kerberos v4 UAM module
625 AC_ARG_ENABLE(krb4-uam,
626 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
627 if test "$enableval" = "yes"; then
628 AC_DEFINE(UAM_KRB4, 1)
630 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
633 dnl --------------------- overwrite the config files . . . or not.
635 AC_MSG_CHECKING([whether configuration files should be overwritten])
636 AC_ARG_ENABLE(overwrite,
637 [ --enable-overwrite overwrite configuration files during installation],
638 [OVERWRITE_CONFIG="${enable_overwrite}"],
639 [OVERWRITE_CONFIG="no"]
641 AC_MSG_RESULT([$OVERWRITE_CONFIG])
643 dnl --------------------- last minute substitutions
649 AC_SUBST(OVERWRITE_CONFIG)
651 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
652 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
653 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
654 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
655 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
656 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
657 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
658 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
659 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
660 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
661 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
662 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
663 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
664 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
666 dnl --------------------- generate files
670 bin/adv1tov2/Makefile
673 bin/afppasswd/Makefile
676 bin/getzones/Makefile
677 bin/megatron/Makefile
683 contrib/macusers/Makefile
684 contrib/macusers/macusers
687 contrib/printing/Makefile
688 contrib/shell_utils/Makefile
689 contrib/shell_utils/afpd-mtab.pl
690 contrib/shell_utils/apple_cp
691 contrib/shell_utils/apple_mv
692 contrib/shell_utils/apple_rm
693 contrib/shell_utils/cleanappledouble.pl
694 contrib/shell_utils/netatalkshorternamelinks.pl
695 contrib/timelord/Makefile
697 distrib/config/Makefile
698 distrib/config/netatalk-config
699 distrib/initscripts/Makefile
704 etc/afpd/nls/Makefile
707 etc/uams/uams_krb4/Makefile
711 include/atalk/Makefile
713 libatalk/adouble/Makefile
714 libatalk/asp/Makefile
715 libatalk/atp/Makefile
716 libatalk/cnid/Makefile
717 libatalk/compat/Makefile
718 libatalk/dsi/Makefile
719 libatalk/nbp/Makefile
720 libatalk/netddp/Makefile
721 libatalk/util/Makefile
731 sys/generic/sys/Makefile
732 sys/netatalk/Makefile
734 sys/netbsd/netatalk/Makefile
736 sys/solaris/Makefile.kernel
740 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]