Commit Graph

100 Commits

Author SHA1 Message Date
imp
1b08dd8f6e Introduce bsd.sysdir.mk to consolidate looking for the kernel.
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D22144
2019-11-21 15:59:33 +00:00
bdrewery
913eb46519 Use known SRCTOP if possible to determine SYSDIR.
Suggested by:	sjg
Sponsored by:	Dell EMC
2018-04-12 20:48:17 +00:00
bdrewery
8025baf816 Fix using wrong SYSDIR after r331683.
This was inadvertently overriding the first found SYSDIR with the last
of /usr/src which could result in the wrong headers being used if not
building from /usr/src.

SYSDIR?= is not used here to avoid evaluating the exists() when unneeded.

Reported by:	rgrimes, sjg, Mark Millard
Pointyhat to:	bdrewery
Sponsored by:	Dell EMC
2018-04-12 20:27:57 +00:00
bdrewery
4ef3ada558 Avoid looping if SYSDIR already known.
Sponsored by:	Dell EMC
2018-03-28 16:28:24 +00:00
bdrewery
3a6475b51b Avoid upwards directory walk in kernel build for finding known SYSDIR.
Sponsored by:	Dell EMC
2018-03-28 16:28:20 +00:00
bdrewery
31fcbcd300 WITH_META_MODE: Resolve SYSDIR to avoid changed build commands.
Sponsored by:	EMC / Isilon Storage Division
2016-05-31 23:08:43 +00:00
imp
d3f8dba1e5 Eliminate bsd.sys.mk on purpose. Do not put it back. 2015-01-01 04:26:45 +00:00
ngie
bbae578a48 Unbreak the build for some modules that depend on -std flags to be passed
through via CFLAGS, as noted by Jenkins when building sparc64 by re-adding
bsd.sys.mk to bsd.kmod.mk:
https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/225/changes

Tested with:
    % cd /sys/modules/bce; make obj; make depend; make all
2015-01-01 04:10:56 +00:00
imp
6783859f31 Fix module builds on arm (and maybe others) by turning off a whole
raft of new warnings that appear to be on by default in clang 3.5.0.
Fix RPI-B build issues with new clang not liking the ability to pass
arbitrary flags to as, since some flags are more arbitrary (and thus
verboten) than others.

These warnings should be actually fixed in the code, but this is a
band-aide to get things (almost) building again.
2015-01-01 02:00:04 +00:00
imp
cdb7b1efe1 Fix comma splice, can't ambiguity and quoting.
Submitted by:	bde@
MFC after:	2 weeks
2012-02-16 21:04:47 +00:00
imp
24393271fe Wordsmith the can't find kernel error message, and suggest which
variable to set to override.
2012-02-15 21:20:58 +00:00
imp
b4da579f7f ata module additions now nest ata modules one deeper than any prior module.
Increase heuristic used to find them by one.
2008-10-09 22:01:27 +00:00
bde
c62cf4ddbd Fixed style bugs in previous commit (151 characters of trailing whitespace). 2004-06-21 16:12:02 +00:00
pjd
7a9e41c110 - Missing trailing slash for a kern directory check.
- Check in both places if ${_dir}/conf/kmod.mk exists.
- Style fixes (lines too long).

Submitted by:	bde
2004-06-21 08:41:50 +00:00
pjd
861ab9f6f2 Check if ${_dir}/kern exists as well, because if it doesn't exists
we will fail later and we can miss good kernel source tree directory.
I found this trying to compile kld module and it finds 'conf/kmod.mk'
in '../..', but it fails later, because there is no 'kern' directory,
but there is valid kernel source tree still in /usr/src/sys/.
2004-06-18 16:38:42 +00:00
kris
3252dc5107 Bring in the WARNS directive from NetBSD, localized in a new bsd.sys.mk
to avoid polluting sys.mk.  This directive controls the addition of
compiler warning flags to CFLAGS in a relatively compiler-neutral manner.

The idea is that WARNS can be set in Makefile.inc or in individual
Makefiles as they become clean, to prevent the introduction of new
warnings in the code.  -Werror is added by default
2001-05-19 23:18:21 +00:00
jasone
ffce1c840d Do not check for existence of ${_dir}/kern/ , because for modules that set
.PATH to ${.CURDIR}/[...]/kern , the "exists" expression will fail for the
form exists(${.CURDIR}/[...]/kern/).  This appears to be happening because
make is searching for the argument to "exists" by using .PATH rather than a
relative search, because .PATH and the argument match at the beginning.
Additionally, make appears to consider a path that starts with ${.CURDIR}
as relative, even though it expands to an absolute path.

