Commit Graph

128 Commits

Author SHA1 Message Date
jb
2afbc55469 Add a man section 1aout for the legacy man files to avoid them being
installed over the ones from binutils.
1998-09-07 05:55:02 +00:00
jb
d87af5ad40 BINFORMAT -> OBJFORMAT ready for E-day. 1998-08-30 20:33:27 +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
dt
ff5abf883c Recognize ".cpp" as a C++ suffix.
PR:		3476
1998-06-05 18:38:55 +00:00
bde
b50e223076 Oops, forgot references in previous commit.
Submitted by:	Brian Cully <shmit@erols.com>
PR:		6178
1998-05-15 09:34:48 +00:00
bde
680f5e79ae Support Objective C almost as well as C++.
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.
1998-05-15 09:30:13 +00:00
bde
ea52868070 Moved lex and yacc source handling from bsd.prog.mk to bsd.dep.mk
so that it applies to libraries (and lkms) as well as programs.
1998-05-08 06:31:05 +00:00
bde
e6e7e77dcf Regress to generating foo.c from foo.y via y.tab.c for crufty applications
that want a y.tab.h file.  This want must be specified by putting y.tab.h
in SRCS (and defaulting to or putting -d in YFLAGS).  This only works if
there is only one yacc parser, of course.  One improvement:  copy y.tab.c
to foo.c instead of renaming it, so that `#line...y.tab.c' statements in
it refer to an existing file.

Regress to not generating explicit rules for .l and .y sources containing
slashes.  This case is unusual and hard to handle properly.

Don't generate an unused dependency when -d is not in YFLAGS.
1998-05-06 15:01:18 +00:00
bde
0500cc5c9f Oops, the symlink from y.tab.h doesn't work until its target exists. 1998-05-05 03:59:27 +00:00
bde
9c5d362f0a Fudge local variables better in the yacc rules so that multiple yacc
sources are handled properly.
1998-05-04 17:43:46 +00:00
bde
bcde8eae1d Generate explicit rules and other infrastructure for lex and yacc
sources.  This will be used to fix `make -jN' races in many
Makefiles in /usr/src, and to simplify these and other Makefiles.

To get the fixes and simplifications, application Makefiles should
put the raw lex and yacc source names (foo.l and bar.y) in SRCS and
not put the names of any generated files in SRCS or CLEANFILES.  A
few Makefiles already do this, although it didn't actually work before
(mkdep couldn't create complete dependencies because there is no
intermediate .c file for the .y.o and .l.o implicit rules).

Complications: if bar.y is in SRCS and -d is in YFLAGS, then bar.h
will be generated whether or not it is used, even if this clobbers a
real source file.  This is so that bar.c can be generated using the
-j-safe and debugger-friendly -o option to YACC.  There are smaller
warts for handling y.tab.h.  y.tab.c and lex.yy.c are not supported.
1998-05-04 13:54:41 +00:00
eivind
c1186a0b4b Support new version of global.
Submitted by:	Shigio Yamaguchi <shigio@wafu.netgate.net>
Tested by:	make buildworld
1998-03-23 14:58:30 +00:00
eivind
4e506c209b Introduce the 'regress' target.
Silently approved by:	-hackers, -current
1998-03-12 20:02:17 +00:00
bde
beffd6fcac Removed support for now-unused FreeBSD misfeature DPSRCS. 1998-03-06 07:28:01 +00:00
bde
02ba4c143f Fixed dependency of ${PROG} on ${DPSRCS}. There were various races
for `make -j'.  There are one-off fixes for the problem in a few
Makefiles, e.g., amd/amq/Makefile.
1998-03-06 06:48:39 +00:00
bde
ff694902b3 Removed clean target. Simply add to CLEANFILES so that the default target
in bsd.obj.mk works.
1998-02-25 02:56:58 +00:00
eivind
0edca1f0f6 Limit check for target to smaller section of makefile. 1998-02-19 14:53:29 +00:00
eivind
896db5cdb4 Don't create a ${PROG} target if it already exists. 1998-02-19 01:30:23 +00:00
helbig
9a8103d327 Postpone the test for non-emptiness of $PROG, $OBJS and $CLEANFILES
to ``shell time''. The previous version didn't work in
/usr/src7share/man/man4.
Reviewed by:	bde
1998-02-07 17:19:06 +00:00
bde
5123be31b9 Oops, the previous patch was botched. 1997-12-18 12:56:52 +00:00
bde
bd59d1ae52 Oops, rm -f can't handle empty lists. 1997-12-17 15:35:09 +00:00
bde
8526cea3ba Don't clean files that we don't create.
Fixed style of empty test.

Include <bsd.libnames.mk> if `checkdpadd' is being made, so that it can
:e checked until it goes away.
1997-12-17 13:40:00 +00:00
peter
e74698834a Change the BINFORMAT definitions so that they do not depend on sys.mk,
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.
1997-09-05 09:09:56 +00:00
peter
f8d0d61b62 A first cut at some rules for building elf shared libs. Of particular
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! :-)
1997-08-30 23:23:18 +00:00
asami
f48e1d0fca Merge buildworld/installworld patch to Makefile from RELENG_2_2. Patch
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
1997-08-05 03:49:49 +00:00
asami
4632fa4e06 Do not set the application variable LDDESTDIR. Note that it is still honored
in a few places (in bsd.lib.mk and bsd.prog.mk); this merely fixed part of
the brokenness by not setting it here.

