/usr/local/CPAN/Chipcard-CTAPI/Makefile.PL


use 5.005;
use ExtUtils::MakeMaker;

WriteMakefile(
    'NAME'		=> 'Chipcard::CTAPI',
    'VERSION_FROM'	=> 'CTAPI.pm', 
    'PREREQ_PM'		=> {},
    ($] >= 5.005 ?    
      (ABSTRACT_FROM => 'CTAPI.pm', 
       AUTHOR     => 'Wolfgang Hommel <wolf@code-wizards.com>') : ()),
    'LIBS'		=> ['-ltowitoko'], # PUT YOUR CARD TERMINAL CTAPI LIBRARY HERE
    'DEFINE'		=> '', 
    'INC'		=> '-I. -I/client/include', 
	# Un-comment this if you add C files to link with later:
    # 'OBJECT'		=> '$(O_FILES)', # link all the C files too
);
if  (eval {require ExtUtils::Constant; 1}) {
  my @names = (qw(CT CTBCS_CLA CTBCS_DATA_STATUS_CARD
		 CTBCS_DATA_STATUS_CARD_CONNECT CTBCS_DATA_STATUS_NOCARD
		 CTBCS_INS_EJECT CTBCS_INS_REQUEST CTBCS_INS_RESET
		 CTBCS_INS_STATUS CTBCS_MIN_COMMAND_SIZE
		 CTBCS_MIN_RESPONSE_SIZE CTBCS_P1_CT_KERNEL CTBCS_P1_DISPLAY
		 CTBCS_P1_INTERFACE1 CTBCS_P1_INTERFACE10 CTBCS_P1_INTERFACE11
		 CTBCS_P1_INTERFACE12 CTBCS_P1_INTERFACE13 CTBCS_P1_INTERFACE14
		 CTBCS_P1_INTERFACE2 CTBCS_P1_INTERFACE3 CTBCS_P1_INTERFACE4
		 CTBCS_P1_INTERFACE5 CTBCS_P1_INTERFACE6 CTBCS_P1_INTERFACE7
		 CTBCS_P1_INTERFACE8 CTBCS_P1_INTERFACE9 CTBCS_P1_KEYPAD
		 CTBCS_P2_REQUEST_GET_ATR CTBCS_P2_REQUEST_GET_HIST
		 CTBCS_P2_REQUEST_NO_RESP CTBCS_P2_RESET_GET_ATR
		 CTBCS_P2_RESET_GET_HIST CTBCS_P2_RESET_NO_RESP
		 CTBCS_P2_STATUS_ICC CTBCS_P2_STATUS_MANUFACTURER
		 CTBCS_SW1_COMMAND_NOT_ALLOWED CTBCS_SW1_EJECT_NOT_REMOVED
		 CTBCS_SW1_EJECT_OK CTBCS_SW1_EJECT_REMOVED CTBCS_SW1_ICC_ERROR
		 CTBCS_SW1_OK CTBCS_SW1_REQUEST_ASYNC_OK
		 CTBCS_SW1_REQUEST_CARD_PRESENT CTBCS_SW1_REQUEST_ERROR
		 CTBCS_SW1_REQUEST_NO_CARD CTBCS_SW1_REQUEST_SYNC_OK
		 CTBCS_SW1_REQUEST_TIMER_ERROR CTBCS_SW1_RESET_ASYNC_OK
		 CTBCS_SW1_RESET_CT_OK CTBCS_SW1_RESET_ERROR
		 CTBCS_SW1_RESET_SYNC_OK CTBCS_SW1_WRONG_CLA
		 CTBCS_SW1_WRONG_INS CTBCS_SW1_WRONG_LENGTH
		 CTBCS_SW1_WRONG_PARAM CTBCS_SW2_COMMAND_NOT_ALLOWED
		 CTBCS_SW2_EJECT_NOT_REMOVED CTBCS_SW2_EJECT_OK
		 CTBCS_SW2_EJECT_REMOVED CTBCS_SW2_ICC_ERROR CTBCS_SW2_OK
		 CTBCS_SW2_REQUEST_ASYNC_OK CTBCS_SW2_REQUEST_CARD_PRESENT
		 CTBCS_SW2_REQUEST_ERROR CTBCS_SW2_REQUEST_NO_CARD
		 CTBCS_SW2_REQUEST_SYNC_OK CTBCS_SW2_REQUEST_TIMER_ERROR
		 CTBCS_SW2_RESET_ASYNC_OK CTBCS_SW2_RESET_CT_OK
		 CTBCS_SW2_RESET_ERROR CTBCS_SW2_RESET_SYNC_OK
		 CTBCS_SW2_WRONG_CLA CTBCS_SW2_WRONG_INS CTBCS_SW2_WRONG_LENGTH
		 CTBCS_SW2_WRONG_PARAM ERR_CT ERR_HTSI ERR_INVALID ERR_MEMORY
		 ERR_TRANS HOST MAX_APDULEN OK PORT_COM1 PORT_COM2 PORT_COM3
		 PORT_COM4 PORT_LPT1 PORT_LPT2 PORT_Modem PORT_Printer));
  ExtUtils::Constant::WriteConstants(
                                     NAME         => 'Chipcard::CTAPI',
                                     NAMES        => \@names,
                                     DEFAULT_TYPE => 'IV',
                                     C_FILE       => 'const-c.inc',
                                     XS_FILE      => 'const-xs.inc',
                                  );

}
else {
  use File::Copy;
  use File::Spec;
  foreach my $file ('const-c.inc', 'const-xs.inc') {
    my $fallback = File::Spec->catfile('fallback', $file);
    copy ($fallback, $file) or die "Can't copy $fallback to $file: $!";
  }
}