diff --git a/common/staging_install.py b/common/staging_install.py
index e840fe0..59e1567 100755
--- a/common/staging_install.py
+++ b/common/staging_install.py
@@ -61,6 +61,8 @@
   -ef_format         Use efabless naming (libs.ref/techLEF),
                      otherwise use generic naming (libs.tech/lef)
 
+  -verbose           Output more information about the install process.
+
 If <target> is unspecified then <name> is used for the target.
 """
 
@@ -143,7 +145,7 @@
 # be replaced by the contents of staging.  This avoids problems with
 # symbolic links and such.
 
-def remove_target(stagingdir, targetdir):
+def remove_target(stagingdir, targetdir, verbose=False):
 
     slist = os.listdir(stagingdir)
     tlist = os.listdir(targetdir)
@@ -152,10 +154,17 @@
         if sfile in tlist:
             tpath = targetdir + '/' + sfile
             if os.path.islink(tpath):
+                if verbose:
+                    print("Removing link", tpath)
                 os.unlink(tpath)
             elif os.path.isdir(tpath):
-                remove_target(stagingdir + '/' + sfile, targetdir + '/' + sfile)
+                remove_target(
+                    stagingdir + '/' + sfile,
+                    targetdir + '/' + sfile,
+                    verbose)
             else:
+                if verbose:
+                    print("Removing", tpath)
                 os.remove(tpath)
 
 # Create a list of source files/directories from the contents of source.txt
@@ -262,6 +271,8 @@
     optionlist = []
     newopt = []
 
+    debug = False
+
     stagingdir = None
     link_from = None
     variable = None
@@ -300,6 +311,9 @@
         elif option[0] == 'uninstall':
             optionlist.remove(option)
             do_install = False
+        elif option[0] == 'debug':
+            optionlist.remove(option)
+            debug = True
 
     # Check for options "link_from", "staging", "target", and "local"
 
@@ -340,6 +354,8 @@
     # of the target (local installation assumed)
     if not writedir:
         writedir = finaldir
+    else:
+        writedir = writedir + finaldir
 
     # Take the target PDK name from the target path last component
     pdkname = os.path.split(writedir)[1]
@@ -412,7 +428,7 @@
 
     print('Copying staging files to target')
     # print('Diagnostic:  copy_tree ' + stagingdir + ' ' + writedir)
-    copy_tree(stagingdir, writedir, preserve_symlinks=True)
+    copy_tree(stagingdir, writedir, preserve_symlinks=True, verbose=debug)
     print('Done.')
 
     # Magic and qflow setup files have references to the staging area that have
