diff --git a/builds/compiler/unix-lcc.mk b/builds/compiler/unix-lcc.mk
index e1a925f..27394fc 100644
--- a/builds/compiler/unix-lcc.mk
+++ b/builds/compiler/unix-lcc.mk
@@ -70,7 +70,7 @@
 #
 #  LCC is pure ANSI anyway!
 #
-#  the "-A" flag simply increments verbosity about non ANSI code 
+#  the "-A" flag simply increments verbosity about non ANSI code
 #
 ANSIFLAGS := -A
 
@@ -82,5 +82,5 @@
                   $(NO_OUTPUT)
 endif
 LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
-                    
+
 # EOF
diff --git a/builds/compiler/win-lcc.mk b/builds/compiler/win-lcc.mk
index 6772686..6e9512a 100644
--- a/builds/compiler/win-lcc.mk
+++ b/builds/compiler/win-lcc.mk
@@ -75,7 +75,7 @@
 
 # library linking
 #
-#CLEAN_LIBRARY := 
+#CLEAN_LIBRARY :=
 LINK_LIBRARY = lcclib /out:$(subst $(SEP),\\,$@) $(subst $(SEP),\\,$(OBJECTS_LIST))
-                    
+
 # EOF
diff --git a/builds/cygwin/configure.in b/builds/cygwin/configure.in
index 33af220..8c1c7ef 100644
--- a/builds/cygwin/configure.in
+++ b/builds/cygwin/configure.in
@@ -79,7 +79,7 @@
 
 AM_PROG_LIBTOOL
 
-dnl create the CygWin-specific sub-Makefile `builds/cygwin/cygwin-def.mk' 
+dnl create the CygWin-specific sub-Makefile `builds/cygwin/cygwin-def.mk'
 dnl and 'builds/cygwin/cygwin-cc.mk' that will be used by the build system
 dnl
 AC_OUTPUT(cygwin-cc.mk:cygwin-cc.in cygwin-def.mk:cygwin-def.in)
diff --git a/builds/cygwin/cygwin.mk b/builds/cygwin/cygwin.mk
index 916d12d..1917846 100644
--- a/builds/cygwin/cygwin.mk
+++ b/builds/cygwin/cygwin.mk
@@ -30,13 +30,13 @@
   distclean_project: distclean_project_cygwin
 
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # this is compiler-specific
   #
   $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-  ifdef CLEAN_LIBRARY  
+  ifdef CLEAN_LIBRARY
 	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
-  endif          
+  endif
 	  $(LINK_LIBRARY)
 
 endif
diff --git a/builds/cygwin/detect.mk b/builds/cygwin/detect.mk
index 34a82a5..e27c3bf 100644
--- a/builds/cygwin/detect.mk
+++ b/builds/cygwin/detect.mk
@@ -20,7 +20,7 @@
   # work...
   #
   ifeq ($(OS),Windows_NT)
-    
+
     # Check if we are running on a CygWin system by checking the OSTYPE
     # variable.
     ifeq ($(OSTYPE),cygwin)
diff --git a/builds/cygwin/ftsystem.c b/builds/cygwin/ftsystem.c
index 570afa1..ded4342 100644
--- a/builds/cygwin/ftsystem.c
+++ b/builds/cygwin/ftsystem.c
@@ -194,7 +194,7 @@
   void  ft_close_stream( FT_Stream  stream )
   {
     munmap( (MUNMAP_ARG_CAST)stream->descriptor.pointer, stream->size );
-        
+
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
     stream->base               = 0;
@@ -243,7 +243,7 @@
       FT_ERROR(( " could not `fstat' file `%s'\n", filepathname ));
       goto Fail_Map;
     }
-      
+
     stream->size = stat_buf.st_size;
     stream->pos  = 0;
     stream->base = (unsigned char *)mmap( NULL,
@@ -264,23 +264,23 @@
 
     stream->descriptor.pointer = stream->base;
     stream->pathname.pointer   = (char*)filepathname;
-    
+
     stream->close = ft_close_stream;
     stream->read  = 0;
-    
+
     FT_TRACE1(( "FT_New_Stream:" ));
     FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
                 filepathname, stream->size ));
 
     return FT_Err_Ok;
-    
+
   Fail_Map:
     close( file );
 
     stream->base = NULL;
     stream->size = 0;
     stream->pos  = 0;
-    
+
     return FT_Err_Cannot_Open_Stream;
   }
 
