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-unsubscr...@freebsd.org"

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

Reply via email to