NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: default make rules
On Tue, Sep 18, 2012 at 8:25 PM, James K. Lowden
<jklowden%schemamania.org@localhost> wrote:
> How does make compose CXXFLAGS and LDFLAGS by default?
>
> $ touch src.C
> $ CXXFLAGS=cxxflags LDFLAGS=ldflags make -n src
> c++ cxxflags ldflags -o src src.C
>
> In general that's not good because the linker options need to follow
> the source filename on the command line. Otherwise at least some
> symbols will be missed sometimes.
Nope. What need to follow the source filename are the libraries, no
the linker options. That's why there usually is a LIBS variable
(LDLIBS in NetBSD) that contains the -l and .a arguments, and LDFLAGS
contains only things like -L or rpaths.
> AFAICT this is controlled by /usr/share/mk/sys.mk:
>
> LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
But this is later used as:
${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
--
Julio Merino / @jmmv
Home |
Main Index |
Thread Index |
Old Index