[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: porting third-party build system to bsd.kmod.mk
From:       Warner Losh <imp () bsdimp ! com>
Date:       2011-05-22 22:35:05
Message-ID: 8854CF36-7B6D-4918-ADF8-6A16CCB2F307 () bsdimp ! com
[Download RAW message or body]

The usual reason that vnode_if.h doesn't build for me when I'm doing in-tree hacking \
is because make depend hasn't run to generate it yet.  Or more precisely, the arc in \
the dependency graph from osi_crypto.c to vnode_if.h.  I didn't see that as part of \
the log, so you might try this first (and make setup dependent on depend somehow, as \
long as it is idempotent.

But many of the things that are being setup with the setup target shouldn't be \
necessary.  depend does that based on the setting of SYSDIR.  and the @ symlink \
should be enough to make the ufs and other symlinks unnecessary.

Warner


On May 21, 2011, at 12:14 AM, Benjamin Kaduk wrote:

> After getting a few pointers from jhb at BSDCan on what a bsd.kmod.mk-using \
> Makefile should look like, I have been trying my hand at porting the OpenAFS kernel \
> module build system to use it.  (The main thing this gets us is not having to \
> manually track version- and architecture-dependent CFLAGS and the like.)  However, \
> the path is not exactly smooth. 
> A lot of the difficulty is in getting an autogenerated vnode_if.h while using a \
> list of files to include in the module(from the common OpenAFS code) that's given \
> as a list of object files.  If there's already a vnode_if.h sitting around, I can \
> just use OBJS and things progress quite nicely; however, if I have to get back to \
> SRCS for the use of sys/conf/kmod.mk's vnode_if.h logic, I get this sort of build \
> failure (full log attached) with the attached Makefile: gcc -I. -I.. -I../nfs [more \
> includes and defines] -I/usr/devel/openafs/git/openafs/include/afs -I@/sys \
> -Imachine -I. -I@ -I@/contrib/altq -finline-limit=8000 --param \
> inline-unit-growth=100 --param large-function-growth=1000 -fno-common \
> -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-mmx \
> -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float \
> -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 \
> -fstack-protector -Wno-redundant-decls -Wsystem-headers -Werror -Wno-pointer-sign \
> -o osi_crypto.o -c /usr/devel/openafs/git/openafs/src/afs/FBSD/osi_crypto.c \
> /usr/devel/openafs/git/openafs/src/libafs/MODLOAD/../../afs/FBSD/osi_crypto.c \
>                 vnode_if.h
> gcc: cannot specify -o with -c or -S with multiple files
> 
> That last bit, "-o osi_crypto.o -c /path/to/osi_crypto.c /path/to/osi_crypto.c \
> vnode_if.h" is quite troublesome.  Any thoughts on what is causing those extra \
> files to be listed would be greatly appreciated.  (Comments on other issues in the \
> Makefile are welcome, too -- it's still in pretty rough shape.) 
> I should note that though Makefile.common does define a osi_crypto.o target, "make \
> -d A" reports: using existing source \
> /usr/devel/openafs/git/openafs/src/afs/FBSD/osi_crypto.c applying .c -> .o to \
> "osi_crypto.o" 
> 
> Thanks,
> 
> Ben Kaduk<Makefile.txt><build.log>_______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic