Commit Graph

1112 Commits

Author SHA1 Message Date
christos 6fab16d795 PR/6257: Izumi Tsutsui: bsd.lib.mk should set target only if LIB is defined. 2003-04-20 21:57:17 +00:00
thorpej 9d788d6da1 Provide the MKPICLIB value in bsd.own.mk, rather than bsd.lib.mk. It
is sometimes necessary for non-library Makefiles to determine if _pic
libraries are being built.

Problem pointed out by Havard Eidnes.
2003-04-11 22:40:31 +00:00
thorpej 44d9add676 If MACHINE_ARCH is powerpc and we HAVE_GCC3, add crtsaveres.o to the
endfile spec.
2003-03-30 00:35:07 +00:00
fvdl bb218b78eb gcc for x86_64 should be safe enough these days to enable -O by default. 2003-03-29 22:12:06 +00:00
christos 9453ca1e91 add x86 to the cleanfiles for i386 and x86_64 (Hi Frank!) 2003-03-27 17:05:14 +00:00
pooka d223236902 add file as a host tool 2003-03-25 23:35:48 +00:00
thorpej b48666e01a Add a HEXDUMP host tool. 2003-03-07 01:21:56 +00:00
fvdl 9f9a0457aa Add more special cases to create include directory symlinks, for archs
that take include files from a subdir != ${MACHINE_ARCH} (ew).
2003-02-27 11:09:59 +00:00
uwe c18a5386dc Typo in comment. 2003-02-22 04:46:08 +00:00
matt f65e1190f5 When making a LKM for powerpc, add function trampolines to undefined
functions.  This makes LKMs functional for powerpc.
2003-02-19 19:03:41 +00:00
thorpej 14dfb2cab0 Add LIBPTHREAD, LIBPTHREAD_DB, and LIBRT. 2003-01-24 02:06:37 +00:00
scw 3402e518ba The sh5 toolchain works fine with -O2 now. 2003-01-21 09:19:01 +00:00
lukem 4bb41ae2f2 Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.

This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile.  Remove the now-unnecessary .keep_me files
whilst here.

Per lengthy discussion with Andrew Brown.
2003-01-06 17:40:18 +00:00
sommerfeld 24d16bebd2 Add bsd.rpc.mk to FILES 2003-01-05 23:37:02 +00:00
sommerfeld d4b8f1f9fe Common makefile fragment for invoking rpcgen. See bsd.README for
documentation on the parameters which control this fragment's behavior.
2003-01-05 19:18:52 +00:00
lukem 144b55005f Rework METALOG manipulation:
- add '-D ${DESTDIR}' to INSTPRIV, so install(8) removes the leading
  ${DESTDIR} from the metalogged path
- provide ${METADB.add} variable (for "${CAT} -l >> ${METALOG}"), to make
  it easier to replace manual metalog manipulation in the future.
- with manual metalog additions, don't add the leading ${DESTDIR} in the path
- in maketars, use "mtree -C ..." instead of
  "mtree -D ... | sed -e 's,\(.*\) \(\..*\),\2 \1,";

Benefits:
- maketars "Parsing METALOG" step speeds up from 29 seconds to 1.2 seconds
  on a P3-600.
  (This also benefits "make installworld" at the top level.)
- ${DESTDIR}/METALOG is easier to read without the leading "${DESTDIR}"
  on all the pathnames, and it's smaller as well.
2002-12-23 06:52:48 +00:00
lukem 1bf2d8180e Only set INSTPRIV?= if "inside" a NetBSD src tree (i.e, ${_SRC_TOP_} != "").
Fixes a problem found by Andrew Brown where programs outside of the NetBSD
src that use the /usr/share/mk framework (such as pkgsrc/pkgtools/digest)
couldn't be installed if /usr/src/etc wasn't present.
2002-12-23 02:23:57 +00:00
lukem 4234e2eefe correct a comment 2002-12-23 02:01:29 +00:00
lukem 787757666a add SUNLABEL 2002-12-21 12:58:13 +00:00
jwise a3a041633d Add a brief description of DPSRCS, whose discovery recently shortened two
Makefiles of mine by a few lines. :-)
2002-12-20 16:05:16 +00:00
lukem 7805822da2 Add "-N ${NETBSDSRCDIR}/etc" to ${INSTPRIV}, so that non-host ${INSTALL_*}
rules use that directory to lookup users & groups as opposed to the
host system's passwd(5) and group(5) databases.