@@ -299,7 +299,7 @@
   FT_EXPORT_FUNC( FT_Memory )  FT_New_Memory( void )
   {
     FT_Memory  memory;
-    
+
 
     memory = (FT_Memory)malloc( sizeof ( *memory ) );
     if ( memory )
diff --git a/builds/dos/detect.mk b/builds/dos/detect.mk
index 377b709..3ce43f2 100644
--- a/builds/dos/detect.mk
+++ b/builds/dos/detect.mk
@@ -27,7 +27,7 @@
     #
     ifneq ($(OSTYPE),cygwin)
       is_dos := $(findstring Dos,$(shell ver))
-  
+
       # We try to recognize a Dos session under OS/2.  The `ver' command
       # returns `Operating System/2 ...' there, so `is_dos' should be empty.
       #
diff --git a/builds/dos/dos-def.mk b/builds/dos/dos-def.mk
index 000bcd2..16f4e0d 100644
--- a/builds/dos/dos-def.mk
+++ b/builds/dos/dos-def.mk
@@ -52,7 +52,7 @@
 
 
 # The NO_OUTPUT macro is used to ignore the output of commands.
-# 
+#
 NO_OUTPUT = &> nul
 
 
@@ -68,11 +68,11 @@
   clean_project: clean_project_dos
   distclean_project: distclean_project_dos
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # It is part of the system-specific sub-Makefile because not all
   # librarians accept a simple syntax like
   #
-  #   librarian library_file {list of object files} 
+  #   librarian library_file {list of object files}
   #
   $(PROJECT_LIBRARY): $(OBJECTS_LIST)
 	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
diff --git a/builds/link_dos.mk b/builds/link_dos.mk
index ee6fe69..09dda0a 100644
--- a/builds/link_dos.mk
+++ b/builds/link_dos.mk
@@ -25,13 +25,13 @@
   clean_project: clean_project_dos
   distclean_project: distclean_project_dos
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # this is compiler-specific
   #
   $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-ifdef CLEAN_LIBRARY  
+ifdef CLEAN_LIBRARY
 	-$(CLEAN_LIBRARY) $(NO_OUTPUT)
-endif          
+endif
 	$(LINK_LIBRARY)
 
 endif
diff --git a/builds/link_std.mk b/builds/link_std.mk
index d9fc955..53133c0 100644
--- a/builds/link_std.mk
+++ b/builds/link_std.mk
@@ -25,13 +25,13 @@
   clean_project: clean_project_std
   distclean_project: distclean_project_std
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # this is compiler-specific
   #
   $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-ifdef CLEAN_LIBRARY  
+ifdef CLEAN_LIBRARY
 	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
-endif          
+endif
 	  $(LINK_LIBRARY)
 
 endif
diff --git a/builds/os2/os2-def.mk b/builds/os2/os2-def.mk
index 486b978..42f505d 100644
--- a/builds/os2/os2-def.mk
+++ b/builds/os2/os2-def.mk
@@ -52,7 +52,7 @@
 
 
 # The NO_OUTPUT macro is used to ignore the output of commands.
-# 
+#
 NO_OUTPUT = 2> nul
 
 
@@ -68,11 +68,11 @@
   clean_project: clean_project_dos
   distclean_project: distclean_project_dos
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # It is part of the system-specific sub-Makefile because not all
   # librarians accept a simple syntax like
   #
-  #   librarian library_file {list of object files} 
+  #   librarian library_file {list of object files}
   #
   $(PROJECT_LIBRARY): $(OBJECTS_LIST)
 	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
diff --git a/builds/os2/os2-dev.mk b/builds/os2/os2-dev.mk
index 56a1f6f..cf1fbd2 100644
--- a/builds/os2/os2-dev.mk
+++ b/builds/os2/os2-dev.mk
@@ -124,11 +124,11 @@
   FT_LIBRARIAN := $(AR) -r
 
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # It is part of the system-specific sub-Makefile because not all
   # librarians accept a simple syntax like
   #
-  #   librarian library_file {list of object files} 
+  #   librarian library_file {list of object files}
   #
   $(FT_LIBRARY): $(OBJECTS_LIST)
 	  -$(DELETE) $(subst $(SEP),$(HOSTSEP),$(FT_LIBRARY)) 2> nul
diff --git a/builds/os2/os2-gcc.mk b/builds/os2/os2-gcc.mk
index 7e57b60..af47bd7 100644
--- a/builds/os2/os2-gcc.mk
+++ b/builds/os2/os2-gcc.mk
@@ -123,11 +123,11 @@
   FT_LIBRARIAN := $(AR) -r
 
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # It is part of the system-specific sub-Makefile because not all
   # librarians accept a simple syntax like
   #
-  #   librarian library_file {list of object files} 
+  #   librarian library_file {list of object files}
   #
   $(FT_LIBRARY): $(OBJECTS_LIST)
 	  -$(DELETE) $(subst $(SEP),$(HOSTSEP),$(FT_LIBRARY)) 2> nul
diff --git a/builds/toplevel.mk b/builds/toplevel.mk
index fc7461f..58c0e16 100644
--- a/builds/toplevel.mk
+++ b/builds/toplevel.mk
@@ -66,7 +66,7 @@
 
   all: setup
 
-  ifdef USE_MODULES  
+  ifdef USE_MODULES
     # If the module list $(MODULE_LIST) file is not present, generate it.
     #
     #modules: make_module_list setup
@@ -74,7 +74,7 @@
 
   include $(TOP)/builds/detect.mk
 
-  ifdef USE_MODULES  
+  ifdef USE_MODULES
     include $(TOP)/builds/modules.mk
 
     ifeq ($(wildcard $(MODULE_LIST)),)
diff --git a/builds/unix/configure.in b/builds/unix/configure.in
index d6488e1..33b2f08 100644
--- a/builds/unix/configure.in
+++ b/builds/unix/configure.in
@@ -79,7 +79,7 @@
 
 AM_PROG_LIBTOOL
 
-dnl create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk' 
+dnl create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
 dnl and 'builds/unix/unix-cc.mk' that will be used by the build system
 dnl
 AC_OUTPUT(unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in)
diff --git a/builds/unix/ftsystem.c b/builds/unix/ftsystem.c
index 570afa1..ded4342 100644
--- a/builds/unix/ftsystem.c
+++ b/builds/unix/ftsystem.c
@@ -194,7 +194,7 @@
   void  ft_close_stream( FT_Stream  stream )
   {
     munmap( (MUNMAP_ARG_CAST)stream->descriptor.pointer, stream->size );
-        
+
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
     stream->base               = 0;
@@ -243,7 +243,7 @@
       FT_ERROR(( " could not `fstat' file `%s'\n", filepathname ));
       goto Fail_Map;
     }
-      
+
     stream->size = stat_buf.st_size;
     stream->pos  = 0;
     stream->base = (unsigned char *)mmap( NULL,
@@ -264,23 +264,23 @@
 
     stream->descriptor.pointer = stream->base;
     stream->pathname.pointer   = (char*)filepathname;
-    
+
     stream->close = ft_close_stream;
     stream->read  = 0;
-    
+
     FT_TRACE1(( "FT_New_Stream:" ));
     FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
                 filepathname, stream->size ));
 
     return FT_Err_Ok;
