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.bret...@gmail.com



> On Jul 30, 2022, at 11:40 AM, Chris Jones <jon...@hep.phy.cam.ac.uk> wrote:
> 
> 
> 
>> On 30 Jul 2022, at 5:11 pm, Mark Brethen <mark.bret...@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.bret...@gmail.com <mailto:mark.bret...@gmail.com>
>> 
>> 
>> 
>>> On Jul 30, 2022, at 11:01 AM, Mark Brethen <mark.bret...@gmail.com 
>>> <mailto:mark.bret...@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
>>> 
>>> 
>>> 
>> 

Reply via email to