Add myself to uploaders
[pkg-ocaml-ocsigen.git] / server / Makefile
blob09bc24795cd1e3cbb8424de2ed4f54cc01c63f00
1 include ../Makefile.config
3 NAME=$(OCSIGENNAME)
5 FILES= ocsigen_extensions.ml ocsigen_parseconfig.ml ocsigen_http_client.ml \
6 ../extensions/ocsigen_LocalFiles.ml ocsigen_server.ml
7 EXE= server_main.ml
10 ifeq "$(BYTECODE)" "YES"
11 INSTALLBYTE=installbyte
12 else
13 INSTALLBYTE=
14 endif
16 ifeq "$(NATIVECODE)" "YES"
17 INSTALLOPT=installopt
18 else
19 INSTALLOPT=
20 endif
23 ifeq "$(NEWOCAMLNET)" "YES"
24 NETSYS=netsys,
25 NETSYSCMA=netsys.cma
26 NETSYSCMXA=netsys.cmxa
27 else
28 NETSYS=
29 NETSYSCMA=
30 NETSYSCMXA=
31 endif
33 ifeq "$(NATDYNLINK)" "YES"
34 DYNLINK=dynlink,
35 else
36 DYNLINK=
37 endif
39 ifeq ($(OCAMLVERSION),OLD)
40 # CMAOCAMLP4= gramlib.cma
41 # CMXXACAMLP4= gramlib.cmxa
42 CMAOCAMLP4=
43 CMXXACAMLP4=
44 # LIB=$(LIB1)
45 CAMLP4PACKAGES=,camlp4.gramlib
46 else
47 CAMLP4PACKAGES=
48 CMAOCAMLP4= camlp4lib.cma Camlp4OCamlRevisedParser.cmo Camlp4OCamlParser.cmo
49 CMXXACAMLP4= camlp4lib.cmxa Camlp4OCamlRevisedParser.cmx Camlp4OCamlParser.cmx
50 LIBDIRS := $(LIBDIRS) -I +camlp4 -I +camlp4/Camlp4Parsers
51 endif
53 INSTALL = install
54 CAMLC = $(OCAMLFIND) $(CAMLCNAME2) $(DBG) -package dynlink $(LIB)
55 CAMLMKTOP = $(OCAMLFIND) $(CAMLMKTOPNAME) $(LIB)
56 CAMLOPT = $(OCAMLFIND) $(CAMLOPTNAME) $(DBG) $(LIB)
57 CAMLDOC = $(OCAMLFIND) ocamldoc $(LIB)
58 CAMLDEP = $(OCAMLFIND) ocamldep $(LIBDIRS)
59 LIB = -thread -package lwt.ssl,lwt.extra,netstring,$(NETSYS)ssl,pcre,unix,$(DYNLINK)threads$(CAMLP4PACKAGES),findlib $(LIBDIRS)
60 # also modify builtin_package in ocsigen_config.ml if you modify the former line!
61 PP =
62 PP2 =
64 ifdef DONOTPARSECOMMANDLINE
65 PARSECOMMANDLINECMA=../baselib/donotparsecommandline.cma
66 else
67 PARSECOMMANDLINECMA=../baselib/parsecommandline.cma
68 endif
69 PARSECOMMANDLINECMXA=$(PARSECOMMANDLINECMA:.cma=.cmxa)
71 # cma and cmo to be linked in the server:
73 CMOS = ../baselib/ocsigen_lib_obrowser.cmo \
74 ../baselib/ocsigen_cache.cmo \
75 ../baselib/ocsigen_lib.cmo \
76 ../xmlp4/xmllexer.cmo ../xmlp4/simplexmlparser.cmo \
77 ../baselib/ocsigen_config.cmo \
78 ../baselib/ocsigen_commandline.cmo \
79 ../baselib/ocsigen_messages.cmo \
80 ../baselib/dynlink_wrapper.cmo ../baselib/ocsigen_loader.cmo \
81 ../baselib/ocsigen_stream.cmo ../http/multipart.cmo \
82 ../http/http_headers.cmo \
83 ../http/ocsigen_http_frame.cmo ../http/ocsigen_headers.cmo \
84 ../http/ocsigen_range.cmo \
85 ../http/http_lexer.cmo ../http/http_parser.cmo \
86 ../http/framepp.cmo ../http/ocsigen_http_com.cmo \
87 ../xmlp4/xhtmlpretty_streams.cmo ../xmlp4/xhtmlcompact_streams.cmo \
88 ../http/ocsigen_charset_mime.cmo ../http/ocsigen_senders.cmo \
89 ../baselib/polytables.cmo
90 # also modify builtin_package in ocsigen_config.ml if you modify the former line!
91 CMAO = ../xmlp4/xhtml.cma ../xmlp4/xhtmlpretty.cma $(NAME).cma
93 STUBS_OBJS = stubs.o
95 OBJS = $(FILES:.ml=.cmo) $(DUCEFILES:.ml=.cmo)
96 OBJSEXE = $(EXE:.ml=.cmo)
98 CMXSATEMP=$(CMOS:.cmo=.cmx)
99 CMXSA=$(CMXSATEMP:.cma=.cmxa)
100 CMXXATEMP=$(CMAO:.cmo=.cmx)
101 CMXXA=$(CMXXATEMP:.cma=.cmxa)
103 OBJSOPT = $(FILES:.ml=.cmx) $(DUCEFILES:.ml=.cmx)
104 OBJSEXEOPT = $(EXE:.ml=.cmx)
107 byte: $(OBJS) $(OBJSEXE) $(NAME) $(NAME)top
109 opt: $(OBJSOPT) $(OBJSEXEOPT) $(NAME).opt
112 .SUFFIXES:
113 .SUFFIXES: .ml .mli .cmo .cmi .cmx
115 .PHONY: doc depend
117 $(NAME): $(CMAO) $(OBJSEXE) $(PARSECOMMANDLINECMO)
118 $(CAMLC) -o $(NAME) -linkpkg -linkall $(PARSECOMMANDLINECMA) $(CMAOCAMLP4) $(CMAO) $(OBJSEXE)
120 $(NAME).opt: $(CMXXA) $(OBJSEXEOPT) $(PARSECOMMANDLINECMX)
121 $(CAMLOPT) -o $(NAME).opt -linkpkg -linkall $(PARSECOMMANDLINECMXA) $(CMXXACAMLP4) $(CMXXA) $(OBJSEXEOPT)
123 $(NAME).cma: $(CMOS) $(OBJS) $(STUBS_OBJS)
124 $(CAMLMKLIB) -o $(NAME) -oc $(NAME) -linkall $(CMOS) $(OBJS) $(STUBS_OBJS)
126 $(NAME).cmxa: $(CMXSA) $(OBJSOPT) $(STUBS_OBJS)
127 $(CAMLMKLIB) -o $(NAME) -oc $(NAME) -linkall $(CMXSA) $(OBJSOPT) $(STUBS_OBJS)
129 $(NAME)top: $(CMAO) $(PARSECOMMANDLINECMO)
130 $(CAMLMKTOP) -o $(NAME)top -linkpkg -linkall $(PARSECOMMANDLINECMA) $(CMAOCAMLP4) $(CMAO)
132 .ml.cmo:
133 $(CAMLC) $(PP) -c $<
135 .mli.cmi:
136 $(CAMLC) -c $<
138 .ml.cmx:
139 $(CAMLOPT) $(PP) -c $<
141 #doc:
142 # $(CAMLDOC) -d doc -html eliom.mli ocsigen.mli ocsigen_extensions.mli
145 stubs.o: stubs.c
146 $(CAMLC) $(CAMLINCLUDE) -c $<
148 .PHONY: clean
149 clean:
150 -rm -f *.cm[aiox] *.cmxa *.cmxs *.o *.a *~ doc/* $(NAME) $(NAME).opt $(NAME)top *.annot *.so
152 .PHONY: install
153 install: install_so $(INSTALLBYTE) $(INSTALLOPT)
155 install_so:
156 @echo "Installing shared stubs"
157 mkdir -p $(TEMPROOT)$(STUBDIR)
158 $(INSTALL) -m 755 dll$(NAME).so $(TEMPROOT)$(STUBDIR)/
160 installbyte:
161 @echo "Installing bytecode server"
162 mkdir -p $(TEMPROOT)$(BINDIR)
163 $(INSTALL) -m 755 $(NAME) $(TEMPROOT)$(BINDIR)/
165 installopt:
166 @echo "Installing native server"
167 mkdir -p $(TEMPROOT)$(BINDIR)
168 [ -f $(NAME).opt ] && $(INSTALL) -m 755 $(NAME).opt $(TEMPROOT)$(BINDIR)/
170 .PHONY: uninstall
171 uninstall:
172 rm -f $(TEMPROOT)$(BINDIR)/$(NAME)
173 rm -f $(TEMPROOT)$(BINDIR)/$(NAME).opt
174 rm -f $(TEMPROOT)$(STUBDIR)/dll$(NAME).so
176 depend:
177 $(CAMLDEP) $(LIBDIRS) $(PP2) $(FILES:.ml=.mli) $(EXE:.ml=.mli) $(FILES) $(EXE) $(DUCEFILES:.ml=.mli) $(DUCEFILES) > .depend
180 FORCE:
182 -include .depend