diff --git a/py-casadi/Makefile b/py-casadi/Makefile
index 077c693e12a87c7077993976acc63778eec05e7f..e5106c3a6293e1859982bc543eea33f3ba611e05 100644
--- a/py-casadi/Makefile
+++ b/py-casadi/Makefile
@@ -20,7 +20,6 @@ LICENSE=		gnu-lgpl-v3
 MAINTAINER=		gsaurel@laas.fr
 
 CMAKE_ARGS+=		-DPYTHON_PREFIX=${PREFIX}/${PYTHON_SITELIB}
-CMAKE_ARGS+=		-DWITH_IPOPT=ON
 CMAKE_ARGS+=		-DWITH_LAPACK=ON
 CMAKE_ARGS+=		-DWITH_OPENMP=ON
 CMAKE_ARGS+=		-DWITH_PYTHON=ON
@@ -28,10 +27,21 @@ CMAKE_ARGS+=		-DWITH_PYTHON3=$(if $(filter 3,${PYTHON_MAJOR}),ON,OFF)
 CMAKE_ARGS+=		-DWITH_QPOASES=ON
 CMAKE_ARGS+=		-DWITH_THREAD=ON
 
+# ipopt option
+PKG_SUPPORTED_OPTIONS+=	ipopt
+PKG_OPTION_DESCR.ipopt?=Enable coin-or ipopt support
+
+PKG_OPTION_UNSET.ipopt+=CMAKE_ARGS+=	-DWITH_IPOPT=OFF
+
+define PKG_OPTION_SET.ipopt
+  CMAKE_ARGS+=		-DWITH_IPOPT=ON
+  PLIST_SRC=		${PKGDIR}/PLIST ${PKGDIR}/PLIST.ipopt
+  include ../../optimization/ipopt/depend.mk
+endef
+
 #include ../../wip/mk/sysdep/sundials.mk
 include ../../devel/swig/depend.mk
 include ../../math/lapack/depend.mk
-include ../../optimization/ipopt/depend.mk
 include ../../optimization/qpoases/depend.mk
 include ../../mk/sysdep/cmake.mk
 include ../../mk/sysdep/python.mk
diff --git a/py-casadi/PLIST b/py-casadi/PLIST
index 7369e40f782a310686c3bb6bba2fb1400ba72001..a863e55e980dda037c437bc2a7d04217330cd855 100644
--- a/py-casadi/PLIST
+++ b/py-casadi/PLIST
@@ -141,8 +141,6 @@ lib/libcasadi_linsol_qr.so
 lib/libcasadi_linsol_qr.so.3.5
 lib/libcasadi_linsol_symbolicqr.so
 lib/libcasadi_linsol_symbolicqr.so.3.5
-lib/libcasadi_nlpsol_ipopt.so
-lib/libcasadi_nlpsol_ipopt.so.3.5
 lib/libcasadi_nlpsol_scpgen.so
 lib/libcasadi_nlpsol_scpgen.so.3.5
 lib/libcasadi_nlpsol_sqpmethod.so
diff --git a/py-casadi/PLIST.ipopt b/py-casadi/PLIST.ipopt
new file mode 100644
index 0000000000000000000000000000000000000000..59fefcfbfa83258a15856f9c6e1c6a5ab3083f4b
--- /dev/null
+++ b/py-casadi/PLIST.ipopt
@@ -0,0 +1,2 @@
+lib/libcasadi_nlpsol_ipopt.so
+lib/libcasadi_nlpsol_ipopt.so.3.5