This is a change of behaviour which should make the build system more
robust when new users & groups are added to the NetBSD source.

The only users who may be adversely affected are those (small number,
if any) that renumber the uids & gids away from the "standard" NetBSD
ones; in this case said users should maintain local mods to
${NETBSDSRCDIR}/etc/{master.passwd,group} ...
2002-12-19 12:44:03 +00:00
thorpej c4a72b6436 Centralize the definition of the tool name prefix (i.e. "nb") into
bsd.own.mk, as the _TOOL_PREFIX variable.
2002-12-08 20:19:56 +00:00
lukem 9145235642 Deprecate SYS_INCLUDE and the optional SYS_INCLUDE=symlinks functionality,
and only support the "copies" default.
Per discussion on tech-userlevel@.
2002-11-26 23:15:53 +00:00
thorpej 16f21f8705 * If EXTERNAL_TOOLCHAIN is defined, consider it to be the root of
where the GNU tools are found, e.g. ${EXTERNAL_TOOLCHAIN}/bin/...
* Allow MACHINE_GNU_PLATFORM to be set in mk.conf.
2002-11-26 19:51:16 +00:00
thorpej e4637c735b sh64 -> sh5, which matches the names that the NetBSD-targeted GNU
toolchain uses for 32-bit SH5.  OK'd by steve.
2002-11-26 19:30:13 +00:00
thorpej f176c534d2 The traditional C preprocessor is fixed in GCC 3.3 now, so no need
to skip -traditional-cpp for HAVE_GCC3.
2002-11-26 18:42:30 +00:00
thorpej 841722bb50 Add -Wno-sign-compare to CFLAGS. 2002-11-25 03:03:13 +00:00
thorpej 6dba3a7439 Split crtbegin/crtend into crti/crtbegin/crtend/crtn. NetBSD-specific
things like the .note.netbsd.ident section are provided by crti/crtn.
crti/crtn also provide the _init() and _fini() routines.

crtbegin/crtend now only provide support for ctors/dtors.  This paves
the way to using the "crtstuff" provided with GCC (when we upgrade to
GCC 3.3), which provides, among other things, much better C++/Java
exception handling.
2002-11-22 06:44:56 +00:00
itohy cbb1f0fb0f MKDYNAMICROOT for a.out 2002-11-12 14:33:48 +00:00
thorpej 0d842ff28e Oops, AINC actually is still used; put it back. 2002-11-10 21:26:44 +00:00
thorpej ca760b0a32 The MIPS toolchain now defines __ABICALLS__ when abicalls are in use,
and the sources now use that define, so there is no need for us to define
ABICALLS.  Since that was the only use for the AINC variable, garbage-collect
it.
2002-11-10 18:15:29 +00:00
thorpej 5d2465f251 Now that the compiler does the right thing with -KPIC, we no longer
need to add it (or -fpic, for that matter) explicitly when building
shared libraries on MIPS.
2002-11-09 08:22:04 +00:00
perry 8885724457 Pass 1 of SYSPKG changes to automatically add tags=pkgname_pkg to METALOG.
Not quite ready for prime time yet.
2002-10-22 18:48:27 +00:00
thorpej 09a0767aa9 Only use the MKDYNAMICROOT semantics (i.e. -rpath=/lib,/usr/lib and
-dynamic-linker=/libexec/ld.elf_so) if the BINDIR of the program being
built is /bin or /sbin.

The reason we do this is because now all programs *except* those in
/bin and /sbin (i.e. the "special cases") match the default the compiler
uses, which is what is used for things in e.g. xsrc, pkgsrc, and other
random 3rd party programs.

