[MacPorts] #56137: ghostscript @9.23 builds incorrectly when updating
MacPorts
noreply at macports.org
Wed Mar 28 14:36:57 UTC 2018
#56137: ghostscript @9.23 builds incorrectly when updating
--------------------------+-----------------
Reporter: dstrubbe | Owner:
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: ghostscript |
--------------------------+-----------------
Comment (by ryandesign):
That looks good. I had tried `configure.ldflags-prepend -L.` which didn't
work, presumably because the build doesn't happen in the
`${worksrcpath}/sobin` directory. (Maybe it happens in the
`${worksrcpath}` directory.)
I've gotten far enough to understand:
* The `gsc` program (to which `gs` is a symlink) is built by the
`$(GSSOC_XE):` rule in unix-dll.mak.
* The `gsx` program is built by the `$(GSSOX_XE):` rule.
* They build using `$(GLCC) ... -L$(BINDIR) -l$(GS_SO_BASE)`.
* `BINDIR` is defined as `./$(BUILDDIRPREFIX)bin`.
* `BUILDDIRPREFIX` is set by the `so:` target in unix-dll.mak to
`$(SODIRPREFIX)`.
* `SODIRPREFIX` is defined in unix-dll.mak as `so`.
* `GS_SO_BASE` is defined as `gs`.
So `-L$(BINDIR) -l$(GS_SO_BASE)` is really `-Lsobin -lgs`.
* `GLCC` is defined in lib.mak as `$(CC_) $(GLCCFLAGS)`.
* `CC_` is defined in unix-gcc.mak as `$(CC) $(CCFLAGS)`.
* `CCFLAGS` is defined in unix-gcc.mak as `$(GENOPT) $(CAPOPT) $(CFLAGS)`.
* `CFLAGS` is defined in Makefile.in as `$(CFLAGS_STANDARD) $(GCFLAGS)
$(AC_CFLAGS) $(XCFLAGS) @CLUSTER_CFLAGS@`.
* `GCFLAGS` is defined in Makefile.in as `@CPPFLAGS@ @GCFLAGS@ @CFLAGS@
@LDFLAGS@ @HAVE_POPEN_PROTO@`.
* The `LDFLAGS` that MacPort specifies at configure time replace the
`@LDFLAGS` placeholder above.
So our `-L/opt/local/lib` is part of `$(GLCC)`; there's no opportunity to
move it to after `-L$(BINDIR)` where it belongs.
--
Ticket URL: <https://trac.macports.org/ticket/56137#comment:16>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list