diff --git a/french/aster/Makefile b/french/aster/Makefile index e39c63462a75..b7116ce818ea 100644 --- a/french/aster/Makefile +++ b/french/aster/Makefile @@ -1,433 +1,434 @@ PORTNAME= aster DISTVERSION= ${ASTER_DISTVERSION} -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= french cad MAINTAINER= thierry@FreeBSD.org COMMENT= Code_Aster finite element method solver WWW= http://www.code-aster.org/ LICENSE= GPLv2 NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc NOT_FOR_ARCHS_REASON= ARG_MAX is too small for Code_Aster on 32 bits systems #----------------------------------------------------------------------- # You may define these options: # # - WITH_ZSH or WITH_BASH or WITH_KSH: select a shell among # zsh (default), bash or ksh; # - WITH_ED: select an editor accepting '-display' (e.g. gvim, nedit); # - WITHOUT_ASTK_CLI: won't use the GUI from this machine; # - WITHOUT_GMSH: don't install GMSH (a mesh generator); # - WITHOUT_GRACE: don't install Grace (used to create 2D graph); # - WITH_MUMPS: install the interface between Code_Aster and MUMPS (experimental) # #----------------------------------------------------------------------- BUILD_DEPENDS+= astk-serveur>0:cad/astk-serveur \ ${SHELL_INSTALL_ASTER}:shells/${SHIADEP} \ gnproc:sysutils/coreutils \ bash:shells/bash \ getopt>0:misc/getopt \ xterm:x11/xterm \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR} # pylupdate5:textproc/py-qt5-xml -LIB_DEPENDS+= libhdf5.so:science/hdf5 \ +LIB_DEPENDS+= libhdf5-110.so:science/hdf5-110 \ libscotch.so:cad/scotch \ libmetis.so:math/metis \ libmed.so:french/med \ libAsterInterface.so:science/tfel-edf RUN_DEPENDS+= ${SHELL_INSTALL_ASTER}:shells/${SHIADEP} \ astk-serveur>0:cad/astk-serveur \ xterm:x11/xterm \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR} USES= bison blaslapack:openblas fortran gettext python:3.6+ qt:5 tk USE_BINUTILS= yes USE_QT= linguisttools:build #CONFLICTS_BUILD=${PYTHON_PKGNAMEPREFIX}cysignals-1.* HAS_CONFIGURE= yes +CFLAGS+= -I${LOCALBASE}/include/hdf5-110 MAKE_ENV= INCLUDES="${LOCALBASE}/include" \ INCLUDEDIR="${LOCALBASE}/include" \ LD_PRELOAD="${LOCALBASE}/lib/gcc${_GCC_VER}/libgcc_s.so.1" \ PYTHONPATH="${PYTHON_SITELIBDIR}:${LOCALBASE}/aster/ASTK/ASTK_SERV" \ PYTHONIOENCODING="utf-8" LANG=C LC_ALL="en_US.UTF-8" \ LINKFLAGS="${LDFLAGS}" LD_LIBRARY_PATH="${LOCALBASE}/lib/gcc${_GCC_VER}" REINPLACE_ARGS= -i "" BINARY_ALIAS= python=${PYTHON_CMD} VER= ${PORTVERSION:R} VE= ${VER:R} WRKSRC= ${WRKDIR}/${PORTNAME}-full-src-${VER} PLIST_SUB= VE=${VE} .if defined(WITHOUT_ASTK_CLI) SUB_FILES= pkg-message.sans-astk .else SUB_FILES= pkg-message .endif SUB_LIST= tools_dir=${tools_dir} INTERACTIVE_SCRIPTS= check_compilers.py setup.py .include "${.CURDIR}/../../french/aster/bsd.aster.mk" .include .if ${OPSYS} == FreeBSD && ${OSVERSION} < 1300068 BROKEN= a larger value of ARG_MAX is needed for Code_Aster, please upgrade your system .endif .if ${ARCH} == "i386" FLAGARCH= -DP_LINUX -DLINUX .else FLAGARCH= -DLINUX64 .endif .if defined(WITH_DEBUG) DEBUG_FLAGS= --debug CFLAGS+= -D__DEBUG_ALLOCATE__ FFLAGS+= -D__DEBUG_ALLOCATE__ MAKE_ENV+= FCFLAGS="-g ${FFLAGS:C|O2|O0|} -fno-tree-dse ${FLAGARCH}" .else MAKE_ENV+= FCFLAGS="${FFLAGS} -fno-tree-dse ${FLAGARCH}" .endif .if !defined(WITHOUT_ASTK_CLI) RUN_DEPENDS+= astk-client>0:cad/astk-client PLIST_SUB+= ASTK_CLIENT="" ASTKDIR=${ASTKDIR} .else PLIST_SUB+= ASTK_CLIENT="@comment " ASTKDIR="" .endif .if !defined(WITHOUT_GMSH) RUN_DEPENDS+= ${LOCALBASE}/bin/gmsh:cad/gmsh PLIST_SUB+= GMSH="" .else PLIST_SUB+= GMSH="@comment " .endif .if !defined(WITHOUT_GRACE) RUN_DEPENDS+= xmgrace:math/grace PLIST_SUB+= GRACE="" .else PLIST_SUB+= GRACE="@comment " .endif .if defined(WITH_BOOST) LIB_DEPENDS+= ${PY_BOOST} .endif .if !defined(WITH_MPI) MPISEQ= -lmpiseq MUMPSLIB= -L${LOCALBASE}/lib -ldmumps -lzmumps -lsmumps -lcmumps -lmumps_common -lpord ${MPISEQ} LIB_DEPENDS+= libmpiseq.so.5:math/mumps .else BUILD_DEPENDS+= ${LOCALBASE}/lib/libscalapack.a:math/scalapack MUMPSLIB= -L${LOCALBASE}/lib -ldmumps -lzmumps -lsmumps -lcmumps -lmumps_common -lpord -lscalapack -lexecinfo -L${LOCALBASE}/lib -lmpi LIB_DEPENDS+= libcmumps.so.5:math/mumps .endif .if defined(WITH_MPI) LIB_DEPENDS+= libmpi.so:net/mpich HOME_MPI= ${LOCALBASE} .endif .if defined(WITH_ZSH) SHIA= zsh .elif defined(WITH_BASH) SHIA= bash .elif defined(WITH_KSH) SHIA= ksh93 .elif exists(${LOCALBASE}/bin/zsh) SHIA= zsh .elif exists(${LOCALBASE}/bin/bash) SHIA= bash .elif exists(${LOCALBASE}/bin/ksh93) SHIA= ksh93 .else SHIA= zsh .endif SHIADEP= ${SHIA} .if !defined(WITH_ED) . if exists(${LOCALBASE}/bin/nedit) WITH_ED= nedit RUN_DEPENDS+= ${LOCALBASE}/bin/nedit:editors/nedit . elif exists(${LOCALBASE}/bin/gvim) WITH_ED= gvim RUN_DEPENDS+= ${LOCALBASE}/bin/gvim:editors/vim . elif exists(${LOCALBASE}/bin/emacs) WITH_ED= emacs RUN_DEPENDS+= ${LOCALBASE}/bin/emacs:editors/emacs . elif exists(${LOCALBASE}/bin/gedit) WITH_ED= gedit RUN_DEPENDS+= ${LOCALBASE}/bin/gedit:editors/gedit . elif exists(${LOCALBASE}/bin/xedit) WITH_ED= xedit RUN_DEPENDS+= ${LOCALBASE}/bin/xedit:x11/xedit . else WITH_ED= vi . endif .endif INST_DAT= elements INST_SH= as_run parallel_cp PFX2FIX= bin/as_run etc/codeaster/aster etc/codeaster/profile.sh \ ${VE}/aster.conf ${VE}/lib/aster/aster_pkginfo.py \ ${VE}/share/aster/CTestTestfile.cmake \ ${VE}/include/aster/asterf_config.h \ ${VE}/include/aster/asterc_config.h \ ${VE}/share/aster/execute_codeaster \ ${VE}/share/aster/config.txt ${VE}/share/aster/profile.sh POSTPY2FIX= post-patch-waf.engine post-patch-data__post_install POSTBASH2FIX= execute_codeaster create_install_script inst_dir= ${PREFIX}/${PORTNAME} tools_dir= ${PREFIX}/${PORTNAME}/outils tools= cmpfillin gpmetis graphchk m2gmetis mpmetis ndmetis gnuplot .if !defined(WITHOUT_GMSH) tools+= gmsh .endif .if !defined(WITHOUT_GRACE) tools+= gracebat xmgrace .endif v_ifdef= ${OPSYS:tu} SHELL_INSTALL_ASTER= ${LOCALBASE}/bin/${SHIA} tcl_dir= ${LOCALBASE} hdf_dir= ${LOCALBASE} lib_math= "-L${LOCALBASE}/lib ${BLASLIB} ${LAPACKLIB} -lscotch -lscotcherr" LASTKDIR?= ${PORTNAME}/ASTK/ASTK_CLIENT ASTKDIR= ${LOCALBASE}/${LASTKDIR} BASH2RC= products_data.py ExportPATH?= /tmp/maillages pre-configure: ${REINPLACE_CMD} -e 's|PREFER_SHARED_LIBS=False|PREFER_SHARED_LIBS=True|' \ -e 's|/opt/aster|${STAGEDIR}${inst_dir}|' ${WRKSRC}/setup.cfg ${REINPLACE_CMD} -e 's|?ASTER_ROOT?|${STAGEDIR}${inst_dir}|' \ ${WRKSRC}/products.py ${REINPLACE_CMD} -e "s|'gfortran'|'${FC}'|g;s|'gcc'|'${CC}'|g" \ -e "s|'g++'|'${CXX}'|g" ${WRKSRC}/check_compilers.py ${REINPLACE_CMD} -e "s|%%LOCALBASE%%|${LOCALBASE}|" \ -e "s|%%PYTHON_CMD%%|${PYTHON_CMD}|" \ -e "s|%%WRKDIR%%|${WRKDIR}|" ${WRKSRC}/as_setup.py .for sh in ${BASH2RC} ${REINPLACE_CMD} -e 's|/bin/bash|${SHELL_INSTALL_ASTER}|' ${WRKSRC}/${sh} .endfor ${REINPLACE_CMD} -e 's|%%PYTHON_ABIVER%%|${PYTHON_ABIVER}|' ${WRKSRC}/setup.py ${ECHO_CMD} "_install_hdf5 = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_med = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_tcl = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_tk = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_Pmw = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_Numeric = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_gmsh = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_gmsh2 = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_gibi = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_grace = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "XMGRACE = 'xmgrace'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_homard = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_eficas = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_astk = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_astk_serv = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_metis = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_mfront = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_mumps = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_omniORB = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_omniORBpy = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_pylotage = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_crpcrs = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_aster_Linux = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "_install_scotch = False" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "OPT_ENV = 'verbose=True'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "PYTHONPATH = '${PYTHON_SITELIBDIR}:${LOCALBASE}/aster/ASTK/ASTK_SERV'"\ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "PYTHON_INCLUDE = '${PYTHON_INCLUDEDIR}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_PYTHON = '${PYTHONBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "PYTHON_EXE = '${PYTHON_CMD}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_SCOTCH = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_METIS = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_GMSH = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_GIBI = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_HOMARD = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg - ${ECHO_CMD} "INCLUDEDIR = ['${LOCALBASE}/include', '${LOCALBASE}/include/metis', ]"\ + ${ECHO_CMD} "INCLUDEDIR = ['${LOCALBASE}/include/hdf5-110', '${LOCALBASE}/include', '${LOCALBASE}/include/metis', ]"\ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_MUMPS = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_MFRONT = '${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "MUMPSLIB = '${MUMPSLIB}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CC='${CC}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "gcc='${CC}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CXX='${CXX}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "LD='${FC}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "F90='${FC}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "MATHLIB='${lib_math} ${LDFLAGS} -lgfortran -lm -lkvm'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "OTHERLIB='-Xlinker -export-dynamic ${MPISEQ} -lc++ -lexecinfo -lutil -lpthread -lz'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "SYSLIB='-lpthread -lz'" >> ${WRKSRC}/setup.cfg .if defined(WITH_MPI) ${ECHO_CMD} "HOME_MPI = '${HOME_MPI}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "MPIRUN = 'mpirun'" >> ${WRKSRC}/setup.cfg .else ${ECHO_CMD} "HOME_MPI = ''" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "MPIRUN = ''" >> ${WRKSRC}/setup.cfg .endif ${ECHO_CMD} "HOME_ZMAT = ''" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_HDF='${hdf_dir}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_MED='${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "HOME_TCL_TK='${tcl_dir}'" >> ${WRKSRC}/setup.cfg .if defined(WITH_BOOST) ${ECHO_CMD} "HOME_BOOST='${LOCALBASE}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "LIBPATH_BOOST='${LOCALBASE}/lib'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "LIBNAME_BOOST='${PY_BOOST_LIB}'" >> ${WRKSRC}/setup.cfg .endif ${ECHO_CMD} "BLASLIB='${_BLASLIB}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "LAPACKLIB='lapack'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "GZIP='/usr/bin/gzip'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "SHELL_EXECUTION='${SHELL_INSTALL_ASTER}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "TERMINAL='xterm'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "EDITOR='${WITH_ED}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CXXFLAGS='${CXXFLAGS}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CXXFLAGS_DBG='${CXXFLAGS:C|-O2|--debug|}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "LDFLAGS='${LDFLAGS}'" >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "FFLAGS='-c ${FFLAGS} -fno-tree-dse ${FLAGARCH}'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "FFLAGS_DBG='-c -g ${FFLAGS:C|O2|O0|} -fno-tree-dse ${FLAGARCH}'" \ >> ${WRKSRC}/setup.cfg .if defined(WITH_MPI) ${ECHO_CMD} "F90FLAGS='-c ${FFLAGS} -fno-tree-dse ${FLAGARCH} -I${HOME_MPI}/include'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "F90FLAGS_DBG='-c -g ${FFLAGS:C|O2|O0|} -fno-tree-dse ${FLAGARCH} -I${HOME_MPI}/include'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CFLAGS='-c ${CFLAGS} ${FLAGARCH} -I${HOME_MPI}/include'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CFLAGS_DBG='-c -g -O -pipe ${FLAGARCH} -I${HOME_MPI}/include'" \ >> ${WRKSRC}/setup.cfg .else ${ECHO_CMD} "F90FLAGS='-c ${FFLAGS} -fno-tree-dse ${FLAGARCH}'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "F90FLAGS_DBG='-c -g ${FFLAGS:C|O2|O0|} -fno-tree-dse ${FLAGARCH}'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CFLAGS='-c ${CFLAGS} ${FLAGARCH}'" \ >> ${WRKSRC}/setup.cfg ${ECHO_CMD} "CFLAGS_DBG='-c -g -O -pipe ${FLAGARCH}'" \ >> ${WRKSRC}/setup.cfg .endif .for is in ${INTERACTIVE_SCRIPTS} ${REINPLACE_CMD} -e '/should_continue()/d' \ ${WRKSRC}/${is} .endfor ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py ${WRKSRC} @${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py ${WRKSRC} do-configure: (cd ${CONFIGURE_WRKSRC} \ && TMPDIR=${WRKDIR} ${MAKE_ENV} ${PYTHON_CMD} setup.py ${DEBUG_FLAGS} \ --prefix=${STAGEDIR}${inst_dir} test | tee ${CONFIGURE_LOG}) @${ECHO_MSG} "---------------- Debug ------------------" ${CAT} ${CONFIGURE_WRKSRC}/setup.log @${ECHO_MSG} "------------ Fin debug ------------------" post-configure: ${MKDIR} ${STAGEDIR}${inst_dir}/etc ${CP} -R ${LOCALBASE}/aster/etc/codeaster ${STAGEDIR}${inst_dir}/etc/ ${ECHO_CMD} "#?vers : VVV?" >> ${STAGEDIR}${inst_dir}/etc/codeaster/aster ${CP} -R ${LOCALBASE}/aster/ASTK/ASTK_SERV/bin \ ${LOCALBASE}/aster/ASTK/ASTK_SERV/asrun \ ${LOCALBASE}/aster/ASTK/ASTK_SERV/share \ ${STAGEDIR}${inst_dir} ${REINPLACE_CMD} -e 's|${LOCALBASE}/aster|${STAGEDIR}${inst_dir}|' \ ${STAGEDIR}${inst_dir}/bin/as_run ${MV} ${STAGEDIR}${inst_dir}/etc/codeaster/profile_astk.sh \ ${STAGEDIR}${inst_dir}/etc/codeaster/profile.sh .for sf in etc/codeaster/profile.sh asrun/installation.py ${REINPLACE_CMD} -e 's|${LOCALBASE}/aster/ASTK/ASTK_SERV|${STAGEDIR}${inst_dir}|g' \ -e 's|${LOCALBASE}/aster|${STAGEDIR}${inst_dir}|g' \ ${STAGEDIR}${inst_dir}/${sf} .endfor pre-build: ${MKDIR} ${WRKDIR}/post_patches ${CP} ${FILESDIR}/post-patch-* ${WRKDIR}/post_patches/ .for pp in ${POSTPY2FIX} ${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' ${WRKDIR}/post_patches/${pp} .endfor do-build: (cd ${BUILD_WRKSRC} && \ TMPDIR=${WRKDIR} ${MAKE_ENV} ${PYTHON_CMD} setup.py ${DEBUG_FLAGS} install aster \ --prefix=${STAGEDIR}${inst_dir} | tee ${BUILD_WRKSRC}/build.log) do-install: # build: already did the installation @${DO_NADA} post-install: .for f in ${PFX2FIX} ${REINPLACE_CMD} -e 's|${STAGEDIR}||g' ${STAGEDIR}${inst_dir}/${f} .endfor .for f in ${POSTBASH2FIX} ${REINPLACE_CMD} -e 's|/bin/bash|${LOCALBASE}/bin/bash|' \ ${STAGEDIR}${inst_dir}/${VE}/share/aster/${f} .endfor ${REINPLACE_CMD} -e 's|LINUX64|LINUX64, FREEBSD|' \ ${STAGEDIR}${inst_dir}/asrun/core/default_configuration.py (cd ${STAGEDIR}${PREFIX} && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ -d ${PREFIX} -f ${inst_dir:S|${PREFIX}/||}) (cd ${STAGEDIR}${PREFIX} && ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \ -d ${PREFIX} -f ${inst_dir:S|${PREFIX}/||}) ${CP} -p ${STAGEDIR}${inst_dir}/${VE}/bin/aster \ ${STAGEDIR}${inst_dir}/${VE}/bin/asterd ${STRIP_CMD} ${STAGEDIR}${inst_dir}/${VE}/bin/aster ${SED} -e 's|%%VER%%|${VE}|' < ${FILESDIR}/astout.export \ > ${STAGEDIR}${inst_dir}/${VE}/astout.export (cd ${STAGEDIR}${inst_dir} && \ ${LN} -fs ${VE} ${STAGEDIR}${inst_dir}/STA${VE}) .for conf in config.txt profile.sh (cd ${STAGEDIR} && ${LN} -fs ${inst_dir}/${VE}/share/aster/${conf} \ ${STAGEDIR}${inst_dir}/STA${VE}/${conf}) .endfor ${MKDIR} ${STAGEDIR}${tools_dir} .for outil in ${tools} ${LN} -fs ${LOCALBASE}/bin/${outil} ${STAGEDIR}${tools_dir}/${outil} .endfor .if !defined(WITHOUT_ASTK_CLI) ${MKDIR} ${STAGEDIR}${PREFIX}/aster/ASTK/ASTK_SERV/etc/codeaster/astkrc ${LN} -fs ${ASTKDIR}/etc/astkrc/* \ ${STAGEDIR}${PREFIX}/aster/ASTK/ASTK_SERV/etc/codeaster/astkrc . for outil in astk bsf ${LN} -fs ${ASTKDIR}/bin/${outil} ${STAGEDIR}${tools_dir}/${outil} . endfor .endif ${MKDIR} ${WRKDIR}/AvoidConflictWithASTK .for f in aster.install_${VE} profile.sh ${MV} ${STAGEDIR}${inst_dir}/etc/codeaster/${f} ${WRKDIR}/AvoidConflictWithASTK/ .endfor ${RM} -r ${STAGEDIR}${inst_dir}/etc/codeaster/* .for f in aster.install_${VE} profile.sh ${MV} ${WRKDIR}/AvoidConflictWithASTK/${f} ${STAGEDIR}${inst_dir}/etc/codeaster/ .endfor .for f in aster_pkginfo.cpython-${PYTHON_SUFFIX}.pyc aster_pkginfo.cpython-${PYTHON_SUFFIX}.opt-1.pyc ${RM} ${STAGEDIR}${inst_dir}/${VE}/lib/aster/__pycache__/${f} .endfor ${FIND} ${STAGEDIR}${PREFIX} -name "*.bak" -delete .if defined(MAINTAINER_MODE) regression-test: install @${ECHO_MSG} "Note: homard must be installed to run some steps succesfully." ${MKDIR} ${ExportPATH} ${CP} ${inst_dir}/${VE}/astout.export /tmp/ (cd ${inst_dir}/${VE} && \ ${LOCALBASE}/aster/bin/as_run --list --all --vers=${VE} \ --filter='"I" not in testlist' -o /tmp/list_seq ) (cd /tmp && \ ${LOCALBASE}/aster/bin/as_run astout.export) || ${TRUE} @${ECHO_MSG} "Check /tmp/resu_test/NOOK" .endif .include diff --git a/french/aster/files/patch-as_setup.py b/french/aster/files/patch-as_setup.py index 2175b43e8fb3..cb6459f293d7 100644 --- a/french/aster/files/patch-as_setup.py +++ b/french/aster/files/patch-as_setup.py @@ -1,108 +1,116 @@ --- as_setup.py.orig 2020-10-26 15:54:27 UTC +++ as_setup.py -@@ -45,6 +45,8 @@ import tarfile +@@ -45,6 +45,8 @@ import pprint import compileall import imp import pprint +import fileinput +import string import distutils.sysconfig as SC from functools import partial from subprocess import Popen, PIPE @@ -411,6 +413,7 @@ class SETUP: archive filename !), extract_as : rename content. """ + from as_setup import (SYSTEM) self._print(self._fmt_title % _('Extraction')) if kargs.get('external')!=None: self._call_external(**kargs) -@@ -518,6 +521,88 @@ class SETUP: +@@ -518,6 +521,96 @@ class SETUP: os.chdir(prev) if iextr_as: self.Clean(to_delete=path) + + # Insert FreeBSD patches here + file2patch = os.path.join(self.workdir, self.content, 'bibc/wscript') + self._print('FreeBSD patch: no libdl => modify ' + file2patch) + for ligne in fileinput.input(file2patch, inplace=1): + nl = 0 + nl = ligne.find("uselib_store='SYS', lib='dl'") + if nl > 0: + ligne =ligne.replace("self.check_cc", "# self.check_cc") + sys.stdout.write(ligne) ++ file2patch = os.path.join(self.workdir, self.content, 'waftools/med.py') ++ self._print('FreeBSD patch: use hdf5-110 ' + file2patch) ++ for ligne in fileinput.input(file2patch, inplace=1): ++ nl = 0 ++ nl = ligne.find("self.env.INCLUDEDIR, 'hdf5'") ++ if nl > 0: ++ ligne =ligne.replace("'hdf5'", "'hdf5-110'") ++ sys.stdout.write(ligne) + # file2patch = os.path.join(self.workdir, self.content, 'bibcxx/wscript') + # self._print('FreeBSD patch: explicit link with libc++ required since Gcc 4.9 => modify ' + file2patch) + # for ligne in fileinput.input(file2patch, inplace=1): + # nl = 0 + # nl = ligne.find("uselib_store='CXX', lib='stdc++'") + # if nl > 0: + # ligne =ligne.replace("lib='stdc++'", "lib='c++ stdc++'") + # sys.stdout.write(ligne) + file2patch = os.path.join(self.workdir, self.content, 'waftools/scotch.py') + self._print('FreeBSD patch: int64_t missing => modify ' + file2patch) + for ligne in fileinput.input(file2patch, inplace=1): + nl = 0 + nl = ligne.find('include "scotch.h"') + if nl > 0: + sys.stdout.write("#include \n") + nl = 0 + nl = ligne.find("stdio.h stdlib.h scotch.h") + if nl > 0: + ligne =ligne.replace("stdlib.h", "stdlib.h sys/types.h") + sys.stdout.write(ligne) + file2patch = os.path.join(self.workdir, self.content, 'bibc/utilitai/hpalloc.c') + self._print('FreeBSD patch: stdlib + no mallopt => modify ' + file2patch) + for ligne in fileinput.input(file2patch, inplace=1): + nl = 0 + nl = ligne.find('ir=mallopt') + if nl > 0: + ligne =ligne.replace('ir=mallopt', '/* ir=mallopt') + ligne =ligne.replace(');', '); */') + else: + nl = ligne.find("malloc.h") + if nl > 0: + ligne =ligne.replace("malloc.h", "stdlib.h") + sys.stdout.write(ligne) + system=SYSTEM({ 'verbose' : True, 'debug' : False }, + **{'maxcmdlen' : 2**31, 'log' : self}) + file2patch = os.path.join(self.workdir, self.content, 'waf.main') + self._print('FreeBSD patch: remove extraneous escape => modify waf.main') + for ligne in fileinput.input(file2patch, inplace=1): + nl = ligne.find("\main$") + if nl > 0: + ligne =ligne.replace("\main$", "main$") + sys.stdout.write(ligne) + for f2p in ('waf', 'waf.main', 'waf_variant', 'waf_std', 'waf_mpi', 'bibpyt/Macro/macr_ecre_calc_ops.py'): + file2patch = os.path.join(self.workdir, self.content, f2p) + self._print('FreeBSD patch: /bin/bash + GNU getopt => modify ' + file2patch) + for ligne in fileinput.input(file2patch, inplace=1): + nl = 0 + nl = ligne.find("/bin/bash") + if nl > 0: + ligne =ligne.replace("/bin/bash", " %%LOCALBASE%%/bin/bash") + sys.stdout.write(ligne) + for ligne in fileinput.input(file2patch, inplace=1): + nl = 0 + nl = ligne.find("getopt ") + if nl > 0: + ligne =ligne.replace("getopt ", "%%LOCALBASE%%/bin/getopt ") + sys.stdout.write(ligne) + self._print('FreeBSD patches: waf.engine and data/post_install in %s' % os.path.join(self.workdir, self.content)) + os.system('cd ' + os.path.join(self.workdir, self.content) + ' && patch -p0 < %%WRKDIR%%/post_patches/post-patch-waf.engine') + os.system('cd ' + os.path.join(self.workdir, self.content) + ' && patch -p0 < %%WRKDIR%%/post_patches/post-patch-data__post_install') + self._print('FreeBSD patches: memory detection in bibc/utilitai/mempid.c in %s' % os.path.join(self.workdir, self.content)) + os.system('cd ' + os.path.join(self.workdir, self.content) + ' && patch -p0 < %%WRKDIR%%/post_patches/post-patch-bibc__utilitai__mempid.c') + os.system('cd ' + os.path.join(self.workdir, self.content) + ' && patch -p0 < %%WRKDIR%%/post_patches/post-patch-bibc__supervis__aster_utils.c') + file2patch = os.path.join(self.workdir, self.content, 'waftools/mathematics.py') + self._print('FreeBSD patch: nproc => gnproc ' + file2patch) + for ligne in fileinput.input(file2patch, inplace=1): + nl = 0 + nl = ligne.find("'nproc'") + if nl > 0: + ligne =ligne.replace("'nproc'", "'gnproc'") + sys.stdout.write(ligne) + # End of FreeBSD patches #------------------------------------------------------------------------------- def Configure(self, **kargs): diff --git a/french/aster/files/patch-products.py b/french/aster/files/patch-products.py index 8716b06abfe5..e6c402ae1fe0 100644 --- a/french/aster/files/patch-products.py +++ b/french/aster/files/patch-products.py @@ -1,22 +1,55 @@ --- products.py.orig 2020-10-26 15:54:27 UTC +++ products.py -@@ -658,7 +658,8 @@ def setup_mumps(dep, summary, **kargs): +@@ -136,8 +136,8 @@ def setup_hdf5(dep, summary, **kargs): + + actions=( + ('IsInstalled', { 'filename' : +- [osp.join('__setup.installdir__', 'lib', 'libhdf5.a'), +- osp.join('__setup.installdir__', 'include', 'hdf5.h')] ++ [osp.join('__setup.installdir__', 'lib', 'libhdf5-110.a'), ++ osp.join('__setup.installdir__', 'include/hdf5-110', 'hdf5.h')] + } ), + ('Extract' , {}), + # gcc>=4.9 not supported by configure, should not use -ansi +@@ -651,14 +651,15 @@ def setup_mumps(dep, summary, **kargs): + ('Configure', { + 'command' : '%(PYTHON_ALIAS)s ; CC=%(CC)s FC=%(F90)s ' + 'LIBPATH="%(HOME_SCOTCH)s/lib %(HOME_METIS)s/lib" ' +- 'INCLUDES="%(HOME_SCOTCH)s/include %(HOME_METIS)s/include" ' ++ 'INCLUDES="%(HOME_HDF)s/include/hdf5-110 %(HOME_SCOTCH)s/include %(HOME_METIS)s/include" ' + 'OPTLIB_FLAGS="%(MATHLIB)s %(OTHERLIB)s" ' +- './waf configure --maths-libs="" ' ++ './waf configure --maths-libs="" --hdf5-libs="hdf5-110"' + ' --prefix=%(HOME_MUMPS)s --install-tests' % cfg, 'capturestderr' : False, }), ('Make' , { - 'command' : '%(PYTHON_ALIAS)s ; ./waf build --jobs=1' % cfg, + # Work-around on FreeBSD: MAKE_JOBS_UNSAFE + -vvv to get full logs in setup.dbg + 'command' : '%(PYTHON_ALIAS)s ; ./waf build -vvv --jobs=1' % cfg, 'capturestderr' : False, }), ('Install', { @@ -718,7 +719,8 @@ def setup_aster(dep, summary, **kargs): 'HOME_MED', 'HOME_HDF', 'HOME_MFRONT', 'HOME_BOOST', 'LIBPATH_BOOST', 'LIBNAME_BOOST', #'HOME_GMSH', 'HOME_HOMARD', optional - 'LD', 'CC', 'F90', 'CXXLIB', 'OTHERLIB', 'SYSLIB', ], + 'LD', 'CC', 'F90', 'CXXLIB', 'OTHERLIB', 'SYSLIB', 'CFLAGS', 'LDFLAGS', + 'CFLAGS_DBG', 'FFLAGS', 'FFLAGS_DBG','F90FLAGS', 'F90FLAGS_DBG', 'CXXLIB', ], set=['LIBPATH_HDF', 'LIBPATH_MED', 'LIBPATH_METIS', 'LIBPATH_SCOTCH', 'LIBPATH_MUMPS', 'LIBPATH_MFRONT'], reqobj=['file:?ASTER_ROOT?/bin/as_run', +@@ -736,9 +738,9 @@ def setup_aster(dep, summary, **kargs): + os.environ['DEVTOOLS_COMPUTER_ID'] = cfg['DEVTOOLS_COMPUTER_ID'] + if cfg['ASTER_NUMVERS'] < (15, 2): + WAF_ENV = "" +- WAF_CONFIGURE = ("./waf configure" +- " --use-config=aster_full_config" +- " --install-tests --prefix=%(ASTER_VERSION_DIR)s") ++ WAF_CONFIGURE = ('./waf configure' ++ ' --use-config=aster_full_config --hdf5-libs="hdf5-110"' ++ ' --install-tests --prefix=%(ASTER_VERSION_DIR)s') + else: + WAF_ENV = ". env.d/aster_full_std.sh ; " + WAF_CONFIGURE = ("./waf configure" diff --git a/french/aster/files/patch-products__data.py b/french/aster/files/patch-products__data.py index 9c8798c1d5f9..cdecfc5160f3 100644 --- a/french/aster/files/patch-products__data.py +++ b/french/aster/files/patch-products__data.py @@ -1,13 +1,26 @@ --- products_data.py.orig 2020-10-26 15:54:27 UTC +++ products_data.py -@@ -130,10 +130,8 @@ def configure(self): - '%(HOME_HDF)s/include', +@@ -48,7 +48,7 @@ export LIBPATH_HDF5="%(LIBPATH_HDF)s" + export PYPATH_ASRUN="%(ASTER_ROOT)s/lib/python%(PYTHON_XY)s/site-packages" + + export LIBPATH_HDF5="%(LIBPATH_HDF)s" +-export INCLUDES_HDF5="%(HOME_HDF)s/include" ++export INCLUDES_HDF5="%(HOME_HDF)s/include/hdf5-110" + + export LIBPATH_MED="%(LIBPATH_MED)s" + export INCLUDES_MED="%(HOME_MED)s/include" +@@ -127,13 +127,11 @@ def configure(self): + ]) + + self.env.append_value('INCLUDES', [ +- '%(HOME_HDF)s/include', ++ '%(HOME_HDF)s/include/hdf5-110', '%(HOME_MED)s/include', '%(HOME_MUMPS)s/include', - '%(HOME_MUMPS)s/include_seq', '%(HOME_METIS)s/include', '%(HOME_SCOTCH)s/include', - '%(HOME_MFRONT)s/include', ]) self.env['OPTLIB_FLAGS'] = %(MATHLIB)r.split() \ diff --git a/french/aster/files/pkg-message.in b/french/aster/files/pkg-message.in index 681be696d208..74acde3ab3b0 100644 --- a/french/aster/files/pkg-message.in +++ b/french/aster/files/pkg-message.in @@ -1,11 +1,11 @@ [ { type: install message: <