03765c84de2ab292bdd7899288a2debb080b4815
[ghc-hetmet.git] / ghc / compiler / ilxGen / tests / Makefile
1
2 # These settings are if you use a visual studio build
3 CVS=cvs
4 CORENV_DEBUG=
5 CORENV_RETAIL=
6 LOCALRUN=./
7 ILX_FAST=x
8 ifeq ($(HOSTNAME),MSRC-HILDA)
9 CORENV_DEBUG="call devcorb2gen.bat fastchecked"
10 CORENV_RETAIL="call devcorb2gen.bat free"
11 LOCALRUN=.\\
12 ILX_FAST=
13 endif    
14
15 ILX2IL_HOME=C:/devel/fcom/src
16 ILX2IL=$(ILX2IL_HOME)/bin/ilx2il.opt.exe 
17 ILVALID=$(ILX2IL_HOME)/bin/ilvalid.opt.exe 
18
19 ghc:
20         $(MAKE) -C ../.. 
21
22 ilx:
23         $(MAKE) -C $(ILX2IL_HOME) ilxdefault
24
25 prel: ilx
26         $(MAKE) -C ../../../lib/std std.Onot.mono-b2.dll
27
28 %.o: %.hs ../../ghc-4.11
29         ../../ghc-inplace -o $@ -c $*.hs
30
31 #========================================================================
32 # 1. From Haskell to ILX 
33
34 %.Onot.ilx: %.hs ../../ghc-4.11
35         ../../ghc-inplace -c -fglasgow-exts -o $@ -i../../../lib/std/.Onot -Onot -filx -fkeep-stg-types $*.hs -osuf Onot.ilx
36
37 %.O.ilx: %.hs ../../ghc-4.11
38         ../../ghc-inplace -c -fglasgow-exts -o $@ -i../../../lib/std/.O -O -filx -fkeep-stg-types $*.hs -osuf O.ilx
39
40 ../Entry.Onot.ilx: ../Entry.ilx
41         sed -e "s|ilx std|ilx std.Onot|g" ../Entry.ilx > $@.tmp
42         mv $@.tmp $@
43
44 ../Entry.O.ilx: ../Entry.ilx
45         sed -e "s|ilx std|ilx std.O|g" ../Entry.ilx > $@.tmp
46         mv $@.tmp $@
47
48
49 #========================================================================
50 # 2. From ILX to IL
51
52 %.generic.il: $(ILX2IL) %.ilx
53         $(ILX2IL) --generic $(ILX2IL_FLAGS) -o $@.tmp $*.ilx
54         mv $@.tmp $@
55
56 %.mono.il: $(ILX2IL) %.ilx
57         $(ILX2IL) --mono $(ILX2IL_FLAGS) -o $@.tmp $*.ilx
58         mv $@.tmp $@
59
60 #------------------------------------------------------------------------
61 # From IL to .EXE
62
63 %.generic.exe: %.generic.il ../Entry.Onot.generic.il
64         cat $*.generic.il ../Entry.Onot.generic.il > $@.tmp
65         echo "$(CORENV_RETAIL)" > $@.bat
66         echo "ilasm /exe /quiet /out=$(subst /,\\,$@.tmp) $(subst /,\\,$@.tmp)" >> $@.bat
67         time -p cmd /c $(subst /,\\,$@).bat
68         rm $@.bat
69
70 %.mono.exe: %.mono.il ../Entry.Onot.mono.il
71         cat $*.mono.il ../Entry.Onot.mono.il > $@.tmp
72         echo "$(CORENV_RETAIL)" > $@.bat
73         echo "ilasm /exe /quiet /out=$(subst /,\\,$@.tmp) $(subst /,\\,$@.tmp)" >> $@.bat
74         time -p cmd /c $(subst /,\\,$@).bat
75         rm $@.bat
76
77 #------------------------------------------------------------------------
78 # From .HS to .EXE without using ILX
79 # Used to run performance comparisons against native code GHC
80
81 %.Onot.exe: %.hs
82         ghc -Onot -o $@ $<
83
84 %.O.exe: %.hs
85         ghc -O -o $@ $<
86
87 %.run: %.exe
88         time -p $<
89
90 #------------------------------------------------------------------------
91 # Running:
92
93 HSstd_cbits.dll: ../../../lib/std/cbits/HSstd_cbits.dll
94         cp $< $@
95
96 %.debug.run: HSstd_cbits.dll %.exe
97         echo "$(CORENV_DEBUG)" > $@.bat
98         echo "set CORPATH=$(subst /,\\,$(ILX2IL_HOME))\\bin;\\GHC\\fptools\\ghc\\lib\\std;%CORPATH%" >> $@.bat
99         echo "$(LOCALRUN)$(subst /,\\,$*).debug.exe 2>&1" >> $@.bat
100         time -p cmd /c $(subst /,\\,$@).bat
101         rm $@.bat
102
103 %.retail.run: HSstd_cbits.dll %.exe
104         echo "$(CORENV_RETAIL)" > $@.bat
105         echo "set CORPATH=$(subst /,\\,$(ILX2IL_HOME))\\bin;\\GHC\\fptools\\ghc\\lib\\std;%CORPATH%" >> $@.bat
106         echo "$(LOCALRUN)$(subst /,\\,$*).retail.exe 2>&1" >> $@.bat
107         time -p cmd /c $(subst /,\\,$@).bat
108         rm $@.bat
109
110
111 %.run: %.exe
112         time -p $<
113
114
115 #--------------------
116
117 %.mvl: %.nolib.il
118         ILVALID_HOME=$(ILX2IL_HOME) $(ILVALID) $*.nolib.il
119
120 ci:
121         (cd $(ILX2IL_HOME); $(CVS) ci -m "")
122         (cd ../..; cvs ci -m "")
123         (cd ../../../lib/std; $(CVS) ci -m "")
124
125 upd:
126         (cd $(ILX2IL_HOME); $(CVS) up)
127         (cd ../..; $(CVS) up)
128         (cd ../../../lib/std; $(CVS) up)
129
130 .PRECIOUS: %.mono-nonstatic.il  %.fullgeneric-nonstatic.il  %.fullgeneric.il %.nolib.il %.Onot.ilx %.O.ilx %.nolib.ilx %-nonstatic.ilx %.exe  %.debug.exe %.dll %.O.exe
131
132 .PHONY: %.run