I can't make this, I get a long output:
r$ make
ocamlopt -c crc.ml
ocamlopt list2.mli
ocamlopt -c list2.ml
ocamlopt expandarray.mli
ocamlopt -c expandarray.ml
ocamlopt c_part.c
ocamlopt -c mp3types.ml
ocamlopt -c pack.ml
ocamlopt -c mp3types.cmx pack.cmx mp3read.ml
File "mp3read.ml", line 164, characters 7-18:
Warning Y: unused variable return_none.
ocamlopt -c expandarray.cmx mp3types.cmx pack.cmx mp3read.cmx mp3info.ml
ocamlopt -c mp3types.cmx pack.cmx mp3framehuffman.ml
ocamlopt -c mp3types.cmx pack.cmx mp3framehuffman.cmx mp3frameutils.ml
ocamlopt -c list2.cmx mp3types.cmx pack.cmx mp3read.cmx mp3framehuffman.cmx mp3frameutils.cmx mp3queue.ml
File "mp3queue.ml", line 326, characters 6-18:
Warning Y: unused variable bitrate_list.
File "mp3queue.ml", line 375, characters 5-18:
Warning Y: unused variable print_bitrate.
File "mp3queue.ml", line 361, characters 5-26:
Warning Y: unused variable update_side_reservoir.
File "mp3queue.ml", line 410, characters 28-3037:
Warning P: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
{side_bits=[| |]}
File "mp3queue.ml", line 469, characters 18-2462:
Warning P: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
{side_bits=[| |]}
File "mp3queue.ml", line 527, characters 24-1596:
Warning P: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
{side_bits=[| |]}
File "mp3queue.ml", line 567, characters 14-1750:
Warning P: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
{side_bits=[| |]}
ocamlopt -o mp3packer unix.cmxa str.cmxa crc.cmx list2.cmx expandarray.cmx c_part.obj mp3types.cmx pack.cmx mp3read.cmx mp3info.cmx mp3framehuffman.cmx mp3frameutils.cmx mp3queue.cmx mp3packer.ml
/usr/bin/ocamlopt: don't know what to do with c_part.obj.
Usage: ocamlopt <options> <files>
Options are:
-ffast-math Inline trigonometric and exponential functions
-a Build a library
-c Compile only (do not link)
-cc <comp> Use <comp> as the C compiler and linker
-cclib <opt> Pass option <opt> to the C linker
-ccopt <opt> Pass option <opt> to the C compiler and linker
-compact Optimize code size rather than speed
-config print configuration values and exit
-dtypes Save type information in <filename>.annot
-for-pack <ident> Generate code that can later be `packed' with
ocamlopt -pack -o <ident>.cmx
-i Print inferred interface
-I <dir> Add <dir> to the list of include directories
-impl <file> Compile <file> as a .ml file
-inline <n> Set aggressiveness of inlining to <n>
-intf <file> Compile <file> as a .mli file
-intf-suffix <file> Suffix for interface files (default: .mli)
-intf_suffix <file> (deprecated) same as -intf-suffix
-labels Use commuting label mode
-linkall Link all modules, even unused ones
-noassert Don't compile assertion checks
-noautolink Don't automatically link C libraries specified in .cma files
-nolabels Ignore non-optional labels in types
-nostdlib do not add standard directory to the list of include directories
-o <file> Set output file name to <file>
-output-obj Output a C object file instead of an executable
-p Compile and link with profiling support for "gprof"
(not supported on all platforms)
-pack Package the given .cmx files into one .cmx
-pp <command> Pipe sources through preprocessor <command>
-principal Check principality of type inference
-rectypes Allow arbitrary recursive types
-S Keep intermediate assembly file
-thread Generate code that supports the system threads library
-unsafe No bounds checking on array and string access
-v Print compiler version and standard library location and exit
-version Print compiler version and exit
-verbose Print calls to external commands
-w <flags> Enable or disable warnings according to <flags>:
C/c enable/disable suspicious comment
D/d enable/disable deprecated features
E/e enable/disable fragile match
F/f enable/disable partially applied function
L/l enable/disable labels omitted in application
M/m enable/disable overriden methods
P/p enable/disable partial match
S/s enable/disable non-unit statement
U/u enable/disable unused match case
V/v enable/disable hidden instance variables
Y/y enable/disable suspicious unused variables
Z/z enable/disable all other unused variables
X/x enable/disable all other warnings
A/a enable/disable all warnings
default setting is "Aelz"
-warn-error <flags> Treat the warnings of <flags> as errors, if they are
enabled. See option -w for the list of flags.
Default setting is "a" (warnings are not errors)
-where Print location of standard library and exit
-nopervasives (undocumented)
-dparsetree (undocumented)
-drawlambda (undocumented)
-dlambda (undocumented)
-dcmm (undocumented)
-dsel (undocumented)
-dcombine (undocumented)
-dlive (undocumented)
-dspill (undocumented)
-dsplit (undocumented)
-dinterf (undocumented)
-dprefer (undocumented)
-dalloc (undocumented)
-dreload (undocumented)
-dscheduling (undocumented)
-dlinear (undocumented)
-dstartup (undocumented)
- <file> Treat <file> as a file name (even if it starts with `-')
-help Display this list of options
--help Display this list of options
make: *** [mp3packer] Error 2
This is on Ubuntu Gutsy, I installed the ocaml and a few other packages to be on the safe side. I have absolutely no idea about ocaml so I may be doing something idiotic.