on master help sign in
Fully compiles and tests under windows mingw32

Except for feof being a macro in stdio.h, everything pretty much works. changing the macro of feof to an inline function fixes compilation

commit614c6828e385489aa17f152ddcb4200e031e4b5b authorChetan T <chetant@gmail.com> dateTue 27 Nov 2012, 23:29 (14 years ago) parent9db94c0
3 files changed+21−4
src/Pkg/Package.hs+9−2 test/runtest.pl+11−1 test/test015/test015.idr+1−1
src/Pkg/Package.hs+9−2
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12module Pkg.Package where
23
34import System.Process
@@ -104,7 +105,7 @@ installIBC p m = do let f = toIBCFile m
104105 d <- getDataDir
105106 let destdir = d </> p </> getDest m
106107 putStrLn $ "Installing " ++ f ++ " to " ++ destdir
107− system $ "mkdir -p " ++ destdir
108+ system $ mkDirCmd ++ destdir
108109 system $ "install " ++ f ++ " " ++ destdir
109110 return ()
110111 where getDest (UN n) = ""
@@ -114,10 +115,16 @@ installObj :: String -> String -> IO ()
114115installObj p o = do d <- getDataDir
115116 let destdir = addTrailingPathSeparator (d </> p)
116117 putStrLn $ "Installing " ++ o ++ " to " ++ destdir
117− system $ "mkdir -p " ++ destdir
118+ system $ mkDirCmd ++ destdir
118119 system $ "install " ++ o ++ " " ++ destdir
119120 return ()
120121
122+#ifdef mingw32_HOST_OS
123+mkDirCmd = "mkdir "
124+#else
125+mkDirCmd = "mkdir -p "
126+#endif
127+
121128make :: Maybe String -> IO ()
122129make Nothing = return ()
123130make (Just s) = do system $ "make -f " ++ s
test/runtest.pl+11−1
@@ -10,7 +10,7 @@ sub runtest {
1010 print "Running $test...";
1111 $got = `sh ./run @idrOpts`;
1212 $exp = `cat expected`;
13−
13+
1414 open(OUT,">output");
1515 print OUT $got;
1616 close(OUT);
@@ -20,6 +20,16 @@ sub runtest {
2020 $got =~ s/\r\n/\n/g;
2121 $exp =~ s/\r\n/\n/g;
2222
23+# Normalize paths in $got and $exp, so the expected outcomes don't change between platforms
24+ while($got =~ /(^|.*?\n)(.*?)\\(.*?):(\d+):(.*)/ms)
25+ {
26+ $got = "$1$2/$3:$4:$5";
27+ }
28+ while($exp =~ /(^|.*?\n)(.*?)\\(.*?):(\d+):(.*)/ms)
29+ {
30+ $exp = "$1$2/$3:$4:$5";
31+ }
32+
2333 if ($got eq $exp) {
2434 print "success\n";
2535 } else {
test/test015/test015.idr+1−1
@@ -37,7 +37,7 @@ natToBin (S k) O = do x <- natToBin k O
3737 Just (pad x)
3838natToBin (S w) (S k) with (parity k)
3939 natToBin (S w) (S (plus j j)) | even = do jbin <- natToBin w j
40− let value = jbin # b1
40+ let value = jbin # b1
4141 ?ntbEven
4242 natToBin (S w) (S (S (plus j j))) | odd = do jbin <- natToBin w (S j)
4343 let value = jbin # b0