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 ') : ()), 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: $!"; } }