Re: kbuild makefiles: "-y" versus "-objs"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 17 Nov 2007, Peter Teoh wrote:

> Quoted exactly from from Documentation/kbuild/makefiles.txt:
>
> On Nov 16, 2007 4:31 AM, Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:
> >
> >   ok, i know what this represents:
> >
> > =====
> > obj-$(CONFIG_RIO) += rio.o
> >
> > rio-objs := rio_linux.o rioinit.o rioboot.o riocmd.o rioctrl.o riointr.o \
> >             rioparam.o rioroute.o riotable.o riotty.o
> > =====
> >
> >   if the symbol RIO is tristate, then that feature can be selected
> > either as builtin or modular.  if builtin, all of those "rio-objs"
> object files will be created and added to the final vmlinux.  if
> > modular, then all of those object files are combined to create a final
> > rio.ko loadable module.  no problem.
> >
> >   but what about this?
> >
> > =====
> > obj-$(CONFIG_CIFS) += cifs.o
>
> > cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \
> >           link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o \
> >           md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o fcntl.o \
> >           readdir.o ioctl.o sess.o export.o cifsacl.o
> >
> > cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o
> > =====
> >
> >   the CIFS variable is also tristate, so it can be selected as either
> > builtin or modular.   but how does "cifs-y" differ from "cifs-objs"?
> > i'm surprised i've never noticed that before, and i'm just trying to
> > appreciate the functional difference.  thanks.
> >
>
>         Kbuild needs to know which the parts that you want to build your
>         module from, so you have to tell it by setting an
        $(<module_name>-objs) variable.
>
>         Kbuild recognises objects used for composite objects by the suffix
>         -objs, and the suffix -y. This allows the Makefiles to use
>         the value of a CONFIG_ symbol to determine if an object is part
>         of a composite object.
>
> My explanation of your question:  basically, depending on the CONFIG
> variable (CONFIG_CIFS_UPCALL), the module cifs.ko will depend or not
> depend on the module cifs_spnego.o - order of the above object files
> are important.

i don't think you understood my question.  i'm aware of the standard
technique of using the notation

  <modulename>-objs := ...o files ...

to show what goes into a composite module.  but if you look at that
cifs entry above, it uses "cifs-y" instead.  my question was whether
those two techniques are exactly equivalent.  look at the difference
between the rio entry and the cifs entry (both pulled verbatim out of
the tree), and tell me if there's a reason they use different
techniques to define the composite object.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux