- = do splitter <- readIORef v_Pgm_s
-
- -- this is the prefix used for the split .s files
- tmp_pfx <- readIORef v_TmpDir
- x <- myGetProcessID
- let split_s_prefix = tmp_pfx ++ "/ghc" ++ show x
- writeIORef v_Split_prefix split_s_prefix
- addFilesToClean [split_s_prefix ++ "__*"] -- d:-)
-
- -- allocate a tmp file to put the no. of split .s files in (sigh)
- n_files <- newTempName "n_files"
-
- runSomething "Split Assembly File"
- (unwords [ splitter
- , input_fn
- , split_s_prefix
- , n_files ]
- )
-
- -- save the number of split files for future references
- s <- readFile n_files
- let n = read s :: Int
- writeIORef v_N_split_files n
+ = do -- tmp_pfx is the prefix used for the split .s files
+ -- We also use it as the file to contain the no. of split .s files (sigh)
+ split_s_prefix <- SysTools.newTempName "split"
+ let n_files_fn = split_s_prefix
+
+ SysTools.runSplit [input_fn, split_s_prefix, n_files_fn]
+
+ -- Save the number of split files for future references
+ s <- readFile n_files_fn
+ let n_files = read s :: Int
+ writeIORef v_Split_info (split_s_prefix, n_files)
+
+ -- Remember to delete all these files
+ addFilesToClean [ split_s_prefix ++ "__" ++ show n ++ ".s"
+ | n <- [1..n_files]]
+