--- a/trunk/wharfie/wharfie.py
+++ b/trunk/wharfie/wharfie.py
@@ -214,6 +214,8 @@
     f.write("ifneq (VERBOSE,y)\n")
     f.write("Q=@\n")
     f.write("endif\n")
+    f.write("\n")
+    f.write("OUTPUT_FILE=%s\n" % g_archiveName)
     f.write("%s: %s\n" % (g_archiveName, "".join(g_finalTarget)));
     f.write("\tcp $< $@\n");
     f.write("\n");
@@ -276,18 +278,31 @@
 #
 def main():
     parser = argparse.ArgumentParser()
+    parser.add_argument('--clean', action='store_true', help="Clear intermediate files" )
+    parser.add_argument('--info', action='store_true', help="Print info about already generated image" )
     parser.add_argument('--gen-only', action='store_true', help="Generate makefile only, but don't build it" )
     parser.add_argument('--dry-run', action='store_true', help="Generate makefile with disabled run actions and don't build it" )
     parser.add_argument('wharfile', default='Wharfile', nargs='?', help="Filename of a 'Wharfile'. By default ./Wharfile is used." )
     args = parser.parse_args()
 
-    read_wharfile('Wharfile');
+    # generate makefile
+    if os.path.isfile(args.wharfile):
+        read_wharfile(args.wharfile);
+    else:
+        print("error: Wharfile '%s' not found." % args.wharfile)
+        exit(1)
+    
     if os.path.isfile(os.path.abspath(os.path.dirname(sys.argv[0])) + "/wharfie.mk"):
         write_makefile('Makefile', args.dry_run);
     else:
         write_makefile('Makefile', args.dry_run, os.path.abspath(os.path.dirname(sys.argv[0])) + "/../share/wharfie");
 
-    if not args.gen_only and not args.dry_run:
+    # call make
+    if args.clean:
+        os.system("make clean")
+    elif args.info:
+        os.system("make info")
+    elif not args.gen_only and not args.dry_run:
         os.system("make");