(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
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.
(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.
when there is no /usr/src/share/info if it were actually used.
Added comments to explain duplicated tex commands.
Use substitution in IFILENS to simplify some things.
Removed /g from many substitutions. It is bogus for anchored matches.
Don't echo nothing.
Don't add things that wouldn't be built with the current options to
CLEANFILES (except for some cases involving tex).
Reviewed by: wosch
we won't have double-slashes.
Add support for new port variable MANUAL_PACKAGE_BUILD. If this is
defined as well as the user variable PACKAGE_BUILDING, the port will
be ignored. This is used to mark ports that can be built normally
except on a machine that has a lot of conflicting ports (i.e., our
package building machine).
DESCR files when building README.html .
Don't use control characters in sed statement.
Problems reported by "Chris G. Demetriou" <cgd@pa.dec.com> in NetBSD PR
pkg/4341.
variables were lost when we removed -W, and 23 new ones including at
least one serious one have crept in for LINT.
Restored -Winline to CFLAGS. This gives only 3 old warnings and 1 new
for LINT.
Run tex twice due cross references.
Cleanup many tex generated files in `make clean'
Format latin1 output in 80 characters column (was ~110 characters).
.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.
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.
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! :-)
you can get one from.)
(2) Use "reinstall" as DEPENDS_TARGET if target is "reinstall". In
particular, this will make it possible to do a "make reinstall" on
several NFS clients and have them install all dependencies
correctly.
Tested by: davidn
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
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
patches and files. Note this is just for testing -- I don't
expect "patches.OpenBSD" or "Makefile.alpha" start cropping up on
our ports tree just yet!
Pretty much ignored by: the ports/committers list
(2) Add "SH?=/bin/sh" to the list of command-name macros. Use it.
Checked by: recompiling all packages
it also sets RUN_DEPENDS (USE_GMAKE is BUILD_DEPENDS only).
The (immediate) purpose of this is to avoid having to change 70
zillion ports when the version of perl changes. Also, when perl5 is
pulled into -current, this will become a no-op in -current's
bsd.port.mk.
Reviewed by: jfitz
(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)
"do-install" target to the beginning of the "install" meta-target, so
that ports that define their own do-install will also run it without
having to duplicate it themselves.
Tested by: rebuilding all packages
like bsd.lib.mk and bsd.prog.mk. It doesn't add it to CXXINCLUDES, I
don't think anybody has written a kernel module with C++. (Not that I
think DavidG will allow it anyway. :)
Reviewed by: bde
/usr/X11R6 if USE_IMAKE or USE_X11 is set. It is mostly designed
after the XFree86 distribution, but also includes some of our own
goodies (libexec, share/doc, etc/rc.d).
(2) Full support for per-port dependency target. An optional
":<target>" can be added to any of the *_DEPENDS variables. Do
not attempt to print out anything about dependencies if NO_DEPENDS
is set (there was already too much code duplication, and this
extra colon has really pushed it over the limit).
Requested by: jfitz
(3) Make "reinstal" pmake-safe.
Reminded in an e-mail from: jkh
Murphy's Law: define LPR=true in /etc/make.conf if you don't want
tomorrow find 3 paper copies (ascii, latin1, postscript) of the
handbook in your printer (or someone else printer on the other half of
the world).
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".
latin1 looks very ugly on Russian screens/printers and users should
be able to print/view handbook first without inner knowledge of
bsd.sgml.mk tuning.
with these files MUST understand what a `make release' does before
making changes like this or get nasty-grams from me when my builds start
falling over. In fact, if they can't test "make release" after making
such changes then they *should leave these files completely alone*.
Thank you.
opt_smp_invltlb.h
from:
SMPHDRS= opt_smp.h opt_smp_invltlb.h
SMP_INVLTLB is no longer a valid config option, the invalidation of the TLB
via inter-CPU IPIs is now standard when APIC_IO is used.
file so that we fail if it isn't already installed. The bootstrap
is now done by `make install' in the top-level src directory. As
well as being gross, the rule didn't actually work for src trees
other than /usr/src, and this is difficult to fix since the whole
src tree may not exist.
(default: IS_DEPENDED?=install) target on the depended port, call
DEPENDS_TARGET (default: install) from the depending port.
Other than being more flexible (some ports don't require the
dependency to be fully installed: see ghostscript4), this seems
like a more natural thing to do. (I never understood the
convoluted logic that was used before.)
By building packages with "DEPENDS_TARGET=package", I can avoid
file-sharing problems (like gs3 binary going into the gs4
package).
(2) Add new variable PATCH_SITE_SUBDIR and separate it from
MASTER_SITE_SUBDIR. Fixes linuxls port and is a correct thing to
do anyway.
Initially suggested and reviewed by: fenner
(3) Add new variable MASTER_SITE_LOCAL for local ports. Defaults to
LOCAL_PORTS subdir on ftp.freebsd.org's distfiles dir.
Submitted by: jkh
make world fails when it tries to build LKMs because the files
opt_smp.h
opt_smp_invltbl.h
are missing.
This patch to /usr/src/share/mk/bsd.kmod.mk is a temporary workaround.
Note that LKMs built in this way may or may NOT work properly with an
SMP kernel.
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...
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.
means.
(2) Change MASTER_SITE_GNU etc. to use += instead of ?=, so users can
specify a local mirror in /etc/make.conf and still get the full
fallback in case something is missing.
Submitted by: Narvi <narvi@haldjas.folklore.ee>
(3) Skip port if USE_X11 or USE_IMAKE is defined and /usr/X11R6
doesn't exist.
Submitted by: imp
(4) Add "-" in front of rmdir of ${DISTDIR}/${DIST_SUBDIR} in
distclean target; the directory might not be empty because the
subdir is shared with some other ports' distfiles.
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.
is most useful for centralizing the definitions of paths to contrib
directories.
Removed useless subshell and evil-hiding @ in the the rule for
initializing the info dir.
'make -j3 world' works
Jordan points out that this may not be the only place this is required to be
added, but so far, its the only one I've found to break -j3
interesting problems because the resulting file is newer than the source
and this stops 'make' from rebuilding it. Go via an intermediate file
and rename to make sure this doesn't happen.
to before they are used in .for loops and .SUFFIXES lists, or it
doesn't work! Without this, 'make all' doesn't gzip the result as the
generated 'all' target doesn't seem to be defined completely.
bsd.doc.mk:
rename GZIPCMD to DCOMPRESS_CMD, add DCOMPRESS_EXT
bsd.info.mk:
rename GZIPCMD to ICOMPRESS_CMD, add ICOMPRESS_EXT
set INFOTMPL to ${INFODIR}/dir-tmpl
bsd.man.mk
rename ZEXTENSION to MCOMPRESS_EXT, MCOMPRESS to MCOMPRESS_CMD
mv, respectively. This will make Warner's life easier.
(2) Add new variable ${PLIST}, which defaults to ${PKGDIR}/PLIST.
If you need to have different PLISTs for different configurations,
you can either
@ pre-fabricate all of them and switch ${PLIST} to point to the
appropriate one, or
@ use sed/awk/perl/whatever to create the correct one from
pkg/PLIST and set ${PLIST} to it.
It is still recommended to have a file called "pkg/PLIST" so
people can do "grep badprog /usr/ports/*/*/pkg/PLIST" and such.
(3) Move /var/db/pkg/${PKGNAME} clash detection to before the
installation (instead of after) and make it fatal, with an error
message suggesting a workaround.
(4) Don't make distclean fail if DIST_SUBDIR is set and the
subdirectory does not exist.
(5) Don't put "@pkgdep Error code 2. Stop." kind of garbage into
packing list if depended port's directory doesn't exist. Instead,
print out a message to stderr.
${PORTSDIR}. This undoes the changes done in rev. 1.38 and 1.59
(part of the bsd.port.mk pre-dawn ages I've never understood).
Requested by: jkh
(2) Add new variable NO_IGNORE that will override any IGNORE causes.
This is just a little hack to allow building of REQUIRES_MOTIF
ports and its dependencies only etc., so don't document it.
(3) Update +REQUIRED_BY files as necessary. Now you should be able to
delete ports that have runtime dependencies without pkg_delete
complaining about this file missing.
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.
Sorry, I know it's a gross fix to call share/info's install target as
a side-effect, but that's less gross than propagating the work-around
changes to files which have nothing to do with the info system.
the original logic went into a section of code assuming some
incarnation is there, but it's basically a "test -d" fix. Closes PR
ports/2082.
Reviewed by: max ("although I didn't test it, it looks fine")
(1) Change commented out MAINTAINER to FreeBSD_MAINTAINER and
OpenBSD_MAINTAINER. These are not comments anymore, so we may
even use it in the future.
(2) Instead of the ".if ${OPSYS} = "NetBSD" hack, use ".if exists()"
to find the location of md5 an tar. Play similar trick for fetch
(OpenBSD uses /usr/bin/ftp which groks http: addresses).
This commit includes most of the changes made in 1.242 (although many
of them are done differently after more discussion). One thing that
is conspicuously missing is NOMANCOMPRESS, which has been postponed
until Warner figures out what exactly the situation is on the OpenBSD
ports paradigm. (In a nutshell, we can't just define NOMANCOMPRESS in
this file even if uncompressed manpages is the default for OpenBSD,
because that will take away the ability of individual users to select
manpage compression.)
Reviewed by: imp@openbsd.org
and scripts/{pre,post}-* as environment vars. Also, if BATCH is
set, "BATCH=yes" is automatically added to SCRIPTS_ENV.
(Requested by: max)
(2) The INSTALL_* macros are added to SCRIPTS_ENV and MAKE_ENV as
BSD_INSTALL_*. (Requested by: obrien)
(3) New variable MOTIF_ONLY, which will only build ports with
REQUIRES_MOTIF defined. This doesn't do dependencies right (what
if the depended port doesn't need Motif) yet.
(4) Try not to clean the same port twice in clean-depends when (for
instance) it's defined in both BUILD_DEPENDS and INSTALL_DEPENDS.
Note that it won't check chained dependencies so you may still see
the same port cleaned multiple times, but checking that far will
surely make this run slower than the un-"optimized" case so I left
it as is. (Requested by: jkh)
(5) Ignore *.rej files in patches/ directory in addition to *~ and
*.orig.
into the DESTDIR in the beforeinstall rule in src/share/info/Makefile.
Then each info file that gets installed into the dir file using
install-info.
It has struck me that there's going to be a problem bootstrapping
this change, since parts of install will fail until install-info
is installed. Maybe someone who knows best how to deal with this can
fix it.
Generalize the selection of programs to run based on the existance of files
rather than the OS names that we find. Add comments about me being the
keeper of the OpenBSD mods of this file. Use ftp on OpenBSD rather than
fetch since OpenBSD's FTP supports urls and there is no fetch.
Reviewed by: Joerge Wunch, Jordan Hubbard, and others in ports I've forgotten
Obtained from: OpenBSD with changes from me.
Add a little more sophistication to the md5 grep command.
Change the md5 checksum logic a bit. Now, the message is printed
out for every successfully/unsuccessfully matched checksum, and it
aborts at the end if there was a mismatch. Also, make missing checksum
and IGNORE file inconsistency fatal, as there is now no reason to have
a missing checksum.
of PRINTER for defining the default output device when formatting
documents for installation. This prevents problems if the
user has defined PRINTER for use by lpr.
Closes PR# 1437.
(1) MANLANG is now a list (defaulting to ""), so if you have English
and Japanese-EUC versions of the manpages, you can say something
like `MANLANG= "" ja_JP.EUC' and manpage compression will DTRT.
(2) Add new variables MAN%cPREFIX (where %c=[1-9LN]) which default to
MANPREFIX (which defaults to PREFIX), to specify per-section
prefixes. In particular, this handles the cases in many perl
ports, which install man1pages into man/man1 and man3pages into
lib/perl5/man/man3.
Note these modifications won't change the behavior of existing
variables used in previously-approved ways, so any Makefile that
worked before will still continue to work.
(1) Print out reason when port is ignored because of NO_CDROM,
RESTRICTED, IS_INTERACTIVE, (not) IS_INTERACTIVE, BROKEN,
REQUIRES_MOTIF or NO_PACKAGE.
Submitted by: obrien
(2) Add new special file in pkg/: DISPLAY. (Cf. man pkg_create)
(3) Minor bugfix in clean-depends target, which sometimes executed
"make clean" in the current directory. (Which is probably ok, but
is wrong nonetheless.)
you have a Makefile without one.
(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)
(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.
There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.
One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.
Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.
Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.
(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)
(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)
(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.
Reviewed by: the ports list
2.2 are more obvious. -Winline is unimportant, but -W gives thousands
of warnings for comparisions. Turning off -W also loses warnings for:
- auto variables clobbered by longjmp. Not much of a problem in the kernel.
- functions returning without a value. I don't like losing this.
- an expression statement or the left side of a comma operand contains no
side effects. Turning this off also stops warnings for the low quality
debugging macros in gsc.c and lpt.c.
Should be in 2.2.
Submitted by: Jason Thorpe <thorpej@nas.nasa.gov>
(2) Remove the bogus "CAT+=" definition. Closes PR ports/1703.
Submitted by: Peter Childs <pjchilds@imforei.apana.org.au>
(3) Change MKDIR to "/bin/mkdir -p", remove "-p" from ${MKDIR}
invocations. Closes PR ports/1901.
Submitted by: obrien
(4) Add a new macro variable COMPRESS_MAN, which will evaluate to gzip
if NOMANCOMPRESS isn't set (default), or true if it is.
(5) Add a new variable NO_CHECKSUM, which will disable the md5 checksum.
Submitted by: jkh
(6) Also, move NO_PATCH and NO_PACKAGE checks to right place in
invocation order.
(7) Check for LIB_DEPENDS before installation too. (It used to check
only before extraction.)
Forgotten a long time ago by: asami
Also disabled -Wunused. It caused too many warnings even for me.
The sign mismatch warnings should be fixed first. They are more
important and harder to disable (they are controlled by -W, which
controls too many things).
forced in any of the standard ways (MAKEOBJDIR was lost in the
previous commit). Simplified the conditionals for this.
Restored comment about MAKEOBJDIR from rev.1.4.
Improved English in comments.
of the variable OBJLINK which is used in /etc/make.conf to build 'obj'
links in the current directory. This caused lots of useless warnings
since if OBJLINK is defined ./obj will be created and used.
Submitted by: max
While I'm here, add "${DIST_SUBDIR}/" at end of CDROM pathnames. Also
add an empty declaration of PATCH_SITES next to MASTER_SITES to avoid
"variable recursive" error.
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.
in the tree that use things like bsd.prog.mk just to get the default
targets like install, tags, obj, clean, cleandir, cleandepend, but do not
actually build anything there.
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
man pages (eg: named/bind/etc). In order to get (say) dig.1 to pass
through the filter and produce a new dig.1 for installing, I used an
intermediate file at build time, similar to the way the .gz man pages are
built.
I've not extensively tested this, but it seems to work for the known
cases where it was failing, and it only affects the NOMANCOMPRESS case
which was already broken.
Pointed out by: "Ph. Charnier" <charnier@xp11.frmug.org>, PR#1612
Running them twice usually destroyed the target binary. E.g., the
second `make objlink' in `make objlink; make; make objlink' replaced
the `cat' binary by a symlink cat@ -> /usr/obj/usr/src/bin/cat.
`ln -fs' is unusable when the target might be a symlink that resolves
to a directory. Then -f applies to a file in the directory and not
to the symlink. This seems to be the standard (and sometimes useful)
behaviour.
Added forgotten share/doc/psd/05.sysman and share/zoneinfo/America/Indiana.
bsd.doc.mk:
Nuked mkdir -p and wrong fixups of the leaf directory's ownerships and
permissions. The doc tree should be well enough established for this
to be safe. Installs to directories should use a trailing slash on
the directory name so installs to non-drectories are fatal, but I
didn't start changing them.
bsd.man.mk:
Nuked mkdir -p and wrong fixups of the leaf directory's ownerships and
permissions. They were overkill to create just /usr/share/info.
zoneinfo/Makefile:
No changes yet. zic creates directories with ordinary 755 permissions.
Why do we use 555 permissions for directories in /usr/share/zoninfo.
Why not for zoneinfo itself? /proc and /dev/fd are the only other
directories in the system with 555 permissions.
bombing mercilessly.
(2) If that directory has a directory called CVS, remind the user of
the existence of the "-P" option to cvs co and update.
(3) While I'm here, clean up the PATCH_DEBUG code a bit. In
particular, don't duplicate a whole bunch of code just for adding
a single "echo" statement. ;)
Reviewed by: the ports list
won't be pulled into individual ports that include this file. ;)
(2) Document MOTIFLIB, it's not set in the ports Makefiles but is
important for Motif ports (already documented in the handbook).
(3) Add INSTALL_PROGRAM, INSTALL_SCRIPT, INSTALL_DATA, INSTALL_MAN as
"aliases" of the appropriate install command line, for use in *-install
targets.
Reviewed by: the ports list (item 3 only)
pipe the man page source through before compressing or installing.
This can be used to do do (eg) sed substitution on man pages from
3rd party packages (in particular, ncurses and bind-4.9.4)
This should not affect anything already in the source tree.