Permalink
Browse files

Merge pull request #17 from fredokun/packaging

Packaging
  • Loading branch information...
fredokun committed Mar 8, 2014
2 parents 2853b7d + c73ea04 commit 3e629c53b5694638135a79ab893dab74d42d70c7
View
@@ -15,4 +15,10 @@ Mathieu Dien
Many fixes and improvements
Alexis Darrasse
- Underlying algorithmics
+ Underlying algorithmics
+
+Marwan Ghanem
+ finalization of SEQ
+ various fixes
+ packaging (source, Debian, Opam)
+
View
@@ -0,0 +1,50 @@
+# where to install the binaries
+prefix=/usr/local
+exec_prefix=${prefix}
+BINDIR=${exec_prefix}/bin
+
+# where to install the man page
+MANDIR=${prefix}/share/man
+
+# other variables set by ./configure
+OCAMLC = ocamlc
+OCAMLOPT = ocamlopt
+OCAMLDEP = ocamldep
+OCAMLLEX = ocamllex
+OCAMLYACC= ocamlyacc
+OCAMLLIB = /usr/lib/ocaml
+OCAMLBEST= op
+
+OCAMLFLAG= -I src/
+
+SRCS = src/Options.ml src/Util.ml src/Grammar.ml src/CombSys.ml src/OracleSimple.ml src/Tree.ml src/Gen.ml src/GParser.ml src/ArboLib.ml src/Arbogen.ml
+
+
+all: arbogen
+
+arbogen: $(SRCS)
+ mkdir bin
+ $(OCAMLOPT) $(OCAMLFLAG) -o bin/arbogen $(SRCS)
+
+arbogen.byte: $(SRCS)
+ mkdir bin
+ $(OCAMLC) $(OCAMLFLAG) -o bin/arbogen.byte $(SRCS)
+
+
+install:: arbogen
+ mkdir -p $(BINDIR)
+ mv bin/arbogen $(BINDIR)
+ mkdir -p $(MANDIR)/man1
+ cp -f doc/$(TARGS).1 /usr/local/man/man1/$(TARGS).1
+
+clean:
+ rm -f src/*~
+ rm -f src/*.cmi
+ rm -f src/*.cmx
+ rm -f src/*.cmo
+ rm -f src/*.o
+
+cleanall: clean
+ rm -f bin/arbogen
+ rm -f bin/arbogen.byte
+ rm -rf bin
View
@@ -0,0 +1 @@
+0.9
View
@@ -0,0 +1,13 @@
+#!/bin/sh
+#cleanup.sh
+
+if [ -f Makefile ]; then
+ make cleanall
+fi
+rm -rf Makefile
+rm -rf configure
+rm -rf config.status
+rm -rf autom4te.cache
+rm -rf config.log
+rm -rf arbogen_`cat VERSION`_1
+rm -rf *~
View
@@ -0,0 +1,31 @@
+#!/bin/sh
+#config.sh
+#if output of makefile needs to be a byte pass as parameter arbogen.byte
+
+if [ -f configure ]; then
+ echo "checking for configure file... ok"
+else
+ echo "checking for configure file... no"
+ if which autoconf >/dev/null; then
+ echo "checking for autoconf... ok"
+ autoconf
+ echo "creating configure file... ok"
+ else
+ echo "checking for autoconf... no"
+ exit 1;
+ fi
+fi
+
+echo "executing configure script"
+./configure
+
+if [ -f Makefile ]; then
+ echo "checking for Makefile... ok"
+ make $1
+else
+ echo "checking for Makefile... no"
+ echo "error... Aborting"
+ exit 1;
+fi
+
+
View
@@ -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
View
@@ -0,0 +1,68 @@
+#!/bin/sh
+#debianBin.sh
+#creates a binary debian package from source files
+
+file=arbogen_`cat VERSION`_1
+
+#testing if in correct folder
+if [ ! -f configure.in ]; then
+ echo "checking if in correct folder... no"
+ exit 1;
+else
+ echo "checking if in correct folder... ok"
+fi
+
+if which dpkg >/dev/null; then
+ echo "checking for dpkg... ok"
+else
+ echo "checking for dpkg... no"
+ exit 1;
+fi
+
+if which fakeroot >/dev/null; then
+ echo "checking for fakeroot... ok"
+else
+ echo "checking for fakeroot... no"
+ exit 1;
+fi
+
+#creating of directories
+
+mkdir $file
+mkdir -p $file/DEBIAN
+mkdir -p $file/usr/bin
+mkdir -p $file/usr/share/doc/arbogen
+mkdir -p $file/usr/share/man/man1
+
+
+
+#creation of text files
+cat <<EOF > $file/DEBIAN/control
+Package: arbogen
+Version: `cat VERSION`
+Section: ocaml
+Priority: optional
+Source: arbogen
+Architecture: amd64
+Maintainer: Frédéric Peschanski <Frederic.Peschanski@lip6.fr>
+Description: Generates trees
+ Trees are generated randomly in different formats depending on grammar.
+EOF
+#placing files in correct place
+cp doc/arbogen.1 $file/usr/share/man/man1/arbogen.1
+gzip --best $file/usr/share/man/man1/arbogen.1
+cp LICENSE.txt $file/usr/share/doc/arbogen/copyright
+
+#compiling to create a executable.
+./compile.sh
+cp bin/arbogen $file/usr/bin/
+
+
+chmod -R 755 $file
+chmod a-x $file/usr/share/man/man1/arbogen.1.gz
+chmod a-x $file/usr/share/doc/arbogen/copyright
+#packaging
+fakeroot dpkg-deb --build $file
+
+#cleaning up
+./cleanup.sh
View
@@ -0,0 +1,66 @@
+#!/bin/sh
+#debianBin.sh
+#creates a binary debian package from source files
+
+#testing if in correct folder
+if [ ! -f configure.in ]; then
+ echo "checking if in correct folder... no"
+ exit 1;
+else
+ echo "checking if in correct folder... ok"
+fi
+
+if which dpkg >/dev/null; then
+ echo "checking for dpkg... ok"
+else
+ echo "checking for dpkg... no"
+ exit 1;
+fi
+
+if which fakeroot >/dev/null; then
+ echo "checking for fakeroot... ok"
+else
+ echo "checking for fakeroot... no"
+ exit 1;
+fi
+#creating of directories
+file=arbogen_`cat VERSION`_1
+
+mkdir $file
+mkdir -p $file/DEBIAN
+mkdir -p $file/usr/bin
+mkdir -p $file/usr/share/doc/arbogen
+mkdir -p $file/usr/share/man/man1
+
+
+
+#creation of text files
+cat <<EOF > $file/DEBIAN/control
+Package: arbogen
+Version: `cat VERSION`
+Section: ocaml
+Priority: optional
+Source: arbogen
+Architecture: i386
+Maintainer: Frédéric Peschanski <Frederic.Peschanski@lip6.fr>
+Description: Generates trees
+ Trees are generated randomly in different formats depending on grammar.
+EOF
+
+#placing files in correct place
+cp doc/arbogen.1 $file/usr/share/man/man1/arbogen.1
+gzip --best $file/usr/share/man/man1/arbogen.1
+cp LICENSE.txt $file/usr/share/doc/arbogen/copyright
+
+#compiling
+./compile.sh
+cp bin/arbogen $file/usr/bin/
+
+chmod -R 755 $file
+chmod a-x $file/usr/share/man/man1/arbogen.1.gz
+chmod a-x $file/usr/share/doc/arbogen/copyright
+#packaging
+fakeroot dpkg-deb --build $file
+
+#clean up
+./cleanup.sh
Oops, something went wrong.

0 comments on commit 3e629c5

Please sign in to comment.