-    
+
   Fail_Map:
     close( file );
 
     stream->base = NULL;
     stream->size = 0;
     stream->pos  = 0;
-    
+
     return FT_Err_Cannot_Open_Stream;
   }
 
@@ -299,7 +299,7 @@
   FT_EXPORT_FUNC( FT_Memory )  FT_New_Memory( void )
   {
     FT_Memory  memory;
-    
+
 
     memory = (FT_Memory)malloc( sizeof ( *memory ) );
     if ( memory )
diff --git a/builds/unix/unix.mk b/builds/unix/unix.mk
index f904548..027f3c9 100644
--- a/builds/unix/unix.mk
+++ b/builds/unix/unix.mk
@@ -30,16 +30,16 @@
   distclean_project: distclean_project_unix
 
 
-  # This final rule is used to link all object files into a single library. 
+  # This final rule is used to link all object files into a single library.
   # It is part of the system-specific sub-Makefile because not all
   # librarians accept a simple syntax like
   #
-  #   librarian library_file {list of object files} 
+  #   librarian library_file {list of object files}
   #
   $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-ifdef CLEAN_LIBRARY  
+ifdef CLEAN_LIBRARY
 	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
-endif          
+endif
 	  $(LINK_LIBRARY)
 
 endif
diff --git a/builds/win32/detect.mk b/builds/win32/detect.mk
index 4ba0fbf..81638a3 100644
--- a/builds/win32/detect.mk
+++ b/builds/win32/detect.mk
@@ -20,7 +20,7 @@
   # work...
   #
   ifeq ($(OS),Windows_NT)
-    
+
     # Check if we are running on a CygWin system by checking the OSTYPE
     # variable.
     ifneq ($(OSTYPE),cygwin)
diff --git a/builds/win32/win32-def.mk b/builds/win32/win32-def.mk
index d1ba599..eabd59f 100644
--- a/builds/win32/win32-def.mk
+++ b/builds/win32/win32-def.mk
@@ -55,7 +55,7 @@
 
 
 # The NO_OUTPUT macro is used to ignore the output of commands.
-# 
+#
 NO_OUTPUT = 2> nul
 
 # EOF