The reason that most people aren't seeing this problem is that the absolute
paths of /usr/src/sys and /sys are also searched, so as long as the kernel
source can be found in at least one of those places, no problems surface.
This problem was inadvertently introduced on 1 December 2000, with the
addition of the sysvipc modules.
2000-12-08 20:36:32 +00:00
imp
15260d8384 Add ${.CURDIR}/../../../.. to the list of places we look for the
kernel.  The new moudles/sound/drivers/foo pushes us down one more
level.
2000-07-07 05:12:33 +00:00
peter
dc4154923a Sigh. Use the correct path to bsd.conf.mk. It's times like this that I
regret giving up coffee.
2000-05-27 01:11:17 +00:00
peter
2545eef3a2 Revive a skeleton for bsd.kmod.mk (which will be in the make search path)
that merely locates and includes sys/conf/kmod.mk.
2000-05-27 00:54:15 +00:00
peter
068565f0db Repocopied to src/sys/conf/kmod.mk 2000-05-04 12:18:19 +00:00
peter
7dcf1792a6 Remove KMODDEPS support. All our existing dependencies are specified
via the MODULE_VERSION() and MODULE_DEPEND() macros that both the loader
and kld system know how to deal with.  The old DT_NEEDED tag is still
supported by the loader (and will remain supported for a while) - but the
kernel side presently doesn't know how to deal with DT_NEEDED.
2000-05-01 18:06:49 +00:00
imp
028e27dc43 Add support for compiling kernel modules outside of the tree. If you
do not have the kernel you wish to compile against in either
/usr/src/sys or /sys, then you will need to set SYSDIR to point to the
sys directory of the source tree that contians the source.

Also, minor tweaks to the load/unload targets from Bruce.

I've had this through several make worlds, as well as using it on a
daily basis for the past couple of weeks to build modules needed for
testing at Timing Solutions.

Reviewed and revised by: bde
Work sponsored by: Timing Solutions
2000-04-08 17:20:00 +00:00
dfr
f073f6ac22 Use makeobjops.pl instead of makedevops.pl. 2000-04-08 15:31:28 +00:00
dfr
3d94aee5e4 Allow the calling Makefile to specify a list of device interfaces instead
of relying on the default list provided here.
2000-04-05 10:13:05 +00:00
peter
fd1c6c35b4 Use an intermediate file containing the module binary before converting
it into a ``shared'' .ko file.  This intermediate file can be directly
linked into a static kernel.  This isn't all that useful yet but will
become much more interesting shortly.
2000-03-20 01:29:59 +00:00
bde
17f54b4408 Add ${DEBUG_FLAGS} to CFLAGS in bsd.kmod.mk, not in scattered module
makefiles.  Bad examples in fxp/Makefile keep getting copied to new
makefiles.
2000-01-28 11:26:46 +00:00
peter
535c8837a5 oops, nearly forgot to commit the addition of ppbus_if.m to the list. 2000-01-23 15:42:44 +00:00
bde
472e70f939 Add "-I@/../include" and/or "-I${DESTDIR}/usr/include" to CFLAGS,
essentially as in kernel makefiles, so that module sources can include
<stddef.h> and other standard headers.  Only add the second path when
the first path can't be found, instead of when DESTDIR is defined.
Adding it used to be just an obfuscation.

Use "${.OBJDIR}" instyead of "." in -I paths.  Using "${.OBJDIR}" just
gave more verbose command lines and depend files.
2000-01-08 18:48:57 +00:00
peter
d53e4c1d80 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 05:07:58 +00:00
peter
d55ac72ab6 Update vnode_if.sh location. This was deliberately left a while after
the repo copy as the kernel src/sys/modules stuff uses
/usr/share/mk/bsd.kmod.mk which often gets out of sync with the kernel
source.
1999-12-22 01:07:30 +00:00
peter
88fbbe0647 Use the -c and -h args of vnode_if.sh to generate only the .h file that
we use.  The .c half is statically compiled into the kernel.  It's kinda
silly to generate a .h file on the fly that has inlines to call the
.c stuff when the .c code is fixed.

Also, zap the special treatment for VFS_KLD modules.  This treatment
applies to lots of things, not just VFS's.
1999-12-12 16:45:58 +00:00
imp
fdfb931720 Add two modules for the pccard work: dev/pccard/card_if.m and
dev/pccard/power_if.m.

XXX There has got to be a better way to deal with this.
1999-11-28 20:18:50 +00:00
bde
b4f2600d8e Build and clean device interface files (foo_if.[ch]) and empty options
files (opt_*.h) automatically (if they are in ${SRCS}).