This fixes building of secure telnetd when DESTDIR is defined.
(Otherwise, it will try to link libtelnet from ${DESTDIR}/usr/lib.)

Reviewed by:	bde, jkh
1997-07-31 06:12:04 +00:00
pst
4a9547432a Make NOSHARED = no / NOSHARED = NO do what you'd expect. 1997-06-28 08:14:10 +00:00
jkh
a8bb7ab7de Change the distribute targets so that a given item in our source tree
can place itself into n distributions, where n >= 1.
1997-06-21 15:40:34 +00:00
asami
a9639d5208 Change CXXINCLUDES to use "g++" explicitly. CXXINCLUDES was defined
with ${CXX} at the end; the only problem was, the directory name is
"g++" and ${CXX} is defined as "c++" in sys.mk.
1997-05-23 08:38:46 +00:00
bde
e95e039f7f Pass everything in ${LDADD} directly to the linker for `make depend'
to prevent complaints from the compiler about nonexistent libraries.
1997-04-23 18:47:42 +00:00
bde
02bd05d5f0 Removed unused (and almost unusable) support for LDONLY. See ld/rtld
for how to use gcc to invoke the linker only.

Removed `.if 0'ed support for not creating intermediate object files.

Removed unused include of bsd.libnames.mk (LDONLY had the last reference
to it).

