2 if $(not $(defined PREFIX))
7 if $(not $(defined ENABLE_DEBUG))
13 if $(file-exists VERSION)
14 VERSION=$(shell head -1 VERSION)
21 ounit-postproc(argv) =
22 (grep "FAIL\|ERROR\|Fail" && exit 1) || exit 0
24 rm -f *.cm[iox] *.o *.omc *.opt *.run *~ $(argv) *.cmxa *.a *.spot *.annot
26 # ------------------------------
28 # ------------------------------
29 public.UseCamlp4(files) =
30 protected.CAMLP4CMO = $(addprefix $(ROOT)/camlp4/,$(addsuffix .cmo,$(files)))
31 OCAMLPPFLAGS+=-pp 'camlp4o $(CAMLP4CMO)'
32 OCAMLDEPFLAGS+=$(OCAMLPPFLAGS)
35 .SCANNER: scan-ocaml-%.ml: %.ml $(CAMLP4CMO)
37 .PHONY: all install config clean distclean example
39 # ------------------------------
41 # ------------------------------
42 config: OMakefile.config base/config.ml
44 .INCLUDE: OMakefile.config
45 if $(mem config,$(TARGETS))
47 if $(and $(defined RELATIVE),$(RELATIVE))
48 echo LIB_DIR=$(PREFIX) >> $@
49 echo SHARE_DIR=$(PREFIX) >> $@
50 echo BIN_DIR=$(PREFIX) >> $@
52 if $(not $(defined LIB_DIR))
53 echo LIB_DIR=$(PREFIX)/lib/habc >> $@
55 echo LIB_DIR=$(LIB_DIR) >> $@
56 if $(not $(defined SHARE_DIR))
57 echo SHARE_DIR=$(PREFIX)/share/habc >> $@
59 echo SHARE_DIR=$(SHARE_DIR) >> $@
60 if $(not $(defined BIN_DIR))
61 echo BIN_DIR=$(PREFIX)/bin >> $@
63 echo BIN_DIR=$(BIN_DIR) >> $@
65 if $(shell-success-null ocamlc$(if $(OCAMLC_OPT_EXISTS), .opt) -annot)
66 @echo "static.OCAMLFLAGS +=-annot" >> $@
68 @echo "static.OCAMLFLAGS +=-dtypes" >> $@
70 @echo "static.OCAMLFLAGS +=-g" >> $@
71 if $(not $(file-exists OMakefile.config))
72 @echo "Please refer to the installation instructions in file README.mkdn."
73 @echo "If you've just unpacked the distribution, something like"
76 @echo " omake install"
77 @echo "should work. But see the file README.mkdn for more details."
80 if $(mem config,$(TARGETS))
82 echo 'let version = "$(VERSION)"' >> $@
83 if $(and $(defined RELATIVE),$(RELATIVE))
84 @echo 'let bin_dir = Str.global_replace (Str.regexp "\\\\") "/" (Filename.dirname Sys.executable_name)' >> $@
85 @echo 'let share_dir = bin_dir' >> $@
86 @echo 'let lib_dir = bin_dir' >> $@
88 @echo 'let bin_dir = "$(ocaml-escaped $(BIN_DIR))"' >> $@
89 @echo 'let share_dir = "$(ocaml-escaped $(SHARE_DIR))"' >> $@
90 @echo 'let lib_dir = "$(ocaml-escaped $(LIB_DIR))"' >> $@
91 @echo 'let default_includes = [lib_dir;"."]' >> $@
92 @echo 'let default_template = share_dir ^ "/template.xml"' >> $@
93 @echo 'let path_sep="$(PATHSEP)"' >> $@
94 @echo 'let exe="$(EXE)"' >> $@
96 .SUBDIRS: scm xml driver base lib camlp4
98 # ------------------------------
100 # ------------------------------
101 habc-scm$(EXE): scm/src/habc-scm$(EXE)
104 habc-xml$(EXE): xml/src/habc-xml$(EXE)
107 habc$(EXE) : driver/habc$(EXE)
110 PROGRAM = habc$(EXE) habc-xml$(EXE) habc-scm$(EXE)
112 all: config $(PROGRAM)
116 # ------------------------------
118 # ------------------------------
122 mkdir -p $(SHARE_DIR)
123 mkdir -p $(SHARE_DIR)/example
124 $(INSTALL) $(PROGRAM) $(BIN_DIR)
125 $(INSTALL) share/habc/* $(SHARE_DIR)
126 $(INSTALL) example/* $(SHARE_DIR)/example/
127 $(INSTALL) lib/habc/* $(LIB_DIR)
128 if $(or $(equal Win32,$(OSTYPE)),$(equal Cygwin,$(OSTYPE)))
129 $(INSTALL) win32/swfmill/* $(BIN_DIR)/
130 $(INSTALL) win32/m4/* $(BIN_DIR)/
131 $(INSTALL) README.mkdn $(BIN_DIR)/
133 # ------------------------------
135 # ------------------------------
137 ocaml-clean *.abc $(PROGRAM)
140 ocaml-clean *.abc $(PROGRAM) OMakefile.config base/config.ml
142 # ------------------------------
144 # ------------------------------
145 %.swf: example/%.scm all
146 ./habc -o $(removesuffix $@) $<