diff --git a/.travis.yml b/.travis.yml
index f31a4c3fb670b9ec327bae262beca30ddd99add0..81f29a12782d8645e4f10236848fa204c9c8658a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,8 @@
 dist: trusty
+env:
+  matrix:
+    - CI_BUILD=cmake
+    - CI_BUILD=autotools
 language: cpp
 os:
 #  - osx
@@ -35,9 +39,11 @@ before_script:
   - ./ci/build_openssl.sh
   - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libev; fi
   # configure ngtcp2
-  - autoreconf -i
-  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./configure --enable-werror PKG_CONFIG_PATH=$PWD/../openssl/build/lib/pkgconfig CPPFLAGS=-fsanitize=address LDFLAGS="$EXTRA_LDFLAGS -fsanitize=address -Wl,-rpath,$PWD/openssl/build/lib" || cat config.log; fi
-  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./configure --enable-werror PKG_CONFIG_PATH=$PWD/../openssl/build/lib/pkgconfig LDFLAGS="-Wl,-rpath,$PWD/openssl/build/lib"; fi
+  - if [ "$CI_BUILD" == "autotools" ]; then autoreconf -i; fi
+  - export PKG_CONFIG_PATH=$PWD/../openssl/build/lib/pkgconfig LDFLAGS="$EXTRA_LDFLAGS -Wl,-rpath,$PWD/openssl/build/lib"
+  - if [ "$CI_BUILD" == "autotools" ]; then ./configure --enable-werror --enable-asan; fi
+  - if [ "$CI_BUILD" == "cmake" ]; then cmake -DENABLE_ASAN=1; fi
 script:
-  # Now build ngtcp2
+  # Now build ngtcp2 examples and test
+  - make
   - make check