2 if $(not $(defined PREFIX))
8 if $(file-exists OMakefile.release)
9 include OMakefile.release
12 VERSION=HEAD[$(shell date +%Y-%m-%d)]
17 ounit-postproc(argv) =
18 (grep "FAIL\|ERROR" && exit 1) || exit 0
20 rm -f *.cm[iox] *.o *.omc *.opt *.run *~ $(argv) *.cmxa *.a *.spot *.annot
23 .PHONY: all install config clean distclean info
28 # ------------------------------
30 # ------------------------------
31 config: OMakefile.config base/config.ml
33 .INCLUDE: OMakefile.config
34 if $(mem config,$(TARGETS))
36 if $(and $(defined RELATIVE),$(RELATIVE))
37 echo LIB_DIR=$(PREFIX) >> $@
38 echo SHARE_DIR=$(PREFIX) >> $@
39 echo BIN_DIR=$(PREFIX) >> $@
41 if $(not $(defined LIB_DIR))
42 echo LIB_DIR=$(PREFIX)/lib/habc >> $@
44 echo LIB_DIR=$(LIB_DIR) >> $@
45 if $(not $(defined SHARE_DIR))
46 echo SHARE_DIR=$(PREFIX)/share/habc >> $@
48 echo SHARE_DIR=$(SHARE_DIR) >> $@
49 if $(not $(defined BIN_DIR))
50 echo BIN_DIR=$(PREFIX)/bin >> $@
52 echo BIN_DIR=$(BIN_DIR) >> $@
54 if $(shell-success-null ocamlc$(if $(OCAMLC_OPT_EXISTS), .opt) -annot)
55 @echo "static.OCAMLFLAGS +=-annot" >> $@
57 @echo "static.OCAMLFLAGS +=-dtypes" >> $@
58 if $(not $(file-exists OMakefile.config))
59 @echo "Please refer to the installation instructions in file README.mkdn."
60 @echo "If you've just unpacked the distribution, something like"
63 @echo " omake install"
64 @echo "should work. But see the file README.mkdn for more details."
67 if $(mem config,$(TARGETS))
69 echo 'let version = "$(VERSION)"' >> $@
70 if $(and $(defined RELATIVE),$(RELATIVE))
71 @echo 'let bin_dir = Str.global_replace (Str.regexp "\\\\") "/" (Filename.dirname Sys.executable_name)' >> $@
72 @echo 'let share_dir = bin_dir' >> $@
73 @echo 'let lib_dir = bin_dir' >> $@
75 @echo 'let bin_dir = "$(ocaml-escaped $(BIN_DIR))"' >> $@
76 @echo 'let share_dir = "$(ocaml-escaped $(SHARE_DIR))"' >> $@
77 @echo 'let lib_dir = "$(ocaml-escaped $(LIB_DIR))"' >> $@
78 @echo 'let default_includes = [lib_dir;"."]' >> $@
79 @echo 'let default_template = share_dir ^ "/template.xml"' >> $@
80 @echo 'let path_sep="$(PATHSEP)"' >> $@
81 @echo 'let exe="$(EXE)"' >> $@
83 .SUBDIRS: scm xml driver base
84 # ------------------------------
86 # ------------------------------
87 habc-scm$(EXE): scm/src/habc-scm$(EXE)
90 habc-xml$(EXE): xml/src/habc-xml$(EXE)
93 habc$(EXE) : driver/habc$(EXE)
96 PROGRAM = habc$(EXE) habc-xml$(EXE) habc-scm$(EXE)
98 all: config $(PROGRAM)
102 # ------------------------------
104 # ------------------------------
108 mkdir -p $(SHARE_DIR)
109 mkdir -p $(SHARE_DIR)/example
110 $(INSTALL) $(PROGRAM) $(BIN_DIR)
111 $(INSTALL) share/habc/* $(SHARE_DIR)
112 $(INSTALL) example/* $(SHARE_DIR)/example/
113 $(INSTALL) lib/habc/* $(LIB_DIR)
114 if $(or $(equal Win32,$(OSTYPE)),$(equal Cygwin,$(OSTYPE)))
115 $(INSTALL) win32/swfmill/* $(BIN_DIR)/
116 $(INSTALL) README.mkdn $(BIN_DIR)/
118 # ------------------------------
120 # ------------------------------
122 ocaml-clean *.abc $(PROGRAM)
125 ocaml-clean *.abc $(PROGRAM) OMakefile.config base/config.ml