75 lines
1.5 KiB
Makefile
75 lines
1.5 KiB
Makefile
PROGRAMS=justnukeit
|
|
|
|
justnukeit_OBJS=Position.cmx Maze.cmx Player.cmx main.cmx
|
|
justnukeit_INCS=sdl
|
|
justnukeit_LIBS=graphics.cmxa unix.cmxa threads.cmxa bigarray.cmxa sdl.cmxa
|
|
|
|
MODULES=$(patsubst %.mli,%,$(wildcard *.mli)) $(patsubst %.ml,%,$(wildcard *.ml))
|
|
|
|
CMI=$(patsubst %.ml,%.cmi,$(MODULES:=.ml))
|
|
CMO=$(patsubst %.ml,%.cmo,$(MODULES:=.ml))
|
|
CMX=$(patsubst %.ml,%.cmx,$(MODULES:=.ml))
|
|
|
|
OCAMLDEP=ocamldep
|
|
OCAMLOPT=ocamlopt
|
|
OCAMLC=ocamlc
|
|
|
|
OPTS=-w A -g -thread -I +sdl -ccopt -L+sdl
|
|
|
|
define PROGRAM_template
|
|
ALL_OBJS += $$($(1)_OBJS)
|
|
$(1): $$($(1)_OBJS)
|
|
@echo -n -e "\x1B[31;1m"
|
|
@echo "[L] $@"
|
|
@echo -n -e "\x1B[0m"
|
|
$(OCAMLOPT) $(OPTS) $($(1)_LIBS) $($(1)_OBJS) -o $(1)
|
|
@echo ""
|
|
endef
|
|
|
|
$(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))
|
|
|
|
.PHONY: all
|
|
all: $(PROGRAMS)
|
|
|
|
%.cmi: %.mli
|
|
@echo -n -e "\x1B[31;1m"
|
|
@echo "[I] $<"
|
|
@echo -n -e "\x1B[0m"
|
|
$(OCAMLOPT) $(OPTS) -i $<
|
|
$(OCAMLOPT) $(OPTS) -c $<
|
|
@echo ""
|
|
|
|
%.cmx: %.ml
|
|
@echo -n -e "\x1B[31;1m"
|
|
@echo "[C] $<"
|
|
@echo -n -e "\x1B[0m"
|
|
$(OCAMLOPT) $(OPTS) -i $<
|
|
$(OCAMLOPT) $(OPTS) -c $<
|
|
@echo ""
|
|
|
|
%.cmo %.cmi: %.ml %.cmi %.mli
|
|
@echo "[O] $<"
|
|
$(OCAMLC) $(OPTS) -i $<
|
|
$(OCAMLC) $(OPTS) -c $<
|
|
echo ""
|
|
|
|
%.cmo %.cmi: %.ml
|
|
@echo -n -e "\x1B[31;1m"
|
|
@echo "[O] $<"
|
|
@echo -n -e "\x1B[0m"
|
|
$(OCAMLC) $(OPTS) -i $<
|
|
$(OCAMLC) $(OPTS) -c $<
|
|
echo ""
|
|
|
|
clean:
|
|
rm -f $(PROGRAMS) *~ *.cm* *.o *.a *.so .depend *.cmxa *.cma
|
|
|
|
.depend: $(MODULES:=.ml)
|
|
$(OCAMLDEP) $(MODULES:=.ml) $(MODULES:=.mli) > .depend
|
|
@echo ""
|
|
|
|
|
|
.SUFFIXES:
|
|
|
|
-include .depend
|
|
|