This is done by decoupling where a shlib is installed from how it
is located.  Two new variables, SHLIBINSTALLDIR and SHLINKINSTALLDIR,
contain the former information, and key off MKDYNAMICROOT only.  SHLIBDIR
and SHLINKDIR contain the latter, and key off MKDYNAMICROOT and BINDIR.

The SHLIBINSTALLDIR, SHLIBDIR, _LIBSODIR, SHLINKINSTALLDIR, and
SHLINKDIR parameters are moved to a new <bsd.shlib.mk>; see bsd.README
for usage details.
2002-09-27 21:37:50 +00:00
thorpej 0f181e084a Back out previous; it was incomplete. 2002-09-27 17:03:08 +00:00
thorpej 6a244932ed Only use the MKDYNAMICROOT semantics (i.e. -rpath=/lib,/usr/lib and
-dynamic-linker=/libexec/ld.elf_so) if the BINDIR of the program being
built is /bin or /sbin.

The reason we do this is because now all programs *except* those in
/bin and /sbin (i.e. the "special cases") match the default the compiler
uses, which is what is used for things in e.g. xsrc, pkgsrc, and other
random 3rd party programs.
2002-09-27 15:56:39 +00:00
itojun d24389cf67 MDC2 is a patented algorithm; don't ship it in default libcrypto.
MKCRYPTO_MDC2 will build a separate library, libcrypto_mdc2.
2002-09-26 13:05:54 +00:00
lukem 2f7d49d929 Enable MKDYNAMICROOT=yes by default.
This means that:
    +	/bin and /sbin (and the few programs in /usr/* which were statically
	linked) are now dynamically linked.
    +	The shared libraries that are needed by the /bin and /sbin programs
	are now installed into /lib (with compatability symlinks from
	/usr/lib).  These are:
		c crypt edit ipsec kvm m m387 termcap termlib util z
    +	The shared linker is now in /libexec/ld.elf_so, and
	/usr/libexec/ld.elf_so is a symlink to the former.

If you want the prior behaviour of "some applications statically linked,
the rest dynamically linked", set MKDYNAMICROOT=no in your mk.conf(5).

If you have a philosophical objection to dynamic libraries, continue
to set LDSTATIC=-static in your mk.conf(5), and please don't waste any
more time in trying to convince us why dynamic libraries are 3v1l.
2002-09-22 15:08:17 +00:00
thorpej 3b08abd277 * Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

  TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
  no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

  EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
  an external toolchain (e.g. /usr/local/gnu).  This enables the cross-build
  framework even for TOOLCHAIN_MISSING platforms.

  If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
  unconditionally set to "no", since the bits are not there to build.

  If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
  since the external toolchain's compiler is not in-sync with the
  in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
  that file can use it.
2002-09-17 23:18:25 +00:00
thorpej 2f50b4a3fb No longer have to invoke lorder with the shell explicitly; the host
tool is patched to use the working shell as the interpreter.
2002-09-15 17:07:14 +00:00
thorpej 4c81eb7f69 If DESTDIR is set, add ${DESTDIR}/usr/libdata to the lint library
search path.  This works around the problem of lint using the
wrong lint libraries until a "lint -d ..." equivalent is implemented
for libraries.
2002-09-14 16:56:10 +00:00
thorpej 5d0c1f4d8b * Add MKTEMP as a host tool.
* Pass MKTEMP to lorder, and invoke lorder with sh.
2002-09-14 05:01:45 +00:00
thorpej 3e19f8e1f0 Build a .gdbinit in the objdir when building a program. The .gdbinit
file sets the shared library prefix to ${DESTDIR}, and adds "sources"
directives for each file listed in the GDBINIT Makefile variable.
2002-09-08 03:59:02 +00:00
lukem 08e7e88032 In the MKDYNAMICROOT==yes case, move the shared linker from /lib/ld.elf_so to
/libexec/ld.elf_so.  Per discussion with a few other developers.
2002-08-28 09:57:10 +00:00
lukem ed401558f2 Implement MKDYNAMICROOT, which currently defaults to "no", but will
be changed in the future to "yes".

If MKDYNAMICROOT == "no", there is no change from existing behaviour
of a static /bin and /sbin (and a few programs in elsewhere).

If MKDYNAMICROOT == "yes", the following changes occur:
    in <bsd.own.mk>:
	SHLIBDIR?=     /lib
	SHLINKDIR?=	/lib
    in various Makefiles, the following entry is DISABLED.
	LDSTATIC?=-static
This results in all programs (except those "standalone" programs built
in sys/arch/*/stand) are linked dynamically, the shared linker is moved
from /usr/libexec to /lib (with a compat symlink), and the shared
libraries used by /bin and /sbin programs are moved from /usr/lib to
/lib (with compat symlinks).
2002-08-27 14:46:11 +00:00
lukem 9aa0322535 don't bother with "rm -f $$t" before ${INSTALL_LINK} or ${INSTALL_SYMLINK},
as they default to using install(1) -r.
the rm can cause problems in certain situations, such as moving a library or
shared linker that install(1) depends upon to another location and replacing
it with a (sym)link.
2002-08-24 13:12:38 +00:00
lukem 811a3185a3 Explicitly note that if NOxxx and USE_SHLIBDIR are set by a Makefile,
it must be before <bsd.own.mk> is included.
2002-08-19 14:51:58 +00:00
thorpej 364a2bbe9c Add LIBPMC. 2002-08-09 00:21:22 +00:00
chris 07bc5d7a16 Default cats to using X 4.
Also correct macppc entry while here.
2002-08-03 22:10:07 +00:00
jdolecek 6dbfb914a2 add 'sun68k' to CLEANFILES for sun2/sun3
add 'sparc' to CLEANFILES for sparc64
2002-07-29 07:42:52 +00:00
mrg eca4d02c51 be sure to link "sparc" dir as well, for sparc64 2002-07-20 11:44:31 +00:00
mrg 83a8e86ca3 add -Wa,-Av8plus to CFLAGS if we are building for 32bit sparc 2002-07-20 11:43:34 +00:00
yamt 4f420b3122 - add CSHLIBFLAGS.
- fix typos in comment.
2002-07-20 08:50:10 +00:00
mycroft 6b3df890c5 USE_XF86_4 on macppc. 2002-07-17 20:02:15 +00:00
fredette f53ba8285a Now build profiled libraries on m68000. 2002-07-17 18:46:12 +00:00
scw cad6d3b034 Add MKBFD=no for SH5. 2002-07-11 15:30:03 +00:00
scw 8debe49965 SH5 Makefile Magic. 2002-07-11 15:00:57 +00:00
tron 2bd3a8cf3c Use XFree86 4.x by default on i386 and x86_64.
This change was approved by Frank van der Linden.
2002-07-03 11:51:34 +00:00
fredette fbd75fdec9 Enabled building PIC on hppa. Also don't use a --netbsdelf GNU target name. 2002-07-01 19:31:12 +00:00
fredette cb3f47b13c Like on x86_64, don't use -O at all with the hppa compiler. 2002-07-01 19:30:36 +00:00
fredette 9c5d82c38e Added a temporary workaround when building libraries for hppa:
link in libgcc to get the millicode routines.
2002-07-01 19:29:31 +00:00
lukem cbc959037f add CAT here too 2002-06-11 16:25:11 +00:00
mason 7e7e806c7e Add cat(1) as a host tool. 2002-06-10 18:32:28 +00:00
fredette 964be1b6b3 Add cases for hppa. 2002-06-10 14:14:47 +00:00
itojun 608d40cf27 sync LIBxx with bsd.prog.mk
XXX bsd.prog.mk and bsd.hostprog.mk defines very similar thing
- can we unify them? at least the definition?
2002-06-09 04:04:32 +00:00
thorpej fc4bb28e9c Don't -I${DESTDIR}/usr/include without -nostdinc'ing, first. Some
versions of GCC are unhappy with that.
2002-06-05 02:47:56 +00:00
thorpej 055791361b Some changes to facilitate fixing the toolchain issue on ns32k:
* Don't make OBJECT_FMT dependent on USE_NEW_TOOLCHAIN.  All ports
  except ns32k are ELF, so set it appropriately.  Allow it to be
  overridden in the ns32k case.
