html and postscript viewer

Joshua Root jmr at macports.org
Sat Apr 2 02:45:25 PDT 2016


Sounds like they could use some help with their code. If you want to 
make your own version of a function like abs that behaves differently to 
the stdlib one, defining a macro with the same name is not the way to go 
about it. It's likely to misbehave regardless of which compiler you use, 
just because of the way C preprocessing works.

Have you tried just compiling with clang and seeing what happens?

- Josh

On 2016-4-2 18:04 , Mark Brethen wrote:
>  From their installation guide:
>
> For the compilation of cgx, therefore, the unmodified GCC 4.9 is
> required because the modified (by Apple) GCC for several reasons is not
> suitable for the compilation of cgx … The modified GCC includes the
> individual compilers: gcc (GNU c compiler), g++ and clang. Because the
> modified GCC has a problem with function overloading it is not suitable
> for the 2compilation of cgx.
>
> 2In particular, the compilation of function: #define abs(x) ((x) >= 0 ?
> (x) : -(x)) in the cgx-routine: “extUtil.h“ causes a compiler error. A
> bug fix for the compiler was not available at the time the installation
> of cgx was tested.
>
>
> I have looked at that link but it doesn’t explain how, for example, to
> set a default compiler. The compilers group gives more instruction, but
> it’s not completely clear to me. I guess something like
>
> compilers.choose    cc cxx cpp
> configure.cc <http://configure.cc> macports-gcc-4.9
>
>
>> On Apr 1, 2016, at 11:59 PM, Ryan Schmidt <ryandesign at macports.org
>> <mailto:ryandesign at macports.org>> wrote:
>>
>>> On Apr 1, 2016, at 23:03, Mark Brethen <mark.brethen at gmail.com
>>> <mailto:mark.brethen at gmail.com>> wrote:
>>>
>>> I’ve run into a snag building calculix. glut and libSNL are libraries
>>> that calculix uses. I set
>>>
>>> "compiler.whitelist      macports-gcc-4.9”
>>>
>>> per the developers instructions.
>>
>> Why? We usually do not want to use FSF GCC.
>>
>>> However there isn’t a configure so I’m not sure what else needs to be
>>> passed.
>>>
>>> subport ${name}-cgx {
>>>   revision                0
>>>   master_sites http://www.dhondt.de/
>>>   distname                cgx_${version}.all
>>>
>>>   checksums               rmd160
>>>  02302101f16c2b4cdd570e81986cc4d36c2110d8 \
>>>       sha256
>>> 64810dab1c22152c7946282fac5763cc36b9e31e309f962c23b8bf8238537c7e
>>>
>>>   depends_run-append      port:openbrowser
>>>
>>>   worksrcdir              CalculiX
>>>   build.dir               ${worksrcpath}/cgx_${version}/src
>>>   build.target
>>>
>>>   compiler.whitelist      macports-gcc-4.9
>>>
>>>   patchfiles              patch-cgx-build.diff \
>>>       patch-libSNL-build.diff
>>>   patch.dir               ${workpath}
>>>
>>>   post-patch {
>>>       reinplace "s|@@PREFIX@@|${prefix}|g" \
>>>           ${worksrcpath}/cgx_${version}/src/cgx.h
>>>   }
>>>
>>>   use_configure           no
>>>
>>> livecheck.regex         {ccx_${version}.all}
>>> }
>>
>> When you set "use_configure no", you must add code to use the right
>> compiler and -arch flags and offer a universal variant. See:
>>
>> https://trac.macports.org/wiki/UsingTheRightCompiler
>



More information about the macports-dev mailing list