Commit Graph

196 Commits

Author SHA1 Message Date
lukem
56640963f5 cosmetic tweak on an older comment 2001-12-28 01:40:50 +00:00
lukem
efcc9a4c9d * Add user-controlled mk.conf variables
- SHLIBDIR	Location to install shared libraries if ${USE_SHLIBDIR}
			is "yes".  Defaults to "/usr/lib".

	- USE_SHLIBDIR	If "yes", install shared libraries in ${SHLIBDIR}
			instead of ${LIBDIR}.  Defaults to "no".
			Sets ${_LIBSODIR} to the appropriate value.
			This may be set by individual Makefiles as well.

	- SHLINKDIR	Location of shared linker.  Defaults to "/usr/libexec".
			If != "/usr/libexec", change the dynamic-linker
			encoded in shared programs

* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
	libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
	libtermcap libutil libz

* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from ${LIBDIR}/${LIB}.so*
  to ${_LIBSODIR}/${LIB}.so* for compatibility.

* Always install /sbin/init statically (for now)


The net effect of these changes depends on how the variables are set:

  1.)	If nothing is set or changed, there is no change from the
	current behaviour:
		- Static /bin, /sbin, and bits of /usr/*
		- Dynamic rest
		- Shared linker is /usr/libexec/ld*so

  2.)	If the following make variables are set:
		LDSTATIC=
		SHLINKDIR=/lib
		SHLIBDIR=/lib
	Then the behaviour becomes:
		- Dynamic tools
		- .so libraries used by /bin and /sbin are installed to /lib,
		  with symlinks from /usr/lib/lib*so to -> /lib/lib*so
		  where appropriate
		- Shared linker is /lib/ld*so

  3.)	As per 2.), but add the following variable:
		USE_SHLIBDIR=yes
	This forces all .so's to be instaleld in /lib (with compat
	symlinks), not just those tagged by their Makefiles to be.
	Again, compat symlinks are installed
2001-12-28 01:32:37 +00:00
tv
4a1ad2db60 If DESTDIR is set, do a similar nostdinc dance for the standard C++ include
directory.
2001-11-28 04:38:29 +00:00
perry
6385e197e2 Now that install has been fixed to deal with -r in the symlink case,
make bsd.lib.mk use INSTALL_SYMLINK instead of mv and ln -s.
Note: There is still one weird case I left alone, in which symlinks
get built in the objdir. I didn't want to log metadata for those links
so I left the old machinery in for them.
XXX do we even need that elaborate dance for the ln's in the objdir?
2001-11-24 21:23:38 +00:00
thorpej
8bfeb9a270 Use a little transitional hack to determine if we use -isystem
or -idirafter.  Use the former only of USE_NEW_TOOLCHAIN, since
-isystem causes the old toolchain to bomb out when building
libstdc++.
2001-11-19 02:46:50 +00:00
tv
6699960dbf C/..$/.c/ -> C/\..$/.c/ 2001-11-14 23:06:26 +00:00
tv
c8c3cf578b Move the DESTDIR-based nostdinc logic to bsd.lib.mk and bsd.prog.mk where
it belongs (with the native target compile rules).
2001-11-14 21:49:53 +00:00
simonb
7d1f940ec6 Set installed library mode correctly in UNPRIVILEGED case. 2001-11-02 07:25:58 +00:00
tv
1129ed4afe Improve readability and reduce redundant redundancy in share/mk; add some
descriptive comments.  The guts of hostprog, lib, and prog are mostly
unchanged; this will be done in another pass.

Make several things work properly with UNPRIVILEGED set, and make the
install-time "cmp" logic work for MANZ.  Also reimplement INCS{DIR,NAME}_foo
(requested by wiz) in a backwards compatible way.

Reviewed by christos.
2001-11-02 05:21:47 +00:00
nathanw
41ee0930b0 Don't explicitly set SHLIB_LDSTARTFILE and SHLIB_LDENDFILE for the
generic architecture case; this permits the later ELF clause to set
them properly for ELF platforms.

This will cause crtbeginS.o and crtendS.o to be included in shared
libraries built on all ELF platforms, not just alpha, mips, vax, and
sparc.
2001-10-25 19:32:15 +00:00
tv
ccfbe64e81 Add .NOPATH for all files generated from .l or .y files in SRCS. Fixes PRs
bin/14187 and lib/14239.

Also simplify the handling of these transforms to .c and .h files a bit by
leveraging make's builtin macro operators.
2001-10-19 15:55:52 +00:00
tv
b868449232 Since SHLIB_MAJOR may be set even in a MKPIC=no situation, make sure that
print-shlib-* targets only print stuff if MKPIC=yes.
2001-09-21 15:25:49 +00:00
tv
e949020a8e If SHLIB_MAJOR is explicitly set in a Makefile, don't even look for a
shlib_version file.  (Part of a larger change which will also update
checkver to deal with this, and migrate old makefiles to include
SHLIB_MAJOR/SHLIB_MINOR.  For now, just add the hooks so that the old
gnu/lib toolchain libraries can use this as a workaround.)
2001-09-21 15:16:09 +00:00
tv
d0f9e45413 Rather than explicitly saying "clean cleandir:" all the time, make clean
a dependency of cleandir (so that "make cleandir" implies "make clean").
2001-08-14 07:02:13 +00:00
mrg
ef022c7570 redo the previous; allow SHLIB_LDSTARTFILE and SHLIB_LDENDFILE to be overridden. 2001-06-08 11:41:59 +00:00
mrg
6c81e0af9d set SHLIB_LDSTARTFILE and SHLIB_LDENDFILE based on ${LIBDIR} not hard coded
/usr/lib.
2001-06-07 15:28:55 +00:00
tv
dd70bf30ad Make "distclean" a REAL synonym for "cleandir" by actually aliasing it
in <bsd.own.mk>, rather than sprinkling it in all the .mk files (and
some Makefiles throughout the tree).
2001-06-01 17:49:32 +00:00
dmcmahill
d425d2297d add support for building shared libs from fortran sources. Works correctly
with the default of 'f77' as the fortran compiler or using the 'f2c-f77'
script from pkgsrc (selected by overriding the FC variable)
2001-04-27 17:04:39 +00:00
mycroft
60e1ee6e37 This is *purely* anal-retentive, but: remove extra spaces in the generated
commands in the previous.
2000-12-05 22:18:30 +00:00
mycroft
4a6da470ba When handling ELF library symlinks, rather than removing and recreating the
symlink, instead create a temporary one ending in `.tmp' and `mv -f' it.
This way there is no window where libc isn't loadable (and thus
`make -j 100 install' works for libc).
2000-12-05 22:12:37 +00:00
gmcgarry
68e607a368 Remove executable permission from src/lib/checkver. 2000-08-09 23:41:24 +00:00
mrg
01875cae18 simplify previous. 2000-07-19 14:16:22 +00:00
eeh
04de183b83 Tell gas how to make PIC objects on sparc64. 2000-07-17 16:49:30 +00:00
christos
4c668e29d9 PR/10556: Veego: Shared library support was broken if shlib_version file
was not present.
2000-07-14 19:53:04 +00:00
matt
3b3ee7da25 Add NetBSD/vax ELF hook. 2000-07-06 16:48:48 +00:00
christos
921df2e6f1 add support for teeny dewey numbers; cleanup duplicated variables. 2000-07-03 21:08:55 +00:00
erh
c2256d0630 For the case when DESTDIR is set: move the -L${DESTDIR}/usr/lib after ${LDADD} so any -L directories set in LDADD are searched first to avoid possibly linking against old versions of libraries. 2000-06-25 05:07:22 +00:00
thorpej
78d67d6053 Add print-shlib-major and print-shlib-minor targets. 2000-06-19 19:35:05 +00:00
mycroft
befa5650d3 Minor rearrangement. 2000-06-06 09:22:00 +00:00
matt
b5db9f5e6e Implement my MKLINKLIB=yes fix a bit differently. Don't include ${OBJS}
in ${ALLOBJS} if MKLINKLIB=yes.  This allows Makefiles to continue to
modify ${OBJS}.
2000-05-03 15:15:50 +00:00
matt
1fef86f176 rework slightly so that when MKLINKLIB=no only the shared objects are built.
(building normal objects when they are never used really sucks on slow build
machines).
2000-05-03 03:44:12 +00:00
dmcmahill
7d8f383dc6 Change -fpic to -fPIC. Change was approved by mycroft. 2000-04-29 17:41:11 +00:00
simonb
1177aeba7c White space bogons (double spaces, spaces instead of tabs). 2000-04-24 14:22:05 +00:00
erh
6092e1aa2a Add NOPATH for all output files to prevent their presence in the search path from causing problems. 2000-02-19 05:36:23 +00:00
mycroft
3e13200b73 Make dependall' play nicely with SUBDIR, using a hack similar to realinstall'
for both `depend' and `all'.
Also, remove the old hack that invokes an extra shell for .depend, now that
make(1) has been fixed.
2000-01-22 19:31:00 +00:00
abs
a4cc9c62f3 remove duplicate += of OBJS, introduced in 1.158 - fixes PR #8487 2000-01-17 18:37:23 +00:00
simonb
3047c747cf Add a MKPICLIB variable. If set to "no", don't build an _pic.a library
and build shared objects from the .a library.  A symlink is installed
in /usr/lib so that the name "libfoo_pic.a" still exists for third party
software that explicitly wants an _pic.a library.
1999-11-28 04:50:41 +00:00
perry
9ad44ce879 Add a "dependall" target, which does a "make depend" and then "make all"
in a single directory. This is useful in "make build" because by doing
the build immediately after the depend, all sources will typically
still be in the buffer cache, thus saving significant time over doing
a "make depend" on all the directories and then a "make all".
1999-09-14 01:31:11 +00:00
christos
3d2671a09d sort the object file build so that we get better buffer cache behavior.
[from perry, with fixes from me]
1999-09-12 00:31:34 +00:00
fredb
1008436afc Permit "make all install", as well as "make foo install" (where foo would be
installed by "make install") without setting of BUILD. All cases where BUILD
is already set are unchanged from the old behavior.

"make all install" is now practically equivalent to "make BUILD= all install",
but without actually setting build.

Fixes pr's 8313, 3894.
1999-09-04 21:48:33 +00:00
simonb
7987e3b34d Add ${INSTPRIV} to ${INSTALL} commands. 1999-08-21 06:17:45 +00:00
wrstuden
5b112fce77 Re-arrange location of "-nostdlib" in DESTDIR case so that cross-ld's
won't name the output file "stdlib".
1999-07-14 20:18:07 +00:00
simonb
3a3605e823 Use ${SHLIB_VERSION_FILE} as the location of the shared library version
file.  Pass this to checkver with the new -v option as well.
1999-06-10 00:40:05 +00:00
christos
11cfd21df0 Don't strip symbols if -g is specified. We might want to be able to debug
libraries!
1999-06-07 01:37:00 +00:00
fair
e1134b1863 Patched per PR 7283; this causes shared libraries which depend on
other shared libraries to load against the ones just built when
DESTDIR is set (i.e. -L${DESTDIR}${LIBDIR} ), rather than what's
installed in /usr/lib (previous behavior definitely violated the
Principle of Least Astonishment!).
1999-03-30 09:30:43 +00:00
drochner
cf3c9d73cd add missing parts of the "mips"->"mipse?" transition 1999-02-24 14:42:36 +00:00
christos
7054064487 Add sparc/elf bits. 1999-02-14 19:12:09 +00:00
lukem
41510f9a2b for MKSHARE=no, set MKDOC=no MKMAN=no MKNLS=no, and for MKMAN=no, set
MKCATPAGES=no.  this simplifies various tests.
1999-02-12 12:38:44 +00:00
lukem
497d11782a * Add support for MKDOC MKLINKLIB MKLINT MKMAN MKNLS MKOBJ MKPIC MKPICINSTALL
MKPROFILE MKSHARE, which default to `yes' unless an equivalent NOxxx
  variable is defined.
* Add MKCATPAGES, which if "no" prevents catpages from being built or installed

Users should use "MKxxx=no" instead of "NOxxx=" in /etc/mk.conf, because
this allows easy override on the make(1) command line (e.g 'make MKSHARE=yes'
to override MKSHARE=no in /etc/mk.conf).
1999-02-12 01:10:06 +00:00
christos
f16578a952 PR/2936: Brian C. Grayson: Avoid truncating precious files when installing
and the filesystem is full. Added ${RENAME} flag to install, which when set
to -r installs on a temporary file and then renames to the final destination.
${RENAME} is currently set to nothing in bsd.own.mk, but one can turn it
on in /etc/mk.conf.
1999-02-04 11:58:30 +00:00