1 #########################################################################
5 # Xavier Leroy, projet Cristal, INRIA Rocquencourt #
7 # Copyright 1999 Institut National de Recherche en Informatique et #
8 # en Automatique. All rights reserved. This file is distributed #
9 # under the terms of the GNU Library General Public License, with #
10 # the special exception on linking described in file ../LICENSE. #
12 #########################################################################
14 # $Id: Makefile.common 9280 2009-05-25 12:25:25Z doligez $
16 include ../config/Makefile
21 interp.o misc.o stacks.o fix_code.o startup.o \
22 freelist.o major_gc.o minor_gc.o memory.o alloc.o roots.o globroots.o \
23 fail.o signals.o signals_byt.o printexc.o backtrace.o \
24 compare.o ints.o floats.o str.o array.o io.o extern.o intern.o \
25 hash.o sys.o meta.o parsing.o gc_ctrl.o terminfo.o md5.o obj.o \
26 lexing.o callback.o debugger.o weak.o compact.o finalise.o custom.o \
30 alloc.c array.c compare.c extern.c floats.c gc_ctrl.c hash.c \
31 intern.c interp.c ints.c io.c lexing.c md5.c meta.c obj.c parsing.c \
32 signals.c str.c sys.c terminfo.c callback.c weak.c finalise.c stacks.c \
36 alloc.h callback.h config.h custom.h fail.h intext.h \
37 memory.h misc.h mlvalues.h printexc.h signals.h compatibility.h
40 all:: ocamlrun$(EXE) ld.conf libcamlrun.$(A)
43 ld.conf: ../config/Makefile
44 echo "$(STUBLIBDIR)" > ld.conf
45 echo "$(LIBDIR)" >> ld.conf
48 cp ocamlrun$(EXE) $(BINDIR)/ocamlrun$(EXE)
49 cp libcamlrun.$(A) $(LIBDIR)/libcamlrun.$(A)
50 cd $(LIBDIR); $(RANLIB) libcamlrun.$(A)
51 if test -d $(LIBDIR)/caml; then : ; else mkdir $(LIBDIR)/caml; fi
52 for i in $(PUBLIC_INCLUDES); do \
53 sed -f ../tools/cleanup-header $$i > $(LIBDIR)/caml/$$i; \
55 cp ld.conf $(LIBDIR)/ld.conf
60 sed -n -e "s/CAMLprim value \([a-z0-9_][a-z0-9_]*\).*/\1/p" \
64 (echo '#include "mlvalues.h"'; \
65 echo '#include "prims.h"'; \
66 sed -e 's/.*/extern value &();/' primitives; \
67 echo 'c_primitive caml_builtin_cprim[] = {'; \
68 sed -e 's/.*/ &,/' primitives; \
70 echo 'char * caml_names_of_builtin_cprim[] = {'; \
71 sed -e 's/.*/ "&",/' primitives; \
72 echo ' 0 };') > prims.c
74 opnames.h : instruct.h
77 -e 's/enum /char * names_of_/' \
79 -e 's/\([[:upper:]][[:upper:]_0-9]*\)/"\1"/g' instruct.h > opnames.h
81 # jumptbl.h is required only if you have GCC 2.0 or later
82 jumptbl.h : instruct.h
83 sed -n -e '/^ /s/ \([A-Z]\)/ \&\&lbl_\1/gp' \
84 -e '/^}/q' instruct.h > jumptbl.h
86 version.h : ../VERSION
87 echo "#define OCAML_VERSION \"`head -1 ../VERSION`\"" > version.h
90 rm -f ocamlrun$(EXE) ocamlrund$(EXE) *.$(O) *.$(A) *.$(SO)
91 rm -f primitives prims.c opnames.h jumptbl.h ld.conf