freeipmi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freeipmi-devel] ipmi-discovery


From: Al Chu
Subject: Re: [Freeipmi-devel] ipmi-discovery
Date: Thu, 21 Sep 2006 14:59:31 -0700

Hi Vijay,

Can you send a patch instead?  And can it modify Makefile.am instead of
Makefile.in?

Al

On Thu, 2006-09-21 at 14:42 -0700, vijay v wrote:
> version :0.1.3
>  
> Makefile.in Makefile and ipmi-ping.c are attached , fish stuff doesnt
> compile in my env so i have a custom build/setup ...
>  
> Thanks, sorry about the delay.
> Vijay
> 
> Al Chu <address@hidden> wrote:
>         Hi Vijay,
>         
>         You're working off quite an old version of ipmi-ping. What
>         version is
>         this so I can do a test build?
>         
>         
>         Also, you might also want to send a Makefile patch, since
>         pthreads are
>         not compiled in by default.
>         
>         On Wed, 2006-09-13 at 14:34 -0700, vijay v wrote:
>         > Confusion :
>         > do we need a single tool that does ping as well as
>         discovery ?
>         
>         My opinion is no. They should be different tools.
>         
>         > 1) timeout should be implemented for discovery and the
>         select wait
>         > time should be split accordingly ?
>         > 2) interval should be between the time between each ping of
>         > destination
>         > 3) count as in ipmi-ping.
>         
>         I would try and model the options, output, behavior, etc. off
>         of fping:
>         
>         http://www.fping.com/
>         
>         Of course a number of options, features, etc. won't carry
>         over. You may
>         be able to borrow code from fping too??
>         
>         Al
>         
>         > Thanks,
>         > Vijay
>         > 
>         > 
>         > 
>         > Al Chu wrote: 
>         > Hi Vijay,
>         > 
>         > I'll have to defer to A.B. for the final choice of what we
>         do.
>         > Once
>         > it's cleaned up and final, perhaps it could just be a
>         separate
>         > tool in
>         > FreeIPMI?
>         > 
>         > For now, how about posting the beginning src somewhere or
>         just
>         > send it
>         > out on the mailing list. That way we can get idea of where
>         the
>         > tool
>         > is at.
>         > 
>         > Al
>         > 
>         > On Wed, 2006-09-13 at 13:27 -0700, vijay v wrote:
>         > > Hi Al & others,
>         > > I just finished developing a tool : "ipmidiscover startIP
>         > endIP"
>         > > utilizing the existing ipmi-ping.c code in the freeipmi
>         code
>         > base.
>         > > 
>         > > algo:
>         > > 1. construct ip range .
>         > > 2. start 2 threads 
>         > > i) sendthread will do : rv = ipmi_lan_sendto(_sockfd,
>         > > buffer, len, 0, (struct sockaddr *)& _destaddr, sizeof
>         > (_destaddr));
>         > > ii) receivethread will : en = ipmi_lan_recvfrom(_sockfd,
>         > buffer,
>         > > IPMI_PING_MAX_PKT_LEN, 0,
>         > > (struct sockaddr *)&from,
>         > > &fromlen);
>         > > both in loop of step-1 ip range.
>         > > 
>         > > 3) display the result thats it!!
>         > > 
>         > > I needed it quickly so i just wrote it in a day but it
>         works
>         > fine ....
>         > > It is not yet integrated into the package since its got
>         some
>         > > TBD.... should i put the .c file alone somewhere in
>         > sourceforge or in
>         > > gnu website please advice ? it can go in parallel with
>         > existing ipmi-
>         > > ping.c dir but i dont want to publish it in the main
>         package
>         > yet since
>         > > it only does the basic function ... some one can take it
>         and
>         > code to
>         > > it so it will qualify for republishing ..... I could do it
>         > later
>         > > following how this thread....
>         > > 
>         > > Thanks,
>         > > Vijay
>         > > 
>         > > 
>         > > 
>         > > Al Chu wrote:
>         > > Hi Vijay,
>         > > 
>         > > I'd be glad to help. I don't quite understand the question
>         > > though.
>         > > Could you rephrase?
>         > > 
>         > > Al
>         > > 
>         > > On Mon, 2006-09-11 at 11:41 -0700, vijay v wrote:
>         > > > There was a broken thread about discovey option ...
>         > couldnt
>         > > figure out
>         > > > much from discovery.scm too...
>         > > > 
>         > > > I want a simple C/C++ application "ipmi-discover startIP
>         > > endIP" .....
>         > > > currently iam half way through utilizing ipmi-ping code.
>         > > > 
>         > > > 
>         > > > Please advice.
>         > > > 
>         > > > Thanks,
>         > > > Vijay
>         > > > 
>         > > > 
>         > > >
>         ==========================================================
>         > > > Hardwork and Science will solve your problems,
>         > > > With a little belief in God you can do miracles. 
>         > > >
>         ==========================================================
>         > > > 
>         > > > 
>         > > >
>         > >
>         >
>         ______________________________________________________________________
>         > > > Stay in the know. Pulse on the new Yahoo.com. Check it
>         > out. 
>         > > > _______________________________________________
>         > > > Freeipmi-devel mailing list
>         > > > address@hidden
>         > > > http://lists.gnu.org/mailman/listinfo/freeipmi-devel
>         > > -- 
>         > > Albert Chu
>         > > address@hidden
>         > > 925-422-5311
>         > > Computer Scientist
>         > > High Performance Systems Division
>         > > Lawrence Livermore National Laboratory
>         > > 
>         > > 
>         > > 
>         > > 
>         > > ==========================================================
>         > > Hardwork and Science will solve your problems,
>         > > With a little belief in God you can do miracles. 
>         > > ==========================================================
>         > > 
>         > > 
>         > >
>         >
>         ______________________________________________________________________
>         > > All-new Yahoo! Mail - Fire up a more powerful email and
>         get
>         > things
>         > > done faster.
>         > -- 
>         > Albert Chu
>         > address@hidden
>         > 925-422-5311
>         > Computer Scientist
>         > High Performance Systems Division
>         > Lawrence Livermore National Laboratory
>         > 
>         > 
>         > 
>         > 
>         > ==========================================================
>         > Hardwork and Science will solve your problems,
>         > With a little belief in God you can do miracles. 
>         > ==========================================================
>         > 
>         > 
>         >
>         ______________________________________________________________________
>         > Stay in the know. Pulse on the new Yahoo.com. Check it out. 
>         -- 
>         Albert Chu
>         address@hidden
>         925-422-5311
>         Computer Scientist
>         High Performance Systems Division
>         Lawrence Livermore National Laboratory
>         
>         
> 
> 
> 
> ==========================================================
> Hardwork and Science will solve your problems,
> With a little belief in God you can do miracles. 
> ==========================================================
> 
> 
> ______________________________________________________________________
> Get your own web address for just $1.99/1st yr. We'll help. Yahoo!
> Small Business. 
> plain text document attachment (ipmi-ping.c), "2054482997-ipmi-ping.c"
> /*****************************************************************************\
>  *  $Id: ipmi-ping.c,v 1.2 2004/10/08 16:09:05 balamurugan Exp $
>  *****************************************************************************
>  *  Copyright (C) 2003 The Regents of the University of California.
>  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
>  *  Written by Albert Chu <address@hidden>
>  *  UCRL-CODE-155448
>  *
>  *  This file is part of Ipmiping, tools for pinging IPMI and RMCP compliant
>  *  remote systems. For details, see http://www.llnl.gov/linux/.
>  *
>  *  Ipmiping is free software; you can redistribute it and/or modify
>  *  it under the terms of the GNU General Public License as published by the
>  *  Free Software Foundation; either version 2 of the License, or (at your
>  *  option) any later version.
>  *
>  *  Ipmiping 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 General Public License
>  *  for more details.
>  *
>  *  You should have received a copy of the GNU General Public License along
>  *  with Ipmiping; if not, write to the Free Software Foundation, Inc.,
>  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
> \*****************************************************************************/
> 
> // TBD : Timeout , interval, count 
> #if HAVE_CONFIG_H
> #include "config.h"
> #endif
> 
> #include <stdio.h>
> #include <stdlib.h>
> #if STDC_HEADERS
> #include <string.h>
> #include <stdarg.h>
> #endif
> #if HAVE_UNISTD_H
> #include <unistd.h>
> #endif
> #if HAVE_FCNTL_H
> #include <fcntl.h> 
> #endif
> #include <signal.h>
> #include <errno.h>
> #include <sys/types.h>
> #include <sys/select.h>
> #include <sys/socket.h>
> #include <sys/ioctl.h>
> #include <sys/param.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> #include <net/if.h>
> #include <netdb.h>
> #include <getopt.h>
> #if TIME_WITH_SYS_TIME
> # include <sys/time.h>
> # include <time.h>
> #else
> # if HAVE_SYS_TIME_H
> #  include <sys/time.h>
> # else
> #  include <time.h>
> # endif
> #endif
> #include <assert.h>
> #include <pthread.h>
> #include "freeipmi.h"
> #define PRINTF 
> 
> #ifndef INET_ADDRSTRLEN 
> #define INET_ADDRSTRLEN 16
> #endif
> 
> #ifndef MAXHOSTNAMELEN
> #define MAXHOSTNAMELEN 64
> #endif
> 
> #define IPMI_PING_MAX_PKT_LEN    1024
> #define IPMI_PING_MAX_ERR_LEN    1024
> 
> /* getopt */
> extern char *optarg;
> extern int optind, opterr, optopt;
> 
> /* gethostbyname */
> extern int h_errno;
> 
> /* cmdline options */
> static int _count = -1;
> static int _interval = 0;
> static int _timeout = 0;
> static int _verbose = 0;
> static int _debug = 0;
> 
> /* globals */
> static int _sockfd = 0;
> static char *_progname = NULL;
> static char *_interface = NULL;
> static char _dest[MAXHOSTNAMELEN+1];
> static char _endDest[MAXHOSTNAMELEN+1];
> static char _dest_ip[INET_ADDRSTRLEN+1];
> static struct sockaddr_in _srcaddr;
> static struct sockaddr_in _destaddr;
> static struct sockaddr_in _destaddrlist[255];
> static unsigned int _pkt_sent = 0;
> static unsigned int _pkt_recv = 0;
> static Ipmi_Ping_EndResult _end_result = NULL;
> static char _iplist[256][INET_ADDRSTRLEN+1];
> static char _startDest[MAXHOSTNAMELEN+1];
> static char _subnet[MAXHOSTNAMELEN+1];
> time_t _last_send;
> static unsigned int seq_num_count[255] ;
> static struct  in_addr _startAddr, _endAddr;
> 
> Ipmi_Ping_CreatePacket _create;
> Ipmi_Ping_ParsePacket _parse;
> Ipmi_Ping_LatePacket _late;
> Ipmi_Ping_EndResult _end;
>                
> void *sendThread( void *ptr );
> void *receiveThread( void *ptr );
>       
> static void
> _cleanup(void)
> {
>   close(_sockfd);
> }
> 
> void
> _err_init(char *__progname)
> {
>   char *ptr = NULL;
>   
>   assert(__progname != NULL);
>   
>   ptr = strrchr(__progname, '/');
>   _progname = (ptr == NULL) ? __progname : ptr + 1;
> }
> 
> void 
> ipmi_ping_err_exit(char *fmt, ...) 
> {
>   char buffer[IPMI_PING_MAX_ERR_LEN];
> 
>   if (fmt == NULL || _progname == NULL) 
>     fprintf(stderr, "ipmi_ping_err_exit: improperly called\n");
>   else
>     {
>       va_list ap;
>       va_start(ap, fmt);
>       snprintf(buffer, IPMI_PING_MAX_ERR_LEN, "%s: %s\n", _progname, fmt);
>       vfprintf(stderr, buffer, ap);
>       va_end(ap);
>     }
>   _cleanup();
>   exit(1);
> }
> 
> static void 
> _strncpy(char *dest, char *src, unsigned int len)
> {
>   assert(dest != NULL && src != NULL); 
> 
>   strncpy(dest, src, len);
>   dest[len] = '0';
> }
> 
> static void 
> _usage(void) 
> {
>   assert(_progname != NULL);
>   
>   fprintf(stderr, "%s [OPTIONS] startIP endIP\n", _progname);
>   fprintf(stderr, " Discovers IPMI devices within the provided range of valid 
> IP Addresses.\n"); 
>   fprintf(stderr, "  -t  timeout [seconds] for each destination \n");  
>   exit(1);
> }
> 
> static void 
> _version(void) 
> {
>   assert(_progname != NULL);
>   fprintf(stderr, "%s %s\n", _progname, VERSION);
>   fprintf(stderr, "  -t   timeout [seconds] to complete the discovery\n");  
>   exit(1);
> }
> 
> static void 
> _cmdline_parse(int argc, char **argv) 
> {
> int i;
>   char c, *ptr;
> #ifndef NDEBUG
>   char *options = "hVc:i:I:t:vd:s:e:u";
> #else
>   char *options = "hVc:i:I:t:v:s:e:u";
> #endif
>   
>   /* Turn off error messages */
>   opterr = 0;
> 
>   while ((c = getopt(argc, argv, options)) != -1) 
>     {
>       switch (c) 
>       {
>       case 'h':
>         _usage();
>       case 'V':
>         _version();
>       case 'c':
>         _count = strtol(optarg, &ptr, 10);
>         if (ptr != (optarg + strlen(optarg)))
>           ipmi_ping_err_exit("count argument invalid");
>         if (_count == 0)
>           ipmi_ping_err_exit("count must be > 0");
>         break;
>       case 'i':
>         _interval = strtol(optarg, &ptr, 10);
>         if (ptr != (optarg + strlen(optarg)))
>           ipmi_ping_err_exit("interval argument invalid");
> //        if (_interval == 0)
> //          ipmi_ping_err_exit("interval must be > 0");
>         break;
>       case 'I':
>         _interface = optarg;
>         break;
>       case 't':
>         _timeout = strtol(optarg, &ptr, 10);
>         if (ptr != (optarg + strlen(optarg)))
>           ipmi_ping_err_exit("timeout argument invalid");
> //        if (_timeout == 0)
> //          ipmi_ping_err_exit("timeout must be > 0");
>         break;
>       case 'v':
>         _verbose++;
>         break;
>               
> #ifndef NDEBUG
>       case 'd':
>         _debug++;
>         break;
> #endif
>       default:
>         ipmi_ping_err_exit("Command line option error");
>         break;
>       } 
>     }
>   
>   /* last argument is destination */
>   if ( optind >= argc)  {
>        _usage();
>          exit(0);
>       }
> 
>   if (  argc   != optind +2) {
>         _usage();
>         exit(0); 
>         }
> 
>   _count = 1;
>  
>   strncpy(_startDest, argv[optind], INET_ADDRSTRLEN);
>   strncpy(_dest, argv[optind + 1], INET_ADDRSTRLEN);  
> //  strncpy(_subnet, argv[optind + 2], INET_ADDRSTRLEN);
> 
> /*
>   for ( i =0; i<=INET_ADDRSTRLEN; i++) {
>       if ( _startDest[i] != _dest[i] ) {
>               printf ("Wrong subnet "); 
>               exit(0);
>       }
> 
>   }
>   */
> }
> 
> /* signal handlers + sleep(3) is a bad idea, so use select(3) */
> static int  _sleep(unsigned int len) 
> {
>   struct timeval tv;
> 
>   tv.tv_sec = len;
>   tv.tv_usec = 0;
> 
>   if (select(1, NULL, NULL, NULL, &tv) < 0)
>     ipmi_ping_err_exit("select: %s", strerror(errno));
> 
>   return 0;
> }
> 
> static void 
> _signal_handler(int sig) 
> {
>   int ret;
> 
>   assert(_progname != NULL && _end_result != NULL);
> 
>   /* Must output result here, b/c who knows where in the code we are
>    * when we caught the signal 
>    */
>   ret = _end_result(_progname, _dest, _pkt_sent, _pkt_recv);
>   _cleanup();
>   exit(ret);
> }
> void ipprint(struct  in_addr *inAddr)
> {
>       PRINTF( " ** IP %hhu.%hhu.%hhu.%hhu",
>               *(((unsigned char*)&inAddr->s_addr)+3),
>               *(((unsigned char*)&inAddr->s_addr)+2),
>               *(((unsigned char*)&inAddr->s_addr)+1),
>               *((unsigned char*)&inAddr->s_addr) );
> 
> }
> 
> static void _setup(void) 
> {
>   struct hostent *hptr;
>   int i,result;
> 
> 
> //  if (signal(SIGINT, SIG_IGN) == SIG_ERR)
> //    ipmi_ping_err_exit("signal setup failed"); 
> 
>   if ((_sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
>     ipmi_ping_err_exit("socket: %s", strerror(errno));
> 
>   memset(&_srcaddr, '\0', sizeof(_srcaddr));
>   _srcaddr.sin_family = AF_INET;
>   _srcaddr.sin_port = htons(0);
> 
>   if (_interface == NULL)
>     _srcaddr.sin_addr.s_addr = htonl(INADDR_ANY);
>   else 
>     {
>       /* If there is a period, assume user input an IP address.  No
>        * period, assume user input an interface name 
>        */
>       if (strchr(_interface, '.') != NULL)
>         {
>           int rv;
>     
>           if ((rv = inet_pton(AF_INET, _interface, &_srcaddr.sin_addr)) < 0) 
>             ipmi_ping_err_exit("inet_pton: %s", strerror(errno));
>           if (rv == 0)
>             ipmi_ping_err_exit("invalid interface address");
>         }
>       else 
>         {
>           struct ifreq ifr;
>           struct sockaddr_in temp_sockaddr;
> 
>           _strncpy(ifr.ifr_name, _interface, IFNAMSIZ);
>           ifr.ifr_addr.sa_family = AF_INET;
>           if (ioctl(_sockfd, SIOCGIFADDR, &ifr) < 0)
>             ipmi_ping_err_exit("ioctl: %s", strerror(errno));
>           
>           temp_sockaddr = *((struct sockaddr_in *)&ifr.ifr_addr);
>           memcpy(&_srcaddr.sin_addr.s_addr, &temp_sockaddr.sin_addr.s_addr, 
>                  sizeof(_srcaddr.sin_addr.s_addr));
>         }
>     }
> 
>   if (bind(_sockfd, (struct sockaddr *)&_srcaddr, sizeof(_srcaddr)) < 0)
>     ipmi_ping_err_exit("bind: %s", strerror(errno));
> 
>   
> // Construct the destination IPs 
> result = inet_aton(_startDest, &_startAddr);
> if (result ) {
>         _startAddr.s_addr = ntohl(_startAddr.s_addr);
>        //ipprint(&_startAddr);
> 
>        if ((*((unsigned char*)&_startAddr.s_addr) <1 )||(*((unsigned 
> char*)&_startAddr.s_addr) >255 ))
>               _usage();
> } else {
>   _usage();
> }
> 
> result = inet_aton(_dest, &_endAddr);
> if (result ) {
>         _endAddr.s_addr = ntohl(_endAddr.s_addr);
>        //ipprint(&_startAddr);
> 
>        if ((*((unsigned char*)&_endAddr.s_addr) <1 )||(*((unsigned 
> char*)&_endAddr.s_addr) >255 ))
>               _usage();
> } else {
>   _usage();
> }
> 
> }
> 
> void *sendThread( void *ptr )
> {
> int i,j,k,result ;
> int startoctet1,startoctet2,startoctet3,startoctet4;
> int endoctet1,endoctet2,endoctet3,endoctet4;
> int lastoctet,templastoctet;
> int rv, len, received = 0;
> char ipstring[17];
>              time_t now;
> 
> PRINTF ( "\Inside sendthread ");fflush(stdout);
> //ipprint(&_startAddr);
> // For clarity sake just pick the octets for looping
> startoctet1 = *(((unsigned char*)&_startAddr.s_addr)+3);
> startoctet2 = *(((unsigned char*)&_startAddr.s_addr)+2);
> startoctet3 = *(((unsigned char*)&_startAddr.s_addr)+1);
> startoctet4 = *(((unsigned char*)&_startAddr.s_addr));
> 
> //ipprint(&_endAddr);
> endoctet1 = *(((unsigned char*)&_endAddr.s_addr)+3);
> endoctet2 = *(((unsigned char*)&_endAddr.s_addr)+2);
> endoctet3= *(((unsigned char*)&_endAddr.s_addr)+1);
> endoctet4= *(((unsigned char*)&_endAddr.s_addr));
> 
>  if ( startoctet3 > endoctet3 )
>       startoctet3 = endoctet3;
>       
>  if ( ( startoctet3 == endoctet3 ) && ( endoctet4  < startoctet4 ))
>       startoctet4 = 1;
>       
>  if  ( ( startoctet4 > endoctet4 ) && ( endoctet3 != startoctet3  ) )
>       lastoctet = 254;
>  else
>       lastoctet = endoctet4;
> 
> 
>       /* wait if necessary */
>   assert(_create != NULL          && _parse != NULL          && _late != NULL 
>         && _progname != NULL          && _end_result != NULL);
>        for ( i =startoctet3; i<= endoctet3; i++) {
>               if ( i < endoctet3 )
>                       templastoctet = 254;
>               else
>                       templastoctet = lastoctet;              
>            for ( j =startoctet4 ; j<=templastoctet; j++) {
>              u_int8_t buffer[IPMI_PING_MAX_PKT_LEN];
> 
> 
>               sprintf (ipstring,"%d.%d.%d.%d",startoctet1,startoctet2,i,j);
>       
> //            memset(_destaddr, '\0', sizeof(_destaddr));
>              _destaddr.sin_family = AF_INET;
>               _destaddr.sin_port = htons(RMCP_PRI_RMCP_PORT);
>               if ( !inet_aton( ipstring, &_destaddr.sin_addr))
>                       printf (" \n inet_aton problem \n");
> PRINTF ("sendThread:  ipstring = %s", ipstring);fflush(stdout);
>              now = time(NULL);
>              if ((now - _last_send) < _interval) 
>               {
>                  if (_sleep((_last_send + _interval - now)) < 0)
>                     continue;
>               }
>       
>        if ((len = _create((char *)buffer, IPMI_PING_MAX_PKT_LEN, 
>                           seq_num_count[i], _debug)) < 0)
> 
>        ipmi_ping_err_exit("_create failed: %s", strerror(errno));
> 
> 
>       //ipprint(&(_destaddr.sin_addr));
>       rv = ipmi_lan_sendto(_sockfd, buffer, len, 0, (struct sockaddr *)& 
> _destaddr, sizeof(_destaddr));
>       if (rv < 0)
>         ipmi_ping_err_exit("ipmi_sendto: %s", strerror(errno));
>       
>       if (rv != len)
>         ipmi_ping_err_exit("ipmi_sendto: wrong bytes written"); 
>       
>       _last_send = time(NULL);      
>       _pkt_sent++;
>       }
>               }
> }
> 
> void *receiveThread( void *ptr )
> {
> int i,j,k,result ;
> int startoctet1,startoctet2,startoctet3,startoctet4;
> int endoctet1,endoctet2,endoctet3,endoctet4;
> int lastoctet, templastoctet;
> int rv, len, received = 0;
> char ipstring[17];
> 
> PRINTF ( "\Inside receiveThread ");fflush(stdout);
> 
> // For clarity sake just pick the octets for looping
> startoctet1 = *(((unsigned char*)&_startAddr.s_addr)+3);
> startoctet2 = *(((unsigned char*)&_startAddr.s_addr)+2);
> startoctet3 = *(((unsigned char*)&_startAddr.s_addr)+1);
> startoctet4 = *(((unsigned char*)&_startAddr.s_addr));
> 
> //ipprint(&_endAddr);
> endoctet1 = *(((unsigned char*)&_endAddr.s_addr)+3);
> endoctet2 = *(((unsigned char*)&_endAddr.s_addr)+2);
> endoctet3= *(((unsigned char*)&_endAddr.s_addr)+1);
> endoctet4= *(((unsigned char*)&_endAddr.s_addr));
> 
>  if ( startoctet3 > endoctet3 )
>       startoctet3 = endoctet3;
>       
>  if ( ( startoctet3 == endoctet3 ) && ( endoctet4  < startoctet4 ))
>       startoctet4 = 1;
>       
>  if  ( ( startoctet4 > endoctet4 ) && ( endoctet3 != startoctet3  ) )
>       lastoctet = 254;
>  else
>       lastoctet = endoctet4;
>       
>       /* wait if necessary */
>   assert(_create != NULL          && _parse != NULL          && _late != NULL 
>         && _progname != NULL          && _end_result != NULL);
>     {
>       int rv, len, received = 0;
>       u_int8_t buffer[IPMI_PING_MAX_PKT_LEN];
>         for ( i =startoctet3; i<= endoctet3; i++) {
>               if ( i < endoctet3 )
>                       templastoctet = 254;
>               else
>                       templastoctet = lastoctet;                      
>            for ( j =startoctet4 ; j<=templastoctet; j++) {
> 
>           fd_set rset;
>           struct timeval tv;
> 
>           FD_ZERO(&rset);
>           FD_SET(_sockfd, &rset);
> 
> //          tv.tv_sec = (_last_send  - time(NULL));
>           tv.tv_sec = _timeout;
>           tv.tv_usec = 2;
> 
>           if ((len = _create((char *)buffer, IPMI_PING_MAX_PKT_LEN, 
>                          seq_num_count[i], _debug)) < 0)
>           ipmi_ping_err_exit("_create failed: %s", strerror(errno));
> 
>         
>           if ((rv = select(_sockfd+1, &rset, NULL, NULL, &tv)) < 0)
>             ipmi_ping_err_exit("select: %s", strerror(errno));
>         
>           if (rv == 1) 
>             {
>               struct sockaddr_in from;
>               socklen_t fromlen;
>               
>               fromlen = sizeof(from);
>               len = ipmi_lan_recvfrom(_sockfd, buffer, IPMI_PING_MAX_PKT_LEN, 
> 0,
>                                       (struct sockaddr *)&from, &fromlen);
>               PRINTF ( "recv %d ", len ); fflush(stdout);
>               if (len < 0)
>                 ipmi_ping_err_exit("ipmi_recvfrom: %s", strerror(errno));
>               
>               if ((rv = _parse((char *)buffer, len, inet_ntoa(from.sin_addr), 
>                                seq_num_count[i], _verbose,
>                                    _debug)) < 0)
>                 ipmi_ping_err_exit("_parse failed: %s", strerror(errno));
> 
>               /* If rv == 0, the sequence numbers don't match, so
>                * we'll wait some more for the latest packet we sent
>                * out.
>                */
>               if (rv == 0)
>                 continue;
> 
>               received++;
>               _pkt_recv++;
> //              break;
>             }
>           }
>         }
>       
>       if (received == 0)
>         _late(seq_num_count[i]);
>       
>       seq_num_count[i]++;
>     }
> }
> 
> 
> 
> static void 
> _main_loop(Ipmi_Ping_CreatePacket _create, 
>            Ipmi_Ping_ParsePacket _parse, 
>            Ipmi_Ping_LatePacket _late) 
> {
>   unsigned int seq_num_count = 0;
>   pthread_t thread[2];
>   int  iret[2];
>   char message[32];
>   int ret,i,j;
> 
>   assert(_create != NULL 
>          && _parse != NULL 
>          && _late != NULL
>          && _progname != NULL 
>          && _end_result != NULL);
> 
> //  PRINTF("%s %s (%s)\n", _progname, _dest, _dest_ip);
> printf (" Discovering IPMI Devices ...\n");fflush(stdout); 
> 
> 
>       iret[0] = pthread_create( &thread[0], NULL, sendThread, (void*) 
> message);
>       pthread_join( thread[0], NULL);
> 
>       iret[1] = pthread_create( &thread[1], NULL, receiveThread, (void*) 
> message);
>       pthread_join( thread[1], NULL);
>   
>   ret = _end_result(_progname, _dest, _pkt_sent, _pkt_recv );
>   _cleanup();
>   exit(ret);
> }
> 
> void 
> ipmi_ping_main(int argc, char **argv,
>                Ipmi_Ping_CreatePacket create,
>                Ipmi_Ping_ParsePacket parse,
>                Ipmi_Ping_LatePacket late,
>                Ipmi_Ping_EndResult end)
> {
>   if (argc <= 0
>       || argv == NULL 
>       || create == NULL 
>       || parse == NULL
>       || late == NULL 
>       || end == NULL)
>     {
>       fprintf(stderr, "ipmi_ping_main: called improperly\n"); 
>       exit(1);
>     }
>   _create =create;
>   _parse = parse;
>   _late = late;
>   _end = end;
>   
>   _err_init(argv[0]);
>   _end_result = _end;
> 
>   _cmdline_parse(argc, argv);
>   _setup();
>   _main_loop(_create, _parse, _late);
> 
>   return;                     /* NOT REACHED */
> }
> plain text document attachment (Makefile), "2444679276-Makefile"
> # Makefile.in generated by automake 1.7.9 from Makefile.am.
> # libfreeipmi/src/Makefile.  Generated from Makefile.in by configure.
> 
> # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
> # Free Software Foundation, Inc.
> # This Makefile.in is free software; the Free Software Foundation
> # gives unlimited permission to copy and/or distribute it,
> # with or without modifications, as long as this notice is preserved.
> 
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
> # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
> # PARTICULAR PURPOSE.
> 
> 
> 
> srcdir = .
> top_srcdir = ../..
> 
> pkgdatadir = $(datadir)/freeipmi
> pkglibdir = $(libdir)/freeipmi
> pkgincludedir = $(includedir)/freeipmi
> top_builddir = ../..
> 
> am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
> INSTALL = /usr/bin/install -c
> install_sh_DATA = $(install_sh) -c -m 644
> install_sh_PROGRAM = $(install_sh) -c
> install_sh_SCRIPT = $(install_sh) -c
> INSTALL_HEADER = $(INSTALL_DATA)
> transform = $(program_transform_name)
> NORMAL_INSTALL = :
> PRE_INSTALL = :
> POST_INSTALL = :
> NORMAL_UNINSTALL = :
> PRE_UNINSTALL = :
> POST_UNINSTALL = :
> host_triplet = mipsel-unknown-linux-gnu
> ACLOCAL = ${SHELL} /home/vijay/tools/MIPS/freeipmi-0.1.3/missing --run 
> aclocal-1.7
> ALLOCA = 
> AMDEP_FALSE = #
> AMDEP_TRUE = 
> AMTAR = ${SHELL} /home/vijay/tools/MIPS/freeipmi-0.1.3/missing --run tar
> AR = /opt/Embedix/tools/bin/mipsel-linux-ar
> AUTOCONF = ${SHELL} /home/vijay/tools/MIPS/freeipmi-0.1.3/missing --run 
> autoconf
> AUTOHEADER = ${SHELL} /home/vijay/tools/MIPS/freeipmi-0.1.3/missing --run 
> autoheader
> AUTOMAKE = ${SHELL} /home/vijay/tools/MIPS/freeipmi-0.1.3/missing --run 
> automake-1.7
> AWK = gawk
> CC = /opt/Embedix/tools/bin/mipsel-linux-gcc
> CCDEPMODE = depmode=gcc
> CFLAGS =  -I/opt/Embedix/tools/mipsel-linux/include/ 
> -I/opt/Embedix/tools/lib/gcc-lib/mipsel-linux/2.95.3/include/ 
> -I/opt/Embedix/tools/mipsel-linux/include/linux/ 
> -I/opt/Embedix/tools/mipsel-linux/include/asm-mips/ 
> CPP = /opt/Embedix/tools/bin/mipsel-linux-gcc -E
> CPPFLAGS = -I/opt/Embedix/tools/mipsel-linux/include/ 
> -I/opt/Embedix/tools/lib/gcc-lib/mipsel-linux/2.95.3/include/ 
> -I/opt/Embedix/tools/mipsel-linux/include/linux/  
> -I/opt/Embedix/tools/mipsel-linux/include/asm-mips/ 
> CXX = g++
> CXXCPP = g++ -E
> CXXDEPMODE = depmode=gcc
> CXXFLAGS = -g -O2
> CYGPATH_W = echo
> DEFS = -DHAVE_CONFIG_H
> DEPDIR = .deps
> ECHO = echo
> ECHO_C = 
> ECHO_N = -n
> ECHO_T = 
> EGREP = grep -E
> EXEEXT = 
> F77 = g77
> FFLAGS = 
> GUILE = /usr/bin/guile
> GUILE_CFLAGS = 
> GUILE_CONFIG = /usr/bin/guile-config
> GUILE_LDFLAGS = -lguile -lguile-ltdl -lqthreads -lpthread -lcrypt -lm
> GUILE_TOOLS = /usr/bin/guile-tools
> INSTALL_DATA = ${INSTALL} -m 644
> INSTALL_PROGRAM = ${INSTALL}
> INSTALL_SCRIPT = ${INSTALL}
> INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
> ISODATE = 2006-05-12
> LDFLAGS = -L/opt/Embedix/tools/lib/gcc-lib/mipsel-linux/2.95.3/ 
> -L/opt/Embedix/tools/lib/ -static -lpthread
> LIBFREEIPMI_VERSION = 1.0.0
> LIBFREEIPMI_VERSION_INFO = 1:0:0
> LIBOBJS = 
> LIBS = 
> LIBTOOL = $(SHELL) $(top_builddir)/libtool
> LN_S = ln -s
> LTLIBOBJS = 
> MAKEINFO = ${SHELL} /home/vijay/tools/MIPS/freeipmi-0.1.3/missing --run 
> makeinfo
> OBJEXT = o
> PACKAGE = freeipmi
> PACKAGE_BUGREPORT = address@hidden
> PACKAGE_NAME = freeipmi
> PACKAGE_STRING = freeipmi 0.1.3
> PACKAGE_TARNAME = freeipmi
> PACKAGE_VERSION = 0.1.3
> PATH_SEPARATOR = :
> RANLIB = /opt/Embedix/tools/bin/mipsel-linux-ranlib
> READLINE_LIBS = -lreadline -ltermcap 
> SET_MAKE = 
> SHELL = /bin/sh
> STRIP = strip
> VERSION = 0.1.3
> WITH_DEBUG = 0
> ac_ct_AR = 
> ac_ct_CC = 
> ac_ct_CXX = g++
> ac_ct_F77 = g77
> ac_ct_RANLIB = 
> ac_ct_STRIP = strip
> am__fastdepCC_FALSE = 
> am__fastdepCC_TRUE = #
> am__fastdepCXX_FALSE = 
> am__fastdepCXX_TRUE = #
> am__include = include
> am__leading_dot = .
> am__quote = 
> bindir = ${exec_prefix}/bin
> build = i686-pc-linux-gnu
> build_alias = 
> build_cpu = i686
> build_os = linux-gnu
> build_vendor = pc
> datadir = ${prefix}/share
> exec_prefix = ${prefix}
> host = mipsel-unknown-linux-gnu
> host_alias = mipsel-linux
> host_cpu = mipsel
> host_os = linux-gnu
> host_vendor = unknown
> includedir = ${prefix}/include
> infodir = ${prefix}/info
> install_sh = /home/vijay/tools/MIPS/freeipmi-0.1.3/install-sh
> libdir = ${exec_prefix}/lib
> libexecdir = ${exec_prefix}/libexec
> localstatedir = ${prefix}/var
> mandir = ${prefix}/man
> oldincludedir = /usr/include
> prefix = /home/vijay/tools/MIPS/freeipmi-0.1.3/install
> program_transform_name = s,x,x,
> sbindir = ${exec_prefix}/sbin
> sharedstatedir = ${prefix}/com
> sysconfdir = ${prefix}/etc
> target_alias = 
> lib_LTLIBRARIES = libfreeipmi.la
> 
> # AM_CFLAGS = -Wall -D_GNU_SOURCE -DFREEIPMI_LIBRARY -fpack-struct
> AM_CFLAGS = -Wall -D_GNU_SOURCE -DFREEIPMI_BUILD -DFREEIPMI_LIBRARY 
> -D_REENTRANT
> 
> EXTRA_DIST = 
> 
> libfreeipmi_la_SOURCES = bit-ops.c libfreeipmi.c xmalloc.c fiid.c smbios.c 
> rmcp.c ipmi-utils.c ipmi-netfn-spec.c ipmi-error.c ipmi-sessions.c 
> ipmi-semaphores.c ipmi-lan-interface.c ipmi-kcs-interface.c 
> ipmi-smic-interface.c ipmi-msg-support-cmds.c ipmi-chassis-cmds.c 
> ipmi-dev-global-cmds.c ipmi-sdr-record-types.c ipmi-sdr-repo-cmds.c 
> ipmi-sensor-types.c ipmi-sensor-cmds.c ipmi-sel-record-types.c 
> ipmi-sel-cmds.c ipmi-lan-cmds.c ipmi-sol-cmds.c ipmi-md2.c ipmi-md5.c 
> ipmi-serial-cmds.c ipmi-sdr-repo-cache.c ipmi-sensor-utils.c ipmi-debug.c 
> ipmi-watchdog.c ipmi-probe.c pcilocate.c ipmi-msg-interface-desc.c 
> ipmi-ping.c ipmi-discover.c
> 
> libfreeipmi_la_LDFLAGS = -module -version-info 1:0:0 -lm
> 
> noinst_HEADERS = xmalloc.h
> # These are headers visible as <freeipmi/freeipmi.h>
> modincludedir = $(includedir)/freeipmi
> 
> modinclude_HEADERS = freeipmi.h fiid.h smbios.h bit-ops.h ipmi-cmd-spec.h 
> ipmi-netfn-spec.h ipmi-semaphores.h ipmi-ipmb-interface.h 
> ipmi-lan-interface.h ipmi-kcs-interface.h ipmi-smic-interface.h rmcp.h 
> ipmi-sessions.h ipmi-utils.h ipmi-error.h ipmi-msg-support-cmds.h 
> ipmi-chassis-cmds.h ipmi-dev-global-cmds.h ipmi-sdr-record-types.h 
> ipmi-sdr-repo-cmds.h ipmi-sensor-types.h ipmi-sensor-cmds.h 
> ipmi-sel-record-types.h ipmi-sel-cmds.h ipmi-lan-param-spec.h ipmi-lan-cmds.h 
> ipmi-sol-cmds.h ipmi-md2.h ipmi-md5.h ipmi-serial-modem-param-spec.h 
> ipmi-serial-cmds.h ipmi-sdr-repo-cache.h ipmi-sensor-utils.h ipmi-debug.h 
> ipmi-watchdog.h ipmi-probe.h pcilocate.h ipmi-msg-interface-desc.h ipmi-ping.h
> subdir = libfreeipmi/src
> ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
> mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
> CONFIG_HEADER = $(top_builddir)/config.h
> CONFIG_CLEAN_FILES =
> LTLIBRARIES = $(lib_LTLIBRARIES)
> 
> libfreeipmi_la_LIBADD =
> am_libfreeipmi_la_OBJECTS = bit-ops.lo libfreeipmi.lo xmalloc.lo fiid.lo \
>       smbios.lo rmcp.lo ipmi-utils.lo ipmi-netfn-spec.lo \
>       ipmi-error.lo ipmi-sessions.lo ipmi-semaphores.lo \
>       ipmi-lan-interface.lo ipmi-kcs-interface.lo \
>       ipmi-smic-interface.lo ipmi-msg-support-cmds.lo \
>       ipmi-chassis-cmds.lo ipmi-dev-global-cmds.lo \
>       ipmi-sdr-record-types.lo ipmi-sdr-repo-cmds.lo \
>       ipmi-sensor-types.lo ipmi-sensor-cmds.lo \
>       ipmi-sel-record-types.lo ipmi-sel-cmds.lo ipmi-lan-cmds.lo \
>       ipmi-sol-cmds.lo ipmi-md2.lo ipmi-md5.lo ipmi-serial-cmds.lo \
>       ipmi-sdr-repo-cache.lo ipmi-sensor-utils.lo ipmi-debug.lo \
>       ipmi-watchdog.lo ipmi-probe.lo pcilocate.lo \
>       ipmi-msg-interface-desc.lo ipmi-ping.lo
> libfreeipmi_la_OBJECTS = $(am_libfreeipmi_la_OBJECTS)
> 
> DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
> depcomp = $(SHELL) $(top_srcdir)/depcomp
> am__depfiles_maybe = depfiles
> DEP_FILES = ./$(DEPDIR)/bit-ops.Plo ./$(DEPDIR)/fiid.Plo \
>       ./$(DEPDIR)/ipmi-chassis-cmds.Plo \
>       ./$(DEPDIR)/ipmi-debug.Plo \
>       ./$(DEPDIR)/ipmi-dev-global-cmds.Plo \
>       ./$(DEPDIR)/ipmi-error.Plo \
>       ./$(DEPDIR)/ipmi-kcs-interface.Plo \
>       ./$(DEPDIR)/ipmi-lan-cmds.Plo \
>       ./$(DEPDIR)/ipmi-lan-interface.Plo \
>       ./$(DEPDIR)/ipmi-md2.Plo ./$(DEPDIR)/ipmi-md5.Plo \
>       ./$(DEPDIR)/ipmi-msg-interface-desc.Plo \
>       ./$(DEPDIR)/ipmi-msg-support-cmds.Plo \
>       ./$(DEPDIR)/ipmi-netfn-spec.Plo \
>       ./$(DEPDIR)/ipmi-ping.Plo \
>       ./$(DEPDIR)/ipmi-probe.Plo \
>       ./$(DEPDIR)/ipmi-sdr-record-types.Plo \
>       ./$(DEPDIR)/ipmi-sdr-repo-cache.Plo \
>       ./$(DEPDIR)/ipmi-sdr-repo-cmds.Plo \
>       ./$(DEPDIR)/ipmi-sel-cmds.Plo \
>       ./$(DEPDIR)/ipmi-sel-record-types.Plo \
>       ./$(DEPDIR)/ipmi-semaphores.Plo \
>       ./$(DEPDIR)/ipmi-sensor-cmds.Plo \
>       ./$(DEPDIR)/ipmi-sensor-types.Plo \
>       ./$(DEPDIR)/ipmi-sensor-utils.Plo \
>       ./$(DEPDIR)/ipmi-serial-cmds.Plo \
>       ./$(DEPDIR)/ipmi-sessions.Plo \
>       ./$(DEPDIR)/ipmi-smic-interface.Plo \
>       ./$(DEPDIR)/ipmi-sol-cmds.Plo \
>       ./$(DEPDIR)/ipmi-utils.Plo \
>       ./$(DEPDIR)/ipmi-watchdog.Plo \
>       ./$(DEPDIR)/libfreeipmi.Plo \
>       ./$(DEPDIR)/pcilocate.Plo ./$(DEPDIR)/rmcp.Plo \
>       ./$(DEPDIR)/smbios.Plo ./$(DEPDIR)/xmalloc.Plo
> COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
>       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
> LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
>       $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
> CCLD = $(CC)
> LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
>       $(AM_LDFLAGS) $(LDFLAGS) -o $@
> DIST_SOURCES = $(libfreeipmi_la_SOURCES)
> HEADERS = $(modinclude_HEADERS) $(noinst_HEADERS)
> 
> DIST_COMMON = $(modinclude_HEADERS) $(noinst_HEADERS) \
>       $(srcdir)/Makefile.in Makefile.am
> SOURCES = $(libfreeipmi_la_SOURCES)
> 
> all: all-am
> 
> .SUFFIXES:
> .SUFFIXES: .c .lo .o .obj
> $(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
>       cd $(top_srcdir) && \
>         $(AUTOMAKE) --gnu  libfreeipmi/src/Makefile
> Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
>       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ 
> $(am__depfiles_maybe)
> libLTLIBRARIES_INSTALL = $(INSTALL)
> install-libLTLIBRARIES: $(lib_LTLIBRARIES)
>       @$(NORMAL_INSTALL)
>       $(mkinstalldirs) $(DESTDIR)$(libdir)
>       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
>         if test -f $$p; then \
>           f="`echo $$p | sed -e 's|^.*/||'`"; \
>           echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) 
> $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \
>           $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) 
> $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \
>         else :; fi; \
>       done
> 
> uninstall-libLTLIBRARIES:
>       @$(NORMAL_UNINSTALL)
>       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
>           p="`echo $$p | sed -e 's|^.*/||'`"; \
>         echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
>         $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
>       done
> 
> clean-libLTLIBRARIES:
>       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
>       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
>         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
>         test "$$dir" = "$$p" && dir=.; \
>         echo "rm -f \"$${dir}/so_locations\""; \
>         rm -f "$${dir}/so_locations"; \
>       done
> libfreeipmi.la: $(libfreeipmi_la_OBJECTS) $(libfreeipmi_la_DEPENDENCIES) 
>       $(LINK) -rpath $(libdir) $(libfreeipmi_la_LDFLAGS) 
> $(libfreeipmi_la_OBJECTS) $(libfreeipmi_la_LIBADD) $(LIBS)
> 
> mostlyclean-compile:
>       -rm -f *.$(OBJEXT) core *.core
> 
> distclean-compile:
>       -rm -f *.tab.c
> 
> include ./$(DEPDIR)/bit-ops.Plo
> include ./$(DEPDIR)/fiid.Plo
> include ./$(DEPDIR)/ipmi-chassis-cmds.Plo
> include ./$(DEPDIR)/ipmi-debug.Plo
> include ./$(DEPDIR)/ipmi-dev-global-cmds.Plo
> include ./$(DEPDIR)/ipmi-error.Plo
> include ./$(DEPDIR)/ipmi-kcs-interface.Plo
> include ./$(DEPDIR)/ipmi-lan-cmds.Plo
> include ./$(DEPDIR)/ipmi-lan-interface.Plo
> include ./$(DEPDIR)/ipmi-md2.Plo
> include ./$(DEPDIR)/ipmi-md5.Plo
> include ./$(DEPDIR)/ipmi-msg-interface-desc.Plo
> include ./$(DEPDIR)/ipmi-msg-support-cmds.Plo
> include ./$(DEPDIR)/ipmi-netfn-spec.Plo
> include ./$(DEPDIR)/ipmi-ping.Plo
> include ./$(DEPDIR)/ipmi-probe.Plo
> include ./$(DEPDIR)/ipmi-sdr-record-types.Plo
> include ./$(DEPDIR)/ipmi-sdr-repo-cache.Plo
> include ./$(DEPDIR)/ipmi-sdr-repo-cmds.Plo
> include ./$(DEPDIR)/ipmi-sel-cmds.Plo
> include ./$(DEPDIR)/ipmi-sel-record-types.Plo
> include ./$(DEPDIR)/ipmi-semaphores.Plo
> include ./$(DEPDIR)/ipmi-sensor-cmds.Plo
> include ./$(DEPDIR)/ipmi-sensor-types.Plo
> include ./$(DEPDIR)/ipmi-sensor-utils.Plo
> include ./$(DEPDIR)/ipmi-serial-cmds.Plo
> include ./$(DEPDIR)/ipmi-sessions.Plo
> include ./$(DEPDIR)/ipmi-smic-interface.Plo
> include ./$(DEPDIR)/ipmi-sol-cmds.Plo
> include ./$(DEPDIR)/ipmi-utils.Plo
> include ./$(DEPDIR)/ipmi-watchdog.Plo
> include ./$(DEPDIR)/libfreeipmi.Plo
> include ./$(DEPDIR)/pcilocate.Plo
> include ./$(DEPDIR)/rmcp.Plo
> include ./$(DEPDIR)/smbios.Plo
> include ./$(DEPDIR)/xmalloc.Plo
> 
> .c.o:
> #     if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
> #       -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
> #     then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
> #     else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
> #     fi
>       source='$<' object='$@' libtool=no \
>       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
>       $(CCDEPMODE) $(depcomp) \
>       $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
> 
> .c.obj:
> #     if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
> #       -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) 
> '$(srcdir)/$<'; fi`; \
> #     then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
> #     else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
> #     fi
>       source='$<' object='$@' libtool=no \
>       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
>       $(CCDEPMODE) $(depcomp) \
>       $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else 
> $(CYGPATH_W) '$(srcdir)/$<'; fi`
> 
> .c.lo:
> #     if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
> #       -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
> #     then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
> #     else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
> #     fi
>       source='$<' object='$@' libtool=yes \
>       depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' \
>       $(CCDEPMODE) $(depcomp) \
>       $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
> 
> mostlyclean-libtool:
>       -rm -f *.lo
> 
> clean-libtool:
>       -rm -rf .libs _libs
> 
> distclean-libtool:
>       -rm -f libtool
> uninstall-info-am:
> modincludeHEADERS_INSTALL = $(INSTALL_HEADER)
> install-modincludeHEADERS: $(modinclude_HEADERS)
>       @$(NORMAL_INSTALL)
>       $(mkinstalldirs) $(DESTDIR)$(modincludedir)
>       @list='$(modinclude_HEADERS)'; for p in $$list; do \
>         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
>         f="`echo $$p | sed -e 's|^.*/||'`"; \
>         echo " $(modincludeHEADERS_INSTALL) $$d$$p 
> $(DESTDIR)$(modincludedir)/$$f"; \
>         $(modincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(modincludedir)/$$f; \
>       done
> 
> uninstall-modincludeHEADERS:
>       @$(NORMAL_UNINSTALL)
>       @list='$(modinclude_HEADERS)'; for p in $$list; do \
>         f="`echo $$p | sed -e 's|^.*/||'`"; \
>         echo " rm -f $(DESTDIR)$(modincludedir)/$$f"; \
>         rm -f $(DESTDIR)$(modincludedir)/$$f; \
>       done
> 
> ETAGS = etags
> ETAGSFLAGS =
> 
> CTAGS = ctags
> CTAGSFLAGS =
> 
> tags: TAGS
> 
> ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
>       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
>       unique=`for i in $$list; do \
>           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
>         done | \
>         $(AWK) '    { files[$$0] = 1; } \
>              END { for (i in files) print i; }'`; \
>       mkid -fID $$unique
> 
> TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
>               $(TAGS_FILES) $(LISP)
>       tags=; \
>       here=`pwd`; \
>       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
>       unique=`for i in $$list; do \
>           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
>         done | \
>         $(AWK) '    { files[$$0] = 1; } \
>              END { for (i in files) print i; }'`; \
>       test -z "$(ETAGS_ARGS)$$tags$$unique" \
>         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
>            $$tags $$unique
> 
> ctags: CTAGS
> CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
>               $(TAGS_FILES) $(LISP)
>       tags=; \
>       here=`pwd`; \
>       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
>       unique=`for i in $$list; do \
>           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
>         done | \
>         $(AWK) '    { files[$$0] = 1; } \
>              END { for (i in files) print i; }'`; \
>       test -z "$(CTAGS_ARGS)$$tags$$unique" \
>         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
>            $$tags $$unique
> 
> GTAGS:
>       here=`$(am__cd) $(top_builddir) && pwd` \
>         && cd $(top_srcdir) \
>         && gtags -i $(GTAGS_ARGS) $$here
> 
> distclean-tags:
>       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
> DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
> 
> top_distdir = ../..
> distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
> 
> distdir: $(DISTFILES)
>       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
>       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
>       list='$(DISTFILES)'; for file in $$list; do \
>         case $$file in \
>           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
>           $(top_srcdir)/*) file=`echo "$$file" | sed 
> "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
>         esac; \
>         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
>         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
>         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
>           dir="/$$dir"; \
>           $(mkinstalldirs) "$(distdir)$$dir"; \
>         else \
>           dir=''; \
>         fi; \
>         if test -d $$d/$$file; then \
>           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
>             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
>           fi; \
>           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
>         else \
>           test -f $(distdir)/$$file \
>           || cp -p $$d/$$file $(distdir)/$$file \
>           || exit 1; \
>         fi; \
>       done
> check-am: all-am
> check: check-am
> all-am: Makefile $(LTLIBRARIES) $(HEADERS)
> 
> installdirs:
>       $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(modincludedir)
> install: install-am
> install-exec: install-exec-am
> install-data: install-data-am
> uninstall: uninstall-am
> 
> install-am: all-am
>       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
> 
> installcheck: installcheck-am
> install-strip:
>       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
>         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
>         `test -z '$(STRIP)' || \
>           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
> mostlyclean-generic:
> 
> clean-generic:
> 
> distclean-generic:
>       -rm -f $(CONFIG_CLEAN_FILES)
> 
> maintainer-clean-generic:
>       @echo "This command is intended for maintainers to use"
>       @echo "it deletes files that may require special tools to rebuild."
> clean: clean-am
> 
> clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
>       mostlyclean-am
> 
> distclean: distclean-am
>       -rm -rf ./$(DEPDIR)
>       -rm -f Makefile
> distclean-am: clean-am distclean-compile distclean-generic \
>       distclean-libtool distclean-tags
> 
> dvi: dvi-am
> 
> dvi-am:
> 
> info: info-am
> 
> info-am:
> 
> install-data-am: install-modincludeHEADERS
> 
> install-exec-am: install-libLTLIBRARIES
> 
> install-info: install-info-am
> 
> install-man:
> 
> installcheck-am:
> 
> maintainer-clean: maintainer-clean-am
>       -rm -rf ./$(DEPDIR)
>       -rm -f Makefile
> maintainer-clean-am: distclean-am maintainer-clean-generic
> 
> mostlyclean: mostlyclean-am
> 
> mostlyclean-am: mostlyclean-compile mostlyclean-generic \
>       mostlyclean-libtool
> 
> pdf: pdf-am
> 
> pdf-am:
> 
> ps: ps-am
> 
> ps-am:
> 
> uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
>       uninstall-modincludeHEADERS
> 
> .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
>       clean-libLTLIBRARIES clean-libtool ctags distclean \
>       distclean-compile distclean-generic distclean-libtool \
>       distclean-tags distdir dvi dvi-am info info-am install \
>       install-am install-data install-data-am install-exec \
>       install-exec-am install-info install-info-am \
>       install-libLTLIBRARIES install-man install-modincludeHEADERS \
>       install-strip installcheck installcheck-am installdirs \
>       maintainer-clean maintainer-clean-generic mostlyclean \
>       mostlyclean-compile mostlyclean-generic mostlyclean-libtool pdf \
>       pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \
>       uninstall-libLTLIBRARIES uninstall-modincludeHEADERS
> 
> # Tell versions [3.59,3.63) of GNU make to not export all variables.
> # Otherwise a system limit (for SysV at least) may be exceeded.
> .NOEXPORT:
> plain text document attachment (Makefile.in), "501088700-Makefile.in"
> # Makefile.in generated by automake 1.7.9 from Makefile.am.
> # @configure_input@
> 
> # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
> # Free Software Foundation, Inc.
> # This Makefile.in is free software; the Free Software Foundation
> # gives unlimited permission to copy and/or distribute it,
> # with or without modifications, as long as this notice is preserved.
> 
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
> # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
> # PARTICULAR PURPOSE.
> 
> @SET_MAKE@
> 
> srcdir = @srcdir@
> top_srcdir = @top_srcdir@
> VPATH = @srcdir@
> pkgdatadir = $(datadir)/@PACKAGE@
> pkglibdir = $(libdir)/@PACKAGE@
> pkgincludedir = $(includedir)/@PACKAGE@
> top_builddir = ../..
> 
> am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
> INSTALL = @INSTALL@
> install_sh_DATA = $(install_sh) -c -m 644
> install_sh_PROGRAM = $(install_sh) -c
> install_sh_SCRIPT = $(install_sh) -c
> INSTALL_HEADER = $(INSTALL_DATA)
> transform = $(program_transform_name)
> NORMAL_INSTALL = :
> PRE_INSTALL = :
> POST_INSTALL = :
> NORMAL_UNINSTALL = :
> PRE_UNINSTALL = :
> POST_UNINSTALL = :
> host_triplet = @host@
> ACLOCAL = @ACLOCAL@
> ALLOCA = @ALLOCA@
> AMDEP_FALSE = @AMDEP_FALSE@
> AMDEP_TRUE = @AMDEP_TRUE@
> AMTAR = @AMTAR@
> AR = @AR@
> AUTOCONF = @AUTOCONF@
> AUTOHEADER = @AUTOHEADER@
> AUTOMAKE = @AUTOMAKE@
> AWK = @AWK@
> CC = @CC@
> CCDEPMODE = @CCDEPMODE@
> CFLAGS = @CFLAGS@
> CPP = @CPP@
> CPPFLAGS = @CPPFLAGS@
> CXX = @CXX@
> CXXCPP = @CXXCPP@
> CXXDEPMODE = @CXXDEPMODE@
> CXXFLAGS = @CXXFLAGS@
> CYGPATH_W = @CYGPATH_W@
> DEFS = @DEFS@
> DEPDIR = @DEPDIR@
> ECHO = @ECHO@
> ECHO_C = @ECHO_C@
> ECHO_N = @ECHO_N@
> ECHO_T = @ECHO_T@
> EGREP = @EGREP@
> EXEEXT = @EXEEXT@
> F77 = @F77@
> FFLAGS = @FFLAGS@
> GUILE = @GUILE@
> GUILE_CFLAGS = @GUILE_CFLAGS@
> GUILE_CONFIG = @GUILE_CONFIG@
> GUILE_LDFLAGS = @GUILE_LDFLAGS@
> GUILE_TOOLS = @GUILE_TOOLS@
> INSTALL_DATA = @INSTALL_DATA@
> INSTALL_PROGRAM = @INSTALL_PROGRAM@
> INSTALL_SCRIPT = @INSTALL_SCRIPT@
> INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
> ISODATE = @ISODATE@
> LDFLAGS = @LDFLAGS@
> LIBFREEIPMI_VERSION = @LIBFREEIPMI_VERSION@
> LIBFREEIPMI_VERSION_INFO = @LIBFREEIPMI_VERSION_INFO@
> LIBOBJS = @LIBOBJS@
> LIBS = @LIBS@
> LIBTOOL = @LIBTOOL@
> LN_S = @LN_S@
> LTLIBOBJS = @LTLIBOBJS@
> MAKEINFO = @MAKEINFO@
> OBJEXT = @OBJEXT@
> PACKAGE = @PACKAGE@
> PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
> PACKAGE_NAME = @PACKAGE_NAME@
> PACKAGE_STRING = @PACKAGE_STRING@
> PACKAGE_TARNAME = @PACKAGE_TARNAME@
> PACKAGE_VERSION = @PACKAGE_VERSION@
> PATH_SEPARATOR = @PATH_SEPARATOR@
> RANLIB = @RANLIB@
> READLINE_LIBS = @READLINE_LIBS@
> SET_MAKE = @SET_MAKE@
> SHELL = @SHELL@
> STRIP = @STRIP@
> VERSION = @VERSION@
> WITH_DEBUG = @WITH_DEBUG@
> ac_ct_AR = @ac_ct_AR@
> ac_ct_CC = @ac_ct_CC@
> ac_ct_CXX = @ac_ct_CXX@
> ac_ct_F77 = @ac_ct_F77@
> ac_ct_RANLIB = @ac_ct_RANLIB@
> ac_ct_STRIP = @ac_ct_STRIP@
> am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
> am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
> am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
> am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
> am__include = @am__include@
> am__leading_dot = @am__leading_dot@
> am__quote = @am__quote@
> bindir = @bindir@
> build = @build@
> build_alias = @build_alias@
> build_cpu = @build_cpu@
> build_os = @build_os@
> build_vendor = @build_vendor@
> datadir = @datadir@
> exec_prefix = @exec_prefix@
> host = @host@
> host_alias = @host_alias@
> host_cpu = @host_cpu@
> host_os = @host_os@
> host_vendor = @host_vendor@
> includedir = @includedir@
> infodir = @infodir@
> install_sh = @install_sh@
> libdir = @libdir@
> libexecdir = @libexecdir@
> localstatedir = @localstatedir@
> mandir = @mandir@
> oldincludedir = @oldincludedir@
> prefix = @prefix@
> program_transform_name = @program_transform_name@
> sbindir = @sbindir@
> sharedstatedir = @sharedstatedir@
> sysconfdir = @sysconfdir@
> target_alias = @target_alias@
> lib_LTLIBRARIES = libfreeipmi.la
> 
> # AM_CFLAGS = -Wall -D_GNU_SOURCE -DFREEIPMI_LIBRARY -fpack-struct
> AM_CFLAGS = -Wall -D_GNU_SOURCE -DFREEIPMI_BUILD -DFREEIPMI_LIBRARY 
> -D_REENTRANT
> 
> EXTRA_DIST = 
> 
> libfreeipmi_la_SOURCES = bit-ops.c libfreeipmi.c xmalloc.c fiid.c smbios.c 
> rmcp.c ipmi-utils.c ipmi-netfn-spec.c ipmi-error.c ipmi-sessions.c 
> ipmi-semaphores.c ipmi-lan-interface.c ipmi-kcs-interface.c 
> ipmi-smic-interface.c ipmi-msg-support-cmds.c ipmi-chassis-cmds.c 
> ipmi-dev-global-cmds.c ipmi-sdr-record-types.c ipmi-sdr-repo-cmds.c 
> ipmi-sensor-types.c ipmi-sensor-cmds.c ipmi-sel-record-types.c 
> ipmi-sel-cmds.c ipmi-lan-cmds.c ipmi-sol-cmds.c ipmi-md2.c ipmi-md5.c 
> ipmi-serial-cmds.c ipmi-sdr-repo-cache.c ipmi-sensor-utils.c ipmi-debug.c 
> ipmi-watchdog.c ipmi-probe.c pcilocate.c ipmi-msg-interface-desc.c 
> ipmi-ping.c ipmi-discover.c
> 
> libfreeipmi_la_LDFLAGS = -module -version-info @LIBFREEIPMI_VERSION_INFO@ -lm
> 
> noinst_HEADERS = xmalloc.h
> # These are headers visible as <freeipmi/freeipmi.h>
> modincludedir = $(includedir)/freeipmi
> 
> modinclude_HEADERS = freeipmi.h fiid.h smbios.h bit-ops.h ipmi-cmd-spec.h 
> ipmi-netfn-spec.h ipmi-semaphores.h ipmi-ipmb-interface.h 
> ipmi-lan-interface.h ipmi-kcs-interface.h ipmi-smic-interface.h rmcp.h 
> ipmi-sessions.h ipmi-utils.h ipmi-error.h ipmi-msg-support-cmds.h 
> ipmi-chassis-cmds.h ipmi-dev-global-cmds.h ipmi-sdr-record-types.h 
> ipmi-sdr-repo-cmds.h ipmi-sensor-types.h ipmi-sensor-cmds.h 
> ipmi-sel-record-types.h ipmi-sel-cmds.h ipmi-lan-param-spec.h ipmi-lan-cmds.h 
> ipmi-sol-cmds.h ipmi-md2.h ipmi-md5.h ipmi-serial-modem-param-spec.h 
> ipmi-serial-cmds.h ipmi-sdr-repo-cache.h ipmi-sensor-utils.h ipmi-debug.h 
> ipmi-watchdog.h ipmi-probe.h pcilocate.h ipmi-msg-interface-desc.h ipmi-ping.h
> subdir = libfreeipmi/src
> ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
> mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
> CONFIG_HEADER = $(top_builddir)/config.h
> CONFIG_CLEAN_FILES =
> LTLIBRARIES = $(lib_LTLIBRARIES)
> 
> libfreeipmi_la_LIBADD =
> am_libfreeipmi_la_OBJECTS = bit-ops.lo libfreeipmi.lo xmalloc.lo fiid.lo \
>       smbios.lo rmcp.lo ipmi-utils.lo ipmi-netfn-spec.lo \
>       ipmi-error.lo ipmi-sessions.lo ipmi-semaphores.lo \
>       ipmi-lan-interface.lo ipmi-kcs-interface.lo \
>       ipmi-smic-interface.lo ipmi-msg-support-cmds.lo \
>       ipmi-chassis-cmds.lo ipmi-dev-global-cmds.lo \
>       ipmi-sdr-record-types.lo ipmi-sdr-repo-cmds.lo \
>       ipmi-sensor-types.lo ipmi-sensor-cmds.lo \
>       ipmi-sel-record-types.lo ipmi-sel-cmds.lo ipmi-lan-cmds.lo \
>       ipmi-sol-cmds.lo ipmi-md2.lo ipmi-md5.lo ipmi-serial-cmds.lo \
>       ipmi-sdr-repo-cache.lo ipmi-sensor-utils.lo ipmi-debug.lo \
>       ipmi-watchdog.lo ipmi-probe.lo pcilocate.lo \
>       ipmi-msg-interface-desc.lo ipmi-ping.lo
> libfreeipmi_la_OBJECTS = $(am_libfreeipmi_la_OBJECTS)
> 
> DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
> depcomp = $(SHELL) $(top_srcdir)/depcomp
> am__depfiles_maybe = depfiles
> @address@hidden = ./$(DEPDIR)/bit-ops.Plo ./$(DEPDIR)/fiid.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-chassis-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-debug.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-dev-global-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-error.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-kcs-interface.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-lan-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-lan-interface.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-md2.Plo ./$(DEPDIR)/ipmi-md5.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-msg-interface-desc.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-msg-support-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-netfn-spec.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-ping.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-probe.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sdr-record-types.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sdr-repo-cache.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sdr-repo-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sel-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sel-record-types.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-semaphores.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sensor-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sensor-types.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sensor-utils.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-serial-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sessions.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-smic-interface.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-sol-cmds.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-utils.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/ipmi-watchdog.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/libfreeipmi.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/pcilocate.Plo ./$(DEPDIR)/rmcp.Plo \
> @AMDEP_TRUE@  ./$(DEPDIR)/smbios.Plo ./$(DEPDIR)/xmalloc.Plo
> COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
>       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
> LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
>       $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
> CCLD = $(CC)
> LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
>       $(AM_LDFLAGS) $(LDFLAGS) -o $@
> DIST_SOURCES = $(libfreeipmi_la_SOURCES)
> HEADERS = $(modinclude_HEADERS) $(noinst_HEADERS)
> 
> DIST_COMMON = $(modinclude_HEADERS) $(noinst_HEADERS) \
>       $(srcdir)/Makefile.in Makefile.am
> SOURCES = $(libfreeipmi_la_SOURCES)
> 
> all: all-am
> 
> .SUFFIXES:
> .SUFFIXES: .c .lo .o .obj
> $(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
>       cd $(top_srcdir) && \
>         $(AUTOMAKE) --gnu  libfreeipmi/src/Makefile
> Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
>       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ 
> $(am__depfiles_maybe)
> libLTLIBRARIES_INSTALL = $(INSTALL)
> install-libLTLIBRARIES: $(lib_LTLIBRARIES)
>       @$(NORMAL_INSTALL)
>       $(mkinstalldirs) $(DESTDIR)$(libdir)
>       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
>         if test -f $$p; then \
>           f="`echo $$p | sed -e 's|^.*/||'`"; \
>           echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) 
> $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \
>           $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) 
> $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \
>         else :; fi; \
>       done
> 
> uninstall-libLTLIBRARIES:
>       @$(NORMAL_UNINSTALL)
>       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
>           p="`echo $$p | sed -e 's|^.*/||'`"; \
>         echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
>         $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
>       done
> 
> clean-libLTLIBRARIES:
>       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
>       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
>         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
>         test "$$dir" = "$$p" && dir=.; \
>         echo "rm -f \"$${dir}/so_locations\""; \
>         rm -f "$${dir}/so_locations"; \
>       done
> libfreeipmi.la: $(libfreeipmi_la_OBJECTS) $(libfreeipmi_la_DEPENDENCIES) 
>       $(LINK) -rpath $(libdir) $(libfreeipmi_la_LDFLAGS) 
> $(libfreeipmi_la_OBJECTS) $(libfreeipmi_la_LIBADD) $(LIBS)
> 
> mostlyclean-compile:
>       -rm -f *.$(OBJEXT) core *.core
> 
> distclean-compile:
>       -rm -f *.tab.c
> 
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
> 
> .c.o:
> @am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
> @am__fastdepCC_TRUE@    -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
> @am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
> @am__fastdepCC_TRUE@  else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
> @am__fastdepCC_TRUE@  fi
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no 
> @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     depfile='$(DEPDIR)/$*.Po' 
> tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> @am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
> 
> .c.obj:
> @am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
> @am__fastdepCC_TRUE@    -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; 
> else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
> @am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
> @am__fastdepCC_TRUE@  else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
> @am__fastdepCC_TRUE@  fi
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no 
> @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     depfile='$(DEPDIR)/$*.Po' 
> tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> @am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; 
> else $(CYGPATH_W) '$(srcdir)/$<'; fi`
> 
> .c.lo:
> @am__fastdepCC_TRUE@  if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
> @am__fastdepCC_TRUE@    -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
> @am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
> @am__fastdepCC_TRUE@  else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
> @am__fastdepCC_TRUE@  fi
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=yes 
> @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     depfile='$(DEPDIR)/$*.Plo' 
> tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
> @AMDEP_TRUE@@am__fastdepCC_FALSE@     $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo 
> '$(srcdir)/'`$<
> 
> mostlyclean-libtool:
>       -rm -f *.lo
> 
> clean-libtool:
>       -rm -rf .libs _libs
> 
> distclean-libtool:
>       -rm -f libtool
> uninstall-info-am:
> modincludeHEADERS_INSTALL = $(INSTALL_HEADER)
> install-modincludeHEADERS: $(modinclude_HEADERS)
>       @$(NORMAL_INSTALL)
>       $(mkinstalldirs) $(DESTDIR)$(modincludedir)
>       @list='$(modinclude_HEADERS)'; for p in $$list; do \
>         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
>         f="`echo $$p | sed -e 's|^.*/||'`"; \
>         echo " $(modincludeHEADERS_INSTALL) $$d$$p 
> $(DESTDIR)$(modincludedir)/$$f"; \
>         $(modincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(modincludedir)/$$f; \
>       done
> 
> uninstall-modincludeHEADERS:
>       @$(NORMAL_UNINSTALL)
>       @list='$(modinclude_HEADERS)'; for p in $$list; do \
>         f="`echo $$p | sed -e 's|^.*/||'`"; \
>         echo " rm -f $(DESTDIR)$(modincludedir)/$$f"; \
>         rm -f $(DESTDIR)$(modincludedir)/$$f; \
>       done
> 
> ETAGS = etags
> ETAGSFLAGS =
> 
> CTAGS = ctags
> CTAGSFLAGS =
> 
> tags: TAGS
> 
> ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
>       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
>       unique=`for i in $$list; do \
>           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
>         done | \
>         $(AWK) '    { files[$$0] = 1; } \
>              END { for (i in files) print i; }'`; \
>       mkid -fID $$unique
> 
> TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
>               $(TAGS_FILES) $(LISP)
>       tags=; \
>       here=`pwd`; \
>       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
>       unique=`for i in $$list; do \
>           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
>         done | \
>         $(AWK) '    { files[$$0] = 1; } \
>              END { for (i in files) print i; }'`; \
>       test -z "$(ETAGS_ARGS)$$tags$$unique" \
>         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
>            $$tags $$unique
> 
> ctags: CTAGS
> CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
>               $(TAGS_FILES) $(LISP)
>       tags=; \
>       here=`pwd`; \
>       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
>       unique=`for i in $$list; do \
>           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
>         done | \
>         $(AWK) '    { files[$$0] = 1; } \
>              END { for (i in files) print i; }'`; \
>       test -z "$(CTAGS_ARGS)$$tags$$unique" \
>         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
>            $$tags $$unique
> 
> GTAGS:
>       here=`$(am__cd) $(top_builddir) && pwd` \
>         && cd $(top_srcdir) \
>         && gtags -i $(GTAGS_ARGS) $$here
> 
> distclean-tags:
>       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
> DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
> 
> top_distdir = ../..
> distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
> 
> distdir: $(DISTFILES)
>       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
>       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
>       list='$(DISTFILES)'; for file in $$list; do \
>         case $$file in \
>           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
>           $(top_srcdir)/*) file=`echo "$$file" | sed 
> "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
>         esac; \
>         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
>         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
>         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
>           dir="/$$dir"; \
>           $(mkinstalldirs) "$(distdir)$$dir"; \
>         else \
>           dir=''; \
>         fi; \
>         if test -d $$d/$$file; then \
>           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
>             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
>           fi; \
>           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
>         else \
>           test -f $(distdir)/$$file \
>           || cp -p $$d/$$file $(distdir)/$$file \
>           || exit 1; \
>         fi; \
>       done
> check-am: all-am
> check: check-am
> all-am: Makefile $(LTLIBRARIES) $(HEADERS)
> 
> installdirs:
>       $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(modincludedir)
> install: install-am
> install-exec: install-exec-am
> install-data: install-data-am
> uninstall: uninstall-am
> 
> install-am: all-am
>       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
> 
> installcheck: installcheck-am
> install-strip:
>       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
>         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
>         `test -z '$(STRIP)' || \
>           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
> mostlyclean-generic:
> 
> clean-generic:
> 
> distclean-generic:
>       -rm -f $(CONFIG_CLEAN_FILES)
> 
> maintainer-clean-generic:
>       @echo "This command is intended for maintainers to use"
>       @echo "it deletes files that may require special tools to rebuild."
> clean: clean-am
> 
> clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
>       mostlyclean-am
> 
> distclean: distclean-am
>       -rm -rf ./$(DEPDIR)
>       -rm -f Makefile
> distclean-am: clean-am distclean-compile distclean-generic \
>       distclean-libtool distclean-tags
> 
> dvi: dvi-am
> 
> dvi-am:
> 
> info: info-am
> 
> info-am:
> 
> install-data-am: install-modincludeHEADERS
> 
> install-exec-am: install-libLTLIBRARIES
> 
> install-info: install-info-am
> 
> install-man:
> 
> installcheck-am:
> 
> maintainer-clean: maintainer-clean-am
>       -rm -rf ./$(DEPDIR)
>       -rm -f Makefile
> maintainer-clean-am: distclean-am maintainer-clean-generic
> 
> mostlyclean: mostlyclean-am
> 
> mostlyclean-am: mostlyclean-compile mostlyclean-generic \
>       mostlyclean-libtool
> 
> pdf: pdf-am
> 
> pdf-am:
> 
> ps: ps-am
> 
> ps-am:
> 
> uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
>       uninstall-modincludeHEADERS
> 
> .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
>       clean-libLTLIBRARIES clean-libtool ctags distclean \
>       distclean-compile distclean-generic distclean-libtool \
>       distclean-tags distdir dvi dvi-am info info-am install \
>       install-am install-data install-data-am install-exec \
>       install-exec-am install-info install-info-am \
>       install-libLTLIBRARIES install-man install-modincludeHEADERS \
>       install-strip installcheck installcheck-am installdirs \
>       maintainer-clean maintainer-clean-generic mostlyclean \
>       mostlyclean-compile mostlyclean-generic mostlyclean-libtool pdf \
>       pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \
>       uninstall-libLTLIBRARIES uninstall-modincludeHEADERS
> 
> # Tell versions [3.59,3.63) of GNU make to not export all variables.
> # Otherwise a system limit (for SysV at least) may be exceeded.
> .NOEXPORT:
-- 
Albert Chu
address@hidden
925-422-5311
Computer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory




reply via email to

[Prev in Thread] Current Thread [Next in Thread]