SPOOLES MT routines

Mark Brethen mark.brethen at gmail.com
Fri Aug 5 19:32:41 UTC 2022


Need to build spooles library before CalculiX-ccx:

pre-build {
    set cflags  "${configure.cflags} [get_canonical_archflags cc]"
    set ldflags "${configure.ldflags} [get_canonical_archflags ld]"
    
    # workaround for Rank mismatch between actual argument
    set ver [regsub -all {[[:alpha:]]+} ${compilers.gcc_default} {}]

    if { ${ver} >= 10 } {
        set fflags "${configure.fflags} [get_canonical_archflags fc] -fallow-argument-mismatch"
    } else {
        set fflags "${configure.fflags} [get_canonical_archflags fc]"
    }

    set args    "CFLAGS=${cflags} FFLAGS=${fflags} LDFLAGS=${ldflags}"

    build.args-append   ${args}
    
    # Build serial spooles library
    ui_info "Building spooles"
    system -W ${workpath}/spooles.2.2 "${args} ${build.cmd} lib"
    
    # Extend library with multi-threading (MT) subroutines
    system -W ${workpath}/spooles.2.2/MT/src "${args} ${build.cmd} makeLib"
}


:info:build Building spooles
:debug:build system -W /opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/spooles.2.2: CFLAGS=-Os -arch x86_64 FFLAGS=-Os -m64 -fallow-argument-mismatch LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath,/opt/local/lib/libgcc -arch x86_64 /usr/bin/make lib
:info:build sh: -arch: command not found

It worked when I patched the makefile with the flags, but these should probably be passed at build. What did I miss?

Mark Brethen
mark.brethen at gmail.com



> On Jul 30, 2022, at 11:40 AM, Chris Jones <jonesc at hep.phy.cam.ac.uk> wrote:
> 
> 
> 
>> On 30 Jul 2022, at 5:11 pm, Mark Brethen <mark.brethen at gmail.com> wrote:
>> 
>> Now that I think about it, a subport would not work since the ccx makefile expects spooles.a in its workpath.
> 
> No, it would still be perfectly fine. Just make the subport a build dependency, and then pre-build just copy the static library from wherever the subport installs it, to where ever it needs to be in the work path. Ugly, it would be better to just point the makefile at the installed lib, but if it really has to have it in a certain place that can be accommodated.
> 
>> 
>> 
>> Mark Brethen
>> mark.brethen at gmail.com <mailto:mark.brethen at gmail.com>
>> 
>> 
>> 
>>> On Jul 30, 2022, at 11:01 AM, Mark Brethen <mark.brethen at gmail.com <mailto:mark.brethen at gmail.com>> wrote:
>>> 
>>> For the basic installation of CalculiX-ccx the library spooles.a with the single- and multi-threading (MT) routines of SPOOLES is required. Currently I have defined a pre-build phase for spooles, although a subport could work.There are some entries in its makefile that will need to be patched:
>>> 
>>> #
>>> #---------------------------------------------------------------------
>>> #
>>> #  MPI install library
>>> #
>>> # MPI_INSTALL_DIR = 
>>>   MPI_INSTALL_DIR = /usr/local/mpich-1.0.13
>>> #
>>> #---------------------------------------------------------------------
>>> #
>>> #  MPI library path
>>> #
>>> # for sgi
>>> #
>>> # MPI_LIB_PATH = 
>>> #
>>> # for solaris
>>> #
>>>   MPI_LIB_PATH = -L$(MPI_INSTALL_DIR)/lib/solaris/ch_p4
>>> #
>>> # for hp
>>> #
>>> # MPI_LIB_PATH = 
>>> #
>>> #---------------------------------------------------------------------
>>> #
>>> #  MPI libraries 
>>> #
>>> # for solaris
>>> #
>>>   MPI_LIBS = $(MPI_LIB_PATH) -D_REENTRANT -lmpi -lsocket -lnsl -lthread
>>> #
>>> # for sgi
>>> #
>>> # MPI_LIBS = $(MPI_LIB_PATH) -lmpi -lpthread 
>>> #
>>> # for hp
>>> # MPI_LIBS = -lpthread
>>> # MPI_LIBS = $(MPI_LIB_PATH) -lpthread 
>>> #
>>> #---------------------------------------------------------------------
>>> #
>>> #  MPI include path
>>> #
>>> # MPI_INCLUDE_DIR = 
>>>   MPI_INCLUDE_DIR = -I$(MPI_INSTALL_DIR)/include
>>> #
>>> #---------------------------------------------------------------------
>>> 
>>> The spooles.a library source is packaged with ccx and static linked. Would a build dependency on mpich suffice? 
>>> 
>>> Thanks,
>>> Mark
>>> 
>>> 
>>> 
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20220805/c98e9af7/attachment-0001.htm>


More information about the macports-dev mailing list