#*********************************************************************# # # # Objective Caml # # # # Pierre Weis, projet Cristal, INRIA Rocquencourt # # # # Copyright 1998 Institut National de Recherche en Informatique et # # en Automatique. Distributed only by permission. # # # #*********************************************************************# # Generic Makefile for Objective Caml Programs ############################ Documentation ###################### # # To use this Makefile: # -- You must fix the value of the variable SOURCES below. # (The variable SOURCES is the list of your Caml source files.) # -- You must create a file .depend, using # $touch .depend # (This file will contain the dependancies between your Caml modules, # automatically computed by this Makefile.) # Usage of this Makefile: # To incrementally recompile the system, type # make # To recompute dependancies between modules, type # make depend # To remove the executable and all the compiled files, type # make clean # To compile using the native code compiler # make opt # ################################################################## ################################################################## # # Advanced usage: # --------------- # If you want to fix the name of the executable, set the variable # EXEC, for instance, if you want to obtain a program named my_prog: # EXEC = my_prog # If you need special libraries provided with the Caml system, # (graphics, arbitrary precision numbers, regular expression on strings, ...), # you must set the variable LIBS to the proper set of libraries. For # instance, to use the graphics library set LIBS to $(WITHGRAPHICS): # LIBS=$(WITHGRAPHICS) # You may use any of the following predefined variable # WITHGRAPHICS : provides the graphics library # WITHUNIX : provides the Unix interface library # WITHSTR : provides the regular expression string manipulation library # WITHNUMS : provides the arbitrary precision arithmetic package # WITHTHREADS : provides the byte-code threads library # WITHDBM : provides the Data Base Manager library # # ########################## End of Documentation #################### ########################## User's variables ##################### # # The Caml sources (including camlyacc and camllex source files) SOURCES = mldonkey_server.ml # The executable file to generate (default a.out under Unix) EXEC = mldonkey_server ########################## Advanced user's variables ##################### # # The Caml compilers. # You may fix here the path to access the Caml compiler on your machine CAMLC = ocamlc CAMLOPT = ocamlopt CAMLDEP = ocamldep CAMLLEX = ocamllex CAMLYACC = ocamlyacc # The list of Caml libraries needed by the program # For instance: # LIBS=$(WITHGRAPHICS) $(WITHUNIX) $(WITHSTR) $(WITHNUMS) $(WITHTHREADS)\ # $(WITHDBM) LIBS=$(WITHUNIX) # Should be set to -custom if you use any of the libraries above # or if any C code have to be linked with your program # (irrelevant for ocamlopt) CUSTOM=-custom # Default setting of the WITH* variables. Should be changed if your # local libraries are not found by the compiler. WITHGRAPHICS =graphics.cma -cclib -lgraphics -cclib -L/usr/X11R6/lib -cclib -lX11 WITHUNIX =unix.cma -cclib -lunix WITHSTR =str.cma -cclib -lstr WITHNUMS =nums.cma -cclib -lnums WITHTHREADS =threads.cma -cclib -lthreads WITHDBM =dbm.cma -cclib -lmldbm -cclib -lndbm ################ End of user's variables ##################### ############################################################## ################ This part should be generic ################ Nothing to set up or fix here ############################################################## SOURCES1 = $(SOURCES:.mly=.ml) SOURCES2 = $(SOURCES1:.mll=.ml) OBJS = $(SOURCES2:.ml=.cmo) OPTOBJS = $(OBJS:.cmo=.cmx) opt: $(EXEC).opt $(EXEC).opt: $(OPTOBJS) $(CAMLOPT) -o $(EXEC) $(LIBS:.cma=.cmxa) $(OPTOBJS) byte: $(EXEC).byte $(EXEC).byte: $(OBJS) $(CAMLC) -o $(EXEC) $(LIBS) $(OBJS) .SUFFIXES: .SUFFIXES: .ml .mli .cmo .cmi .cmx .mll .mly .ml.cmo: $(CAMLC) -c $< .mli.cmi: $(CAMLC) -c $< .ml.cmx: $(CAMLOPT) -c $< .mll.cmo: $(CAMLLEX) $< $(CAMLC) -c $*.ml .mll.cmx: $(CAMLLEX) $< $(CAMLOPT) -c $*.ml .mly.cmo: $(CAMLYACC) $< $(CAMLC) -c $*.mli $(CAMLC) -c $*.ml .mly.cmx: $(CAMLYACC) $< $(CAMLOPT) -c $*.mli $(CAMLOPT) -c $*.ml .mly.cmi: $(CAMLYACC) $< $(CAMLC) -c $*.mli .mll.ml: $(CAMLLEX) $< .mly.ml: $(CAMLYACC) $< clean: rm -f *.cm[iox] *~ .*~ *.o #*# rm -f $(EXEC) rm -f $(EXEC).opt rm -f .depend.server .depend.server: $(SOURCES2) $(CAMLDEP) *.mli *.ml > .depend.server depend: .depend.server include .depend.server