--- Rakefile.orig	2012-06-20 11:29:55 UTC
+++ Rakefile
@@ -45,14 +45,14 @@ end
 @options = {
   "cc"         => ENV["CC"] || "gcc",
   "destdir"    => ENV["DESTDIR"] || "",
-  "prefix"     => "/usr",
+  "prefix"     => ENV["PREFIX"] || "/usr",
   "manprefix"  => "$(prefix)/share/man",
-  "bindir"     => "$(destdir)/$(prefix)/bin",
-  "sysconfdir" => "$(destdir)/etc",
+  "bindir"     => "$(destdir)$(prefix)/bin",
+  "sysconfdir" => "$(destdir)$(prefix)/etc",
   "configdir"  => "$(sysconfdir)/xdg/$(PKG_NAME)",
-  "datadir"    => "$(destdir)/$(prefix)/share/$(PKG_NAME)",
-  "extdir"     => "$(destdir)/$(sitelibdir)/$(PKG_NAME)",
-  "mandir"     => "$(destdir)/$(manprefix)/man1",
+  "datadir"    => "$(destdir)$(prefix)/share/$(PKG_NAME)",
+  "extdir"     => "$(destdir)$(sitelibdir)/$(PKG_NAME)",
+  "mandir"     => "$(destdir)$(manprefix)/man1",
   "debug"      => "no",
   "xpm"        => "yes",
   "xft"        => "yes",
@@ -63,7 +63,7 @@ end
   "hdrdir"     => "",
   "archdir"    => "",
   "revision"   => "3224", #< Latest stable
-  "cflags"     => "-Wall -Werror -Wpointer-arith -Wstrict-prototypes -Wunused -Wshadow -std=gnu99",
+  "cflags"     => "-Wall -Wpointer-arith -Wstrict-prototypes -Wunused -Wshadow -std=gnu99 -fdeclspec",
   "cpppath"    => "-I. -I$(builddir) -Isrc -Isrc/shared -Isrc/subtle -idirafter$(hdrdir) -idirafter$(archdir)",
   "ldflags"    => "-L$(libdir) $(rpath) $(LIBS) -l$(RUBY_SO_NAME)",
   "extflags"   => "$(LDFLAGS) $(rpath) $(LIBS) -l$(RUBY_SO_NAME)",
@@ -258,8 +258,8 @@ task(:config) do
     make_config unless checksums
   else
     # Check version
-    if 1 != RbConfig::CONFIG["MAJOR"].to_i or 9 != RbConfig::CONFIG["MINOR"].to_i
-      fail("Ruby 1.9.0 or higher required")
+    if 2 > RbConfig::CONFIG["MAJOR"].to_i
+      fail("Ruby 2.0.0 (1.9.0 really) or higher required")
     end
 
     checksums
@@ -282,7 +282,7 @@ task(:config) do
     end
 
     # Get revision
-    if File.exists?(".hg") and (hg = find_executable0("hg"))
+    if File.exist?(".hg") and (hg = find_executable0("hg"))
       match = `#{hg} tip`.match(/^[^:]+:\s*(\d+).*/)
 
       if !match.nil? and 2 == match.size
@@ -396,7 +396,10 @@ task(:config) do
       checking_for("X11/Xft/Xft.h") do
         ret = false
 
+        # Work around pkg_config()'s stupidity: obtain real (full) cflags
+        cutoff = $INCFLAGS.length
         cflags, ldflags, libs = pkg_config("xft")
+        cflags << $INCFLAGS[cutoff..-1]
         unless libs.nil?
           # Update flags
           @options["cpppath"] << " %s" % [ cflags ]
@@ -495,6 +498,7 @@ Configuration.......: #{@options["configdir"]}
 -----------------
 Binaries............: #{@options["bindir"]}
 Configuration.......: #{@options["configdir"]}
+Manual pages........: #{@options["mandir"]}
 Extension...........: #{@options["extdir"]}
 
 Xpm support.........: #{@options["xpm"]}
@@ -503,6 +507,8 @@ Debugging messages..: #{@options["debug"]}
 XRandR support......: #{@options["xrandr"]}
 XTest support.......: #{@options["xtest"]}
 Debugging messages..: #{@options["debug"]}
+Compiler............: #{@options["cc"]} (#{
+`#{@options["cc"]} -v 2>&1`[/\w+ version [\d.]+/]})
 
 EOF
   end
@@ -613,7 +619,7 @@ task(:install => [:config, :build]) do
     )
 
     # Update interpreter name
-    `#{sed} -i -e 's#/usr/bin/ruby.*##{interpreter}#' \
+    `#{sed} -i '' -e 's#/usr/bin/ruby.*##{interpreter}#' \
       #{File.join(@options["bindir"], File.basename(f))}`
   end
 
