############################ 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 = lexer.mll parser.mly ast.ml main.ml # The executable file to generate EXEC = ../bin/sat ########################## Advanced user's variables ##################### # # The Caml compilers. # You may fix here the path to access the Caml compiler on your machine # You may also have to add various -I options. CAMLC = ocamlc CAMLOPT = ocamlopt CAMLDEP = ocamldep CAMLLEX = ocamllex CAMLYACC = ocamlyacc ################ End of user's variables ##################### ############################################################## ################ This part should be generic ################ Nothing to set up or fix here ############################################################## all: depend $(EXEC) opt : $(EXEC).opt #ocamlc -custom other options graphics.cma other files -cclib -lgraphics -cclib -lX11 #ocamlc -thread -custom other options threads.cma other files -cclib -lthreads #ocamlc -custom other options str.cma other files -cclib -lstr #ocamlc -custom other options nums.cma other files -cclib -lnums #ocamlc -custom other options unix.cma other files -cclib -lunix #ocamlc -custom other options dbm.cma other files -cclib -lmldbm -cclib -lndbm SOURCES1 = $(SOURCES:.mly=.ml) SOURCES2 = $(SOURCES1:.mll=.ml) OBJS = $(SOURCES2:.ml=.cmo) OPTOBJS = $(SOURCES2:.ml=.cmx) $(EXEC): $(OBJS) $(CAMLC) $(CUSTOM) -o $(EXEC) $(LIBS) $(OBJS) $(EXEC).opt: $(OPTOBJS) $(CAMLOPT) -o $(EXEC).opt $(LIBS:.cma=.cmxa) $(OPTOBJS) .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 depend: $(SOURCES2) $(CAMLDEP) *.mli *.ml > .depend include .depend