Skip to content

Commit

Permalink
Using autoconf.
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://svn.gna.org/svn/ocaml-r/branches/yziquel@294 8462dd83-5746-40b0-b0c8-3ca2f889d9d2
  • Loading branch information
yziquel committed Feb 7, 2010
1 parent d12347c commit 902a084
Show file tree
Hide file tree
Showing 9 changed files with 1,172 additions and 1 deletion.
1 change: 0 additions & 1 deletion .gitignore
@@ -1,4 +1,3 @@
# These files are generated intermediary code.
standard.ml
r.ml
r.mli
Expand Down
10 changes: 10 additions & 0 deletions Changelog
@@ -0,0 +1,10 @@
2009-09-15 Maxence Guesdon <Maxence.Guesdon@inria.fr>

* release 0.1

2009-09-14 Maxence Guesdon <Maxence.Guesdon@inria.fr>

* add: ChangeLog
* mod: use ocaml{c,opt} instead of ocamlmklib
* new: projet ocaml-r hosted on gna.org

674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

181 changes: 181 additions & 0 deletions Makefile.am
@@ -0,0 +1,181 @@
ACLOCAL_AMFLAGS = -I m4

RLIBDIR=/usr/lib/R/lib
RINCLUDES=-I . -I /usr/share/R/include
INCLUDES= -I +ocamldoc -I `ocamlc -where`/caml $(RINCLUDES)

COMPFLAGS=$(INCLUDES)
LINKFLAGS=$(INCLUDES) -ccopt -L$(RLIBDIR) -cclib -lR
LINKFLAGS_BYTE=$(INCLUDES) -ccopt -L$(RLIBDIR) -cclib -lR

all: build build-math

build-math:
$(MAKE) -C math

build: r.cma r.cmxa r.cmxs oCamlR.cmo oCamlR.cmx rbase.cma rbase.cmxa rstats.cma rstats.cmxa

r.cma: dllr_stubs.so r.cmo
$(OCAMLC) -verbose -a -dllpath /usr/lib/R/lib -dllib dllr_stubs.so -dllib libR.so -o r.cma r.cmo

r.cmxa: dllr_stubs.so r.cmx
$(OCAMLOPT) -verbose -a -ccopt -L/usr/lib/R/lib -cclib -lr_stubs -cclib -lR -o r.cmxa r.cmx

r.cmxs: r.cmxa
$(OCAMLOPT) -shared -linkall -ccopt -L/usr/lib/R/lib -ccopt -L. -o $@ $<

rbase.cma: rbase.cmo
$(OCAMLC) -verbose -a -o rbase.cma rbase.cmo

rbase.cmxa: rbase.cmx
$(OCAMLOPT) -verbose -a -o rbase.cmxa rbase.cmx

rstats.cma: rstats.cmo
$(OCAMLC) -verbose -a -o rstats.cma rstats.cmo

rstats.cmxa: rstats.cmx
$(OCAMLOPT) -verbose -a -o rstats.cmxa rstats.cmx

r.cmi: r.mli
$(OCAMLFIND) ocamlc -package calendar -verbose -c r.mli

r.cmo: r.ml r.cmi
$(OCAMLFIND) ocamlc -package calendar -verbose -package unix -c r.ml

r.cmx: r.ml r.cmi
$(OCAMLFIND) ocamlopt -package calendar -verbose -package unix -c r.ml

oCamlR.cmo:
$(OCAMLFIND) ocamlc -verbose -c oCamlR.ml

oCamlR.cmx:
$(OCAMLFIND) ocamlopt -verbose -c oCamlR.ml

rbase.cmi: rbase.mli
$(OCAMLFIND) ocamlc -package calendar -verbose -c rbase.mli

rbase.cmo: rbase.ml rbase.cmi
$(OCAMLFIND) ocamlc -package calendar -verbose -c rbase.ml

rbase.cmx: rbase.ml rbase.cmi
$(OCAMLFIND) ocamlopt -package calendar -verbose -c rbase.ml

rstats.cmi: rstats.mli
$(OCAMLFIND) ocamlc -verbose -c rstats.mli

rstats.cmo: rstats.ml rstats.cmi
$(OCAMLFIND) ocamlc -verbose -c rstats.ml

rstats.cmx: rstats.ml rstats.cmi
$(OCAMLFIND) ocamlopt -verbose -c rstats.ml

