libafs: switch to hardcoded source names with CRULE
authorBen Kaduk <kaduk@mit.edu>
Sun, 17 Jul 2011 20:24:12 +0000 (16:24 -0400)
committerDerrick Brashear <shadow@dementia.org>
Mon, 18 Jul 2011 16:40:40 +0000 (09:40 -0700)
commit1ec64ba50ea8d691cfb126dd40a11370ed37b433
tree03feda67cf7dd8fd45a86f7f51ef3700587b22a9
parent4356fcbb5b5dd1b5ff2098388d0e70214a5fe898
libafs: switch to hardcoded source names with CRULE

Most of the userspace tree uses AFS_CCRULE for how to compile
things.  We cannot use this directly for libafs, since in the
general case kernel and userland code may need to be treated
with an entirely different compiler and compiler options.
Switching libafs fully to a (e.g.) LIBAFS_CCRULE would be a substantial
amount of work, and require a lot of testing.  However, we can
stop passing -c $? (the out-of-date sources) in CRULE_{NO,}OPT
and add the source file after each invocation of the CRULEs,
an incremental step towards LIBAFS_CCRULE.
This has the extra advantage of not causing issues when integrating
with kernel module build systems that automatically add dependencies
to all object file targets. (In such cases, $? expands to multiple files
and 'gcc -o foo.o -c' bails out.)

Most of this change was automatically generated from the following
awk script:
==========
/[a-zA-Z_0-9].o:/ {path=$2;}
/^      \$\(CRULE_/ {print $0,path;}
!/^     \$\(CRULE_/ {print;}
==========

Change-Id: I22b8eeaee730feb37b2527d44d6548e7b13b9a0a
Reviewed-on: http://gerrit.openafs.org/5040
Tested-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/libafs/Makefile.common.in
src/libafs/MakefileProto.DARWIN.in