Clean vnode_if.[ch] automatically (if one of them is in ${SRCS}, not just
if VFS_KLD is defined).

There are some complications to avoid using the "@" symlink before it
is built.
1999-11-28 17:52:40 +00:00
marcel
d3d45d6d95 Add .ORDER which is needed for the previous commit to work with -jN.
Pointed out by: bde
1999-11-23 17:18:52 +00:00
marcel
e3a552ed38 vnode_if.sh makes both vnode_if.c and vnode_if.h. Add vnode_if.c to
the LHS of the rule for vnode_if.h. This solves a "dunno how to make"
error.
1999-11-23 10:17:36 +00:00
n_hibma
744841d62c 1) s/mod(un)?load/kld$1load/
2) s/MODLOAD/KMODLOAD/ to be consistent with the rest of the variables
(KMOD, KMODOWN, KMODGRP, etc) and definition of MODLOAD/UNLOAD in the
Makefile of the ATAPI module

3) textual fixups
1999-09-06 20:11:59 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
hoek
ea145ecb4c Add variable INSTALLFLAGS_EDIT used to remove arbitrary INSTALLFLAGS.
Specifically intended for removing -fschg ("INSTALLFLAGS_EDIT=:S/schg/uchg/")
this makes the NOFSCHG flag redundant.  NOFSCHG will still be honoured by
bsd.lib.mk but is valid for buildworld only.  NOFSCHG is still implemented in
the old way (ie. _not_ ".if NOFSCHG then { INSTALLFLAGS_EDIT+=:S/schg/,/ }"
to emphasize the fact that NOFSCHG is only supported in a limited
fashion and for buildworld.

The interface and implementation are such that future use of flags such
as sappnd can also be easily removed or altered (perhaps to uappnd).

This commit brought to you by the letters B, D, and E, and the numbers six,
one, thirteen, and three.
1999-07-31 20:27:33 +00:00
peter
1d952b2530 s/lkm(4)/kld(4)/ 1999-04-23 20:53:34 +00:00
peter
73d89323c4 Clean out most of the LKM stuff, the build support left a little while ago. 1999-04-20 14:33:24 +00:00
bde
9c2168a7db Removed all traces of LN_FLAGS. It was only used to produce a link
/usr/sbin/sysctl -> ${DESTDIR}/sbin/sysctl in some versions of 2.2,
and this link was broken if DESTDIR was set.

Added a SYMLINKS macro.  This works the same as LINKS, except it
creates symlinks and the linked-to pathname may be relative.  This
is more flexible than LN_FLAGS, since it supports installing
symlinks independently of hard links.

Use `ln -f[s] ...' instead of `rm -f ...; ln [-s] ...' for LINKS and
SYMLINKS.  This is equivalent if the target is neither a directory nor
a symlink to a directory.

PR:		8279
1999-03-23 03:06:25 +00:00
peter
bc1621a70b Use a name less likely to collide with source files without an obj dir. 1998-11-11 07:40:44 +00:00
peter
71b3e0fe14 Do not add ${KMOD} to the CLEANFILES list. We want ${PROG} which is either
${KMOD}.o or ${KMOD}.ko.  Otherwise we can delete the source shell script
for linux, joy and ibcs2.
1998-11-05 04:01:55 +00:00
peter
657e5a0406 Update the kld glue
Pre-Approved by: jkh
1998-10-16 03:32:03 +00:00
peter
2a0b7f6488 Support encapsulating ELF linker sets for KLD modules via gensetdefs.
Support name based dependencies at build time.  This is a hack.
These only affect KLD modules.
1998-10-14 04:04:22 +00:00
msmith
7d178bc52e Define KLD_MODULE if building a KLD module.
Forgot to mention that the previous commit was
Submitted by:	Doug Rabson <dfr@freebsd.org>
1998-10-02 05:08:09 +00:00
msmith
51d91e56f1 Changes to support building of KLD modules. This includes the possibly
to be removed KMODDEPS define.
1998-10-02 04:51:10 +00:00
bde
83594b3e3a Add -aout to CFLAGS and LDFLAGS in bsd.kmod.mk, not in
src/lkm/Makefile.inc.  This fixes broken builds of the syscons LKMs
when OBJFORMAT=elf.  Removed src/lkm/Makefile.inc since it became
empty and is worse than useless.
1998-09-02 14:29:09 +00:00
peter
912ec94d68 Make ../Makefile.inc handling more consistant to prevent multiple includes
when certain .mk files include other .mk files.  This will remove the
need for multiple include protection in some other makefiles around the
tree (and helps some elf conditionals).
1998-08-08 07:02:08 +00:00