freeipmi-devel
[Top][All Lists]
Advanced

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

Re: [Freeipmi-devel] ipmi-discovery


From: vijay v
Subject: Re: [Freeipmi-devel] ipmi-discovery
Date: Thu, 21 Sep 2006 14:42:38 -0700 (PDT)

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.
/*****************************************************************************\
 *  $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 */
}
# 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:
# 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:

reply via email to

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