Removed stale misplaced comment about MANDEPEND.
1997-04-19 14:36:49 +00:00
jkh
1b2fdd568d Support GLOBAL style tags. 1997-04-13 06:44:25 +00:00
bde
b531e6bb86 Use ld -f' (actually cc -Wl,-f') at `make depend' time to generate
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.
1997-04-09 16:10:27 +00:00
bde
1f6d100236 Don't use dot in a chown command. The chown command has been a no-op
for years since it is for a symlink.
1997-03-08 19:47:08 +00:00
peter
83b3c2c161 Revert $FreeBSD$ to $Id$ 1997-02-22 14:13:04 +00:00
bde
40f9a4d635 Removed bogus NOOBJ ifdef which was added in rev.1.18-1.19. SRCS is
for C sources only and must not be set if you don't want C objects.

This should fix PR2748.

This should go in 2.2.
1997-02-17 07:52:37 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
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.
1997-01-14 07:20:47 +00:00
bde
6f8724483d Fixed dependencies on libraries which I broke in rev.1.39 of
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.
1996-09-28 06:01:01 +00:00
swallace
bf917b5852 .TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in
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
1996-09-18 06:09:19 +00:00
bde
aeb8c7e8c5 Moved definitions of library names from bsd.prog.mk to a new central
file bsd.libnames.mk and include this file where necessary.  This fixes
null library names in ${DPADD}'s in library makefiles.
1996-09-05 18:05:08 +00:00
jkh
109d53254e Back out the recent DEPEND changes - as Bruce points out, it's bogus.
I'll leave any future Makefile hackery to him since he's clearly thought
about this a great deal more than I have.
1996-08-25 05:16:56 +00:00
jkh
4a6f54f391 Make it possible to turn the depend pass off entirely with a NO_DEPEND
variable.
Requested-By: wollman
1996-08-23 22:33:33 +00:00
jkh
b2b6db6804 Add depend to all target so that it's explicit. It's only done once,
even if make all is run multiple times, since the depend rule looks for
an existing .depend file.
1996-08-23 16:49:06 +00:00
phk
6d4faa5ec8 Make cleandirs more safe
Suggested by:	bde
1996-06-29 03:12:49 +00:00
jkh
8eb37231d4 Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src.  This is the final version of the
patches, incorporating the feedback I've received from -current.
1996-06-24 04:26:21 +00:00
phk
e1fc172426 Add man-page section 'n' and LIBTCL macro. 1996-06-22 06:01:57 +00:00
phk
e96f6124d1 Add support for ${CLEANDIRS} that will be rm -rf'ed during clean & cleandir. 1996-06-17 15:59:52 +00:00
jkh
672da9a3d0 Add LIBFTPIO 1996-06-17 12:31:02 +00:00
wosch
5c58b27ede remove BINGRP?= BINOWN?= BINMODE?= 1996-03-24 00:41:11 +00:00
bde
a10bba8d1e sysinstall/Makefile:
Fixed DPADD again.

mk/bsd.README
Don't list the LIBXXX identifiers here.  Describe them better.

mk/bsd.prog.mk
Updated the list of LIBXXX identifiers.
- recently added library libdisk.a wasn't mentioned (required for sysinstall)
- old objects kz*.o weren't mentioned
- old libraries libc_pic.a, libcom_err.a, libf2c.a, libg++.a, libgcc_pic.a,
  libgmp.a, libipx.a, libkeycap.a, libss.a and libxpg4.a weren't mentioned
- old libraries libgnumalloc.a and libftp.a no longer exist
- old library libmp.a was said to not exist
- deprecated links libfl.a and libln.a weren't mentioned
1996-03-19 14:30:15 +00:00
wosch
cd59967f37 [Ee]rrs -> Errs errs, save one process for make clean 1996-03-09 23:48:55 +00:00
wollman
6db5ef09ae Compress manual pages (if desired) in the obj directory rather
than in the installation destination.  Should make release-building
substantially faster.  The msun Makefile changes simple adapt to the new
scheme.
1995-10-02 20:02:05 +00:00
bde
683c832487 Submitted by: charnier@lirmm.fr (Philippe Charnier)
Fix comment on .else to match code.
1995-05-07 06:39:30 +00:00
jkh
79408b90d9 Add LIBFTP. 1995-04-26 14:34:19 +00:00
olah
98f80a4861 LIBPCAP -> ${DESTDIR}/usr/lib/libpcap.a 1995-03-08 09:01:32 +00:00
phk
6ba3ecf5d2 "make distribute" have changed, beware if you use it. 1995-02-25 20:51:14 +00:00
bde
c68c6ddc37 More complete implementation of SUBDIR for programs, libraries and kmods.
`depend' wasn't supported.  This seems to have only broken `make depend'
in gnu/usr.bin/ld.

bsd.prog.mk:
Build the man pages in ${MANDEPEND} at build time.
1995-02-08 21:35:31 +00:00
jkh
17c91c62b7 Add new LN_FLAGS variable for making LINKS symbolic and whatnot. 1995-01-30 07:20:01 +00:00
ache
5ab1c05e59 LIBFORMS & LIBSCSI added 1995-01-25 20:24:01 +00:00
jkh
43338ad78f NOOBJS was bogus - use the already extant `NOOBJ'. 1995-01-24 17:50:30 +00:00
jkh
097c100f64 Add the ability to say `NOOBJS' to indicate that the target has no object
files.
1995-01-24 17:33:22 +00:00
jkh
ece97fd6fb The enclosed patch is a cosmetic change to bsd.prog.mk. When
a program directory has subdirectories, make now prints "===> dir/subdir"
instead of "===> subdir".  This is modeled after the rules contained in
bsd.subdir.mk.

Submitted by:	Remy Card <Remy.Card@masi.ibp.fr>
1995-01-14 19:48:49 +00:00
jkh
f89d36730c Change DISTRIBUTION names. Also make bsd.doc.mk go to doc distribution,
not bin.  Hmmm.
1995-01-14 07:51:10 +00:00
ache
3179f36757 Move INSTALL?=install line duplicated into each .mk to sys.mk
instead
1994-12-28 03:51:03 +00:00
bde
7284bc5e13 Don't use `MKDEP= -p' even for the case of a single source file since we
always make an intermediate object file.
1994-12-22 17:20:52 +00:00
bde
5bb14446b2 Define LIBEDIT, LIBGCC, LIBKVM, LIBSCRYPT and LIBY.
Comment about missing libraries for LIBDES, LIBKDB, LIBKRB, LIBMP, LIBPC
and LIBPLOT.

