代码拉取完成,页面将自动刷新
###################################################################################################
# #
# This file is part of HPIPM. #
# #
# HPIPM -- High-Performance Interior Point Method. #
# Copyright (C) 2017-2018 by Gianluca Frison. #
# Developed at IMTEK (University of Freiburg) under the supervision of Moritz Diehl. #
# All rights reserved. #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version #.
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
# #
# The authors designate this particular file as subject to the "Classpath" exception #
# as provided by the authors in the LICENSE file that accompained this code. #
# #
# Author: Gianluca Frison, gianluca.frison (at) imtek.uni-freiburg.de #
# #
###################################################################################################
include ./Makefile.rule
OBJS =
ifeq ($(TARGET), GENERIC)
# ipm core
# double
OBJS += ipm_core/d_core_qp_ipm_aux.o
# single
OBJS += ipm_core/s_core_qp_ipm_aux.o
endif
ifeq ($(TARGET), AVX)
# ipm core
# double
OBJS += ipm_core/d_core_qp_ipm_aux_avx.o
# single
OBJS += ipm_core/s_core_qp_ipm_aux_avx.o
endif
# cond
OBJS += cond/d_cond_aux.o cond/d_cond.o cond/d_part_cond.o
OBJS += cond/s_cond_aux.o cond/s_cond.o cond/s_part_cond.o
# dense qp
# double
OBJS += dense_qp/d_dense_qp_dim.o
OBJS += dense_qp/d_dense_qp.o
OBJS += dense_qp/d_dense_qp_sol.o
OBJS += dense_qp/d_dense_qp_res.o
OBJS += dense_qp/d_dense_qp_kkt.o
OBJS += dense_qp/d_dense_qp_ipm.o
# single
OBJS += dense_qp/s_dense_qp_dim.o
OBJS += dense_qp/s_dense_qp.o
OBJS += dense_qp/s_dense_qp_sol.o
OBJS += dense_qp/s_dense_qp_res.o
OBJS += dense_qp/s_dense_qp_kkt.o
OBJS += dense_qp/s_dense_qp_ipm.o
#mixed
OBJS += dense_qp/m_dense_qp_dim.o
OBJS += dense_qp/m_dense_qp.o
# ipm core
# double
#OBJS += ipm_core/d_core_qp_ipm_aux.o
OBJS += ipm_core/d_core_qp_ipm.o
# single
#OBJS += ipm_core/s_core_qp_ipm_aux.o
OBJS += ipm_core/s_core_qp_ipm.o
# ocp nlp
#OBJS += ocp_nlp/d_ocp_nlp.o ocp_nlp/d_ocp_nlp_sol.o ocp_nlp/d_ocp_nlp_aux.o ocp_nlp/d_ocp_nlp_hyb.o ocp_nlp/d_ocp_nlp_ipm.o ocp_nlp/d_ocp_nlp_sqp.o
#OBJS +=
# ocp qp
# double
OBJS += ocp_qp/d_ocp_qp_dim.o
OBJS += ocp_qp/d_ocp_qp.o
OBJS += ocp_qp/d_ocp_qp_sol.o
OBJS += ocp_qp/d_ocp_qp_res.o
OBJS += ocp_qp/d_ocp_qp_kkt.o
OBJS += ocp_qp/d_ocp_qp_ipm.o
OBJS += ocp_qp/d_ocp_qp_utils.o
# single
OBJS += ocp_qp/s_ocp_qp_dim.o
OBJS += ocp_qp/s_ocp_qp.o
OBJS += ocp_qp/s_ocp_qp_sol.o
OBJS += ocp_qp/s_ocp_qp_res.o
OBJS += ocp_qp/s_ocp_qp_kkt.o
OBJS += ocp_qp/s_ocp_qp_ipm.o
OBJS += ocp_qp/s_ocp_qp_utils.o
# mixed
#OBJS += ocp_qp/m_ocp_qp.o ocp_qp/m_ocp_qp_kkt.o ocp_qp/m_ocp_qp_ipm.o
# sim core
#OBJS += sim_core/d_rk_int.o sim_core/d_erk_int.o sim_core/d_irk_int.o
#OBJS +=
# tree ocp qp
# common
OBJS += tree_ocp_qp/scenario_tree.o
# double
OBJS += tree_ocp_qp/d_tree_ocp_qp_dim.o
OBJS += tree_ocp_qp/d_tree_ocp_qp.o
OBJS += tree_ocp_qp/d_tree_ocp_qp_sol.o
OBJS += tree_ocp_qp/d_tree_ocp_qp_res.o
OBJS += tree_ocp_qp/d_tree_ocp_qp_kkt.o
OBJS += tree_ocp_qp/d_tree_ocp_qp_ipm.o
# single
OBJS += tree_ocp_qp/s_tree_ocp_qp_dim.o
OBJS += tree_ocp_qp/s_tree_ocp_qp.o
OBJS += tree_ocp_qp/s_tree_ocp_qp_sol.o
OBJS += tree_ocp_qp/s_tree_ocp_qp_res.o
OBJS += tree_ocp_qp/s_tree_ocp_qp_kkt.o
OBJS += tree_ocp_qp/s_tree_ocp_qp_ipm.o
# aux
OBJS += auxiliary/aux_string.o
all: clean static_library
static_library: target
( cd cond; $(MAKE) obj TOP=$(TOP) )
( cd dense_qp; $(MAKE) obj TOP=$(TOP) )
( cd ipm_core; $(MAKE) obj TOP=$(TOP) )
( cd ocp_qp; $(MAKE) obj TOP=$(TOP) )
( cd tree_ocp_qp; $(MAKE) obj TOP=$(TOP) )
( cd auxiliary; $(MAKE) obj TOP=$(TOP) )
ar rcs libhpipm.a $(OBJS)
cp libhpipm.a ./lib/
@echo
@echo " libhpipm.a static library build complete."
@echo
shared_library: target
( cd cond; $(MAKE) obj TOP=$(TOP) )
( cd dense_qp; $(MAKE) obj TOP=$(TOP) )
( cd ipm_core; $(MAKE) obj TOP=$(TOP) )
( cd ocp_qp; $(MAKE) obj TOP=$(TOP) )
( cd tree_ocp_qp; $(MAKE) obj TOP=$(TOP) )
( cd auxiliary; $(MAKE) obj TOP=$(TOP) )
$(CC) -L$(BLASFEO_PATH)/lib -shared -o libhpipm.so $(OBJS) -lblasfeo
cp libhpipm.so ./lib/
@echo
@echo " libhpipm.so shared library build complete."
@echo
target:
touch ./include/hpipm_target.h
ifeq ($(TARGET), GENERIC)
echo "#ifndef TARGET_GENERIC" > ./include/hpipm_target.h
echo "#define TARGET_GENERIC" >> ./include/hpipm_target.h
echo "#endif" >> ./include/hpipm_target.h
endif
install_static:
mkdir -p $(PREFIX)/hpipm
mkdir -p $(PREFIX)/hpipm/lib
cp -f libhpipm.a $(PREFIX)/hpipm/lib/
mkdir -p $(PREFIX)/hpipm/include
cp -f ./include/*.h $(PREFIX)/hpipm/include/
install_shared:
mkdir -p $(PREFIX)/hpipm
mkdir -p $(PREFIX)/hpipm/lib
cp -f libhpipm.so $(PREFIX)/hpipm/lib/
mkdir -p $(PREFIX)/hpipm/include
cp -f ./include/*.h $(PREFIX)/hpipm/include/
test_problem:
cp libhpipm.a ./test_problems/libhpipm.a
make -C test_problems obj TOP=$(TOP)
@echo
@echo " Test problem build complete."
@echo
run_test_problems:
./test_problems/test.out
examples:
cp libhpipm.a ./examples/c/libhpipm.a
( cd examples/c; $(MAKE) obj )
@echo
@echo " Examples build complete."
@echo
run_examples:
./examples/c/example.out
.PHONY: examples
clean:
rm -f libhpipm.a
rm -f libhpipm.so
rm -f ./lib/libhpipm.a
rm -f ./lib/libhpipm.so
make -C auxiliary clean
make -C cond clean
make -C dense_qp clean
make -C ipm_core clean
make -C ocp_qp clean
make -C tree_ocp_qp clean
make -C test_problems clean
make -C examples/c clean
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。