The Makefile is unique to dactyl and not used by any other Firefox extension. Firefox extensions are just zip files following a certain directory structure. The Pentadactyl Makefile is complicated because it stores extension content strewn about the different directories that it then has to combine into one zip. You can look at the contents of the top level Makefile, the Makefiles in pentadactyl/ and common/, and the common/make_jar.sh files to see the commands that it is using. It works for me on recent distributions of Linux. There could be issues on systems with unusual shells or non-Linux utilties (like BSD or OS X) because sometimes commands with the same names have slightly different behavior. If you just want the xpi of the most recent code, it is available at https://github.com/ffledgling/dactyl-build/releases or https://github.com/willsALMANJ/pentadactyl-signed/releases. I am not sure about your specific error. You could try adding some print statements to the common/make_jar.sh script to try to figure out what is going on. It looks like the chrome directory is not being created. It should be created on line 18.