Don't define LIBDBM since it was replaced by db in libc.

Remove duplication.  ${DESTDIR}/usr/lib/... gives /usr/lib/... even when
DESTDIR is not defined.
1994-11-14 04:28:44 +00:00
phk
94e55d40f9 Add a new "distribute" target. This is a variant of install, which will
put the stuff into the right "distribution".  As default things end up
in "bindist".

Normal (ie: most) makefiles know naught of this.

More commits will follow, which will direct various parts of the tree
into the distribution we want them in.

Some of the grief of being release-engineer is supposed to go away with this.
1994-11-13 21:05:28 +00:00
bde
f95ca78f1b Use += instead of ?= for setting LDDESTDIR. Some Makefiles, such as
cc/Makefile.inc use (abuse?) LDDESTDIR for their internal libraries
so "?=" hides non-default external libraries.  Adding multiple paths
to LDDESTDIR works except it makes it even harder than usual to
decide which libraries will actually be linked against.
1994-10-25 18:09:44 +00:00
pst
1552617ffd Added libmd.a -> LIBMD 1994-10-18 23:01:22 +00:00
ache
3c7afd9c83 LIBDIALOG added 1994-10-11 23:38:19 +00:00
rgrimes
59cd879bac SHAREDSTRINGS support was no longer used and just clutters things up,
removed.
1994-10-10 03:18:47 +00:00
ache
c782ecfd03 LIBMYTINFO and LIBNCURSES defines added 1994-10-07 03:10:05 +00:00
jkh
7aa31544d6 Add support for DEBUG_FLAGS. If you say something like:
make DEBUG_FLAGS=-g2

You can compile something for debugging at debugging level 2.
It will also take care not to strip the resulting executable(s).
1994-09-16 14:30:25 +00:00
rgrimes
2b975cb8d0 Change all references to LIBTERM and -ltermlib to LIBTERMCAP and -ltermcap 1994-09-11 21:32:28 +00:00
bde
cd66f45443 Fix spelling error in little-used target.
Build an intermediate object file even when there is only one source
file.  This costs a little space but saves time if the target is rebuilt
a lot, and it stops the target varying with the name of temporary
intermediates.

Use ${ECHO} instead of `echo' so that `make -s' is fairly quiet.

Use ${ECHODIR} instead of echo for printing directory names so that
`make -ss' is very quiet.
1994-08-28 15:32:10 +00:00
wollman
7d898724d7 Make the install targets obey the INSTALLFLAGS requests in the new
Makefiles.

DANGER WILL ROBINSON!

This will cause repeat installs of certain programs, such as `init' and
`rcp', to fail unless one of the two conditions is met:

	1) You are in single-user mode.
	2) Your security level is set to 0 or -1.

If you have compiled a kernel from the latest sources, your kernel
security level is set to -1 by default, which will keep `init' from
fiddling with it.  You can increase it, but not decrease it, from the
command line with the command `sysctl -w kern.securelevel=<new value>'.
I believe that -1 is the most appropriate value to use while we are still
developing the code, although when we ship it should be changed back to 0.

See init(8) for more information.
1994-08-10 02:48:08 +00:00
wollman
5a93a2fdb9 Spplat our 1.1.5 `mk' ifiles over the top of the 4.4 ones. So far
as I can tell, this is ts the right thing to do.
1994-08-04 21:09:27 +00:00
rgrimes
b0d61785ca BSD 4.4 Lite Share Sources 1994-05-30 19:09:18 +00:00