dnl dnl Require autoconf version 2.50 or greater dnl dnl Copyright (C) 2004, 2006, 2008 Rocky Bernstein dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2, or (at your option) dnl any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA dnl 02110-1301 USA. dnl $Id: configure.ac,v 1.45 2009/03/15 06:59:23 rockyb Exp $ dnl Process this file with autoconf to produce a configure script. AC_INIT(ps-watcher.in.in) AM_INIT_AUTOMAKE(ps-watcher,1.08) AM_MISSING_PROG(CVS2CL, cvs2cl, $missing_dir) AM_MAINTAINER_MODE AC_CANONICAL_HOST AC_PREREQ(2.10)dnl dnl Minimum Autoconf version required. dnl ============================= dnl Checks for programs. dnl ============================= AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_ARG_WITH(perl, AC_HELP_STRING([--with-perl], [set path to Perl]), PERL=$withval) ## We use a path for perl so the #! line in autoscan will work. AC_PATH_PROG(PERL, perl, no) if test "$PERL" = no; then AC_MSG_ERROR(Pssst... you need perl in order to use this program.\ Install it or put it in your path and try again.) fi AC_SUBST(PERL)dnl AC_PATH_PROG(PS, ps, no) AC_SUBST(PS)dnl ## PS_ARGS gives how we get the command line for a given PID. Also see ## description for PS_VARS. AC_SUBST(PS_ARGS) AC_SUBST(PS_ARGS_FMT) AC_SUBST(PS_FULLCMD_FMT) ## PS_NO_NULL_HEADER indicates that we can't get rid of the PS header line AC_SUBST(PS_NO_NULL_HEADER) ## PS_CAN_RETURN_MULTIPLE_LINES indicates the ps on this OS can return ## multiple lines for a process. Solaris's ps does this for processes ## which have many lwp (light-weight processes). AC_SUBST(PS_CAN_RETURN_MULTIPLE_LINES) ## PS_CUSTOM_HEADER specifies whether we can put an = after the argument ## name to remove the header for that variable AC_SUBST(PS_CUSTOM_HEADER) ## PS_PID_OPTS gives how to get the pid and command name needed for ##l first-level breakout. AC_SUBST(PS_PID_OPTS) ## PS_TIME_VAR gives a variable that we can test time on AC_SUBST(PS_TIME_VAR) ## PS_VAR gives a list of the PS variables we can query. ## However we must use only those variables that give output as a single ## token since these are parsed one token per variable. For example ## the arguments (args, or comm, or command) shouldn't be listed here. AC_SUBST(PS_VARS) ## ======================================================================== ## Need a better way to figure out ps options and to know ## which ones don't have embeded blanks or to parse ps output. ## ======================================================================== PS_ARGS_FMT='' PS_FULLCMD_FMT='' PS_TIME_VAR='' case "$host_os" in aix* ) PS_ARGS='-o args=' PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=1 PS_NO_NULL_HEADER=0 PS_PID_OPTS='-e -o pid= -o comm=' PS_TIME_VAR='etime' PS_VARS='user ruser group rgroup uid ruid gid rgid ppid pgid pri cpu pcpu pmem vsz nice class scount thcount tid time etime tty wchan bnd' ;; cygwin* ) PS_ARGS='-l | cut -c 2-10,56-120' PS_ARGS_FMT=['$opts{ps_prog} -l |cut -c 2-10,56-120|egrep \"^[ \\t]*%d\"'] PS_FULLCMD_FMT=['$opts{ps_prog} -l|cut -c 2-47,56-120|egrep \"^[ \\t]*%d\"'] PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=0 PS_NO_NULL_HEADER=1 PS_PID_OPTS='-l | cut -c 2-10,56-120' PS_VARS='pid ppid pgid winpid tty uid' ;; solaris* ) PS_ARGS='-o args=' PS_CAN_RETURN_MULTIPLE_LINES=1 PS_CUSTOM_HEADER=1 PS_NO_NULL_HEADER=0 PS_PID_OPTS='-e -o pid= -o comm=' PS_TIME_VAR='etime' PS_VARS='user ruser group rgroup uid ruid gid rgid ppid pgid sid pri pcpu pmem vsz rss osz nice class time etime stime f s lwp nlwp psr tty addr wchan fname' ;; linux* ) PS_ARGS='-www -o args=' PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=1 PS_NO_NULL_HEADER=0 PS_PID_OPTS='-e -o pid= -o cmd=' # Make sure we put known single tokens at the beginning like uid. PS_VARS='uid euid ruid gid egid rgid alarm blocked bsdtime c caught cputime drs dsiz egroup eip esp etime euser f fgid fgroup flag flags fname fsgid fsgroup fsuid fsuser fuid fuser group ignored intpri lim longtname m_drs m_trs maj_flt majflt min_flt minflt ni nice nwchan opri pagein pcpu pending pgid pgrp pmem ppid pri rgroup rss rssize rsz ruser s sess session sgi_p sgi_rss sgid sgroup sid sig sig_block sig_catch sig_ignore sig_pend sigcatch sigignore sigmask stackp start start_stack start_time stat state stime suid suser svgid svgroup svuid svuser sz time timeout tmout tname tpgid trs trss tsiz tt tty tty4 tty8 uid_hack uname user vsize vsz wchan' PS_TIME_VAR='etime' ;; netbsdelf2* | openbsd* ) PS_ARGS='-o args' PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=0 PS_NO_NULL_HEADER=1 PS_PID_OPTS='-a -x -o pid= -o ucomm=' PS_VARS='acflag cpu f \ inblk jobc ktrace ktracep lim login majflt minflt msgrcv msgsnd nice nivcsw nsigs nswap nvcsw nwchan oublk p_ru paddr pagein pid ppid pri re rgid rlink rss rsz ruid ruser sess sig sigcatch sigignore sigmask sl start state svgid svuid tdev time tpgid tsess tsiz tt tty ucomm uid upr user vsz wchan xstat' PS_TIME_VAR='cpu' ;; netbsd* | freebsd4* ) PS_ARGS='-O command' PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=0 PS_NO_NULL_HEADER=1 PS_PID_OPTS='-a -x -o pid= -o ucomm=' PS_VARS='acflag cpu cputime f inblk jobc ktrace ktracep lim login majflt minflt msgrcv msgsnd nice nivcsw nsigs nswap nvcsw nwchan oublk p_ru paddr pagein pid ppid pri re rgid rlink rss rsz ruid ruser sess sig sigcatch sigignore sigmask sl start state svgid svuid tdev time tpgid tsess tsiz tt tty ucomm uid upr user vsz wchan xstat' PS_TIME_VAR='cputime' ;; bsdi4* ) PS_ARGS='-www -o command' PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=0 PS_NO_NULL_HEADER=1 PS_PID_OPTS='-a -x -o pid= -o ucomm=' PS_TIME_VAR='cputime' PS_VARS='acflag cpu cputime f \ inblk jobc ktrace ktracep lim login nice nivcsw nsigs nswap nvcsw nwchan oublk p_ru paddr pagein pid ppid pri re rgid rlink rss rsz ruid ruser sess sig sigcatch sigignore sigmask sl start state svgid svuid tdev time tpgid tsess tsiz tt tty ucomm uid upr user vsz wchan xstat' ;; darwin5* | darwin6* | darwin7* | darwin8* | darwin9* ) PS_PID_OPTS='-a -x -o pid= -o ucomm' PS_VARS='acflag cpu cputime f inblk jobc ktrace ktracep lim login uid upr user vsz nice nivcsw nsigs nswap nvcsw nwchan oublk p_ru paddr pcpu pagein pid ppid pri re rgid rss rsz ruid ruser sess sig sigmask sl start state svgid svuid tdev time tpgid tsess tsiz tt tty ucomm wchan xstat' PS_TIME_VAR='cputime' PS_ARGS='-www -o command' PS_NO_NULL_HEADER=1 PS_CUSTOM_HEADER=0 PS_CAN_RETURN_MULTIPLE_LINES=0 ;; * ) echo "Don't know $host_os. Winging it." PS_ARGS='' PS_CAN_RETURN_MULTIPLE_LINES=0 PS_CUSTOM_HEADER=0 PS_NO_NULL_HEADER=1 PS_PID_OPTS='-e -o pid= -o comm=' PS_VARS='user ruser group rgroup uid ruid gid rgid ppid \ pgid sid pri pcpu pmem vsz rss osz nice class time \ etime stime tty addr wchan fname' PS_TIME_VAR='etime' esac AC_CONFIG_FILES([post-configure], [chmod +x post-configure]) AC_CONFIG_FILES([tests/01.pod.t], [chmod +x tests/01.pod.t]) AC_CONFIG_FILES([tests/args.t], [chmod +x tests/args.t]) AC_CONFIG_FILES([tests/basic.t], [chmod +x tests/basic.t]) AC_CONFIG_FILES([tests/count.t], [chmod +x tests/count.t]) AC_CONFIG_FILES([tests/full.t], [chmod +x tests/full.t]) AC_CONFIG_FILES([ps-watcher.in]) AC_CONFIG_FILES([ps-watcher], [./post-configure $srcdir || exit 3]) AC_OUTPUT([ Makefile \ docs/Makefile \ tests/basic.cnf \ tests/Makefile \ ])