r.ml: standard.ml base.ml
cat \
r_Env.ml \
standard.ml \
sexptype.ml \
sexprec.ml \
data.ml \
allocation.ml \
read_internal.ml \
write_internal.ml \
lazy.ml \
symbols.ml \
conversion.ml \
internal.ml \
s3.ml \
s4.ml \
parser.ml \
reduction.ml \
initialisation.ml \
base.ml \
> r.ml

r.mli: base.mli
cat \
incipit.mli \
r_Env.mli \
standard.mli \
sexptype.mli \
data.mli \
symbols.mli \
conversion.mli \
internal.mli \
s3.mli \
s4.mli \
parser.mli \
reduction.mli \
initialisation.mli \
base.mli \
> r.mli

standard.ml: standard.R
R --silent --vanilla --slave < standard.R > standard.ml

base.ml:
cat \
base/incipit.ml \
base/listing.ml \
base/dataFrame.ml \
base/date.ml \
base/excipit.ml \
> base.ml

base.mli:
cat \
base/incipit.mli \
base/listing.mli \
base/dataFrame.mli \
base/date.mli \
base/excipit.mli \
> base.mli

rbase.ml:
cat \
r-base/main.ml \
r-base/listing.ml \
r-base/dataFrame.ml \
r-base/date.ml \
> rbase.ml

rbase.mli:
cat \
r-base/main.mli \
r-base/listing.mli \
r-base/dataFrame.mli \
r-base/date.mli \
> rbase.mli

rstats.ml:
cat \
r-stats/main.ml \
> rstats.ml

rstats.mli:
cat \
r-stats/main.mli \
> rstats.mli

r_stubs.o: r_stubs.c
$(OCAMLOPT) -verbose -ccopt -Wall $(COMPFLAGS) -ccopt -fPIC -c $<

libr_stubs.a: r_stubs.o
ar rcs libr_stubs.a r_stubs.o

dllr_stubs.so: libr_stubs.a r_stubs.o
$(OCAMLMKLIB) -verbose -o r_stubs r_stubs.o

clean:
$(MAKE) -C math clean
rm -f standard.ml base.ml base.mli r.ml r.mli rbase.ml rbase.mli rstats.ml rstats.mli
rm -f *.o *.so *.a *.cmi *.cmo *.cmx *.cma *.cmxa *.cmxs

test: build
$(OCAML) -init ocamlinit

install: remove
$(OCAMLFIND) install R META *.a *.cm[ai] *.cmxa dllr_stubs.so

remove:
$(OCAMLFIND) remove R

3 changes: 3 additions & 0 deletions autoconf-build
@@ -0,0 +1,3 @@
AUTOMAKE='automake --foreign' autoreconf -i
./configure
make
11 changes: 11 additions & 0 deletions autoconf-clean
@@ -0,0 +1,11 @@
make clean
rm -f Makefile
rm -f Makefile.in
rm -f aclocal.m4
rm -Rf autom4te.cache/
rm -f config.log
rm -f config.status
rm -f configure
rm -f install-sh
rm -f missing

29 changes: 29 additions & 0 deletions configure.ac
@@ -0,0 +1,29 @@
AC_INIT([ocaml-r], [0.2])
AM_INIT_AUTOMAKE

AC_CONFIG_MACRO_DIR([m4])

AC_PROG_CC

AC_PROG_OCAML
if test "$OCAMLC" = "no"; then
AC_MSG_ERROR([You must install the OCaml compiler.])
fi

AC_PROG_FINDLIB
if test "$OCAMLFIND" = "no"; then
AC_MSG_ERROR([You must install OCaml findlib (the ocamlfind command)])
fi

AC_CHECK_OCAML_PKG([unix])
if test "$OCAML_PKG_unix" = "no"; then
AC_MSG_ERROR([Please install OCaml findlib module 'unix'.])
fi

AC_CHECK_OCAML_PKG([calendar])
if test "$OCAML_PKG_calendar" = "no"; then
AC_MSG_ERROR([Please install OCaml findlib module 'calendar'.])
fi

AC_CONFIG_FILES([Makefile])
AC_OUTPUT
24 changes: 24 additions & 0 deletions header
@@ -0,0 +1,24 @@
OCaml-R

Copyright (C) 2008-2010 Institut National de Recherche en
Informatique et en Automatique. All rights reserved.

Copyright (C) 2009-2010 Guillaume Yziquel. All rights reserved.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of the
License, or any later version.

This program 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 for more details.

You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA

Contact: Maxence.Guesdon@inria.fr
guillaume.yziquel@citycable.ch

0 comments on commit 902a084

Please sign in to comment.