613 Commits

Author SHA1 Message Date
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
steve
7ca8d65654 Change a couple 'make' to '${MAKE}'.
PR:		6341
Submitted by:	Niall Smart <rotel@indigo.ie>
1998-05-04 04:01:26 +00:00
bde
f5d79ab0c0 Added -ansi to CWARNFLAGS so that ANSI errors don't come back. 1998-05-01 18:13:37 +00:00
jkh
1b9c37d2c0 Add -pipe to default CFLAGS. The optimization it provides is cheap
and does not require any special action on the part of the user to
take advantage of it.  And no, it probably won't work with c89. Cry me
a river!
1998-05-01 11:36:59 +00:00
bde
8327dd798b Don't include ../Makefile.inc here. bsd.man.mk is always included
in another .mk file which has already included ../Makefile.inc, so
including ../Makefike.inc again mainly messed up `+=' definitions.
1998-04-27 15:08:07 +00:00
eivind
c72d59a60b Support for fine-grained external control of subdir building. 1998-03-29 01:10:09 +00:00
eivind
fe6e694b6b Remove special handling of 'tags' for complex subdir systems
(presently only used in tip; should have been used by e.g. pkg_add).

Submitted by:	bde
1998-03-26 16:02:44 +00:00
asami
553a1bce6d Don't delete "Latest" link if NO_LATEST_LINK is set. 1998-03-24 03:34:51 +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
bde
ccd7117cf6 Use gzip's -n flag so that simple regression tests of `make world'
work better.
1998-03-19 13:32:43 +00:00
bde
b256fa6d48 Fixed CLEANFILES. Some temporary files were missing. 1998-03-19 13:22:46 +00:00
bde
1dbe6d5685 Improved comparison of ${DPADD} with ${LDADD} for the checkdpadd target.
`BINFORMAT=foo make checkdpadd' in /usr/src now reports only 2 false
negatives (in libss and init).  (BINFORMAT=foo is to turn off better
handling of the a.out case.)
1998-03-14 14:08:29 +00:00
eivind
4e506c209b Introduce the 'regress' target.
Silently approved by:	-hackers, -current
1998-03-12 20:02:17 +00:00
bde
0dc53f4655 Pass -nostdinc to mkdep for assembler and C files (it was already
passed for C++ files).

Don't pass -nostdlib to mkdep for C++ files.

Don't use temporary variables to obfuscate the main rule.
1998-03-07 13:57:37 +00:00
bde
59afc22831 Fixed generation of extra dependencies:
- 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.
1998-03-07 13:13:41 +00:00
asami
a7987039c3 Add ${CXX} to list of variables passed in the environment when
invoking configure.

Submitted by:	obrien
1998-03-07 04:40:19 +00:00
bde
3875d4d80e If .depend doesn exist, then pretend that all objects depend on all
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}.
1998-03-06 08:08:36 +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
1d5c36420a Fixed dependencies of ${PROG} on ${DPSRCS} and `all' on ${_ILINKS}.
There were various races for `make -j'.  Half-built versions of
vnode_if.h were sometimes #included...

Removed a null dependency.
1998-03-06 05:43:46 +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
bde
4c126f13e8 Remove ${CLEANDIRS} in the default clean rule, so that bsd.prog.mk can
use the default without losing any (currently unused) features.
(CLEANDIRS is only used by for libgmp and libmp via bsd.lib.mk, and
only documented everywhere it is supported except of course where it
is actually used.)
1998-02-25 02:48:28 +00:00
bde
d805694c36 Don't add ${DOC}.ascii* to CLEANFILES twice. 1998-02-25 01:35:16 +00:00
bde
15ed497b91 Removed default tags target. It was identical to the central one in
bsd.dep.mk.
1998-02-20 15:58:59 +00:00
bde
79dd9d614b Removed default tags target. PROG is always defined here, so ifdefing
it was bogus, and without the ifdef the default is identical to the
central one in bsd.dep.mk.
1998-02-20 15:52:49 +00:00
bde
0c03a011b7 Don't pass the undocumented flags `-se' to gtags (gtags ignores them for
compatibility).
1998-02-20 15:27:03 +00:00
bde
52f295ed40 Fixed cleaning of tags files. GSYMS was forgotten. 1998-02-20 14:32:30 +00:00
eivind
0edca1f0f6 Limit check for target to smaller section of makefile. 1998-02-19 14:53:29 +00:00
asami
7d4af6ecd6 (1) Don't disable "deinstall" if IGNORE is set.
I don't know what the hell I was thinking in:	rev. 1.268

(2) Create ${PREFIX} before calling mtree if it doesn't exist.  This
    may not be the best solution, but pre-install is called after
    mtree so there really isn't any way to fix this from the port
    Makefiles and thus has to be done here.
1998-02-19 06:49:27 +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
asami
e36340457e (1) Improve the obsolete tcl/tk detection and dignosis.
Reviewed by:	the lists

