diff options
| author | Grégoire Duchêne <gduchene@awhk.org> | 2014-09-11 17:31:37 +0200 |
|---|---|---|
| committer | Grégoire Duchêne <gduchene@awhk.org> | 2014-09-24 16:06:04 +0200 |
| commit | 1ff288efb8ae94291e6ee7deb7cb066d85c1c450 (patch) | |
| tree | ecb84de38fec7b1683ba775a4590117bb9c127ff /gnu.ocaml.prog.mk | |
| parent | fce67653347965627bc3adc3575078635e28f519 (diff) | |
Added subdirectory support
By default, ostumake will look for OCaml code into every subdirectory
available.
It is possible to exclude files and/or directories by adding them to
the EXCL variable. The previous behavior is also available by setting
the NOSUBDIR variable.
Most of the code has been moved to the gnu.ocaml.obj.mk file. This
allows the user to choose between building a whole binary or just the
object files.
This commit closes #3.
Diffstat (limited to 'gnu.ocaml.prog.mk')
| -rw-r--r-- | gnu.ocaml.prog.mk | 58 |
1 files changed, 5 insertions, 53 deletions
diff --git a/gnu.ocaml.prog.mk b/gnu.ocaml.prog.mk index 26e7797..dde734a 100644 --- a/gnu.ocaml.prog.mk +++ b/gnu.ocaml.prog.mk @@ -14,61 +14,13 @@ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -include $(dir $(lastword $(MAKEFILE_LIST)))gnu.ocaml.rules.mk +include $(dir $(lastword $(MAKEFILE_LIST)))gnu.ocaml.obj.mk -DEPFILE?= .Makefile.dep -MENHIR?= menhir -OCAMLLEX?= ocamllex PROG?= a.out -SRC+= $(CSRC) -ifdef CSRC -ifndef OCAMLNATIVE -OCAMLFLAGS+= -custom -endif -endif - -ifndef OCAMLC -ifdef OCAMLNATIVE -OCAMLC= ocamlfind ocamlopt -else -OCAMLC= ocamlfind ocamlc -endif -endif - -ifdef PKG -OCAMLFLAGS+= -linkpkg -package "$(PKG)" -endif - -OCAMLFLAGS+= $(DEBUG) - --include $(DEPFILE) - -OBJ+= $(patsubst %.c, %.o, $(filter %.c, $(SRC))) - -ifdef OCAMLNATIVE -OBJ+= $(patsubst %.ml, %.cmx, $(filter %.ml, $(SRC))) -CLEAN+= $(patsubst %.cmx, %.o, $(OBJ)) -CLEAN+= $(patsubst %.cmx, %.cmi, $(OBJ)) -else -OBJ+= $(patsubst %.ml, %.cmo, $(filter %.ml, $(SRC))) -CLEAN+= $(patsubst %.cmo, %.cmi, $(OBJ)) -endif - -INTER= $(patsubst %.mly, %.ml, $(wildcard *.mly)) -INTER+= $(patsubst %.mll, %.ml, $(wildcard *.mll)) -CLEAN+= $(patsubst %.ml, %.mli, $(INTER)) +.DEFAULT_GOAL:= $(PROG) -$(DEPFILE): $(wildcard *.ml) $(INTER) - printf "SRC+=\t%s\n" `ocamldep -sort *.ml` > $(DEPFILE) - printf "\n%s\n" "`ocamldep *.mli *.ml`" >> $(DEPFILE) -$(PROG): $(DEPFILE) $(OBJ) - $(OCAMLC) $(OCAMLFLAGS) -o $@ $(filter-out $(DEPFILE), $^) -all: $(PROG) -clean: - $(RM) $(CLEAN) $(OBJ) $(PROG) $(INTER) -dist-clean: clean - $(RM) $(DEPFILE) +$(PROG): $(_OBJ) + $(OCAMLC) $(OCAMLFLAGS) -o $@ $^ -.DEFAULT_GOAL:= $(PROG) -.SUFFIXES: +all: $(PROG) |