* If ns32k && USE_NEW_TOOLCHAIN, don't build shared libraries, because
  external toolchains don't support them for our a.out.
* If ns32k && OBJECT_FMT == ELF, the GNU platform is "netbsdelf".
* If ns32k && USE_NEW_TOOLCHAIN, don't attempt to build the in-tree
  binutils 2.11.2, gdb 5.0, or gcc 2.95.3.

This allows us to do USE_NEW_TOOLCHAIN cross-builds to ns32k using
an external toolchain.
2002-06-05 02:42:09 +00:00
thorpej a46ef4e6ab Don't use -traditional-cpp if HAVE_GCC3. 2002-06-04 21:14:59 +00:00
thorpej f7e9eefade Add case for armeb. 2002-06-04 21:13:21 +00:00
itojun 8dea09ecf9 comment 2002-05-30 21:55:14 +00:00
msaitoh 0a2fcbab95 remove duplicated -Wpointer-arith when WARNS=2 2002-05-30 21:44:07 +00:00
itojun dbbcec2c04 have bsd.endian.mk, which detects target endian.
generate *.db in target endian.  (see tech-userlevel for discussions)
2002-05-30 21:40:47 +00:00
bjh21 bf9ec67e38 Add fgen as a host tool, used for sys/arch/sparc/bootblk. 2002-05-28 21:56:05 +00:00
thorpej 0ee3170e4d Add cases for "armeb" (big-endian ARM). 2002-05-20 14:34:07 +00:00
lukem 2ba24b706f remove now-unnecessary SPARCINSTALLBOOT 2002-05-07 12:13:54 +00:00
eeh 25dfe267a1 Don't add -DBIGPIC to APICFLAGS. 2002-05-07 02:06:32 +00:00
eeh 90c1726789 Turn on 32-bit relocations for sparc64 PIC code. 2002-05-07 01:45:45 +00:00
kleink 98807c1129 Add PREPMKBOOTIMAGE. 2002-05-03 20:38:42 +00:00
lukem d918d8f74f Move the METALOG from ${_SRC_TOP_OBJ_} to ${DESTDIR}.
There were too many synchronisation problems with using the former;
including situations such as a "make clean" performed between two
installs to the same DESTDIR would result in a truncated METALOG and
the resultant sets would be missing stuff such as include files that
don't get reinstalled if they haven't changed, even with !UPDATE.
2002-05-03 08:58:45 +00:00
simonb e8fbd2c7f5 Make the ELF2ECOFF assignment an "?=" assignment so it won't override the
setting in bsd.own.mk.
2002-05-02 13:13:53 +00:00
sommerfeld 36dc09c47d make(1) specifies, regarding :: targets:
Sources for a target do not accumulate over dependency lines
	when this operator is used.

An unstated implication of this is that when parallel builds are done,
each separate instance of the target can be scheduled independantly.
As a result, the linksinstall target with commands could be executed
too early during a parallel build since they didn't actually have a
dependancy on "realinstall".

To fix this, correct the linksinstall:: realinstall dependancy by
eliminating the command-less linksinstall target, and moving the
dependancy to the other linksinstall target.
2002-04-30 14:29:01 +00:00
wiz 61f5aedc2a sh3e[bl] uses new toolchain, so remove an .elsif that doesn't make sense
anymore.
2002-04-29 19:27:07 +00:00
groo d11fdcc492 Complete the switch to NEW_TOOLCHAIN for sh3e[lb]. 2002-04-26 19:16:04 +00:00
lukem 82172c42f6 Implement NETBSDSRCDIR, which is the top level of the NetBSD source tree.
Defaults to the directory determined by the _SRC_TOP_ logic (if != ""),
and the BSDSRCDIR.

NETBSDSRCDIR has been provided for use by the various NetBSD source
Makefiles to find the top of the NetBSD source tree, and isn't
affected by the inheritance properties of _SRC_TOP_, nor does it
have the magic BSDOBJDIR baggage that BSDSRCDIR is stuck with.
2002-04-26 15:02:02 +00:00
lukem 46569c985e Revert part of previous; don't set _SRC_TOP_ to BSDSRCDIR if it can't be
determined, since BSDSRCDIR's default of /usr/src might not exist and the
calculation of _SRC_TOP_OBJ_ would then generate a warning :-(.
_SRC_TOP_ can now == "" if make(1) (or a parent make(1)) was started
outside of the NetBSD source tree.

Now, if _SRC_TOP_ != "",  BSDSRCDIR defaults to ${_SRC_TOP_} and
BSDOBJDIR defaults to the objdir of ${BSDSRCDIR}.

Failsafe defaults for BSDSRCDIR (/usr/src) and BSDOBJDIR (/usr/obj)
are provided later in the file.

This should result in a usable BSDSRCDIR default (i.e, _SRC_TOP_ if
running from within the source tree), with safe fallbacks as appropriate
(/usr/src, as always), meaning that BSDSRCDIR should be able to be used
instead of _SRC_TOP_ in the source tree, although I need to carefully
test this.  *aaaiiiieeee!!!*.  (Now I understand some of Todd's pain :)
2002-04-26 14:27:23 +00:00
lukem 2c1cfc8e8c - in <bsd.files.mk>, don't clear FILES after using it, as that prevents
make -V FILES
  from being useful (and given that every other variable can be
  extracted using make -V, the behaviour was unusually inconsistent
  given that the original reason for clearing it doesn't seem to be
  relevant anymore)
- use <bsd.prog.mk> instead of directly including <bsd.files.mk>
  (and possibly <bsd.man.mk> or <bsd.own.mk>)
- remove obsolete NOPROG
2002-04-24 08:18:45 +00:00
lukem 756722c3c1 Overhaul how _SRC_TOP_ is determined, ensuring that it will be set to
${BSDSRCDIR} if make(1) is running outside of the NetBSD source tree.
This should solve various issues, including building xsrc which uses
${BSDSRCDIR}/distrib/sets/maketars.
2002-04-23 07:20:22 +00:00
bjh21 93fb47689e Sun Workshop C 5.0 objects to generating object files with suffixes other than
.o.  Work around this by generating host object files with a .lo.o suffix and
then renaming to .lo.
2002-04-23 00:15:45 +00:00
itojun 49d6a0d5af document MKxxx/NOxxx naming rule. 2002-04-19 03:08:05 +00:00
itojun 9b96df2ed3 NOCRYPTO is no longer used and has no effect, so remove documentation 2002-04-16 03:47:32 +00:00
lukem 987817d952 add ELF2ECOFF 2002-04-12 05:08:53 +00:00
lukem 0476c683f0 replace BSDSRCDIR with _SRC_TOP_, since the latter is more likely to
be "accurate".  document _SRC_TOP_.
2002-04-10 15:05:41 +00:00
jdolecek a4fee01be9 Only attempt to make the machine links for targets 'depend', 'all',
'dependall'.
This fixes misc/16227 by Stoned Elipot.

XXX this solution is not ideal
2002-04-09 17:14:38 +00:00
wiz 8237994500 No more arm32. 2002-04-08 12:25:22 +00:00
jdolecek a5abace5e2 Do what rev. 1.50 intented using .BEGIN, g/c target 'machine-links'.
Making ${OBJS} and ${DPSRC} depend on target which is always out of date is
_really_ bad idea.
2002-04-06 17:49:02 +00:00
lukem 266f41b284 add INSTALLBOOT. sort some entries in bsd.sys.mk 2002-04-03 05:32:58 +00:00
bjh21 15b0cb61a9 Add a default for CAP_MKDB. 2002-04-01 13:30:24 +00:00
bjh21 c3e2abe891 Add CKSUM. 2002-03-31 15:01:39 +00:00
bjh21 c18727ccec MACHINE_ARCH can't be "arm26", so don't bother checking for that. 2002-03-31 14:59:04 +00:00
bjh21 407daa978b Provide a default for PWD_MKDB. 2002-03-31 11:48:45 +00:00