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
[email protected]
> On Jul 30, 2022, at 11:40 AM, Chris Jones <[email protected]> wrote:
>
>
>
>> On 30 Jul 2022, at 5:11 pm, Mark Brethen <[email protected]> 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
>> [email protected] <mailto:[email protected]>
>>
>>
>>
>>> On Jul 30, 2022, at 11:01 AM, Mark Brethen <[email protected]
>>> <mailto:[email protected]>> 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
>>>
>>>
>>>
>>