diff --git a/Make.vars.in b/Make.vars.in
index a0727bd7dc64741af0cc422f0b6e8fde48e047fc..684d6731d1f088d0de0b89657626c056b7fe0ea7 100644
--- a/Make.vars.in
+++ b/Make.vars.in
@@ -50,7 +50,6 @@ CROSSTARGET     = @CROSSTARGET@
 LINGUAS         = @LINGUAS@
 RUNTESTFLAGS    = -q -P wine
 MAKEDEP         = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
-SFNT2FNT        = $(TOOLSDIR)/tools/sfnt2fnt$(TOOLSEXT)
 WINEBUILD       = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
 WRC             = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
 LIBPORT         = $(top_builddir)/libs/port/libwine_port.a
diff --git a/Makefile.in b/Makefile.in
index 8d4dec4a39bef815e62111c5041cdb9ea84eeeba..5c163b8f7178c2dca4f777620eb488aecdabf9eb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -53,11 +53,11 @@ __builddeps__: __tooldeps__ include
 .PHONY: depend check test testclean crosstest __tooldeps__ __builddeps__
 
 loader server: libs/port libs/wine tools
-fonts: tools
+fonts: tools/sfnt2fon
 include: tools tools/widl
-libs/wine: libs/port
+libs/wine tools: libs/port
 tools/wmc tools/wrc: tools
-tools tools/wmc tools/wrc: libs/wine
+tools/sfnt2fon tools/wmc tools/wrc: libs/wine
 tools/widl tools/wmc tools/wrc: libs/wpp
 libs/port libs/wine libs/wpp: include/config.h
 
diff --git a/configure b/configure
index 8c3e28e80c0b8a7e86543b6e8a2348eaa6840a0c..d2c416e9f8fd24547b0a1d4770a2ea12c8b40efd 100755
--- a/configure
+++ b/configure
@@ -17331,6 +17331,7 @@ wine_fn_config_program xcopy enable_xcopy install,po
 wine_fn_config_test programs/xcopy/tests xcopy.exe_test
 wine_fn_config_makefile server enable_server clean,install-lib,manpage
 wine_fn_config_tool tools clean,install-dev,install-lib,manpage
+wine_fn_config_tool tools/sfnt2fon clean
 wine_fn_config_tool tools/widl clean,install-dev,manpage
 wine_fn_config_tool tools/winebuild clean,install-dev,manpage
 wine_fn_config_tool tools/winedump clean,install-dev,manpage
diff --git a/configure.ac b/configure.ac
index c6769fcaaae9471a179a7ae5baf20cfa25dad5bd..de6c68741e60dd552437970dcd0d0ee24d129a18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3356,6 +3356,7 @@ WINE_CONFIG_PROGRAM(xcopy,,[install,po])
 WINE_CONFIG_TEST(programs/xcopy/tests)
 WINE_CONFIG_MAKEFILE([server],,[clean,install-lib,manpage])
 WINE_CONFIG_TOOL(tools,[clean,install-dev,install-lib,manpage])
+WINE_CONFIG_TOOL(tools/sfnt2fon,[clean])
 WINE_CONFIG_TOOL(tools/widl,[clean,install-dev,manpage])
 WINE_CONFIG_TOOL(tools/winebuild,[clean,install-dev,manpage])
 WINE_CONFIG_TOOL(tools/winedump,[clean,install-dev,manpage])
diff --git a/tools/Makefile.in b/tools/Makefile.in
index a7cc154818be297d1b63c9472bac1b744fb47974..582b140c00cd7ee06ecb827c3ec356240e3ed576 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,11 +1,7 @@
-EXTRAINCL = $(FREETYPE_CFLAGS)
-FREETYPELIBS = $(FREETYPE_LIBS)
-
 PROGRAMS = \
 	fnt2fon$(EXEEXT) \
 	make_ctests$(EXEEXT) \
-	make_xftmpl$(EXEEXT) \
-	sfnt2fnt$(EXEEXT)
+	make_xftmpl$(EXEEXT)
 
 MANPAGES = \
 	winemaker.de.UTF-8.man.in \
@@ -16,8 +12,7 @@ C_SRCS = \
 	fnt2fon.c \
 	make_ctests.c \
 	make_xftmpl.c \
-	makedep.c \
-	sfnt2fnt.c
+	makedep.c
 
 IN_SRCS = \
 	wineapploader.in
@@ -35,9 +30,6 @@ make_xftmpl$(EXEEXT): make_xftmpl.o
 fnt2fon$(EXEEXT): fnt2fon.o
 	$(CC) $(CFLAGS) -o $@ fnt2fon.o $(LIBPORT) $(LDFLAGS)
 
-sfnt2fnt$(EXEEXT): sfnt2fnt.o
-	$(CC) $(CFLAGS) -o $@ sfnt2fnt.o $(LIBWINE_STATIC) $(LIBPORT) $(LDFLAGS) $(FREETYPELIBS)
-
 .PHONY: install install-lib install-dev uninstall
 
 install install-lib::
diff --git a/tools/makedep.c b/tools/makedep.c
index 8ce9da08b5cb3bc878e3c2f4c02d76f93d342d1d..11c921c4dafafe2351b3e007b5a9adea362fe4c9 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1655,9 +1655,9 @@ static struct strarray output_sources(void)
         else if (!strcmp( ext, "fon" ))  /* bitmap font file */
         {
             strarray_add( &all_targets, source->name );
-            output( "%s.fon: %s %s\n", obj, tools_dir_path( "sfnt2fnt" ),
+            output( "%s.fon: %s %s\n", obj, tools_path( "sfnt2fon" ),
                     src_dir_path( source->sourcename ));
-            output( "\t%s -o $@ %s %s\n", tools_dir_path( "sfnt2fnt" ),
+            output( "\t%s -o $@ %s %s\n", tools_path( "sfnt2fon" ),
                     src_dir_path( source->sourcename ), source->args );
             output( "install install-lib:: %s\n", source->name );
             output( "\t$(INSTALL_DATA) %s $(DESTDIR)$(fontdir)/%s\n", source->name, source->name );
diff --git a/tools/sfnt2fon/Makefile.in b/tools/sfnt2fon/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..a97515406dcbb7c3f0d4ede33958cb68d56e7363
--- /dev/null
+++ b/tools/sfnt2fon/Makefile.in
@@ -0,0 +1,9 @@
+PROGRAMS = sfnt2fon$(EXEEXT)
+
+C_SRCS = sfnt2fon.c
+
+EXTRAINCL = $(FREETYPE_CFLAGS)
+EXTRALIBS = $(FREETYPE_LIBS)
+
+sfnt2fon$(EXEEXT): sfnt2fon.o
+	$(CC) $(CFLAGS) -o $@ sfnt2fon.o $(LIBWINE_STATIC) $(LIBPORT) $(EXTRALIBS) $(LDFLAGS)
diff --git a/tools/sfnt2fnt.c b/tools/sfnt2fon/sfnt2fon.c
similarity index 99%
rename from tools/sfnt2fnt.c
rename to tools/sfnt2fon/sfnt2fon.c
index 925855f8757d7a1252db2538a2e42a937b0ac90e..4b47682b900bdb17ff2f423f1f7661f8126f3b9d 100644
--- a/tools/sfnt2fnt.c
+++ b/tools/sfnt2fon/sfnt2fon.c
@@ -1,5 +1,5 @@
 /*
- * sfnttofnt.  Bitmap only ttf to Window fnt file converter
+ * sfnt2fon.  Bitmap-only ttf to Windows font file converter
  *
  * Copyright 2004 Huw Davies
  *