     )
     .on('error', (err) -> throw err)
 
+gulp.task('licenses', -> licenseFind().pipe(gulp.dest('./audit')))
+
 # Runners
-
-gulp.task 'compile', ->
-  runSequence('clean', 'coffee-src', 'coffee-spec', 'stylus-src', 'uglify')
-
-gulp.task 'travis', ->
-  runSequence('clean', 'coffee-src', 'coffee-spec', 'stylus-src', 'uglify', 'karma-travis')
-
-gulp.task('coffee', ['coffee-src', 'coffee-spec'])
-gulp.task('stylus', ['stylus-src'])
-
-gulp.task 'watch', ->
-  gulp.watch(['./src/*.coffee', './src/*.styl', './spec/*.coffee'], ['compile'])
-
-gulp.task('default', ['compile'])
+gulp.task('compile:tmp', -> runSequence('clean:tmp', 'coffee:src:tmp', 'coffee:spec:tmp', 'stylus:src', 'uglify:tmp'))
+gulp.task('compile:dist', -> runSequence('clean:dist', 'coffee:src:dist', 'uglify:dist'))
+gulp.task('travis', -> runSequence('clean:tmp', 'coffee:src:tmp', 'coffee:spec:tmp', 'stylus:src', 'uglify:tmp', 'karma:travis'))
+gulp.task('watch', -> gulp.watch(['./src/*.coffee', './src/*.styl', './spec/*.coffee'], ['compile:tmp']))
+gulp.task('build', ['compile:dist'])
+gulp.task('default', ['compile:tmp'])

  stylusSrc: [
    './src/d3-meets-chart.styl'
  ]
  main: dir.tmp + file.main
  mainMin: dir.tmp + file.mainMin
  specRunner: dir.tmp + file.specRunner
  karmaFiles: [
    'bower_components/d3/d3.min.js',
    'tmp/d3-meets-chart.js',


dir =
  tmp: './tmp/'
  dist: './dist/'

file =
  main: 'd3-meets-chart.js'
