[Top][All Lists]
[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