Date: Fri, 9 Jun 2006 10:11:21 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: hongz@promisechina.com Cc: freebsd-hackers@freebsd.org, 'Artem Ignatiev' <zazubrik@mail.ru> Subject: Re: help:Makefile template for device drivers with multiple directories Message-ID: <200606091011.23951.hselasky@c2i.net> In-Reply-To: <1149819363$61755$89298172@hongz@promisechina.com> References: <1149819363$61755$89298172@hongz@promisechina.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 09 June 2006 04:16, hongz@promisechina.com wrote:
> My problem seems to be very special. My driver module is a single one, but
> I want to build only one object for each directory (such as osd.o: osd/*.c;
> engine.o: engine/*.c; cam.o:cam/*.c). And my driver module (such as
> Shasta.ko) is constructed only by osd.o, engine.o and cam.o. I need to do
> this because we want each component (engine, cam, and osd) more
> independent. Otherwise, I have to consider the issues such as naming
> conflicts and so on. Is it possible to do so under FreeBSD?
>
You mean object naming conflicts or symbol naming conflicts?
If you have symbol naming conflicts, then you have to rename the
functions/procedures. Else it won't be possible to link the module.
If you have object naming conflicts, then I think you either have to rename
the file names, or make a customized Makefile. It is the same in the FreeBSD
kernel. All object files have different names.
Maybe something similar to the following will do:
SRCS+= osd.o engine.o
osd.o:
${CC} -o osd.o ${.CURDIR}/osd/*".c"
engine.o:
${CC} -o engine.o ${.CURDIR}/engine/*".c"
--HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606091011.23951.hselasky>
