diff --git a/Makefile b/Makefile
index f5ff46b8f2b008ee3607858d55fac4e92fe76349..0e737b2837361e16399e7ba49e57197fdfcf8028 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ SUBDIR+=	backward-ros
 SUBDIR+=	can-utils
 SUBDIR+=	certi
 SUBDIR+=	cppad
+SUBDIR+=	cppadcodegen
 SUBDIR+=	dptu-genom3
 SUBDIR+=	dynamic-graph-v3
 SUBDIR+=	dynamic-graph-tutorial
diff --git a/cppadcodegen/DESCR b/cppadcodegen/DESCR
new file mode 100644
index 0000000000000000000000000000000000000000..366c7c259fbe420cb18540cc022075ac91676120
--- /dev/null
+++ b/cppadcodegen/DESCR
@@ -0,0 +1 @@
+Source Code Generation for Automatic Differentiation using Operator Overloading
diff --git a/cppadcodegen/Makefile b/cppadcodegen/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ecc392b00ee66b8afd97b4a54871d8f66bd08035
--- /dev/null
+++ b/cppadcodegen/Makefile
@@ -0,0 +1,31 @@
+# robotpkg Makefile for:	wip/cppadcodegen
+# Created:			Guilhem Saurel on Wed, 17 Oct 2018
+#
+
+ORG=			joaoleal
+NAME=			CppADCodeGen
+VERSION=		2.2.0
+
+DISTNAME=		v${VERSION}
+PKGNAME=		${NAME}-${VERSION}
+WRKSRC=			${WRKDIR}/${PKGNAME}
+
+HOMEPAGE=			${MASTER_SITE_GITHUB:=${ORG}/${NAME}}
+MASTER_SITES=		${HOMEPAGE}/archive/
+MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}${ORG}/${NAME}
+
+CATEGORIES=		wip
+COMMENT=		CppADCodeGen
+LICENSE=		eclipse
+MAINTAINER=		gsaurel@laas.fr
+
+CMAKE_ARGS+=	-DCREATE_DOXYGEN_DOC=YES
+DYNAMIC_PLIST_DIRS+=	share/doc/cppadcg
+
+include ../../wip/cppad/depend.mk
+include ../../math/eigen3/depend.mk
+include ../../mk/sysdep/doxygen.mk
+include ../../mk/sysdep/cmake.mk
+include ../../mk/language/c.mk
+include ../../mk/language/c++11.mk
+include ../../mk/robotpkg.mk
diff --git a/cppadcodegen/PLIST b/cppadcodegen/PLIST
new file mode 100644
index 0000000000000000000000000000000000000000..fab7cd511e215045514ea8f7e915e2b82f95f92c
--- /dev/null
+++ b/cppadcodegen/PLIST
@@ -0,0 +1,200 @@
+@comment Wed Oct 17 16:31:01 CEST 2018
+include/cppad/cg.hpp
+include/cppad/cg/abstract_atomic_fun.hpp
+include/cppad/cg/argument.hpp
+include/cppad/cg/arithmetic.hpp
+include/cppad/cg/arithmetic_ad.hpp
+include/cppad/cg/arithmetic_assign.hpp
+include/cppad/cg/array_id_compresser.hpp
+include/cppad/cg/array_view.hpp
+include/cppad/cg/atomic_dependency_locator.hpp
+include/cppad/cg/atomic_fun.hpp
+include/cppad/cg/atomic_fun_bridge.hpp
+include/cppad/cg/base_abstract_atomic_fun.hpp
+include/cppad/cg/base_double.hpp
+include/cppad/cg/base_float.hpp
+include/cppad/cg/bidir_graph.hpp
+include/cppad/cg/cg.hpp
+include/cppad/cg/code_handler.hpp
+include/cppad/cg/code_handler_impl.hpp
+include/cppad/cg/code_handler_loops.hpp
+include/cppad/cg/code_handler_vector.hpp
+include/cppad/cg/collect_variable.hpp
+include/cppad/cg/compare.hpp
+include/cppad/cg/cond_exp_op.hpp
+include/cppad/cg/cppadcg.hpp
+include/cppad/cg/cppadcg_assert.hpp
+include/cppad/cg/custom_position.hpp
+include/cppad/cg/dae_index_reduction/augment_path.hpp
+include/cppad/cg/dae_index_reduction/augment_path_depth_lookahead.hpp
+include/cppad/cg/dae_index_reduction/augment_path_depth_lookahead_a.hpp
+include/cppad/cg/dae_index_reduction/bipartite_graph.hpp
+include/cppad/cg/dae_index_reduction/bipartite_nodes.hpp
+include/cppad/cg/dae_index_reduction/dae_equation_info.hpp
+include/cppad/cg/dae_index_reduction/dae_index_reduction.hpp
+include/cppad/cg/dae_index_reduction/dae_structural_index_reduction.hpp
+include/cppad/cg/dae_index_reduction/dae_var_info.hpp
+include/cppad/cg/dae_index_reduction/dummy_deriv.hpp
+include/cppad/cg/dae_index_reduction/dummy_deriv_util.hpp
+include/cppad/cg/dae_index_reduction/pantelides.hpp
+include/cppad/cg/dae_index_reduction/simple_logger.hpp
+include/cppad/cg/dae_index_reduction/soares_secchi.hpp
+include/cppad/cg/dae_index_reduction/time_diff.hpp
+include/cppad/cg/debug.hpp
+include/cppad/cg/declare_cg.hpp
+include/cppad/cg/declare_cg_loops.hpp
+include/cppad/cg/default.hpp
+include/cppad/cg/evaluator/evaluator.hpp
+include/cppad/cg/evaluator/evaluator_ad.hpp
+include/cppad/cg/evaluator/evaluator_adcg.hpp
+include/cppad/cg/evaluator/evaluator_adolc.hpp
+include/cppad/cg/evaluator/evaluator_cg.hpp
+include/cppad/cg/evaluator/evaluator_solve.hpp
+include/cppad/cg/exception.hpp
+include/cppad/cg/extra/declare_extra.hpp
+include/cppad/cg/extra/extra.hpp
+include/cppad/cg/extra/sparse_forjac_hessian.hpp
+include/cppad/cg/extra/sparsity.hpp
+include/cppad/cg/graph_mod.hpp
+include/cppad/cg/identical.hpp
+include/cppad/cg/job_timer.hpp
+include/cppad/cg/lang/c/lang_c_atomic_fun.hpp
+include/cppad/cg/lang/c/lang_c_custom_var_name_gen.hpp
+include/cppad/cg/lang/c/lang_c_default_hessian_var_name_gen.hpp
+include/cppad/cg/lang/c/lang_c_default_reverse2_var_name_gen.hpp
+include/cppad/cg/lang/c/lang_c_default_var_name_gen.hpp
+include/cppad/cg/lang/c/lang_c_util.hpp
+include/cppad/cg/lang/c/language_c.hpp
+include/cppad/cg/lang/c/language_c_arrays.hpp
+include/cppad/cg/lang/c/language_c_double.hpp
+include/cppad/cg/lang/c/language_c_float.hpp
+include/cppad/cg/lang/c/language_c_index_patterns.hpp
+include/cppad/cg/lang/c/language_c_loops.hpp
+include/cppad/cg/lang/dot/dot.hpp
+include/cppad/cg/lang/dot/dot_util.hpp
+include/cppad/cg/lang/dot/language_dot.hpp
+include/cppad/cg/lang/dot/language_dot_arrays.hpp
+include/cppad/cg/lang/dot/language_dot_index_patterns.hpp
+include/cppad/cg/lang/language.hpp
+include/cppad/cg/lang/latex/lang_latex_custom_var_name_gen.hpp
+include/cppad/cg/lang/latex/lang_latex_default_var_name_gen.hpp
+include/cppad/cg/lang/latex/language_latex.hpp
+include/cppad/cg/lang/latex/language_latex_arrays.hpp
+include/cppad/cg/lang/latex/language_latex_index_patterns.hpp
+include/cppad/cg/lang/latex/latex.hpp
+include/cppad/cg/lang/mathml/lang_mathml_custom_var_name_gen.hpp
+include/cppad/cg/lang/mathml/lang_mathml_default_var_name_gen.hpp
+include/cppad/cg/lang/mathml/language_mathml.hpp
+include/cppad/cg/lang/mathml/language_mathml_arrays.hpp
+include/cppad/cg/lang/mathml/language_mathml_index_patterns.hpp
+include/cppad/cg/lang/mathml/mathml.hpp
+include/cppad/cg/math.hpp
+include/cppad/cg/math_other.hpp
+include/cppad/cg/model/atomic_external_function_wrapper.hpp
+include/cppad/cg/model/atomic_generic_model.hpp
+include/cppad/cg/model/compiler/abstract_c_compiler.hpp
+include/cppad/cg/model/compiler/c_compiler.hpp
+include/cppad/cg/model/compiler/clang_compiler.hpp
+include/cppad/cg/model/compiler/gcc_compiler.hpp
+include/cppad/cg/model/dynamic_lib/ar_archiver.hpp
+include/cppad/cg/model/dynamic_lib/archiver.hpp
+include/cppad/cg/model/dynamic_lib/dynamic_library_processor.hpp
+include/cppad/cg/model/dynamic_lib/dynamiclib.hpp
+include/cppad/cg/model/dynamic_lib/linux/linux_dynamic_model_library_processor.hpp
+include/cppad/cg/model/dynamic_lib/linux/linux_dynamiclib.hpp
+include/cppad/cg/model/dynamic_lib/linux/linux_dynamiclib_model.hpp
+include/cppad/cg/model/external_function_wrapper.hpp
+include/cppad/cg/model/functor_generic_model.hpp
+include/cppad/cg/model/functor_model_library.hpp
+include/cppad/cg/model/generic_model.hpp
+include/cppad/cg/model/generic_model_external_function_wrapper.hpp
+include/cppad/cg/model/llvm/llvm.hpp
+include/cppad/cg/model/llvm/llvm_base_model_library_processor.hpp
+include/cppad/cg/model/llvm/llvm_model.hpp
+include/cppad/cg/model/llvm/llvm_model_library.hpp
+include/cppad/cg/model/llvm/v3_2/llvm3_2.hpp
+include/cppad/cg/model/llvm/v3_2/llvm_model_library_3_2.hpp
+include/cppad/cg/model/llvm/v3_2/llvm_model_library_processor.hpp
+include/cppad/cg/model/llvm/v3_4/llvm3_4.hpp
+include/cppad/cg/model/llvm/v3_4/llvm_model_library_3_4.hpp
+include/cppad/cg/model/llvm/v3_4/llvm_model_library_processor.hpp
+include/cppad/cg/model/llvm/v3_6/llvm3_6.hpp
+include/cppad/cg/model/llvm/v3_6/llvm_model_library_3_6.hpp
+include/cppad/cg/model/llvm/v3_6/llvm_model_library_processor.hpp
+include/cppad/cg/model/llvm/v3_8/llvm3_8.hpp
+include/cppad/cg/model/llvm/v3_8/llvm_model_library_3_8.hpp
+include/cppad/cg/model/llvm/v3_8/llvm_model_library_processor.hpp
+include/cppad/cg/model/llvm/v4_0/llvm4_0.hpp
+include/cppad/cg/model/llvm/v4_0/llvm_model_library_4_0.hpp
+include/cppad/cg/model/llvm/v4_0/llvm_model_library_processor.hpp
+include/cppad/cg/model/model_c_source_gen.hpp
+include/cppad/cg/model/model_c_source_gen_for0.hpp
+include/cppad/cg/model/model_c_source_gen_for1.hpp
+include/cppad/cg/model/model_c_source_gen_hes.hpp
+include/cppad/cg/model/model_c_source_gen_impl.hpp
+include/cppad/cg/model/model_c_source_gen_jac.hpp
+include/cppad/cg/model/model_c_source_gen_rev1.hpp
+include/cppad/cg/model/model_c_source_gen_rev2.hpp
+include/cppad/cg/model/model_library.hpp
+include/cppad/cg/model/model_library_c_source_gen.hpp
+include/cppad/cg/model/model_library_c_source_gen_impl.hpp
+include/cppad/cg/model/model_library_processor.hpp
+include/cppad/cg/model/patterns/hessian_with_loops_info.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_for0.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_for1.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_hess.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_hess_r2.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_jac.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_jac_fr1.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_rev1.hpp
+include/cppad/cg/model/patterns/model_c_source_gen_loops_rev2.hpp
+include/cppad/cg/model/save_files_model_library_processor.hpp
+include/cppad/cg/model/system/linux_system.hpp
+include/cppad/cg/model/system/system.hpp
+include/cppad/cg/model/threadpool/multi_threading_type.hpp
+include/cppad/cg/model/threadpool/openmp_c.hpp
+include/cppad/cg/model/threadpool/openmp_h.hpp
+include/cppad/cg/model/threadpool/pthread_pool_c.hpp
+include/cppad/cg/model/threadpool/pthread_pool_h.hpp
+include/cppad/cg/model/threadpool/thread_pool_schedule_strategy.hpp
+include/cppad/cg/nan.hpp
+include/cppad/cg/nodes/index_assign_operation_node.hpp
+include/cppad/cg/nodes/index_operation_node.hpp
+include/cppad/cg/nodes/loop_end_operation_node.hpp
+include/cppad/cg/nodes/loop_start_operation_node.hpp
+include/cppad/cg/nodes/print_operation_node.hpp
+include/cppad/cg/operation.hpp
+include/cppad/cg/operation_node.hpp
+include/cppad/cg/operation_node_name_streambuf.hpp
+include/cppad/cg/operation_path.hpp
+include/cppad/cg/operation_path_node.hpp
+include/cppad/cg/ordered.hpp
+include/cppad/cg/ostream_config_restore.hpp
+include/cppad/cg/patterns/dependent_pattern_matcher.hpp
+include/cppad/cg/patterns/equation_group.hpp
+include/cppad/cg/patterns/equation_pattern.hpp
+include/cppad/cg/patterns/independent_node_sorter.hpp
+include/cppad/cg/patterns/index/index_pattern.hpp
+include/cppad/cg/patterns/index/index_pattern_impl.hpp
+include/cppad/cg/patterns/index/linear_index_pattern.hpp
+include/cppad/cg/patterns/index/plane_2d_index_pattern.hpp
+include/cppad/cg/patterns/index/random_1d_index_pattern.hpp
+include/cppad/cg/patterns/index/random_2d_index_pattern.hpp
+include/cppad/cg/patterns/index/random_index_pattern.hpp
+include/cppad/cg/patterns/index/sectioned_index_pattern.hpp
+include/cppad/cg/patterns/iter_equation_group.hpp
+include/cppad/cg/patterns/loop.hpp
+include/cppad/cg/patterns/loop_free_model.hpp
+include/cppad/cg/patterns/loop_model.hpp
+include/cppad/cg/patterns/loop_position.hpp
+include/cppad/cg/range.hpp
+include/cppad/cg/scope_path_element.hpp
+include/cppad/cg/smart_containers.hpp
+include/cppad/cg/solver.hpp
+include/cppad/cg/support/cppadcg_eigen.hpp
+include/cppad/cg/unary.hpp
+include/cppad/cg/util.hpp
+include/cppad/cg/variable.hpp
+include/cppad/cg/variable_name_generator.hpp
+share/pkgconfig/cppadcg.pc
diff --git a/cppadcodegen/depend.mk b/cppadcodegen/depend.mk
new file mode 100644
index 0000000000000000000000000000000000000000..db59e58147e692098c2717d4a926ff3aefab90be
--- /dev/null
+++ b/cppadcodegen/depend.mk
@@ -0,0 +1,27 @@
+# robotpkg depend.mk for:	wip/cppadcodegen
+# Created:			Guilhem Saurel on Tue, 17 Oct 2018
+#
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH}+
+CPPADCODEGEN_DEPEND_MK:=	${CPPADCODEGEN_DEPEND_MK}+
+
+ifeq (+,$(DEPEND_DEPTH))
+DEPEND_PKG+=		cppadcodegen
+endif
+
+ifeq (+,$(CPPADCODEGEN_DEPEND_MK)) # ------------------------------------------
+
+PREFER.cppadcodegen?=	robotpkg
+
+SYSTEM_SEARCH.cppadcodegen=\
+  'include/cppad/cg.hpp:'	\
+  'share/pkgconfig/cppadcg.pc:/Version  /s/[^0-9.]//gp'
+
+DEPEND_USE+=		cppadcodegen
+
+DEPEND_ABI.cppadcodegen?=	cppadcodegen>=20180000.0
+DEPEND_DIR.cppadcodegen?=	../../wip/cppadcodegen
+
+endif # CPPADCODEGEN_DEPEND_MK ------------------------------------------------
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH:+=}
diff --git a/cppadcodegen/distinfo b/cppadcodegen/distinfo
new file mode 100644
index 0000000000000000000000000000000000000000..bcc125a0cb1e1ee03cd20f3a4e6cf01ff9a1f3f4
--- /dev/null
+++ b/cppadcodegen/distinfo
@@ -0,0 +1,3 @@
+SHA1 (v2.2.0.tar.gz) = feb0008f48adf7f325fc16e6b2eea1259e8906c0
+RMD160 (v2.2.0.tar.gz) = 6a376d3b1e811b85ed4b0bce8115e5fecec7c3c7
+Size (v2.2.0.tar.gz) = 549857 bytes