Daniel Carrera wrote: > > I haven't used NHC so I can't guarantee this will work, but try doing > > something like this: > > > > $ nhc98 -c RC4.hs > > $ nhc98 -c prng.hs > > $ nhc98 RC4.o prng.o -o prng > > Yay! It does. And I just put it in a makefile: > > ---<daniel's makefile>---- > COMPILER=nhc98 > > RC4.o: > $(COMPILER) -c RC4.hs > > prng.o: > $(COMPILER) -c prng.hs > > prng: RC4.o prng.o > $(COMPILER) RC4.o prng.o -o prng > ---<daniel's makefile>----
This can fail with a parallel make, which may try to compile RC4.hs and prng.hs concurrently. It can also fail if you rebuild after modifying any of the files, as it won't realise that it needs to re-compile. To handle that, you need to be more precise about the dependencies, i.e.: RC4.o RC4.hi: RC4.hs $(HC) -c RC4.hs prng.o prng.hi: prng.hs RC4.hi $(HC) -c prng.hs prng: RC4.o prng.o $(HC) RC4.o prng.o -o prng With most make programs (e.g. GNU make), you can use pattern rules to avoid repeating the commands, e.g.: # how to compile any .hs file to produce .o and .hi files %.o %.hi: %.hs $(HC) -c $< # how to build the prng program prng: RC4.o prng.o $(HC) -o $@ $+ # note that prng.o depends upon RC4.hi prng.o: RC4.hi -- Glynn Clements <[EMAIL PROTECTED]> _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe