File: Makefile

package info (click to toggle)
ocaml 4.02.3-9
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 22,076 kB
  • ctags: 30,429
  • sloc: ml: 154,213; ansic: 38,324; sh: 5,236; makefile: 4,569; asm: 4,283; lisp: 4,224; awk: 88; perl: 87; fortran: 21; cs: 9; sed: 9
file content (95 lines) | stat: -rw-r--r-- 3,562 bytes parent folder | download
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#########################################################################
#                                                                       #
#                                 OCaml                                 #
#                                                                       #
#                 Xavier Clerc, SED, INRIA Rocquencourt                 #
#                                                                       #
#   Copyright 2010 Institut National de Recherche en Informatique et    #
#   en Automatique.  All rights reserved.  This file is distributed     #
#   under the terms of the Q Public License version 1.0.                #
#                                                                       #
#########################################################################

BASEDIR=../..
EXECNAME=program$(EXE)

ABCDFILES=backtrace.ml
OTHERFILES=backtrace2.ml raw_backtrace.ml \
           backtrace_deprecated.ml backtrace_slots.ml
OTHERFILESNOINLINING=backtraces_and_finalizers.ml

default:
	$(MAKE) byte
	@case `dpkg-architecture -qDEB_BUILD_ARCH` in \
	  sparc|powerpc*) : ;; \
	  *) if $(BYTECODE_ONLY) ; then : ; else $(MAKE) native; fi ;; \
	esac

.PHONY: byte
byte:
	@for file in $(ABCDFILES); do \
	  rm -f program program.exe; \
	  $(OCAMLC) -g -o $(EXECNAME) $$file; \
	  for arg in a b c d ''; do \
	    printf " ... testing '$$file' with ocamlc and argument '$$arg':"; \
	    F="`basename $$file .ml`"; \
	    (OCAMLRUNPARAM=b=1 $(OCAMLRUN) $(EXECNAME) $$arg || true) \
	         >$$F.$$arg.byte.result 2>&1; \
	    $(DIFF) $$F.$$arg.reference $$F.$$arg.byte.result >/dev/null \
	    && echo " => passed" || echo " => failed"; \
	  done; \
	done
	@for file in $(OTHERFILES); do \
	  rm -f program program.exe; \
	  $(OCAMLC) -g -o $(EXECNAME) $$file; \
	  printf " ... testing '$$file' with ocamlc:"; \
	  F="`basename $$file .ml`"; \
	  (OCAMLRUNPARAM=b=1 $(OCAMLRUN) $(EXECNAME) $$arg || true) \
	       >$$F.byte.result 2>&1; \
	  $(DIFF) $$F.reference $$F.byte.result >/dev/null \
	  && echo " => passed" || echo " => failed"; \
	done

.PHONY: native
native:
	@for file in $(ABCDFILES); do \
	  rm -f program program.exe; \
	  $(OCAMLOPT) -g -o $(EXECNAME) $$file; \
	  for arg in a b c d ''; do \
	    printf " ... testing '$$file' with ocamlopt and argument '$$arg':"; \
	    F="`basename $$file .ml`"; \
	    (OCAMLRUNPARAM=b=1 ./$(EXECNAME) $$arg || true) \
	         >$$F.$$arg.native.result 2>&1; \
	    $(DIFF) $$F.$$arg.reference $$F.$$arg.native.result >/dev/null \
	    && echo " => passed" || echo " => failed"; \
	  done; \
	done
	@for file in $(OTHERFILES); do \
	  rm -f program program.exe; \
	  $(OCAMLOPT) -g -o $(EXECNAME) $$file; \
	  printf " ... testing '$$file' with ocamlopt:"; \
	  F="`basename $$file .ml`"; \
	  (OCAMLRUNPARAM=b=1 ./$(EXECNAME) $$arg || true) \
	       >$$F.native.result 2>&1; \
	  $(DIFF) $$F.reference $$F.native.result >/dev/null \
	  && echo " => passed" || echo " => failed"; \
	done;
	@for file in $(OTHERFILESNOINLINING); do \
	  rm -f program program.exe; \
	  $(OCAMLOPT) -inline 0 -g -o $(EXECNAME) $$file; \
	  printf " ... testing '$$file' with ocamlopt:"; \
	  F="`basename $$file .ml`"; \
	  (OCAMLRUNPARAM=b=1 ./$(EXECNAME) $$arg || true) \
	       >$$F.native.result 2>&1; \
	  $(DIFF) $$F.reference $$F.native.result >/dev/null \
	  && echo " => passed" || echo " => failed"; \
	done

.PHONY: promote
promote: defaultpromote

.PHONY: clean
clean: defaultclean
	@rm -f *.result program program.exe

include $(BASEDIR)/makefiles/Makefile.common