                     if not_latexmk and log.indexOf(no_bbl) != -1
                         @_need_to_run.bibtex = true
 
+                    log += "\n\n#{misc.to_json(@_need_to_run)}\n@_sagetex_file_sha: #{@_sagetex_file_sha}"
+
                     @last_latex_log = log
                     cb?(false, log)
 
     _run_sage: (target, cb) =>
+        # don't run sage if target is false
+        if underscore.isBoolean(target) and not target
+            cb()
         if not target?
             target = @base_filename + '.sagetex.sage'
         @_exec

        @pdf_updated = true
        if not opts.latex_command?
            opts.latex_command = @default_tex_command()
        @_need_to_run = {latex: true}
        log = ''
        status = opts.status


                        output.stdout = output.stdout.slice(0,i)
                        for x in shas.split('\n')
                            v = x.split(/\s+/)
                            if v.length != 2
                                continue
                            #if DEBUG then console.log(v, sagetex_file, @_sagetex_file_sha)
                            if v[1] == sagetex_file and v[0] != @_sagetex_file_sha
                                @_need_to_run.sage = sagetex_file
                                @_sagetex_file_sha = v[0]
