# Default rule: launch the .tap file in the emulator, # building it first if necessary launch 'ninja_milkman_conspiracy.tap' # Build a .tap image consisting of a Basic file (built from a text file # by zmakebas) and a code file (built from an .asm file by Pasmo) tap :target => 'ninja_milkman_conspiracy.tap' do |tap| tap.basic :source => 'ivpdemo.bas', :as => 'NinjMilk', :line => 10 tap.asm :source => 'depack.asm', :as => 'ninjmilk1' end # depack.asm depends on ivpdemo.obj.hr: by our built-in rules based on file # extensions, this is generated from ivpdemo.obj which is in turn built from # ivpdemo.asm. # The following are all dependencies of ivpdemo.asm # Generate a sine table (sine32.asm) from the output of the ruby script sine.rb task :target => 'sine32.asm', :dependencies => 'sine.rb' do puts `ruby sine.rb 14 16 > build/sine32.asm` end # another data table generated by a ruby script task :target => 'rings.asm', :dependencies => 'rings.rb' do puts `ruby rings.rb > build/rings.asm` end # Convert graphics from .xbm format to .asm (using the perl script xbm2asm.pl) task :target => 'gfx.asm', :dependencies => ['xbm2asm.pl', 'gfx.xbm'] do puts `perl xbm2asm.pl gfx.xbm > build/gfx.asm` end # same again, but for the font task :target => 'notropol.asm', :dependencies => ['xbm2asm.pl', 'notropol.xbm'] do puts `perl xbm2asm.pl notropol.xbm > build/notropol.asm` end