# HG changeset patch # User gedeone-octave # Date 1394441936 0 # Node ID 5292e0614efcfba24c882bed3a0471b52785c979 # Parent a28b50969020c7b40b39df37ee6584b0fa619a7a New patches submitted from eg123 for the automatization of the configuration process. Use of pkg-config to find dolfin and eigen3 includes and libs * src/Makefile.in: make variables (CPPFLAGS, LDFLAGS, LIBS) are defined substituting the Autoconf ones * src/configure.ac: dolfin and eigen3 compile and link flags are looked for through pkg-config macros * DESCRIPTION: added pkg-config as a build-dependency configure fails if dependencies are not met. diff -r a28b50969020 -r 5292e0614efc DESCRIPTION --- a/DESCRIPTION Wed Mar 05 11:59:02 2014 +0000 +++ b/DESCRIPTION Mon Mar 10 08:58:56 2014 +0000 @@ -5,9 +5,9 @@ Maintainer: Marco Vassallo Title: fem-fenics Description: pkg for the resolution of partial differential equation based on fenics -Depends: octave (>= 3.7.5) +Depends: octave (>= 3.8.0) SystemRequirements: dolfin (>=1.3.0), ffc (>=1.3.0) -BuildRequirements: dolfin (>=1.3.0), ffc (>=1.3.0) +BuildRequirements: dolfin (>=1.3.0), ffc (>=1.3.0), pkg-config Autoload: no License: GPLv3+ Url: http://octave.sf.net diff -r a28b50969020 -r 5292e0614efc src/Makefile.in --- a/src/Makefile.in Wed Mar 05 11:59:02 2014 +0000 +++ b/src/Makefile.in Mon Mar 10 08:58:56 2014 +0000 @@ -1,6 +1,10 @@ MKOCTFILE ?= mkoctfile FFC ?= ffc +CPPFLAGS=@DENSE_CPPFLAGS@ @DOLFIN_CPPFLAGS@ @EIGEN_CPPFLAGS@ +LDFLAGS=@EIGEN_LDFLAGS@ @DOLFIN_LDFLAGS@ +LIBS=@EIGEN_LIBS@ @DOLFIN_LIBS@ + OCTFILES= Mesh.oct \ DirichletBC.oct \ Expression.oct \ diff -r a28b50969020 -r 5292e0614efc src/configure.ac --- a/src/configure.ac Wed Mar 05 11:59:02 2014 +0000 +++ b/src/configure.ac Mon Mar 10 08:58:56 2014 +0000 @@ -1,11 +1,13 @@ AC_PREREQ([2.67]) -AC_INIT([Msh Package], [1.0]) +AC_INIT([Fem-fenics Package], [0.0.1]) AC_USE_SYSTEM_EXTENSIONS AC_PROG_CXX AC_LANG(C++) +PKG_PROG_PKG_CONFIG + # Get Dense include locations AC_ARG_WITH([eigen-includedir], [AS_HELP_STRING([--with-eigen-includedir=DIR], @@ -15,30 +17,46 @@ AC_SUBST(DENSE_CPPFLAGS) echo $DENSE_CPPFLAGS -CPPFLAGS="$DENSE_CPPFLAGS $CPPFLAGS" +## Check for Eigen +AC_MSG_CHECKING([for eigen3]) + +EIGEN_CPPFLAGS= +EIGEN_LDFLAGS= +EIGEN_LIBS= -# Check for Dense and dolfin -have_dense_ok=no -AC_CHECK_HEADERS([Eigen/Dense],[have_dense_ok=yes;break],[],[]) +PKG_CHECK_EXISTS([eigen3], + [EIGEN_CPPFLAGS=`$PKG_CONFIG --cflags-only-I eigen3` + EIGEN_LDFLAGS=`$PKG_CONFIG --libs-only-L eigen3` + EIGEN_LIBS=`$PKG_CONFIG --libs-only-l eigen3` + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([eigen3 required to install $PACKAGE_NAME])] + ) + +AC_SUBST(EIGEN_CPPFLAGS) +AC_SUBST(EIGEN_LDFLAGS) +AC_SUBST(EIGEN_LIBS) -if test $have_dense_ok = no; then - AC_MSG_WARN([Dense headers could not be found, - some functionalities will be disabled, - don't worry your package will still be - working, though.]) -fi +## Check for dolfin +AC_MSG_CHECKING([for dolfin]) + +DOLFIN_CPPFLAGS= +DOLFIN_LDFLAGS= +DOLFIN_LIBS= -have_dolfin_ok=no -AC_CHECK_HEADERS([dolfin.h], [have_dolfin_ok=yes; break], [], - [#ifdef HAVE_DOLFIN_H - #include - #endif]) -if test $have_dolfin_ok = no; then - AC_MSG_WARN([dolfin headers could not be found, - some functionalities will be disabled, - don't worry your package will still be - working, though.]) -fi +PKG_CHECK_EXISTS([dolfin], + [DOLFIN_CPPFLAGS=`$PKG_CONFIG --cflags-only-I dolfin` + DOLFIN_LDFLAGS=`$PKG_CONFIG --libs-only-L dolfin` + DOLFIN_LIBS=`$PKG_CONFIG --libs-only-l dolfin` + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([dolfin required to install $PACKAGE_NAME])] + ) + +AC_SUBST(DOLFIN_CPPFLAGS) +AC_SUBST(DOLFIN_LDFLAGS) +AC_SUBST(DOLFIN_LIBS) + AC_CHECK_PROG([HAVE_FFC], [ffc], [yes], [no]) if [test $HAVE_FFC = "no"]; then