Skip to content

Commit

Permalink
script to package a source package /sorting folders
Browse files Browse the repository at this point in the history
  • Loading branch information
MarwanG committed Jul 6, 2013
1 parent 5880387 commit ccfe717
Show file tree
Hide file tree
Showing 16 changed files with 504 additions and 0 deletions.
28 changes: 28 additions & 0 deletions Makefile.in
@@ -0,0 +1,28 @@
# where to install
PREFIX = @prefix@
BINDIR = $(PREFIX)/bin

SRCS = $(wildcard src/*.ml src/*.mli src/*.mll src/*.mly)
TARGS = arbogen
KIND = native # d.byte
FLAGS = -w,Ae,-warn-error,A

all: $(TARGS)

arbogen: _build/src/Arbogen.$(KIND)
cp $< $@

install:: arbogen
mkdir -p $(BINDIR)
mv arbogen $(BINDIR)
mkdir -p $(MANDIR)/man1
cp -f doc/$(TARGS).1 /usr/local/man/man1/$(TARGS).1

_build/src/%.$(KIND): $(SRCS)
ocamlbuild -cflags $(FLAGS) -no-links -I src $*.$(KIND)

clean:
@ocamlbuild -clean
@rm -f *~ $(TARGS)

.PHONY: all clean
147 changes: 147 additions & 0 deletions configure.in
@@ -0,0 +1,147 @@
#
# autoconf input for Objective Caml programs
# Copyright (C) 2001 Jean-Christophe Filliâtre
# from a first script by Georges Mariano
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License version 2, as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See the GNU Library General Public License version 2 for more details
# (enclosed in the file LGPL).

# the script generated by autoconf from this input will set the following
# variables:
# OCAMLC "ocamlc" if present in the path, or a failure
# or "ocamlc.opt" if present with same version number as ocamlc
# OCAMLOPT "ocamlopt" (or "ocamlopt.opt" if present), or "no"
# OCAMLBEST either "byte" if no native compiler was found,
# or "opt" otherwise
# OCAMLDEP "ocamldep"
# OCAMLLEX "ocamllex" (or "ocamllex.opt" if present)
# OCAMLYACC "ocamlyac"
# OCAMLLIB the path to the ocaml standard library
# OCAMLVERSION the ocaml version number
# OCAMLWEB "ocamlweb" (not mandatory)
# OCAMLWIN32 "yes"/"no" depending on Sys.os_type = "Win32"
# EXE ".exe" if OCAMLWIN32=yes, "" otherwise

# check for one particular file of the sources
# ADAPT THE FOLLOWING LINE TO YOUR SOURCES!
AC_INIT(src/Gen.ml)

# Check for Ocaml compilers

# we first look for ocamlc in the path; if not present, we fail
AC_CHECK_PROG(OCAMLC,ocamlc,ocamlc,no)
if test "$OCAMLC" = no ; then
AC_MSG_ERROR(Cannot find ocamlc.)
fi

# we extract Ocaml version number and library path
OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version *\(.*\)$|\1|p' `
echo "ocaml version is $OCAMLVERSION"
OCAMLLIB=`$OCAMLC -v | tail -1 | cut -f 4 -d " "`
echo "ocaml library path is $OCAMLLIB"

# then we look for ocamlopt; if not present, we issue a warning
# if the version is not the same, we also discard it
# we set OCAMLBEST to "opt" or "byte", whether ocamlopt is available or not
AC_CHECK_PROG(OCAMLOPT,ocamlopt,ocamlopt,no)
OCAMLBEST=byte
if test "$OCAMLOPT" = no ; then
AC_MSG_WARN(Cannot find ocamlopt; bytecode compilation only.)
else
AC_MSG_CHECKING(ocamlopt version)
TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version *\(.*\)$|\1|p' `
if test "$TMPVERSION" != "$OCAMLVERSION" ; then
AC_MSG_RESULT(differs from ocamlc; ocamlopt discarded.)
OCAMLOPT=no
else
AC_MSG_RESULT(ok)
OCAMLBEST=opt
fi
fi

# checking for ocamlc.opt
AC_CHECK_PROG(OCAMLCDOTOPT,ocamlc.opt,ocamlc.opt,no)
if test "$OCAMLCDOTOPT" != no ; then
AC_MSG_CHECKING(ocamlc.opt version)
TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version *\(.*\)$|\1|p' `
if test "$TMPVERSION" != "$OCAMLVERSION" ; then
AC_MSG_RESULT(differs from ocamlc; ocamlc.opt discarded.)
else
AC_MSG_RESULT(ok)
OCAMLC=$OCAMLCDOTOPT
fi
fi

# checking for ocamlopt.opt
if test "$OCAMLOPT" != no ; then
AC_CHECK_PROG(OCAMLOPTDOTOPT,ocamlopt.opt,ocamlopt.opt,no)
if test "$OCAMLOPTDOTOPT" != no ; then
AC_MSG_CHECKING(ocamlc.opt version)
TMPVER=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version *\(.*\)$|\1|p' `
if test "$TMPVER" != "$OCAMLVERSION" ; then
AC_MSG_RESULT(differs from ocamlc; ocamlopt.opt discarded.)
else
AC_MSG_RESULT(ok)
OCAMLOPT=$OCAMLOPTDOTOPT
fi
fi
fi

# ocamldep, ocamllex and ocamlyacc should also be present in the path
AC_CHECK_PROG(OCAMLDEP,ocamldep,ocamldep,no)
if test "$OCAMLDEP" = no ; then
AC_MSG_ERROR(Cannot find ocamldep.)
fi

AC_CHECK_PROG(OCAMLLEX,ocamllex,ocamllex,no)
if test "$OCAMLLEX" = no ; then
AC_MSG_ERROR(Cannot find ocamllex.)
else
AC_CHECK_PROG(OCAMLLEXDOTOPT,ocamllex.opt,ocamllex.opt,no)
if test "$OCAMLLEXDOTOPT" != no ; then
OCAMLLEX=$OCAMLLEXDOTOPT
fi
fi

AC_CHECK_PROG(OCAMLYACC,ocamlyacc,ocamlyacc,no)
if test "$OCAMLYACC" = no ; then
AC_MSG_ERROR(Cannot find ocamlyacc.)
fi

AC_CHECK_PROG(OCAMLWEB,ocamlweb,ocamlweb,true)

# platform
AC_MSG_CHECKING(platform)
if echo "let _ = Sys.os_type" | ocaml | grep -q Win32; then
AC_MSG_RESULT(Win32)
OCAMLWIN32=yes
EXE=.exe
else
OCAMLWIN32=no
EXE=
fi

# substitutions to perform
AC_SUBST(OCAMLC)
AC_SUBST(OCAMLOPT)
AC_SUBST(OCAMLDEP)
AC_SUBST(OCAMLLEX)
AC_SUBST(OCAMLYACC)
AC_SUBST(OCAMLBEST)
AC_SUBST(OCAMLVERSION)
AC_SUBST(OCAMLLIB)
AC_SUBST(OCAMLWEB)
AC_SUBST(OCAMLWIN32)
AC_SUBST(EXE)

# Finally create the Makefile from Makefile.in
AC_OUTPUT(Makefile)
chmod a-w Makefile
Binary file added doc/.DS_Store
Binary file not shown.
49 changes: 49 additions & 0 deletions doc/arbogen.1
@@ -0,0 +1,49 @@
.\" Manpage for Arbogen.
.\" Contact marwan.t.ghanem@gmail.com to correct errors or typos.
.TH man 1 "05 June 2013" "1.0" "Arbogen man page"
.SH NAME
Arbogen \- creates a random tree.
.SH SYNOPSIS
Arbogen [options][filename]
.SH DESCRIPTION
Arbogen is a ocaml based program that generates random trees depending on grammer passed in .spec files.

.SH OPTIONS
The following command-line options are recognized by Arbogen.

-version print version information

-interactive activate interactive mode

-verbose : set the verbosity level (a positive integer)

-min : set the minimum size for the generated tree (a strictly positive integer)

-max : set the maximum size for the generated tree (a strictly positive integer)

-seed : set the random generator seed

-eps1 : set the epsilon for singularity search (a strictly positive float number)

-eps1_factor: set the refinement factor for epsilon in singularity search (a strictly positive float number)

-eps2 : set the epsilon for Newton iteration (a strictly positive float number)

-eps2_factor : set the refinement factor for epsilon in Newton iteration (a strictly positive float number)

-try : set the maximum of tries when generating trees

-type : set the type of output generated at the end

-file : set the name of the file to be created at end of execution

-zstart : sets the value of zstart

-help :Display this list of options

--help : Display this list of options

.SH BUGS
No known bugs.
.SH AUTHOR
Frederic Peschanski (frederic.peschanski@lip6.fr)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added m4/.DS_Store
Binary file not shown.

0 comments on commit ccfe717

Please sign in to comment.