/usr/local/CPAN/Audio-BASSXS/Makefile.PL


use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
    NAME              => 'Audio::BASSXS',
    VERSION_FROM      => 'lib/Audio/BASSXS.pm', # finds $VERSION
    PREREQ_PM         => {}, # e.g., Module::Name => 1.1
    ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
      (ABSTRACT_FROM  => 'lib/Audio/BASSXS.pm', # retrieve abstract from module
       AUTHOR         => 'Jouke Visser <jouke@pvoice.org>') : ()),
    LIBS              => ['-lbass'], # e.g., '-lm'
    DEFINE            => '', # e.g., '-DHAVE_SOMETHING'
    INC               => '-I.', # e.g., '-I. -I/usr/include/other'
	# Un-comment this if you add C files to link with later:
    # OBJECT            => '$(O_FILES)', # link all the C files too
);
warn "Please make sure that bass.lib can be found within the library path
or the module won't compile";
if  (eval {require ExtUtils::Constant; 1}) {
  # If you edit these definitions to change the constants used by this module,
  # you will need to use the generated const-c.inc and const-xs.inc
  # files to replace their "fallback" counterparts before distributing your
  # changes.
  my @names = (qw(BASS_3DALG_DEFAULT BASS_3DALG_FULL BASS_3DALG_LIGHT
		 BASS_3DALG_OFF BASS_3DMODE_NORMAL BASS_3DMODE_OFF
		 BASS_3DMODE_RELATIVE BASS_ACTIVE_PAUSED BASS_ACTIVE_PLAYING
		 BASS_ACTIVE_STALLED BASS_ACTIVE_STOPPED
		 BASS_CONFIG_3DALGORITHM BASS_CONFIG_BUFFER
		 BASS_CONFIG_CURVE_PAN BASS_CONFIG_CURVE_VOL
		 BASS_CONFIG_FLOATDSP BASS_CONFIG_GVOL_MUSIC
		 BASS_CONFIG_GVOL_SAMPLE BASS_CONFIG_GVOL_STREAM
		 BASS_CONFIG_MAXVOL BASS_CONFIG_NET_BUFFER
		 BASS_CONFIG_NET_TIMEOUT BASS_CONFIG_UPDATEPERIOD
		 BASS_CTYPE_MUSIC_IT BASS_CTYPE_MUSIC_MO3 BASS_CTYPE_MUSIC_MOD
		 BASS_CTYPE_MUSIC_MTM BASS_CTYPE_MUSIC_S3M BASS_CTYPE_MUSIC_XM
		 BASS_CTYPE_RECORD BASS_CTYPE_SAMPLE BASS_CTYPE_STREAM
		 BASS_CTYPE_STREAM_MP1 BASS_CTYPE_STREAM_MP2
		 BASS_CTYPE_STREAM_MP3 BASS_CTYPE_STREAM_OGG
		 BASS_CTYPE_STREAM_WAV BASS_DATA_AVAILABLE BASS_DATA_FFT1024
		 BASS_DATA_FFT2048 BASS_DATA_FFT4096 BASS_DATA_FFT512
		 BASS_DATA_FFT_INDIVIDUAL BASS_DATA_FFT_NOWINDOW BASS_DEVICE_3D
		 BASS_DEVICE_8BITS BASS_DEVICE_LATENCY BASS_DEVICE_MONO
		 BASS_DEVICE_SPEAKERS BASS_ERROR_ALREADY BASS_ERROR_BUFLOST
		 BASS_ERROR_CREATE BASS_ERROR_DECODE BASS_ERROR_DEVICE
		 BASS_ERROR_DRIVER BASS_ERROR_DX BASS_ERROR_EMPTY
		 BASS_ERROR_FILEFORM BASS_ERROR_FILEOPEN BASS_ERROR_FORMAT
		 BASS_ERROR_FREQ BASS_ERROR_HANDLE BASS_ERROR_ILLPARAM
		 BASS_ERROR_ILLTYPE BASS_ERROR_INIT BASS_ERROR_MEM
		 BASS_ERROR_NO3D BASS_ERROR_NOCHAN BASS_ERROR_NOEAX
		 BASS_ERROR_NOFX BASS_ERROR_NOHW BASS_ERROR_NONET
		 BASS_ERROR_NOPAUSE BASS_ERROR_NOPLAY BASS_ERROR_NOTAVAIL
		 BASS_ERROR_NOTFILE BASS_ERROR_PLAYING BASS_ERROR_POSITION
		 BASS_ERROR_SPEAKER BASS_ERROR_START BASS_ERROR_TIMEOUT
		 BASS_ERROR_UNKNOWN BASS_FILEPOS_DECODE BASS_FILEPOS_DOWNLOAD
		 BASS_FILEPOS_END BASS_FILE_CLOSE BASS_FILE_LEN BASS_FILE_QUERY
		 BASS_FILE_READ BASS_FILE_SEEK BASS_FX_PHASE_180
		 BASS_FX_PHASE_90 BASS_FX_PHASE_NEG_180 BASS_FX_PHASE_NEG_90
		 BASS_FX_PHASE_ZERO BASS_INPUT_LEVEL BASS_INPUT_OFF
		 BASS_INPUT_ON BASS_INPUT_TYPE_ANALOG BASS_INPUT_TYPE_AUX
		 BASS_INPUT_TYPE_CD BASS_INPUT_TYPE_DIGITAL
		 BASS_INPUT_TYPE_LINE BASS_INPUT_TYPE_MASK BASS_INPUT_TYPE_MIC
		 BASS_INPUT_TYPE_PHONE BASS_INPUT_TYPE_SPEAKER
		 BASS_INPUT_TYPE_SYNTH BASS_INPUT_TYPE_UNDEF
		 BASS_INPUT_TYPE_WAVE BASS_MP3_SETPOS BASS_MUSIC_3D
		 BASS_MUSIC_AUTOFREE BASS_MUSIC_CALCLEN BASS_MUSIC_DECODE
		 BASS_MUSIC_FLOAT BASS_MUSIC_FT2MOD BASS_MUSIC_FX
		 BASS_MUSIC_LOOP BASS_MUSIC_MONO BASS_MUSIC_NONINTER
		 BASS_MUSIC_NOSAMPLE BASS_MUSIC_POSRESET BASS_MUSIC_PT1MOD
		 BASS_MUSIC_RAMP BASS_MUSIC_RAMPS BASS_MUSIC_STOPBACK
		 BASS_MUSIC_SURROUND BASS_MUSIC_SURROUND2 BASS_OBJECT_DS
		 BASS_OBJECT_DS3DL BASS_OK BASS_RECORD_PAUSE BASS_SAMPLE_3D
		 BASS_SAMPLE_8BITS BASS_SAMPLE_FLOAT BASS_SAMPLE_FX
		 BASS_SAMPLE_LOOP BASS_SAMPLE_MONO BASS_SAMPLE_MUTEMAX
		 BASS_SAMPLE_OVER_DIST BASS_SAMPLE_OVER_POS
		 BASS_SAMPLE_OVER_VOL BASS_SAMPLE_SOFTWARE BASS_SAMPLE_VAM
		 BASS_SLIDE_FREQ BASS_SLIDE_PAN BASS_SLIDE_VOL
		 BASS_SPEAKER_CENLFE BASS_SPEAKER_CENTER BASS_SPEAKER_FRONT
		 BASS_SPEAKER_FRONTLEFT BASS_SPEAKER_FRONTRIGHT
		 BASS_SPEAKER_LEFT BASS_SPEAKER_LFE BASS_SPEAKER_REAR
		 BASS_SPEAKER_REAR2 BASS_SPEAKER_REAR2LEFT
		 BASS_SPEAKER_REAR2RIGHT BASS_SPEAKER_REARLEFT
		 BASS_SPEAKER_REARRIGHT BASS_SPEAKER_RIGHT BASS_STREAMPROC_END
		 BASS_STREAM_AUTOFREE BASS_STREAM_BLOCK BASS_STREAM_DECODE
		 BASS_STREAM_META BASS_STREAM_RESTRATE BASS_SYNC_DOWNLOAD
		 BASS_SYNC_END BASS_SYNC_MESSAGE BASS_SYNC_META
		 BASS_SYNC_MIXTIME BASS_SYNC_MUSICFX BASS_SYNC_MUSICINST
		 BASS_SYNC_MUSICPOS BASS_SYNC_ONETIME BASS_SYNC_POS
		 BASS_SYNC_SLIDE BASS_SYNC_STALL BASS_TAG_HTTP BASS_TAG_ICY
		 BASS_TAG_ID3 BASS_TAG_ID3V2 BASS_TAG_META BASS_TAG_OGG
		 BASS_UNICODE BASS_VAM_HARDWARE BASS_VAM_SOFTWARE
		 BASS_VAM_TERM_DIST BASS_VAM_TERM_PRIO BASS_VAM_TERM_TIME
		 DSCAPS_CERTIFIED DSCAPS_CONTINUOUSRATE DSCAPS_EMULDRIVER
		 DSCAPS_SECONDARY16BIT DSCAPS_SECONDARY8BIT
		 DSCAPS_SECONDARYMONO DSCAPS_SECONDARYSTEREO DSCCAPS_CERTIFIED
		 DSCCAPS_EMULDRIVER EAX_PRESET_ALLEY EAX_PRESET_ARENA
		 EAX_PRESET_AUDITORIUM EAX_PRESET_BATHROOM
		 EAX_PRESET_CARPETEDHALLWAY EAX_PRESET_CAVE EAX_PRESET_CITY
		 EAX_PRESET_CONCERTHALL EAX_PRESET_DIZZY EAX_PRESET_DRUGGED
		 EAX_PRESET_FOREST EAX_PRESET_GENERIC EAX_PRESET_HALLWAY
		 EAX_PRESET_HANGAR EAX_PRESET_LIVINGROOM EAX_PRESET_MOUNTAINS
		 EAX_PRESET_PADDEDCELL EAX_PRESET_PARKINGLOT EAX_PRESET_PLAIN
		 EAX_PRESET_PSYCHOTIC EAX_PRESET_QUARRY EAX_PRESET_ROOM
		 EAX_PRESET_SEWERPIPE EAX_PRESET_STONECORRIDOR
		 EAX_PRESET_STONEROOM EAX_PRESET_UNDERWATER WAVE_FORMAT_1M08
		 WAVE_FORMAT_1M16 WAVE_FORMAT_1S08 WAVE_FORMAT_1S16
		 WAVE_FORMAT_2M08 WAVE_FORMAT_2M16 WAVE_FORMAT_2S08
		 WAVE_FORMAT_2S16 WAVE_FORMAT_4M08 WAVE_FORMAT_4M16
		 WAVE_FORMAT_4S08 WAVE_FORMAT_4S16));
  ExtUtils::Constant::WriteConstants(
                                     NAME         => 'Audio::BASSXS',
                                     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: $!";
  }
}