1
VERSION=@PACKAGE_VERSION@
2
NAME=@PACKAGE_NAME@
3
4
CFLAGS=@CFLAGS@ -fPIC -Wall -pedantic -Werror -Wno-long-long
5
CPPFLAGS=@CPPFLAGS@
6
LDFLAGS=@LDFLAGS@
7
8
OCAMLFIND=@OCAMLFIND@
9
OCAMLBUILD=@OCAMLBUILD@
10
11
exec_prefix=@prefix@
12
LIBDIR=@libdir@/ocaml
13
BINDIR=@bindir@
14
LIBDIR=$(shell ocamlfind printconf destdir)
15
16
INSTALL=$(OCAMLFIND) install -destdir $(LIBDIR)
17
UNINSTALL=$(OCAMLFIND) remove -destdir $(LIBDIR)
18
19
ifeq ("@OCAMLBEST@","opt")
20
  OCAMLBEST=native
21
else
22
  OCAMLBEST=byte
23
endif
24
25
DIST_DIR = $(NAME)-$(VERSION)
26
DIST_TARBALL = $(DIST_DIR).tar.gz
27
28
OBFLAGS = -j 10 -use-ocamlfind #-classic-display
29
#OBFLAGS += $(OBFLAGS) -tag debug -tag profile
30
31
BYTELIBS = parmap.cma
32
OPTLIBS=
33
CMXSLIBS=
34
ALIBS=
35
36
ifeq ("@OCAMLBEST@","opt")
37
  OPTLIBS += $(BYTELIBS:%.cma=%.cmxa)
38
  CMXSLIBS += $(BYTELIBS:%.cma=%.cmxs)
39
endif
40
41
ALIBS = $(BYTELIBS:%.cma=%.a)
42
43
all:
44
	$(OCAMLBUILD) $(OBFLAGS) $(BYTELIBS) $(OPTLIBS) $(CMXSLIBS) $(ALIBS)
45
46
fast: 
47
	$(OCAMLBUILD) $(OBFLAGS) $(OPTLIBS)
48
49
EXAMPLES = \
50
  example/simplescale.$(OCAMLBEST) \
51
  example/floatscale.$(OCAMLBEST) \
52
  example/simplescale_array.$(OCAMLBEST) \
53
  example/simplescalefold.$(OCAMLBEST) \
54
  example/simplescalemapfold.$(OCAMLBEST) \
55
  example/mandels.$(OCAMLBEST)
56
57
examples:
58
	$(OCAMLBUILD) $(OBFLAGS) $(EXAMPLES)
59
60
INSTALL_STUFF = META 
61
INSTALL_STUFF += $(wildcard _build/*.cma _build/*.cmxa _build/*.cmxs)
62
INSTALL_STUFF += $(wildcard _build/*.mli _build/*.cmi)
63
INSTALL_STUFF += $(wildcard _build/*.so _build/*.a)
64
65
install: $(LIBS) META
66
	test -d $(LIBDIR) || mkdir -p $(LIBDIR)
67
	test -d $(LIBDIR)/stublibs || mkdir -p $(LIBDIR)/stublibs
68
	$(INSTALL) -patch-version $(VERSION) $(NAME) $(INSTALL_STUFF)
69
70
uninstall:
71
	$(UNINSTALL) $(NAME)
72
73
74
doc:
75
	$(OCAMLBUILD) $(OBFLAGS) $(NAME).docdir/index.html $(NAME).docdir/index.dot
76
	dot -Grotate=0 -Tsvg -o $(NAME).docdir/index.svg $(NAME).docdir/index.dot
77
78
clean:
79
	$(OCAMLBUILD) -clean
80
81
dist: ./$(DIST_TARBALL)
82
./$(DIST_TARBALL):
83
	if [ -d ./$(DIST_DIR)/ ] ; then rm -rf ./$(DIST_DIR)/ ; fi
84
	if [ -d ./$(DIST_TARBALL) ] ; then rm -f ./$(DIST_TARBALL) ; fi
85
	if [ -d .svn ]; then \
86
          svn export . ./$(DIST_DIR) ; \
87
        else \
88
          mkdir ./$(DIST_DIR)/ ;\
89
	  git archive --format=tar HEAD | \
90
	  tar -x -C ./$(DIST_DIR)/ ; \
91
        fi
92
	for f in $(DIST_EXCLUDE) ; do rm -rf ./$(DIST_DIR)/$$f; done
93
	tar cvzf ./$(DIST_TARBALL) ./$(DIST_DIR)
94
	rm -rf ./$(DIST_DIR)
95
	@echo "Distribution tarball: ./$(DIST_TARBALL)"
96
97
.PHONY: all fast install clean dist