Skip to content
Snippets Groups Projects
Commit b3bb6d6c authored by Anthony Mallet's avatar Anthony Mallet
Browse files

[wip/mumps] Make package compile and install

Add configure/Makefile scripts, and try to make this robust.
This needs testing.
parent 100e40ae
No related branches found
No related tags found
No related merge requests found
......@@ -30,6 +30,7 @@ SUBDIR+= MPC_DEMTreatment-genom
SUBDIR+= mhp-genom
SUBDIR+= morse-pocolibs
SUBDIR+= move3d-studio
SUBDIR+= mumps
SUBDIR+= oro-view
SUBDIR+= poisson
SUBDIR+= py-poco
......
MUMPS (“MUltifrontal Massively Parallel Solver”) is a package for
solving systems of linear equations of the form Ax = b, where A is a
square sparse matrix that can be either unsymmetric, symmetric
positive definite, or general symmetric.
\ No newline at end of file
positive definite, or general symmetric.
......@@ -2,41 +2,42 @@
# Created: Antonio El Khoury on Wed, 7 Mar 2012
#
DISTNAME= MUMPS_${VERSION} Mumps
PKGNAME= mumps-${VERSION}
VERSION= 4.10.0
CATEGORIES= optimization
MASTER_SITES= \
http://mumps.enseeiht.fr/ \
${MASTER_SITE_OPENROBOTS:=mumps/}
MAINTAINER=
HOMEPAGE= http://graal.ens-lyon.fr/MUMPS/
COMMENT= MUMPS : a parallel sparse direct solver
LICENSE= public-domain
USE_LANGUAGES= c c++ fortran
GNU_CONFIGURE= yes
CONFIGURE_DIRS= ../
CPPFLAGS+= \
-I${PREFIX.blas}/include/ \
-I${PREFIX.lapack}/include/
LDFLAGS+= \
-L${PREFIX.blas}/lib/ \
-L${PREFIX.lapack}/lib/
LIBS+= -lblas -llapack -lpthread
# --------------------------------------------------------------------
VERSION= 4.10.0
DISTNAME= MUMPS_${VERSION}
PKGNAME= mumps-${VERSION}
CATEGORIES= optimization
MASTER_SITES= http://mumps.enseeiht.fr/
COMMENT= Parallel sparse direct solver
HOMEPAGE= http://graal.ens-lyon.fr/MUMPS/
LICENSE= public-domain
MAINTAINER= openrobots@laas.fr
WRKSRC= ${WRKDIR}
USE_LANGUAGES= c c++ fortran
GNU_CONFIGURE= yes
INCLUDE_DIRS.lapack= include
LIBRARY_DIRS.lapack= lib
RPATH_DIRS.lapack= lib
LDFLAGS.lapack= -llapack
INCLUDE_DIRS.blas= include
LIBRARY_DIRS.blas= lib
RPATH_DIRS.blas= lib
LDFLAGS.blas= -lblas
include ../../math/lapack/depend.mk
include ../../math/blas/depend.mk
include ../../pkgtools/pkg-config/depend.mk
include ../../mk/sysdep/doxygen.mk
include ../../mk/sysdep/latex.mk
include ../../mk/sysdep/autoconf.mk
include ../../mk/sysdep/automake.mk
include ../../mk/robotpkg.mk
post-extract:
cd ${WRKDIR} && ${LN} -s MUMPS_${VERSION} MUMPS
${RUN} cd ${WRKDIR}; \
${LN} -s MUMPS_${VERSION} MUMPS; \
${SED} -e 's/@VERSION@/${VERSION}/g' \
>configure.ac <${FILESDIR}/configure.ac; \
${CP} ${FILESDIR}/Makefile.am Makefile.am
pre-configure: autoreconf
@comment Wed Mar 7 19:07:19 CET 2012
@comment Thu Mar 8 17:56:36 CET 2012
include/mumps/cmumps_c.h
include/mumps/cmumps_root.h
include/mumps/cmumps_struc.h
include/mumps/dmumps_c.h
include/mumps/dmumps_root.h
include/mumps/dmumps_struc.h
include/mumps/mumps_c_types.h
include/mumps/mumps_compat.h
include/mumps/smumps_c.h
include/mumps/smumps_root.h
include/mumps/smumps_struc.h
include/mumps/zmumps_c.h
include/mumps/zmumps_root.h
include/mumps/zmumps_struc.h
lib/libcmumps.la
lib/libdmumps.la
lib/libmumps_common.la
lib/libsmumps.la
lib/libzmumps.la
share/mumps/ChangeLog
share/mumps/LICENSE
share/mumps/README
share/mumps/VERSION
# robotpkg depend.mk for: optimization/mumps
# Created: Antonio El Khoury on Wed, 7 Mar 2012
#
DEPEND_DEPTH:= ${DEPEND_DEPTH}+
IPOPT_DEPEND_MK:=${IPOPT_DEPEND_MK}+
DEPEND_DEPTH:= ${DEPEND_DEPTH}+
MUMPS_DEPEND_MK:= ${MUMPS_DEPEND_MK}+
ifeq (+,$(DEPEND_DEPTH))
DEPEND_PKG+= mumps
DEPEND_PKG+= mumps
endif
ifeq (+,$(IPOPT_DEPEND_MK)) # ------------------------------
ifeq (+,$(MUMPS_DEPEND_MK)) # ----------------------------------------------
PREFER.mumps?= robotpkg
PREFER.ipopt?= robotpkg
DEPEND_USE+= mumps
DEPEND_USE+= mumps
DEPEND_ABI.mumps?= mumps>=4.10.0
DEPEND_DIR.mumps?= ../../wip/mumps
DEPEND_ABI.ipopt?= mumps>=4.10.0
DEPEND_DIR.ipopt?= ../../optimization/ipopt
SYSTEM_SEARCH.mumps=\
'include/mumps/dmumps_c.h:/MUMPS_VERSION.*"[0-9.]*"/s/[^0-9.]//gp' \
'lib/lib{s,d,c,z}mumps.{so,a}'
SYSTEM_SEARCH.ipopt=\
include/coin/ThirdParty/dmumps_c.h \
lib/libcoinmumps.so
SYSTEM_PKG.Ubuntu.mumps=libmumps-dev
endif # --------------------------------------------------------------------
endif # MUMPS_DEPEND_MK ----------------------------------------------------
DEPEND_DEPTH:= ${DEPEND_DEPTH:+=}
SHA1 (MUMPS_4.10.0.tar.gz) = 904b1d816272d99f1f53913cbd4789a5be1838f7
RMD160 (MUMPS_4.10.0.tar.gz) = 19ae1f4773ab1643237f791085d9721932a618fc
Size (MUMPS_4.10.0.tar.gz) = 2481516 bytes
SHA1 (Mumps.tar.gz) = 2c2433ad8ccc8c51925e0737bace1b08bf7c3d9b
RMD160 (Mumps.tar.gz) = 067b70c6f4d369c53f37b0589af1c4c42249bfd8
Size (Mumps.tar.gz) = 266006 bytes
SHA1 (patch-aa) = ec047ce693541de6e92a4c79980daf4d5283b1c0
SHA1 (patch-ab) = 723797b6add1d9d53e67a61773eff752b6226ebf
# automake file for MUMPS
AM_CPPFLAGS= -IMUMPS/include -IMUMPS/libseq
lib_LTLIBRARIES= libmumps_common.la
lib_LTLIBRARIES+= libsmumps.la
lib_LTLIBRARIES+= libdmumps.la
lib_LTLIBRARIES+= libcmumps.la
lib_LTLIBRARIES+= libzmumps.la
docdir= ${datadir}/mumps
doc_DATA=\
MUMPS/ChangeLog \
MUMPS/LICENSE \
MUMPS/README \
MUMPS/VERSION
mumpsdir= ${includedir}/mumps
mumps_HEADERS=\
MUMPS/include/mumps_c_types.h \
MUMPS/include/mumps_compat.h \
\
MUMPS/include/smumps_c.h \
MUMPS/include/smumps_root.h \
MUMPS/include/smumps_struc.h \
\
MUMPS/include/dmumps_c.h \
MUMPS/include/dmumps_root.h \
MUMPS/include/dmumps_struc.h \
\
MUMPS/include/cmumps_c.h \
MUMPS/include/cmumps_root.h \
MUMPS/include/cmumps_struc.h \
\
MUMPS/include/zmumps_c.h \
MUMPS/include/zmumps_root.h \
MUMPS/include/zmumps_struc.h
libmumps_common_la_SOURCES=\
MUMPS/src/mumps_part9.F \
MUMPS/src/mumps_common.c \
MUMPS/src/mumps_ooc_common.F \
MUMPS/src/mumps_orderings.c \
MUMPS/src/mumps_size.c \
MUMPS/src/mumps_io.c \
MUMPS/src/mumps_io_basic.c \
MUMPS/src/mumps_io_thread.c \
MUMPS/src/mumps_io_err.c \
MUMPS/src/mumps_static_mapping.F \
MUMPS/src/mumps_sol_es.F \
MUMPS/src/tools_common_mod.F \
\
MUMPS/libseq/mpi.f \
MUMPS/libseq/mpic.c \
MUMPS/libseq/elapse.c
libmumps_common_la_LIBADD=${FCLIBS}
libsmumps_la_SOURCES=\
MUMPS/src/smumps_part1.F \
MUMPS/src/smumps_part2.F \
MUMPS/src/smumps_part3.F \
MUMPS/src/smumps_part4.F \
MUMPS/src/smumps_part5.F \
MUMPS/src/smumps_part6.F \
MUMPS/src/smumps_part7.F \
MUMPS/src/smumps_part8.F \
MUMPS/src/smumps_comm_buffer.F \
MUMPS/src/smumps_load.F \
MUMPS/src/smumps_c.c \
MUMPS/src/smumps_ooc_buffer.F \
MUMPS/src/smumps_ooc.F \
MUMPS/src/smumps_struc_def.F
libsmumps_la_LIBADD=libmumps_common.la
smumps_part1.lo smumps_part2.lo: smumps_load.lo smumps_ooc.lo
smumps_part3.lo smumps_part4.lo: smumps_load.lo smumps_ooc.lo
smumps_part5.lo smumps_part6.lo: smumps_load.lo smumps_ooc.lo smumps_part2.lo
smumps_part7.lo smumps_part8.lo: smumps_load.lo smumps_ooc.lo
smumps_ooc.lo smumps_load.lo: smumps_comm_buffer.lo
smumps_ooc.lo smumps_load.lo: smumps_struc_def.lo
smumps_ooc.lo smumps_load.lo: smumps_ooc_buffer.lo
libdmumps_la_SOURCES=\
MUMPS/src/dmumps_part1.F \
MUMPS/src/dmumps_part2.F \
MUMPS/src/dmumps_part3.F \
MUMPS/src/dmumps_part4.F \
MUMPS/src/dmumps_part5.F \
MUMPS/src/dmumps_part6.F \
MUMPS/src/dmumps_part7.F \
MUMPS/src/dmumps_part8.F \
MUMPS/src/dmumps_comm_buffer.F \
MUMPS/src/dmumps_load.F \
MUMPS/src/dmumps_c.c \
MUMPS/src/dmumps_ooc_buffer.F \
MUMPS/src/dmumps_ooc.F \
MUMPS/src/dmumps_struc_def.F
libdmumps_la_LIBADD=libmumps_common.la
dmumps_part1.lo dmumps_part2.lo: dmumps_load.lo dmumps_ooc.lo
dmumps_part3.lo dmumps_part4.lo: dmumps_load.lo dmumps_ooc.lo
dmumps_part5.lo dmumps_part6.lo: dmumps_load.lo dmumps_ooc.lo dmumps_part2.lo
dmumps_part7.lo dmumps_part8.lo: dmumps_load.lo dmumps_ooc.lo
dmumps_ooc.lo dmumps_load.lo: dmumps_comm_buffer.lo
dmumps_ooc.lo dmumps_load.lo: dmumps_struc_def.lo
dmumps_ooc.lo dmumps_load.lo: dmumps_ooc_buffer.lo
libcmumps_la_SOURCES=\
MUMPS/src/cmumps_part1.F \
MUMPS/src/cmumps_part2.F \
MUMPS/src/cmumps_part3.F \
MUMPS/src/cmumps_part4.F \
MUMPS/src/cmumps_part5.F \
MUMPS/src/cmumps_part6.F \
MUMPS/src/cmumps_part7.F \
MUMPS/src/cmumps_part8.F \
MUMPS/src/cmumps_comm_buffer.F \
MUMPS/src/cmumps_load.F \
MUMPS/src/cmumps_c.c \
MUMPS/src/cmumps_ooc_buffer.F \
MUMPS/src/cmumps_ooc.F \
MUMPS/src/cmumps_struc_def.F
libcmumps_la_LIBADD=libmumps_common.la
cmumps_part1.lo cmumps_part2.lo: cmumps_load.lo cmumps_ooc.lo
cmumps_part3.lo cmumps_part4.lo: cmumps_load.lo cmumps_ooc.lo
cmumps_part5.lo cmumps_part6.lo: cmumps_load.lo cmumps_ooc.lo cmumps_part2.lo
cmumps_part7.lo cmumps_part8.lo: cmumps_load.lo cmumps_ooc.lo
cmumps_ooc.lo cmumps_load.lo: cmumps_comm_buffer.lo
cmumps_ooc.lo cmumps_load.lo: cmumps_struc_def.lo
cmumps_ooc.lo cmumps_load.lo: cmumps_ooc_buffer.lo
libzmumps_la_SOURCES=\
MUMPS/src/zmumps_part1.F \
MUMPS/src/zmumps_part2.F \
MUMPS/src/zmumps_part3.F \
MUMPS/src/zmumps_part4.F \
MUMPS/src/zmumps_part5.F \
MUMPS/src/zmumps_part6.F \
MUMPS/src/zmumps_part7.F \
MUMPS/src/zmumps_part8.F \
MUMPS/src/zmumps_comm_buffer.F \
MUMPS/src/zmumps_load.F \
MUMPS/src/zmumps_c.c \
MUMPS/src/zmumps_ooc_buffer.F \
MUMPS/src/zmumps_ooc.F \
MUMPS/src/zmumps_struc_def.F
libzmumps_la_LIBADD=libmumps_common.la
zmumps_part1.lo zmumps_part2.lo: zmumps_load.lo zmumps_ooc.lo
zmumps_part3.lo zmumps_part4.lo: zmumps_load.lo zmumps_ooc.lo
zmumps_part5.lo zmumps_part6.lo: zmumps_load.lo zmumps_ooc.lo zmumps_part2.lo
zmumps_part7.lo zmumps_part8.lo: zmumps_load.lo zmumps_ooc.lo
zmumps_ooc.lo zmumps_load.lo: zmumps_comm_buffer.lo
zmumps_ooc.lo zmumps_load.lo: zmumps_struc_def.lo
zmumps_ooc.lo zmumps_load.lo: zmumps_ooc_buffer.lo
libsmumps.la libdmumps.la libcmumps.la libzmumps.la: libmumps_common.la
MUMPS/src/%mumps_c.c: MUMPS/src/mumps_c.c
echo '#define MUMPS_ARITH MUMPS_ARITH_$*' >$@
${SED} -e '' $< >>$@
# autoconf script for MUMPS
AC_PREREQ(2.62)
AC_INIT([mumps],[@VERSION@],[openrobots@laas.fr])
AC_CONFIG_SRCDIR([MUMPS/src/dmumps_part1.F])
AM_INIT_AUTOMAKE([foreign no-define])
# compilers et al.
AC_PROG_CC
AC_PROG_F77
AC_FC_WRAPPERS
AC_PROG_INSTALL
AC_PROG_LIBTOOL
# verify that we can compile Fortran 90 code
AC_MSG_CHECKING([whether we can compile Fortran 90 code])
AC_LANG_PUSH(Fortran 77)
AC_COMPILE_IFELSE([ MODULE BLA
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB
END MODULE BLA],[can_f90=yes],[can_f90=no])
AC_MSG_RESULT([$can_f90])
AC_LANG_POP(Fortran 77)
if test $can_f90 = no; then
AC_MSG_ERROR([your Fortran compiler can't compile Fortran 90])
fi
# check for pthread.h header file
AC_CHECK_HEADER([pthread.h],,[CPPFLAGS="$CPPFLAGS -DWITHOUT_PTHREAD=1"])
AC_CHECK_LIB([pthread],[pthread_create],[LIBS="-lpthread $LIBS"])
# output
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
--- MUMPS/src/mumps_common.h~ 2011-05-10 14:56:41.000000000 +0200
+++ MUMPS/src/mumps_common.h 2012-03-08 13:36:41.647255329 +0100
@@ -62,6 +62,9 @@
* knowledge, there is no way to perform the conversion with CPP
* directives only.
*/
+#define F_SYMBOL(lower_case,upper_case) \
+ FC_FUNC(mumps_ ## lower_case,MUMPS_ ## upper_case)
+#if 0
#if defined(UPPER) || defined(MUMPS_WIN32)
# define F_SYMBOL(lower_case,upper_case) MUMPS_##upper_case
#elif defined(Add_)
@@ -71,6 +74,7 @@
#else
# define F_SYMBOL(lower_case,upper_case) mumps_##lower_case
#endif
+#endif
MUMPS_INT*
mumps_get_mapping();
#define MUMPS_AFFECT_MAPPING \
--- MUMPS/src/mumps_c.c~ 2011-05-10 14:56:41.000000000 +0200
+++ MUMPS/src/mumps_c.c 2012-03-08 13:39:25.063255287 +0100
@@ -80,6 +80,20 @@
* CMUMPS_XXX in the code to get rid of any symbol convention annoyance.
*/
#if MUMPS_ARITH == MUMPS_ARITH_s
+# define F_SYM_ARITH(lower_case,upper_case) \
+ F_SYMBOL(s ## lower_case, S ## upper_case)
+#elif MUMPS_ARITH == MUMPS_ARITH_d
+# define F_SYM_ARITH(lower_case,upper_case) \
+ F_SYMBOL(d ## lower_case, D ## upper_case)
+#elif MUMPS_ARITH == MUMPS_ARITH_c
+# define F_SYM_ARITH(lower_case,upper_case) \
+ F_SYMBOL(c ## lower_case, C ## upper_case)
+#elif MUMPS_ARITH == MUMPS_ARITH_z
+# define F_SYM_ARITH(lower_case,upper_case) \
+ F_SYMBOL(z ## lower_case, Z ## upper_case)
+#endif
+#if 0
+#if MUMPS_ARITH == MUMPS_ARITH_s
# if defined(UPPER) || defined(MUMPS_WIN32)
# define F_SYM_ARITH(lower_case,upper_case) SMUMPS_##upper_case
# elif defined(Add_)
@@ -120,6 +134,7 @@
# define F_SYM_ARITH(lower_case,upper_case) zmumps_##lower_case
# endif
#endif
+#endif
#define MUMPS_F77 \
F_SYM_ARITH(f77,F77)
void MUMPS_CALL
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment