1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#########################################################################
# #
# OCaml #
# #
# Xavier Leroy, projet Cristal, INRIA Rocquencourt #
# #
# Copyright 1999 Institut National de Recherche en Informatique et #
# en Automatique. All rights reserved. This file is distributed #
# under the terms of the GNU Library General Public License, with #
# the special exception on linking described in file ../../LICENSE. #
# #
#########################################################################
include ../../config/Makefile
CC=$(BYTECC)
CFLAGS=-I../../byterun -O $(BYTECCCOMPOPTS) $(SHAREDCCCOMPOPTS) -g
COMPILER=../../ocamlcomp.sh -I ../unix $(NOJOIN)
CAMLC=../../ocamlcomp.sh -I ../unix $(NOJOIN)
JCC=../../ocamlcomp.sh -I ../unix
MKLIB=../../boot/ocamlrun ../../tools/ocamlmklib
COMPFLAGS=-w +33..39 -warn-error A
OCAMLPP=-pp '../../tools/remove_DEBUG'
JOIN_C_OBJS=join.o
JOIN_OBJS=join_debug.cmo join_misc.cmo join_link.cmo join_hash.cmo\
join_set.cmo join_queue.cmo join_extern.cmo join_scheduler.cmo join_port.cmo\
join_message.cmo join_space.cmo join_prim.cmo join_test.cmo
C_OBJS=scheduler.o $(JOIN_C_OBJS)
CAML_OBJS=thread.cmo mutex.cmo condition.cmo event.cmo threadUnix.cmo $(JOIN_OBJS)
LIB=../../stdlib
LIB_OBJS=pervasives.cmo \
$(LIB)/array.cmo $(LIB)/list.cmo $(LIB)/char.cmo $(LIB)/string.cmo \
$(LIB)/sys.cmo $(LIB)/sort.cmo marshal.cmo $(LIB)/obj.cmo \
$(LIB)/int32.cmo $(LIB)/int64.cmo $(LIB)/nativeint.cmo \
$(LIB)/lexing.cmo $(LIB)/parsing.cmo $(LIB)/set.cmo $(LIB)/map.cmo \
$(LIB)/stack.cmo $(LIB)/queue.cmo $(LIB)/camlinternalLazy.cmo \
$(LIB)/lazy.cmo $(LIB)/stream.cmo $(LIB)/buffer.cmo \
$(LIB)/printf.cmo $(LIB)/arg.cmo $(LIB)/printexc.cmo $(LIB)/gc.cmo \
$(LIB)/digest.cmo $(LIB)/random.cmo $(LIB)/hashtbl.cmo \
$(LIB)/format.cmo $(LIB)/scanf.cmo $(LIB)/callback.cmo \
$(LIB)/camlinternalOO.cmo \
$(LIB)/oo.cmo $(LIB)/camlinternalMod.cmo $(LIB)/genlex.cmo \
$(LIB)/weak.cmo $(LIB)/filename.cmo \
$(LIB)/complex.cmo $(LIB)/arrayLabels.cmo $(LIB)/listLabels.cmo \
$(LIB)/stringLabels.cmo $(LIB)/stdLabels.cmo $(LIB)/moreLabels.cmo
UNIXLIB=../unix
UNIXLIB_OBJS=unix.cmo $(UNIXLIB)/unixLabels.cmo
all: libvmthreads.a threads.cma stdlib.cma unix.cma
allopt:
libvmthreads.a: $(C_OBJS)
$(MKLIB) -o threads -oc vmthreads $(C_OBJS)
threads.cma: $(CAML_OBJS)
$(MKLIB) -ocamlc '$(COMPILER)' -o threads -oc vmthreads $(CAML_OBJS)
stdlib.cma: $(LIB_OBJS)
$(CAMLC) -a -o stdlib.cma $(LIB_OBJS)
unix.cma: $(UNIXLIB_OBJS)
$(MKLIB) -ocamlc '$(CAMLC)' -o unix -linkall $(UNIXLIB_OBJS)
pervasives.cmo: pervasives.mli pervasives.cmi pervasives.ml
$(CAMLC) ${COMPFLAGS} -nopervasives -c pervasives.ml
pervasives.mli: $(LIB)/pervasives.mli
ln -s $(LIB)/pervasives.mli pervasives.mli
pervasives.cmi: $(LIB)/pervasives.cmi
ln -s $(LIB)/pervasives.cmi pervasives.cmi
marshal.cmo: marshal.mli marshal.cmi marshal.ml
$(CAMLC) ${COMPFLAGS} -c marshal.ml
marshal.mli: $(LIB)/marshal.mli
ln -s $(LIB)/marshal.mli marshal.mli
marshal.cmi: $(LIB)/marshal.cmi
ln -s $(LIB)/marshal.cmi marshal.cmi
unix.mli: $(UNIXLIB)/unix.mli
ln -s -f $(UNIXLIB)/unix.mli unix.mli
unix.cmi: $(UNIXLIB)/unix.cmi
ln -s -f $(UNIXLIB)/unix.cmi unix.cmi
unix.cmo: unix.mli unix.cmi $(UNIXLIB)/unixLabels.cmo
$(CAMLC) ${COMPFLAGS} -c unix.ml
partialclean:
rm -f *.cm*
clean: partialclean
rm -f libvmthreads.a dllvmthreads.so *.o
rm -f pervasives.mli marshal.mli unix.mli
install:
if test -f dllvmthreads.so; then cp dllvmthreads.so $(STUBLIBDIR)/.; fi
mkdir -p $(LIBDIR)/vmthreads
cp libvmthreads.a $(LIBDIR)/vmthreads/libvmthreads.a
cd $(LIBDIR)/vmthreads; $(RANLIB) libvmthreads.a
cp thread.cmi mutex.cmi condition.cmi event.cmi threadUnix.cmi \
threads.cma stdlib.cma unix.cma $(LIBDIR)/vmthreads
cp join_prim.cmi join_test.cmi $(LIBDIR)/vmthreads
cp thread.mli mutex.mli condition.mli event.mli threadUnix.mli \
$(LIBDIR)/vmthreads
installopt:
.SUFFIXES: .jml .ml .mli .cmo .cmi .cmx
.mli.cmi:
$(CAMLC) -c $(COMPFLAGS) $<
.ml.cmo:
$(CAMLC) -c $(COMPFLAGS) $(OCAMLPP) $<
.jml.cmo:
$(JCC) -c $(COMPFLAGS) $(OCAMLPP) -nostdlib -impl $<
.ml.cmx:
$(CAMLOPT) -c $(COMPFLAGS) $<
$(CAMLOPT) -c $(COMPFLAGS) $(OCAMLPP) $<
depend:
gcc -MM $(CFLAGS) *.c > .depend
../../boot/ocamlrun ../../tools/ocamldep -nojoin *.mli *.ml >> .depend
include .depend
|