(2) Change MASTER_SITE_CTAN to reflect current reality.
Submitted by:	fenner

(3) Add new port variable NO_LATEST_LINK.  When this is set, the
    "Latest" package symlink is not created.  Use this for ports that
    are betas when there is also a port for an older, more stable,
    version.

(4) Don't be too stupid about "make deinstall".
Submitted by:	fenner
1998-02-04 10:36:56 +00:00
bde
64af97a339 Restrict the include search path using -nostdinc -I- in $(CFLAGS} as
in kernel Makefiles.  Nothing in /usr/include is used (provided
relative paths for sys/* and <machine> can be found), so there is
no need for the -I/usr/include kludge as in kernel Makefiles.
1998-02-01 17:19:54 +00:00
obrien
247217cd33 Allow package building in current directory again. 1998-01-31 20:59:30 +00:00
bde
7cbf610544 Generate symlinks to the "sys" and <machine> directories and put
them in the include path.  This fixes recent breakage of the syscons
LKMs and general brokenness of the include paths (headers under
/usr/include were used in many cases).
1998-01-26 20:36:38 +00:00
jkh
a26fcf19bd DISTRIBUTION=bin - we separate it out later. 1998-01-23 20:09:21 +00:00
jb
1ee427586a FreeBSD's make knows about the MACHINE, but not the MACHINE_ARCH unless
it is built with this defined (which it isn't by default). This change
to sys.mk treats the absence of MACHINE_ARCH as i386 on the assumption
that it will be appropriately defined (as something else) on any other
architecture. When building FreeBSD's make with NetBSD tools, both
MACHINE and MACHINE_ARCH are correctly set (e.g. when bootstrapping
FreeBSD's make on NetBSD/mvme68k, MACHINE=mvme68k and
MACHINE_ARCH=m68k). This isn't really needed for the alpha which
has both defined as 'alpha', but I thought it was worth getting the
distinction between a MACHINE and a MACHINE_ARCH correct now.

Now, shouldn't PC98 have MACHINE=pc98 and MACHINE_ARCH=i386 ??!!
1998-01-21 01:03:51 +00:00
jb
6a931ec2e7 Choose the default binary format based on machine type.
Alpha is elf, not aout.
1998-01-13 06:00:56 +00:00
steve
225a439006 Add a couple of ?='s missed in the previous commit.
Noticed by:	Paul Allenby <pallenby@zibbi.mikom.csi.co.za>
1998-01-04 00:00:21 +00:00
wosch
3c50ce9542 Add new variables:
LIBCOMPATDIR 	[/usr/lib/compat]
	LIBDATADIR 	[/usr/libdata]
	INCLUDEDIR 	[/usr/include]
	LIBEXECDIR 	[/usr/libexec]
1998-01-03 19:07:30 +00:00
wosch
a29bc9801d Undo rev 1.11, the cd is null since NOOBJ is set.
444 -> ${SHAREMODE}
1998-01-03 14:04:55 +00:00
asami
9e70bbf772 About one month worth of bsd.port.mk improvements.
(1) Allow multiple checksums of same file.
Submitted by:	hoek

(2) Add "deinstall" target as an alias to "pkg_delete $(make package-name)"
    (well, something like that, see diff for details).

(3) Add new port variable USE_AUTOCONF.   It appends BUILD_DEPENDS to
    devel/autoconf and runs autoconf before configure.
Submitted by:	ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)

(4) Clarify USE_X11 and USE_IMAKE usage.

(5) Add new user-overridable variable MASTER_SITE_KDE.
Submitted by:	vanilla

(6) Add support for "Latest" package links.
Idea by:	Terry Lambert

(7) Try to catch obsolete tcl/tk installations that could cause problems.
Annoyed by various bogus commits by:	you-know-who
1998-01-02 10:37:14 +00:00
jkh
e7557f392f DISTRIBUTION is bin (we'll make the info dist another way). 1997-12-26 00:19:23 +00:00
bde
ae349861e5 Only remove ${CLEANFILES} in the default clean rule. In particular,
don't remove a.out explicitly.  a.out should only be generated for
libraries and is removed in the non-default rule in bsd.lib.mk.

Removed undocumented cleanfiles target.  It was the same as the
default clean target except it didn't descend into subdirs.  It was
different from special clean targets in other ways.  This feature
hasn't been missed for more important targets.

Removed unused default cleandepend target.  bsd.dep.mk has a better
version which is always used.

Use a better rule for checkdpadd in the BINFORMAT=aout case.  This
mainly checks that ld -f is working correctly.  The old rule is
still available via `make BINFORMAT=foo checkdpadd' and should be
used to check for regressions under 2.2 where ld -f is not available.
1997-12-19 18:48:45 +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
60c58bdca7 Oops, rm -f can't handle empty lists. 1997-12-17 15:18:53 +00:00