Files
Seele/external/sdpa/mex/Makefile
T

132 lines
4.1 KiB
Makefile
Raw Normal View History

2023-01-21 18:43:21 +01:00
#
# SDPA-M: $Revision: 7.3 $
#
# For Matlab
# $ make
# For Octave
# $ make COMPILE_ENVIRONMENT=octave
# after "make install", you can find
# 'make.inc' in 'share/sdpa' sub-directory under the installed directory
# For example
# make MAKE_INCLUDE_DIR=/usr/share/sdpa
# or
# make MAKE_INCLUDE_DIR=/usr/local/share/sdpa
# In addition, for Octave, you should try
# make MAKE_INCLUDE_DIR=/usr/local/share/sdpa COMPILE_ENVIRONMENT=octave
# To compile with mingw, the following command is a sample.
# Your need to modify directory names and compiler names.
# make MEX="i586-mingw32msvc-g++ -shared" COMPILE_ENVIRONMENT=octave \
# PRINTF_INT_STYLE=-DPRINTF_INT_STYLE=\\\"%zd\\\" \
# OUTPUT_FORMAT="-o \$@.mexw32" \
# MATLAB_INCLUDE="-Imatlab-extern/include" \
# MATLAB_LIBS="-I/matlab-extern/microsoft/libmx.lib -I/matlab-extern/microsoft/libmex.lib" \
# for only SDPA-Project members
# set DEVELOPEMENT_STAGE=1 to compile without 'make install'
# For example
# make MAKE_INCLUDE_DIR=../etc DEVELOPEMENT_STAGE=1
# In addition, for Octave, you should try
# make MAKE_INCLUDE_DIR=../etc DEVELOPEMENT_STAGE=1 COMPILE_ENVIRONMENT=octave
# This file is a component of SDPA
# Copyright (C) 2004-2013 SDPA Project
# 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 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
MAKE_INCLUDE_DIR=..
-include ${MAKE_INCLUDE_DIR}/make.inc
# after "make install", you can find
# 'make.inc' in 'share/sdpa' sub-directory under the installed directory
# For example
# make MAKE_INCLUDE_DIR=/usr/share/sdpa
# or
# make MAKE_INCLUDE_DIR=/usr/local/share/sdpa
MEX = mex
DEF_FPIC = -fPIC
CXXFLAGSOPTIONS = CXXFLAGS="-Wall -fPIC" -O -DNDEBUG CC=${CC} CXX=${CXX}
LARGEARRAYOPTION = -largeArrayDims
SDPA_INCLUDE = -I${SDPA_DIR}/include
ifeq ($(DEVELOPEMENT_STAGE),1)
SDPA_INCLUDE = -I..
SDPA_LIB = ../libsdpa-c.a
endif
PRINTF_INT_STYLE = -DPRINTF_INT_STYLE=\\\"%zd\\\"
# Output format is usually automatically set by mex command.
OUTPUT_FORMAT =
ifeq ($(COMPILE_ENVIRONMENT),octave)
MEX = CC=${CC} CXX=${CXX} mkoctfile --mex
CXXFLAGSOPTIONS =
LARGEARRAYOPTION =
PRINTF_INT_STYLE = -DPRINTF_INT_STYLE=\\\"%d\\\"
endif
ALL_OPTION = ${CXXFLAGSOPTIONS} ${LARGEARRAYOPTION} ${PRINTF_INT_STYLE}
all: mexsdpaC mexSedumiWrapC
# all: mexSedumiWrap
mexBinaryCheck:
@echo "---------------------------------------------"
@echo "Mex Compilation Start "
@echo "---------------------------------------------"
@if [ -f $(MEX) ]; then \
echo "---------------------------------------------" ;\
echo " We use " ;\
echo " " $(MEX) ;\
echo " for Mex compilaton " ;\
echo "---------------------------------------------" ;\
else \
echo "---------------------------------------------" ;\
echo "Automatic search is failed, " ;\
echo " Set the full path for mex command mannually " ;\
echo " in "`pwd`"/Makekefile" ;\
echo " and try 'make' in `pwd` " ;\
echo "---------------------------------------------" ;\
false ;\
fi
mexsdpaC:
${MEX} ${ALL_OPTION} \
${OUTPUT_FORMAT} \
${SDPA_INCLUDE} ${sdpac_all_include} \
mexsdpaC.cpp mexFprintf.c \
${SDPA_LIB} ${sdpac_all_lib}
mexSedumiWrapC:
${MEX} ${ALL_OPTION} \
${OUTPUT_FORMAT} \
${SDPA_INCLUDE} ${sdpac_all_include} \
mexSedumiWrapC.cpp mexFprintf.c \
${SDPA_LIB} ${sdpac_all_lib}
# clean all generated files
clean:
rm -f *~ *.o
dist-clean: clean
rm -f mexsdpaC.mex* mexSedumiWrapC.mex*
#
# End of File
#