blob: 0fd1d646828c3d23483dd2cb5c4ed1dbfd3fa7a6 (
plain)
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
|
#########################################################################
# #
# 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
|