Maybe you can try this makefile: obj-m += sub-a/ obj-m += sub-b/ obj-m += yourmodule.o
yourmodule-objs := sub-a/a_sub_module.o sub-b/b_sub_module.o -zhanrk --- Song Wang <[EMAIL PROTECTED]> 的正文:> Hi, Sam > > Thanks for the reply. > > However, in the way you indicate, the > mainmodule and each submodule will be built > as separate kernel modules. You will get > mainmodule.ko, a_sub_module.ko, b_sub_module.ko etc. > > This is not what I tried to get. I tried to > build a single kernel module, which means that > mainmodule.o, a_sub_module.o, b_sub_module.o > should be linked together to produce the single > module. > > This will be convenient, for instance, for > distribution because you need only to distribute one > kernel module instead of a long list of modules. > > -Song > > > --- Sam Ravnborg <[EMAIL PROTECTED]> wrote: > > On Fri, Jul 02, 2004 at 04:47:35PM -0700, Song > Wang > > wrote: > > > Hi, Folks > > > > > > I'm puzzled by the kbuild system in 2.6 kernel. > > > I want to write a kernel module, which consists > of > > > several components. The module is produced by > > > linking these components. These components are > > located > > > in separate subdirectories (for example A, B,C). > > > > Each component is generated also by linking > > > multiple files. (For example, a_1.c, a_2.c for > > > building A.o, b_1.c, b_2.c for building B.o, > then > > A.o > > > and B.o > > > should be linked to produce mymodule.o) > > > > > > I know if I put all the files in a single > > directory > > > The makefile of the module looks like > > > > > > obj-$(CONFIG_MYMODULE) += mymodule.o > > > mymodule-objs := a_1.o a_2.o b_1.o b_2.o c_1.o > > c_2.o > > > > > > It should work. But it is really messy, > especially > > > there are a lot of files or each component > > requires > > > different EXTRA_CFLAGS. However, if I write > > > separate Makefiles for each component in their > own > > > subdirectory, the Makefile of component A looks > > like > > > > > > obj-y := A.o (or obj-$(CONFIG_MYMODULE) += A.o) > > > A-objs := a_1.o a_2.o > > > > > > This is wrong, because kbuild will treat A as > > > independent module. All I want is to treat > > > A as component of the only module mymodule.o. It > > > should be linked to mymodule.o > > > > > > Any idea on how to write a kbuild Makefile to > > > support such kind of single module produced > > > by linking multiple components and each > component > > > is located in separate directory? Thanks. > > > > > > Hi Song (added lkml to cc:). > > > > You just need to have one common module usign all > > the sub-modules. > > > > So having each sub-module in directory M/sub-a > > M/sub-b etc. > > you need a makefile in M/ that looks like: > > M/Makefile: > > obj-m += sub-a/ > > obj-m += sub-b/ > > obj-m += mainmodule.o > > > > In each sub-directory you need a separate Makefile > > like: > > M/sub-a/Makefile > > obj-m += a_sub_module.o > > > > Then all symbols used by the mainmodule needs to > be > > properly > > exported in each sub-module. > > > > Hope this clarifies it. > > > > Sam > > > > > > > __________________________________ > Do you Yahoo!? > New and Improved Yahoo! Mail - Send 10MB messages! > http://promotions.yahoo.com/new_mail > - > To unsubscribe from this list: send the line > "unsubscribe linux-kernel" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at > http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ _________________________________________________________ Do You Yahoo!? 美女明星应有尽有,"一搜"搜遍美图、艳图和酷图 http://cn.rd.yahoo.com/mail_cn/tag/yisou/SIG=112a2q42r/**http%3A%2F%2Fimage.yisou.com%2F 100兆邮箱够不够用?雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/100m/*http://cn.promo.yahoo.com/minisite/100m/ ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click _______________________________________________ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel