Index: Makefile
===================================================================
RCS file: /home/cvs/xen-tools/Makefile,v
retrieving revision 1.111
diff -u -r1.111 Makefile
--- Makefile	31 Jul 2007 17:33:27 -0000	1.111
+++ Makefile	30 Aug 2007 05:42:30 -0000
@@ -30,6 +30,7 @@
 	@echo " "
 	@echo " clean         = Remove bogus files."
 	@echo " commit        = Commit changes, after running check."
+	@echo " critic        = Critique perl code for best practices."
 	@echo " diff          = Run a 'cvs diff'."
 	@echo " install       = Install the software"
 	@echo " manpages      = Make manpages beneath man/"
@@ -270,3 +271,25 @@
 #
 update-version:
 	perl -pi.bak -e "s/RELEASE = '[0-9]\.[0-9]';/RELEASE = '${VERSION}';/g" bin/*-*
+
+#
+#  run perlcritic on the perl code, provided that it is available.  If
+# it is not available, tell the user how to get it
+#
+
+CRITIC_TEST    = perl -e 'eval qq{use Perl::Critic}; print $$@ ? 0 : 1'
+CRITIC_FORMAT  = "%f: [%p] %m at line %l, near '%r'. (Severity: %s)\n"
+CRITIC_INSTALL = sudo perl -MCPAN -e 'install Perl::Critic'
+
+critic:
+	if [ `$(CRITIC_TEST)` == "1" ] ;\
+	then \
+	  perlcritic \
+	    -verbose $(CRITIC_FORMAT) \
+	    -q \
+	    -profile perlcriticrc \
+	    tests/ debian/ bin/ hooks/ ; \
+	else \
+	  echo "You must install Perl::Critic to make target '$@'." ; \
+	  echo "Try: $(CRITIC_INSTALL)" ; \
+	fi
