summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.lib.mk
Commit message (Collapse)AuthorAgeFilesLines
* When dubiously reprogramming .SUFFIXES, don't screw up the order of .Sbde2000-06-081-1/+1
| | | | | relative to .s. This fixes wrong sources being preferred after "gcc -save-temps" creates .s files from .S files.
* Unbroke PRECIOUSLIB feature (broken in rev 1.88).ru2000-02-031-1/+1
| | | | | | Original version submitted by: Jim Bloom <bloom@acm.org> Reviewed by: bde Approved by: jkh
* Introduce the new mk internal target _includeinstall and add thergrimes2000-01-141-1/+11
| | | | | | controlling knob defaults INCOWN, INCGRP, INCMODE, and INCDIR. Reviewed by: marcel, and make world
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Add variable INSTALLFLAGS_EDIT used to remove arbitrary INSTALLFLAGS.hoek1999-07-311-5/+14
| | | | | | | | | | | | | | | 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.
* add support to buildworld as a normal user:jmg1999-06-241-3/+3
| | | | | | | -DNOFSCHG disables installation of libs with flag schg GAMEGRP change the group with which games are installed also organize the binary section into alphebetical order some what..
* Removed all traces of LN_FLAGS. It was only used to produce a linkbde1999-03-231-4/+14
| | | | | | | | | | | | | | | | /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
* Introduce a new variable NEED_LIBNAMES. If it is defined,jdp1999-01-221-2/+2
| | | | | | | <bsd.libnames.mk> is included regardless of the object file format. This is needed to fix the a.out PAM breakage that manifests itself when trying to build login.
* Add some capabilities to <bsd.lib.mk> so that it can be used forjdp1999-01-201-48/+47
| | | | | | | | | | | | | | | | | | | | | | | | | building dlopen-able modules, and add features needed to build a static PAM library. I think I cleaned it up some, too, but beauty is in the eye of the beholder. You can now build a shared library without version numbers, by defining SHLIB_NAME to something like "pam_unix.so". If SHLIB_MAJOR and/or SHLIB_MINOR are set, SHLIB_NAME gets the usual default value, but it can be overridden if desired. If none of these symbols are set, no shared library is built. SHLIB_LINK controls the name of the symbolic link that points to the library. If it is unset, no link is made. In the usual case, it gets the right default: e.g., "libc.so" for ELF, nothing for a.out. This can be overridden. STATICOBJS can be set to a list of extra object files that should be added to the static library but not to the shared library. These objects are added to the profiled library too. These changes should make it easy to use <bsd.lib.mk> for building things such as PAM modules and dynamic linkers, for which <bsd.prog.mk> has been abused until now.
* Switch to using ".So" as the extension for PIC object files ratherjdp1999-01-091-13/+13
| | | | | | | | than ".so". The old extension conflicted with well-established naming conventions for dynamically loadable modules. The "clean" targets continue to remove ".so" files too, to deal with old systems.
* Removed bitrotted code for setting OBJFORMAT.bde1998-12-061-8/+1
|
* For ELF, create a symbolic link libfoo.so -> libfoo.so.NNN in thejdp1998-11-181-3/+5
| | | | | object tree too. This makes it possible to link against a shared library that hasn't been installed yet.
* Default to aout only on i386. Before we defaulted to elf only onimp1998-10-191-4/+4
| | | | | | Alpha. This is a minor, but important distinction. Should be a no-op to the install base. If OBJFORMAT is set elsewhere, things work exactly as they did before.
* Change lib specification in `clean' target to match ELF shared libs too.obrien1998-09-201-2/+2
| | | | Reported by: Kris Kennaway <kkennawa@physics.adelaide.edu.au>
* BINFORMAT -> OBJFORMAT ready for E-day.jb1998-08-301-10/+10
|
* Clean up all temporaries that we can generate.peter1998-08-081-9/+6
|
* Use more standard ld commands when stripping symbols out; ld -O is apeter1998-08-081-19/+37
| | | | | | freebsd-aout extension. The binutils ld doesn't understand it. Essentially this is backing out rev 1.33 for elf and other toolchain support..
* Make ../Makefile.inc handling more consistant to prevent multiple includespeter1998-08-081-1/+4
| | | | | | 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).
* Recognize ".cpp" as a C++ suffix.dt1998-06-051-5/+5
| | | | PR: 3476
* Hard coded /usr/lib referencepeter1998-06-041-2/+2
|
* Oops, forgot references in previous commit.bde1998-05-151-1/+1
| | | | | Submitted by: Brian Cully <shmit@erols.com> PR: 6178
* Support Objective C almost as well as C++.bde1998-05-151-9/+13
| | | | | | | | | Notes: - We no longer use -fgnu-runtime in bsd.lib.mk, since it is the default and bsd.lib.mk is the wrong place to override it. - Gnu C doesn't have a special compiler driver for Objective C like it does for C++. The defaults are suitable for Gnu C. Use `OBJCLIBS=' in /etc/make.conf for POC.
* Introduce the 'regress' target.eivind1998-03-121-1/+5
| | | | Silently approved by: -hackers, -current
* Fixed generation of extra dependencies:bde1998-03-071-6/+3
| | | | | | | - the two `_EXTRADEPEND::' targets potentially clobbered each other for `make -jN'. In practice, the output for the second target sometimes disappeared. - bogus dependencies were generated for static libraries.
* If .depend doesn exist, then pretend that all objects depend on allbde1998-03-061-1/+6
| | | | | | headers in ${SRCS}, as in bsd.lmod.mk and bsd.prog.mk. This helps `make [-j]' work when .depend doesn't exist. Even plain `make' sometimes only worked because of magic ordering in ${SRCS}.
* Removed default tags target. It was identical to the central one inbde1998-02-201-13/+1
| | | | bsd.dep.mk.
* Choose the default binary format based on machine type.jb1998-01-131-1/+5
| | | | Alpha is elf, not aout.
* Oops, rm -f can't handle empty lists.bde1997-12-171-1/+3
|
* Normally don't include <bsd.libnames.mk>. Include it in the !aout casebde1997-12-171-6/+8
| | | | | | | | | (as in bsd.prog.mk). Include it if `checkdpadd' is being made, so that it can be checked until it goes away. Don't clean files that we don't create. Fixed style of empty test.
* Restore the BINFORMAT?= in sys.mk, or it's painfully difficult to usepeter1997-09-051-3/+6
| | | | | | | | .if in Makefiles. bsd.prog.mk and bsd.lib.mk do not depend on it however. Allow overriding of the -soname arg when building the lib*crypt.so* libs since libdescrypt.so and libscrupt.so both need a -soname of libcrypt.so so that the symlink is obeyed at runtime rather than at compile time.
* Change the BINFORMAT definitions so that they do not depend on sys.mk,peter1997-09-051-1/+4
| | | | | | since 2.1.x make(1) apparently does not have the -m switch to set both the the bsd.*.mk and sys.mk location, and this breaks 'make world' from a 2.1.x system.
* A first cut at some rules for building elf shared libs. Of particularpeter1997-08-301-1/+38
| | | | | | | | note, using "-Wl,-f" to generate a library objects list doesn't work anymore since the hack to ld hasn't been incorporated into binutils-2.8. (and the -f switch is used for something else already) This is disabled by default, don't panic! :-)
* Merge buildworld/installworld patch to Makefile from RELENG_2_2. Patchasami1997-08-051-1/+3
| | | | | | | a couple *.mk files to enable -current world building on really old machines (e.g., 2.1.5). Reviewed by: too many many people to list here, special thanks to bde
* Change the distribute targets so that a given item in our source treejkh1997-06-211-2/+4
| | | | can place itself into n distributions, where n >= 1.
* Add `B' to list of flags to pass through from C*FLAGS when using mkdepasami1997-06-181-7/+7
| | | | | | | | | (bsd.dep.mk) and compiling assembly language sources (bsd.lib.mk). This doesn't change anything for our current source tree, but if you want to use the -B switch in C*FLAGS to specify the location of compiler subprograms, now you can do it. Reviewed by: bde (implicitly)
* Add "-assert pure-text" to the link line. The warnings about RRSdfr1997-05-231-2/+2
| | | | relocations in text sections are now dependant on this flag.
* Change CXXINCLUDES to use "g++" explicitly. CXXINCLUDES was definedasami1997-05-231-2/+2
| | | | | with ${CXX} at the end; the only problem was, the directory name is "g++" and ${CXX} is defined as "c++" in sys.mk.
* Use "gcc -shared" instead of "ld -Bshareable" for building sharedjdp1997-05-041-11/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | libraries. Remove the now-unneeded CPLUSPLUSLIB hack. I will also remove the CPLUSPLUSLIB definitions from the Makefiles that use it, after the dust settles. Use gcc's LIBRARY_PATH environment variable to handle DESTDIR, instead of -L flags in LDDESTDIR. LIBRARY_PATH is documented in the gcc info pages. It is better than using -L flags, because it modifies the search for start-up files as well as for libraries. A new variable LDDESTDIRENV is used to contain the normally-empty LIBRARY_PATH environment setting. LDDESTDIR is no longer set in <bsd.lib.mk>. It is still honored for the time being, because a couple of userland Makefiles still (wrongly) set it. These should be fixed, and LDDESTDIR should vanish. Removed the commented-out "LDDESTDIR+=-nostdlib", because "gcc -shared" doesn't link in any standard libraries anyway. Removed the ".if defined(LDADD)" around the _EXTRADEPEND target for shared libraries. This target is always necessary now, because c++rt0.o is linked into every shared library. Don't merge this into -2.2 without first merging the support for "gcc -shared".
* Fixed missing strip step in .S.o and .S.po rules.bde1997-04-231-5/+7
| | | | | | | | Fixed back to front -X and -x strip flags in .m.o and .m.po rules. Fixed disordered .m.o and .m.po rules. What is .m? Stripping probably should be removed. It makes problems in library functions hard to debug...
* Support GLOBAL style tags.jkh1997-04-131-3/+9
|
* Use "-pg" instead of "-p" for generating profiled object files.jdp1997-04-091-5/+5
| | | | | | The two options differ only when linking, but "-p" is incorrect because it is associated with the old-style "prof" command, which we do not support.
* Use `ld -f' (actually `cc -Wl,-f') at `make depend' time to generatebde1997-04-091-6/+13
| | | | | | | | | | | | | | almost perfect dependencies on crt0's and libraries. DPADD and bsd.libnames.mk should go away soon. Use a new _EXTRADEPEND target to implement this and to avoid editing of .depend when .depend isn;t being rebuilt. The afterdepend target doesn't seem to be good for anything and is now unused. Fixed LDDESTDIR for the DESTDIR case when ${SHLIBDIR} != /usr/lib. Added commented-out -nostdlib to LDDESTDIR for the DESTDIR case. The wrong libraries may be used without this; however it breaks linkage to crt0 and libc.
* Revert $FreeBSD$ to $Id$peter1997-02-221-1/+1
|
* Fix a typo in the .s.o rule: asssembler -> assemblerjmz1997-02-141-1/+1
|
* Don't use /tmp for afterdepend cleanup targetpst1997-01-261-1/+1
|
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Fixed dependencies on libraries which I broke in rev.1.39 ofbde1996-09-281-2/+3
| | | | | | bsd.prog.mk and didn't actually fix in rev.1.43 of bsd.lib.mk. The library names must be defined before they are used in dependencies.
* add -fgnu-runtime to the .m.o and .m.po rules, since we (will) havepeter1996-09-191-3/+3
| | | | | | the gnu libobjc rather than the NeXT one. I do not understand objc so I don't know the implications of this, but the gcc-2.7.2 libobjc is built with this.
* .TARGETOBJDIR has been removed from make and CANONICALOBJDIR set inswallace1996-09-181-2/+2
| | | | | | | | | | bsd.obj.mk. Also, a make target called objwarn checks to see if ${.OBJDIR} != ${.CURDIR} and ${.OBJDIR} != ${CANONICALOBJDIR} and outputs a warning. (No warning for the latter if MAKEOBJDIR or MAKEOBJDIRP REFIX is set). objwarn is called from all targets in bsd.prog.mk, bsd.kmod.mk, and bsd.lib.mk. Reviewed by: bde
* Moved definitions of library names from bsd.prog.mk to a new centralbde1996-09-051-1/+2
| | | | | file bsd.libnames.mk and include this file where necessary. This fixes null library names in ${DPADD}'s in library makefiles.
OpenPOWER on IntegriCloud