ocamldsort - Online in the Cloud

This is the command ocamldsort that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


ocamldsort - Dependency sorter for OCaml source files

SYNOPSIS


ocamldsort [ -pp pre-command ] [ -d dep-command ]
[ -mli ] [ -nox ] [ -obj | -byte | -opt ] [ filename ] ...

DESCRIPTION


The ocamldsort(1) command scans a set of OCaml source files (.ml and .mli files), sorts
them according to their dependencies and prints the sorted files in order to link their
corresponding .cmo files.

For ocamldsort(1) to work it must get a list of dependencies generated by ocamldep(1), if
the standard input to ocamldsort(1) has been redirected then ocamldsort assumes that this
is a dependency file generated by ocamldep(1). Otherwise ocamldsort calls ocamldep(1) to
generate the dependency list itself. In either case the source files to be sorted should
be given as arguments to the ocamldsort(1) command.

ocamldsort(1) can be used to compile and link simple projects with one command, such as:

ocamlc $(ocamldsort *.ml)

if your project doesn't contain .mli files or:

ocamlc -c $(ocamldsort -mli *.ml *.mli) && ocamlc $(ocamldsort -byte *.ml)

if it contains .mli files.

However for larger projects where separate compilation is desirable, ocamldsort(1) can
also be used from within a makefile. Here is a typical makefile example:

TARGET=my_program
OCAMLC=ocamlc
OCAMLOPT=ocamlopt
OCAMLDEP=ocamldep
OCAMLDSORT=ocamldsort

PPFLAGS=-pp camlp4o

MLY=$(shell echo *.mly)
MLL=$(shell echo *.mll)
GENERATED_ML=$(MLY:.mly=.ml) $(MLL:.mll=.ml)

include .generated .depend .ocamldsort

$(TARGET): $(CMO_FILES)
$(OCAMLC) $(COMPFLAGS) $(LIBS) $^ -o $@

$(TARGET).opt: $(CMX_FILES)
$(OCAMLOPT) $(COMPFLAGS) $(LIBS_OPT) $^ -o $@

.generated: $(GENERATED_ML)
@touch .generated

.depend: .generated
$(OCAMLDEP) *.ml *.mli > $@

.ocamldsort: .depend
echo CMO_FILES=`< .depend $(OCAMLDSORT) -byte *.ml` > .ocamldsort
echo CMX_FILES=`< .depend $(OCAMLDSORT) -opt *.ml` >> .ocamldsort

distclean: clean
rm -f .generated .depend .ocamldsort
rm -f $(GENERATED_ML)
rm -f *~
rm -f $(TARGET)

clean:
rm -f *.cmo *.cmi *.cmx *.o

.SUFFIXES: .mli .ml .cmi .cmo .cmx .mll .mly

%.cmi:%.mli
$(OCAMLC) $(PPFLAGS) $(COMPFLAGS) -c $<

%.cmo:%.ml
$(OCAMLC) $(PPFLAGS) $(COMPFLAGS) -c $<

%.cmi %.cmo:%.ml
$(OCAMLC) $(PPFLAGS) $(COMPFLAGS) -c $<

%.cmx %.o:%.ml
$(OCAMLOPT) $(PPFLAGS) $(COMPFLAGS) -c $<

%.ml:%.mll
$(OCAMLLEX) $<

%.mli %.ml:%.mly
$(OCAMLYACC) -v $<

OPTIONS


The following command-line options are recognized by ocamlsort(1):

-I directory
Add the given directory to the list of directories searched for source files.

-pp pre-command
Command to preprocess file.

-d dep-command
Command to compute dependencies. ocamldep(1) by default.

-mli Sort files using mli dependencies.

-nox Ignore filenames containg `*' so that unexpanded wildcards are ignored.

-obj Print bytecode filenames (.cmo and .cmi) (deprecated: use -byte).

-byte Print bytecode filenames (.cmo and .cmi).

-opt Print opt filenames (.cmx and .cmi).

-v Output version information and exit.

-help, --help
Output help and exit.

Use ocamldsort online using onworks.net services



Latest Linux & Windows online programs