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 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
|
include ../Makefile.config
NAME=$(OCSIGENNAME)
FILES= ocsigen_extensions.ml ocsigen_parseconfig.ml ocsigen_http_client.ml \
../extensions/ocsigen_LocalFiles.ml ocsigen_server.ml
EXE= server_main.ml
ifeq "$(BYTECODE)" "YES"
INSTALLBYTE=installbyte
else
INSTALLBYTE=
endif
ifeq "$(NATIVECODE)" "YES"
INSTALLOPT=installopt
else
INSTALLOPT=
endif
ifeq "$(NEWOCAMLNET)" "YES"
NETSYS=netsys,
NETSYSCMA=netsys.cma
NETSYSCMXA=netsys.cmxa
else
NETSYS=
NETSYSCMA=
NETSYSCMXA=
endif
ifeq "$(NATDYNLINK)" "YES"
DYNLINK=dynlink,
else
DYNLINK=
endif
ifeq ($(OCAMLVERSION),OLD)
# CMAOCAMLP4= gramlib.cma
# CMXXACAMLP4= gramlib.cmxa
CMAOCAMLP4=
CMXXACAMLP4=
# LIB=$(LIB1)
CAMLP4PACKAGES=,camlp4.gramlib
else
CAMLP4PACKAGES=
CMAOCAMLP4= camlp4lib.cma Camlp4OCamlRevisedParser.cmo Camlp4OCamlParser.cmo
CMXXACAMLP4= camlp4lib.cmxa Camlp4OCamlRevisedParser.cmx Camlp4OCamlParser.cmx
LIBDIRS := $(LIBDIRS) -I +camlp4 -I +camlp4/Camlp4Parsers
endif
INSTALL = install
CAMLC = $(OCAMLFIND) $(CAMLCNAME2) $(DBG) -package dynlink $(LIB)
CAMLMKTOP = $(OCAMLFIND) $(CAMLMKTOPNAME) $(LIB)
CAMLOPT = $(OCAMLFIND) $(CAMLOPTNAME) $(DBG) $(LIB)
CAMLDOC = $(OCAMLFIND) ocamldoc $(LIB)
CAMLDEP = $(OCAMLFIND) ocamldep $(LIBDIRS)
LIB = -thread -package lwt.ssl,lwt.extra,netstring,$(NETSYS)ssl,pcre,unix,$(DYNLINK)threads$(CAMLP4PACKAGES),findlib $(LIBDIRS)
# also modify builtin_package in ocsigen_config.ml if you modify the former line!
PP =
PP2 =
ifdef DONOTPARSECOMMANDLINE
PARSECOMMANDLINECMA=../baselib/donotparsecommandline.cma
else
PARSECOMMANDLINECMA=../baselib/parsecommandline.cma
endif
PARSECOMMANDLINECMXA=$(PARSECOMMANDLINECMA:.cma=.cmxa)
# cma and cmo to be linked in the server:
CMOS = ../baselib/ocsigen_lib_obrowser.cmo \
../baselib/ocsigen_cache.cmo \
../baselib/ocsigen_lib.cmo \
../xmlp4/xmllexer.cmo ../xmlp4/simplexmlparser.cmo \
../baselib/ocsigen_config.cmo \
../baselib/ocsigen_commandline.cmo \
../baselib/ocsigen_messages.cmo \
../baselib/dynlink_wrapper.cmo ../baselib/ocsigen_loader.cmo \
../baselib/ocsigen_stream.cmo ../http/multipart.cmo \
../http/http_headers.cmo \
../http/ocsigen_http_frame.cmo ../http/ocsigen_headers.cmo \
../http/ocsigen_range.cmo \
../http/http_lexer.cmo ../http/http_parser.cmo \
../http/framepp.cmo ../http/ocsigen_http_com.cmo \
../xmlp4/xhtmlpretty_streams.cmo ../xmlp4/xhtmlcompact_streams.cmo \
../http/ocsigen_charset_mime.cmo ../http/ocsigen_senders.cmo \
../baselib/polytables.cmo
# also modify builtin_package in ocsigen_config.ml if you modify the former line!
CMAO = ../xmlp4/xhtml.cma ../xmlp4/xhtmlpretty.cma $(NAME).cma
STUBS_OBJS = stubs.o
OBJS = $(FILES:.ml=.cmo) $(DUCEFILES:.ml=.cmo)
OBJSEXE = $(EXE:.ml=.cmo)
CMXSATEMP=$(CMOS:.cmo=.cmx)
CMXSA=$(CMXSATEMP:.cma=.cmxa)
CMXXATEMP=$(CMAO:.cmo=.cmx)
CMXXA=$(CMXXATEMP:.cma=.cmxa)
OBJSOPT = $(FILES:.ml=.cmx) $(DUCEFILES:.ml=.cmx)
OBJSEXEOPT = $(EXE:.ml=.cmx)
byte: $(OBJS) $(OBJSEXE) $(NAME) $(NAME)top
opt: $(OBJSOPT) $(OBJSEXEOPT) $(NAME).opt
.SUFFIXES:
.SUFFIXES: .ml .mli .cmo .cmi .cmx
.PHONY: doc depend
$(NAME): $(CMAO) $(OBJSEXE) $(PARSECOMMANDLINECMO)
$(CAMLC) -o $(NAME) -linkpkg -linkall $(PARSECOMMANDLINECMA) $(CMAOCAMLP4) $(CMAO) $(OBJSEXE)
$(NAME).opt: $(CMXXA) $(OBJSEXEOPT) $(PARSECOMMANDLINECMX)
$(CAMLOPT) -o $(NAME).opt -linkpkg -linkall $(PARSECOMMANDLINECMXA) $(CMXXACAMLP4) $(CMXXA) $(OBJSEXEOPT)
$(NAME).cma: $(CMOS) $(OBJS) $(STUBS_OBJS)
$(CAMLMKLIB) -o $(NAME) -oc $(NAME) -linkall $(CMOS) $(OBJS) $(STUBS_OBJS)
$(NAME).cmxa: $(CMXSA) $(OBJSOPT) $(STUBS_OBJS)
$(CAMLMKLIB) -o $(NAME) -oc $(NAME) -linkall $(CMXSA) $(OBJSOPT) $(STUBS_OBJS)
$(NAME)top: $(CMAO) $(PARSECOMMANDLINECMO)
$(CAMLMKTOP) -o $(NAME)top -linkpkg -linkall $(PARSECOMMANDLINECMA) $(CMAOCAMLP4) $(CMAO)
.ml.cmo:
$(CAMLC) $(PP) -c $<
.mli.cmi:
$(CAMLC) -c $<
.ml.cmx:
$(CAMLOPT) $(PP) -c $<
#doc:
# $(CAMLDOC) -d doc -html eliom.mli ocsigen.mli ocsigen_extensions.mli
stubs.o: stubs.c
$(CAMLC) $(CAMLINCLUDE) -c $<
.PHONY: clean
clean:
-rm -f *.cm[aiox] *.cmxa *.cmxs *.o *.a *~ doc/* $(NAME) $(NAME).opt $(NAME)top *.annot *.so
.PHONY: install
install: install_so $(INSTALLBYTE) $(INSTALLOPT)
install_so:
@echo "Installing shared stubs"
mkdir -p $(TEMPROOT)$(STUBDIR)
$(INSTALL) -m 755 dll$(NAME).so $(TEMPROOT)$(STUBDIR)/
installbyte:
@echo "Installing bytecode server"
mkdir -p $(TEMPROOT)$(BINDIR)
$(INSTALL) -m 755 $(NAME) $(TEMPROOT)$(BINDIR)/
installopt:
@echo "Installing native server"
mkdir -p $(TEMPROOT)$(BINDIR)
[ -f $(NAME).opt ] && $(INSTALL) -m 755 $(NAME).opt $(TEMPROOT)$(BINDIR)/
.PHONY: uninstall
uninstall:
rm -f $(TEMPROOT)$(BINDIR)/$(NAME)
rm -f $(TEMPROOT)$(BINDIR)/$(NAME).opt
rm -f $(TEMPROOT)$(STUBDIR)/dll$(NAME).so
depend:
$(CAMLDEP) $(LIBDIRS) $(PP2) $(FILES:.ml=.mli) $(EXE:.ml=.mli) $(FILES) $(EXE) $(DUCEFILES:.ml=.mli) $(DUCEFILES) > .depend
FORCE:
-include .depend
|