Arduino Mamaba Shield Sample Code Error

I use sample code on http://cdn.sparkfun.com/datasheets/Dev/Arduino/Shields/mamba_arduino.zip

/******************************************************************************************
** LinkSprite Technologies, Inc
* Arduino Powerline Communication Shield Sample Code
*   Jingfeng Liu
*   jingfeng.liu@linksprite.com
*   8/19/2011
 ******************************************************************************************/

#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#include "spi.h"
#include "ports.h"
#include "plm1.h"

#define MOSI            B,3
#define MISO            B,4
#define SCK             B,5


static volatile bool uart_tx_flag = false;      /* Flag for Tx UART interrupt. */
static volatile bool uart_rx_flag = false;      /* Flag for Rx UART interrupt. */
static uint8_t uart_rx_data;                    /* Rx UART data read. */

uint8_t rx_packet[PLM_RX_MAX_PACKET_SIZE];
uint8_t rx_length = 0;
uint8_t tx_packet[PLM_TX_MAX_PACKET_SIZE];
uint8_t tx_length = 0;

uint8_t incomingByte = 0;	// for incoming serial data

void setup()                    
{
   PIN_OUTPUT(MOSI);
   PIN_OUTPUT(SCK);
   PIN_OUTPUT(nPLM_RESET);
   PIN_OUTPUT(PLM_CS);
   PIN_INPUT(MISO);

   /* SPI communication must be initialized before plm1 library. */
   spi_init( SPI_SPEED_F16 );

   /* Initialization of plm1 library. */
   plm1_init();


   /* Activate external interrupt 0 for PLM-1 */
   EIFR = 0xFF;                              /* Clear external interrupt flags. */
   EICRA = _BV( ISC00 ) | _BV( ISC01 );      /* INT0 activated on a rising edge. */
   EIMSK = _BV( INT0 );                      /* Enable only external interrupt 0 (PLM). */


   Serial.begin(9600);           // set up Serial library at 9600 bps

   /* Activate global interrupts. */
   sei();
   
  
}

void
loop( void )
{

      // send data only when you receive data:
      if (Serial.available() > 0) {
	   // read the incoming byte:
	   incomingByte = Serial.read();

           plm1_send_data(&incomingByte, 1);
      }

      /* When a packet is received, plm1_receive returns the length of the 
       * packet and copies the contents of the packet in rx_packet. */
      if( (rx_length = plm1_receive(rx_packet)) )
      {
          Serial.print(byte(rx_packet[0]));
      }

}




/* Interrupt Service Routine provenant de la ligne d'interruption du PLM. */
SIGNAL(INT0_vect)
{
   plm1_interrupt();
}

use this upper example code

but always has this error

mamba.cpp.o: In function `__vector_1':
C:\Users\ADMINI~1\AppData\Local\Temp\build1707562016091152329.tmp/mamba.cpp:95: undefined reference to `plm1_interrupt()'
mamba.cpp.o: In function `loop':
C:\Users\ADMINI~1\AppData\Local\Temp\build1707562016091152329.tmp/mamba.cpp:77: undefined reference to `plm1_send_data(unsigned char*, unsigned char)'
C:\Users\ADMINI~1\AppData\Local\Temp\build1707562016091152329.tmp/mamba.cpp:82: undefined reference to `plm1_receive(unsigned char*)'
mamba.cpp.o: In function `setup':
C:\Users\ADMINI~1\AppData\Local\Temp\build1707562016091152329.tmp/mamba.cpp:48: undefined reference to `spi_init(spi_speed_t)'
C:\Users\ADMINI~1\AppData\Local\Temp\build1707562016091152329.tmp/mamba.cpp:51: undefined reference to `plm1_init()'

i use arduino IDE last version , 0022, 1.0.1

and I tring delete hardware/arduino/core/WInterrupt file too

always show this error

help me plz