From 3e798de1b40cccf9d5529bdb44a758417e3c2d6e Mon Sep 17 00:00:00 2001 From: Jonathan Frey Date: Thu, 15 Aug 2019 10:22:46 +0200 Subject: [PATCH] matlab_mex: add hpipm include --- interfaces/acados_matlab/ocp_compile_mex.m | 16 ++++++++++------ interfaces/acados_matlab/ocp_set_ext_fun.m | 6 ++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/interfaces/acados_matlab/ocp_compile_mex.m b/interfaces/acados_matlab/ocp_compile_mex.m index 63313f04bb..30cc4d2175 100644 --- a/interfaces/acados_matlab/ocp_compile_mex.m +++ b/interfaces/acados_matlab/ocp_compile_mex.m @@ -10,6 +10,7 @@ function ocp_compile_mex(opts) acados_interfaces_include = ['-I', fullfile(acados_folder, 'interfaces')]; external_include = ['-I', fullfile(acados_folder, 'external')]; blasfeo_include = ['-I', fullfile(acados_folder, 'external', 'blasfeo', 'include')]; +hpipm_include = ['-I', fullfile(acados_folder, 'external', 'hpipm', 'include')]; acados_lib_path = ['-L', fullfile(acados_folder, 'lib')]; mex_names = { ... @@ -51,20 +52,25 @@ function ocp_compile_mex(opts) setenv('CFLAGS', cflags_tmp); end + for ii=1:length(mex_files) disp(['compiling ', mex_files{ii}]) if is_octave() % mkoctfile -p CFLAGS if (strcmp(opts.qp_solver, 'full_condensing_qpoases')) - mex(acados_include, acados_interfaces_include, external_include, blasfeo_include, acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', '-lqpOASES_e', mex_files{ii}) + mex(acados_include, acados_interfaces_include, external_include, blasfeo_include, hpipm_include,... + acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', '-lqpOASES_e', mex_files{ii}) else - mex(acados_include, acados_interfaces_include, external_include, blasfeo_include, acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', mex_files{ii}) + mex(acados_include, acados_interfaces_include, external_include, blasfeo_include, hpipm_include,... + acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', mex_files{ii}) end else if (strcmp(opts.qp_solver, 'full_condensing_qpoases')) - mex(mex_flags, 'CFLAGS=$CFLAGS -std=c99 -fopenmp -DACADOS_WITH_QPOASES', acados_include, acados_interfaces_include, external_include, blasfeo_include, acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', '-lqpOASES_e', mex_files{ii}) + mex(mex_flags, 'CFLAGS=$CFLAGS -std=c99 -fopenmp -DACADOS_WITH_QPOASES', acados_include, acados_interfaces_include, external_include, blasfeo_include, hpipm_include,... + acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', '-lqpOASES_e', mex_files{ii}) else - mex(mex_flags, 'CFLAGS=$CFLAGS -std=c99 -fopenmp', acados_include, acados_interfaces_include, external_include, blasfeo_include, acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', mex_files{ii}) + mex(mex_flags, 'CFLAGS=$CFLAGS -std=c99 -fopenmp', acados_include, acados_interfaces_include, external_include, blasfeo_include, hpipm_include,... + acados_lib_path, '-lacados', '-lhpipm', '-lblasfeo', mex_files{ii}) end end end @@ -82,5 +88,3 @@ function ocp_compile_mex(opts) end - - diff --git a/interfaces/acados_matlab/ocp_set_ext_fun.m b/interfaces/acados_matlab/ocp_set_ext_fun.m index 513fc35b10..4664d05015 100644 --- a/interfaces/acados_matlab/ocp_set_ext_fun.m +++ b/interfaces/acados_matlab/ocp_set_ext_fun.m @@ -13,6 +13,7 @@ acados_interfaces_include = ['-I' fullfile(acados_folder, 'interfaces')]; external_include = ['-I' fullfile(acados_folder, 'external')]; blasfeo_include = ['-I' fullfile(acados_folder, 'external' , 'blasfeo', 'include')]; +hpipm_include = ['-I' fullfile(acados_folder, 'external' , 'hpipm', 'include')]; acados_lib_path = ['-L' fullfile(acados_folder, 'lib')]; acados_matlab_lib_path = ['-L' fullfile(acados_folder, 'interfaces', 'acados_matlab')]; model_lib_path = ['-L', opts_struct.output_dir]; @@ -384,7 +385,9 @@ cflags_tmp = [cflags_tmp, ' -DN0=', num2str(phase_start{ii})]; cflags_tmp = [cflags_tmp, ' -DN1=', num2str(phase_end{ii})]; setenv('CFLAGS', cflags_tmp); - mex(acados_include, acados_interfaces_include, external_include, blasfeo_include, acados_lib_path, acados_matlab_lib_path, model_lib_path, '-lacados', '-lhpipm', '-lblasfeo', ['-l', model_name], mex_files{1}); + mex(acados_include, acados_interfaces_include, external_include, blasfeo_include,... + hpipm_include, acados_lib_path, acados_matlab_lib_path, model_lib_path, '-lacados',... + '-lhpipm', '-lblasfeo', ['-l', model_name], mex_files{1}); else mex(mex_flags, 'CFLAGS=$CFLAGS -std=c99 -fopenmp', ['-DSETTER=', setter{ii}], ['-DSET_FIELD=', set_fields{ii}], ['-DMEX_FIELD=', mex_fields{ii}], ['-DFUN_NAME=', fun_names{ii}], ['-DPHASE=', num2str(phase{ii})], ['-DN0=', num2str(phase_start{ii})], ['-DN1=', num2str(phase_end{ii})], acados_include, acados_interfaces_include, external_include, blasfeo_include, acados_lib_path, acados_matlab_lib_path, model_lib_path, '-lacados', '-lhpipm', '-lblasfeo', ['-l', model_name], mex_files{1}); % TODO end @@ -414,7 +417,6 @@ %ocp_set_ext_fun_tmp(C_ocp, C_ocp_ext_fun, model_struct, opts_struct); %C_ocp_ext_fun -%keyboard return;