-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
52 lines (35 loc) · 1.06 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
OCAMLOPT=ocamlopt
OCAMLC=ocamlc
INCL=-I $(shell $(OCAMLC) -where)/camlimages
#OCAMLNLDFLAGS = -ccopt -static
OCAMLFLAGS = -unsafe
VERSION=0.1.10
SRCML=tga2cry.ml version.ml converter.ml
PROJECT=converter
EXTRA=README Makefile
LIBS=unix graphics camlimages_core camlimages_all_formats
BYTELIBS=$(LIBS:=.cma)
NATIVELIBS=$(LIBS:=.cmxa)
CMO=$(SRCML:.ml=.cmo)
CMX=$(SRCML:.ml=.cmx)
all: $(PROJECT).native $(PROJECT).byte
.PHONY: all clean dist
$(PROJECT).native: $(CMX)
$(OCAMLOPT) -linkall $(INCL) -o $@ $(NATIVELIBS) $^
$(PROJECT).byte: $(CMO)
$(OCAMLC) -linkall $(INCL) -o $@ $(BYTELIBS) $^
version.ml: Makefile
@echo "let date_of_compile=\""`date`"\";;" > $@
@echo "let version=\""$(VERSION)"\";;" >> $@
@echo "let build_info=\""`uname -msrn`"\";;" >> $@
dist: $(SRCML) $(EXTRA)
mkdir $(PROJECT)
cp $(SRCML) $(EXTRA) $(PROJECT)
tar cfvz $(PROJECT)-$(VERSION).tar.gz $(PROJECT)
rm -rf $(PROJECT)
%.cmo: %.ml
$(OCAMLC) $(INCL) -c $(OCAMLFLAGS) -o $@ $<
%.cmx: %.ml
$(OCAMLOPT) $(INCL) -c $(OCAMLFLAGS) -o $@ $<
clean:
rm -f version.ml *.cmi *.cmo *.o *.cmx