[project @ 2001-04-13 03:50:52 by dsyme]
[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 %.debug.run: HSstd_cbits.dll %.exe
79         cp $(TOP)/lib/std/*.dll .
80         cp $(TOP)/lib/std/*.pdb .
81         cp $(TOP)/lib/std/*.il .
82         cp $(ILX2IL_HOME)/bin/*.dll .
83         cp $(ILX2IL_HOME)/bin/*.pdb .
84         cp $(ILX2IL_HOME)/bin/*.il .
85         echo "call devcorb2gen free" > $@.bat
86         echo "$(LOCALRUN)$(subst /,\\,$*).exe 2>&1" >> $@.bat
87         time -p cmd /c $(subst /,\\,$@).bat
88         rm $@.bat
89
90
91 %.run: %.exe
92         time -p $<
93
94
95 #--------------------
96
97 %.mvl: %.nolib.il
98         ILVALID_HOME=$(ILX2IL_HOME) $(ILVALID) $*.nolib.il
99
100 ci:
101         (cd $(ILX2IL_HOME); $(CVS) ci -m "")
102         (cd ../..; cvs ci -m "")
103         (cd ../../../lib/std; $(CVS) ci -m "")
104
105 upd:
106         (cd $(ILX2IL_HOME); $(CVS) up)
107         (cd ../..; $(CVS) up)
108         (cd ../../../lib/std; $(CVS) up)
109
110
111 .PHONY: %.run
112
113 include $(TOP)/mk/target.mk