5ce3c7ea91b7d1e8446575129d43323817ca5371
[ghc-hetmet.git] / ghc / compiler / ilxGen / tests / Makefile
1
2 TOP = ../../..
3 include $(TOP)/mk/boilerplate.mk
4
5 WAYS=$(GhcLibWays)
6
7 #-----------------------------------------------------------------------------
8 #       Setting the standard variables
9 #
10
11 HC = $(GHC_INPLACE)
12 SRC_HC_OPTS+=-cpp -fglasgow-exts
13
14 #-----------------------------------------------------------------------------
15
16 CORENV_DEBUG=
17 CORENV_RETAIL=
18 LOCALRUN=./
19 ifeq ($(HOSTNAME),MSRC-HILDA)
20 CORENV_DEBUG="call devcorb2gen.bat fastchecked"
21 CORENV_RETAIL="call devcorb2gen.bat free"
22 LOCALRUN=.\\
23 endif    
24
25 ILX2IL_HOME=C:/devel/fcom/src
26 ILX2IL=$(ILX2IL_HOME)/bin/ilx2il.opt.exe 
27 ILVALID=$(ILX2IL_HOME)/bin/ilvalid.opt.exe 
28
29 ghc:
30         $(MAKE) -C ../.. 
31
32 ilx:
33         $(MAKE) -C $(ILX2IL_HOME) ilxdefault
34
35 prel: ilx
36         $(MAKE) -C ../../../lib/std std.$(ilx_way).dll std.$(ilx_way).vlb
37
38 #========================================================================
39 # 1. From Haskell to ILX and then to IL - see build.mk 
40
41 #------------------------------------------------------------------------
42 # 2. From IL to .EXE
43
44 %.$(ilx_way).exe : %.$(ilx_way).il ../Entry.$(ilx_way).il 
45         cat $*.$(ilx_way).il ../Entry.$(ilx_way).il > $@.tmp
46         echo "call devcorb2gen free" > tmp.bat
47         echo "ilasm /DEBUG /QUIET /OUT=$@ $@.tmp" >> tmp.bat
48         cmd /c tmp.bat
49
50 ../Entry.$(hs2ilx_suffix)_o: ../Entry.ilx
51         sed -e "s|ilx std|ilx std.$(hs2ilx_suffix)|g" ../Entry.ilx > $@.tmp
52         mv $@.tmp $@
53
54
55 %.$(ilx_way).mvl:  %.$(ilx_way).il
56         (ILVALID_HOME=c:\\devel\\fcom\\src\\ ILVALID_MSCORLIB=mscorlib.vlb $(ILVALID) c:\\devel\\fcom\\src\\bin\\msilxlib$(ilx2il_suffix).vlb $(TOP)/lib/std/std.$(ilx_way).vlb $<) 2>&1
57
58
59 #------------------------------------------------------------------------
60 # From .HS to .EXE without using ILX
61 # Used to run performance comparisons against native code GHC
62
63 %.Onot.exe: %.hs
64         ghc -Onot -o $@ $<
65
66 %.O.exe: %.hs
67         ghc -O -o $@ $<
68
69 %.run: %.exe
70         time -p $<
71
72 #------------------------------------------------------------------------
73 # Running:
74
75 HSstd_cbits.dll: ../../../lib/std/cbits/HSstd_cbits.dll
76         cp $< $@
77
78 %.cordbg.run: HSstd_cbits.dll %.exe
79         cp $(TOP)/lib/std/*.$(ilx_way).dll .
80         cp $(ILX2IL_HOME)/bin/msilxlib$(ilx2il_suffix).dll .
81         cp $(TOP)/lib/std/*.$(ilx_way).pdb .
82         cp $(ILX2IL_HOME)/bin/msilxlib$(ilx2il_suffix).pdb .
83         echo "call devcorb2gen fastchecked" > $@.bat
84         echo "$(LOCALRUN)$(subst /,\\,$*).exe 2>&1" >> $@.bat
85         time -p cmd /c $(subst /,\\,$@).bat
86         rm $@.bat
87
88 %.debug.run: HSstd_cbits.dll %.exe
89         cp $(TOP)/lib/std/*.$(ilx_way).dll .
90         cp $(ILX2IL_HOME)/bin/msilxlib$(ilx2il_suffix).dll .
91         echo "call devcorb2gen fastchecked" > $@.bat
92         echo "$(LOCALRUN)$(subst /,\\,$*).exe 2>&1" >> $@.bat
93         time -p cmd /c $(subst /,\\,$@).bat
94         rm $@.bat
95
96 %.retail.run: HSstd_cbits.dll %.exe
97         cp $(TOP)/lib/std/*.$(ilx_way).dll .
98         cp $(ILX2IL_HOME)/bin/msilxlib$(ilx2il_suffix).dll .
99         echo "call devcorb2gen free" > $@.bat
100         echo "$(LOCALRUN)$(subst /,\\,$*).exe 2>&1" >> $@.bat
101         time -p cmd /c $(subst /,\\,$@).bat
102         rm $@.bat
103
104
105 %.run: %.exe
106         time -p $<
107
108
109 #--------------------
110
111 %.mvl: %.nolib.il
112         ILVALID_HOME=$(ILX2IL_HOME) $(ILVALID) $*.nolib.il
113
114 ci:
115         (cd $(ILX2IL_HOME); $(CVS) ci -m "")
116         (cd ../..; cvs ci -m "")
117         (cd ../../../lib/std; $(CVS) ci -m "")
118
119 upd:
120         (cd $(ILX2IL_HOME); $(CVS) up)
121         (cd ../..; $(CVS) up)
122         (cd ../../../lib/std; $(CVS) up)
123
124
125 .PHONY: %.run
126
127 include $(TOP)/mk/target.mk