So, moving from a post-patch CFLAGS, etc to a pre-build build.args CalculiX now does not build. So I compared them.

Post-Patch:
:info:build Executing:  cd "/opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/ccx_2.18/src" && /usr/bin/make -j1 -w 
:debug:build system:  cd "/opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/ccx_2.18/src" && /usr/bin/make -j1 -w 
:info:build make: Entering directory `/opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/ccx_2.18/src'
:info:build /opt/local/bin/mpicc-mpich-mp -Wall -O2 -pthread -Os -arch x86_64 -I../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DUSE_MT=1 -DBLAS_LIBRARIES=vecLibFort -DLAPACK_LIBRARIES=vecLibFort -c ccx_2.18.c

Pre-Build:
:info:build Executing:  cd "/opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/ccx_2.18/src" && /usr/bin/make -j1 -w 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" 
:debug:build system:  cd "/opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/ccx_2.18/src" && /usr/bin/make -j1 -w 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" 
:info:build make: Entering directory `/opt/local/var/macports/build/_Users_marbre_ports_cad_CalculiX-ccx/CalculiX-ccx/work/ccx_2.18/src'

Note that the pre-build approach is overriding the makefile cflags, makefile was patched to cflags += , etc. How do I prevent this?


post-patch log is 1.8 MB — not uploaded

Attachment: Portfile
Description: Binary data

Attachment: Portfile.new
Description: Binary data

Attachment: patch-ccx-build.diff
Description: Binary data

Attachment: patch-spooles-make.inc.diff
Description: Binary data




On Aug 5, 2022, at 3:04 PM, Ryan Schmidt <ryandes...@macports.org> wrote:

On Aug 5, 2022, at 14:32, Mark Brethen wrote:

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?

Quoting?

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


Reply via email to