diff --git a/Makefile.am b/Makefile.am
index 69976317021166375989c8a7f1505f945a37d53a..a35e174d6093b4c9eb9e2d70f7438ffe8aab5fd0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
 SUBDIRS = libdca libao src test include
-DIST_SUBDIRS = $(SUBDIRS) autotools vc++
+DIST_SUBDIRS = $(SUBDIRS) vc++
 
 EXTRA_DIST = bootstrap doc/libdca.txt
diff --git a/bootstrap b/bootstrap
index cf4e1e60ab4433a215bc095fdc13d7d2aa088c43..434d6e3fca894594634dc795558f9708b639b8cd 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,20 +1,132 @@
 #! /bin/sh
+# $Id: bootstrap 2005 2008-07-16 20:51:50Z sam $
 
-##  generic bootstrap file for libraries -- Sam Hocevar <sam@zoy.org>
-##  $Id$
+# bootstrap: generic bootstrap/autogen.sh script for autotools projects
+#
+# Copyright (c) 2002-2008 Sam Hocevar <sam@zoy.org>
+#
+#    This program is free software. It comes without any warranty, to
+#    the extent permitted by applicable law. You can redistribute it
+#    and/or modify it under the terms of the Do What The Fuck You Want
+#    To Public License, Version 2, as published by Sam Hocevar. See
+#    http://sam.zoy.org/wtfpl/COPYING for more details.
+#
+# The latest version of this script can be found at the following place:
+#   http://sam.zoy.org/autotools/
 
-set -x
+# Die if an error occurs
 set -e
 
-# Get a sane environment, just in case
-LANG=C
-export LANG
-CYGWIN=binmode
-export CYGWIN
+# Guess whether we are using configure.ac or configure.in
+if test -f configure.ac; then
+  conffile="configure.ac"
+elif test -f configure.in; then
+  conffile="configure.in"
+else
+  echo "$0: could not find configure.ac or configure.in"
+  exit 1
+fi
+
+# Check for needed features
+auxdir="`sed -ne 's/^[ \t]*A._CONFIG_AUX_DIR *([[ ]*\([^] )]*\).*/\1/p' $conffile`"
+libtool="`grep '^[ \t]*A._PROG_LIBTOOL' $conffile >/dev/null 2>&1 && echo yes || echo no`"
+header="`grep '^[ \t]*A._CONFIG_HEADER' $conffile >/dev/null 2>&1 && echo yes || echo no`"
+makefile="`[ -f Makefile.am ] && echo yes || echo no`"
+aclocalflags="`sed -ne 's/^[ \t]*ACLOCAL_AMFLAGS[ \t]*=//p' Makefile.am 2>/dev/null || :`"
+
+# Check for automake
+amvers="no"
+for v in 11 10 9 8 7 6 5; do
+  if automake-1.${v} --version >/dev/null 2>&1; then
+    amvers="-1.${v}"
+    break
+  elif automake1.${v} --version >/dev/null 2>&1; then
+    amvers="1.${v}"
+    break
+  fi
+done
+
+if test "${amvers}" = "no" && automake --version > /dev/null 2>&1; then
+  amvers="`automake --version | sed -e '1s/[^0-9]*//' -e q`"
+  if expr "$amvers" "<" "1.5" > /dev/null 2>&1; then
+    amvers="no"
+  else
+    amvers=""
+  fi
+fi
+
+if test "$amvers" = "no"; then
+  echo "$0: you need automake version 1.5 or later"
+  exit 1
+fi
+
+# Check for autoconf
+acvers="no"
+for v in "" "259" "253"; do
+  if autoconf${v} --version >/dev/null 2>&1; then
+    acvers="${v}"
+    break
+  fi
+done
+
+if test "$acvers" = "no"; then
+  echo "$0: you need autoconf"
+  exit 1
+fi
+
+# Check for libtool
+if test "$libtool" = "yes"; then
+  libtoolize="no"
+  if glibtoolize --version >/dev/null 2>&1; then
+    libtoolize="glibtoolize"
+  else
+    for v in "16" "15" "" "14"; do
+      if libtoolize${v} --version >/dev/null 2>&1; then
+        libtoolize="libtoolize${v}"
+        break
+      fi
+    done
+  fi
+
+  if test "$libtoolize" = "no"; then
+    echo "$0: you need libtool"
+    exit 1
+  fi
+fi
 
 # Remove old cruft
-rm -f aclocal.m4 configure config.guess config.log config.sub config.cache config.h.in config.h compile ltmain.sh libtool ltconfig missing mkinstalldirs depcomp install-sh
+for x in aclocal.m4 configure config.guess config.log config.sub config.cache config.h.in config.h compile libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 ltmain.sh libtool ltconfig missing mkinstalldirs depcomp install-sh; do rm -f $x autotools/$x; if test -n "$auxdir"; then rm -f "$auxdir/$x"; fi; done
+rm -Rf autom4te.cache
+if test -n "$auxdir"; then
+  if test ! -d "$auxdir"; then
+    mkdir "$auxdir"
+  fi
+  aclocalflags="${aclocalflags} -I $auxdir -I ."
+fi
+
+# Explain what we are doing from now
+set -x
+
+# Bootstrap package
+if test "$libtool" = "yes"; then
+  ${libtoolize} --copy --force
+  if test -n "$auxdir" -a ! "$auxdir" = "." -a -f "ltmain.sh"; then
+    echo "$0: working around a minor libtool issue"
+    mv ltmain.sh "$auxdir/"
+  fi
+fi
+
+aclocal${amvers} ${aclocalflags}
+autoconf${acvers}
+if test "$header" = "yes"; then
+  autoheader${acvers}
+fi
+if test "$makefile" = "yes"; then
+  #add --include-deps if you want to bootstrap with any other compiler than gcc
+  #automake${amvers} --add-missing --copy --include-deps
+  automake${amvers} --foreign --add-missing --copy
+fi
+
+# Remove cruft that we no longer want
 rm -Rf autom4te.cache
-(cd autotools && rm -f config.guess config.sub missing mkinstalldirs compile ltmain.sh depcomp install-sh)
 
-autoreconf -sfi -Wall
diff --git a/configure.ac b/configure.ac
index 11e32f00bbc7e545e84fe477243664f3b88ddafa..0ed83d2aa79ac4e6e78cb75e5ed50526c87081b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,8 +2,8 @@ dnl Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.54)
 AC_INIT([libdca],[0.0.5])
 AC_CONFIG_SRCDIR([src/dcadec.c])
-AC_CONFIG_AUX_DIR(autotools)
-AC_CONFIG_FILES([Makefile autotools/Makefile include/Makefile test/Makefile
+AC_CONFIG_AUX_DIR(.auto)
+AC_CONFIG_FILES([Makefile include/Makefile test/Makefile
     src/Makefile libdca/Makefile libao/Makefile vc++/Makefile
     libdca/libdca.pc libdca/libdts.pc])
 AM_INIT_AUTOMAKE([1.5 dist-bzip2 no-dist-gzip check-news -Wall])