2 # These settings are if you use a visual studio build
8 ifeq ($(HOSTNAME),MSRC-HILDA)
9 CORENV_DEBUG="call devcorb2gen.bat fastchecked"
10 CORENV_RETAIL="call devcorb2gen.bat free"
15 ILX2IL_HOME=C:/devel/fcom/src
16 ILX2IL=$(ILX2IL_HOME)/bin/ilx2il.opt.exe
17 ILVALID=$(ILX2IL_HOME)/bin/ilvalid.opt.exe
23 $(MAKE) -C $(ILX2IL_HOME) ilxdefault
26 $(MAKE) -C ../../../lib/std std.Onot.mono-b2.dll
28 %.o: %.hs ../../ghc-4.11
29 ../../ghc-inplace -o $@ -c $*.hs
31 #========================================================================
32 # 1. From Haskell to ILX
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
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
40 ../Entry.Onot.ilx: ../Entry.ilx
41 sed -e "s|ilx std|ilx std.Onot|g" ../Entry.ilx > $@.tmp
44 ../Entry.O.ilx: ../Entry.ilx
45 sed -e "s|ilx std|ilx std.O|g" ../Entry.ilx > $@.tmp
49 #========================================================================
52 %.generic.il: $(ILX2IL) %.ilx
53 $(ILX2IL) --generic $(ILX2IL_FLAGS) -o $@.tmp $*.ilx
56 %.mono.il: $(ILX2IL) %.ilx
57 $(ILX2IL) --mono $(ILX2IL_FLAGS) -o $@.tmp $*.ilx
60 #------------------------------------------------------------------------
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
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
77 #------------------------------------------------------------------------
78 # From .HS to .EXE without using ILX
79 # Used to run performance comparisons against native code GHC
90 #------------------------------------------------------------------------
93 HSstd_cbits.dll: ../../../lib/std/cbits/HSstd_cbits.dll
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
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
115 #--------------------
118 ILVALID_HOME=$(ILX2IL_HOME) $(ILVALID) $*.nolib.il
121 (cd $(ILX2IL_HOME); $(CVS) ci -m "")
122 (cd ../..; cvs ci -m "")
123 (cd ../../../lib/std; $(CVS) ci -m "")
126 (cd $(ILX2IL_HOME); $(CVS) up)
127 (cd ../..; $(CVS) up)
128 (cd ../../../lib/std; $(CVS) up)
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