Commit Graph

319 Commits

Author SHA1 Message Date
Warner Losh
d0b2dbfa0e Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
2023-08-16 11:55:03 -06:00
Bryan Drewery
880c41ba36 Avoid sub-shell for realpath(1) for bmake by using its built-in :tA.
MFC after:	2 weeks
Approved by:	portmgr (implicit)
2015-09-03 17:01:58 +00:00
Will Andrews
6cc777bf8b Revise r272363 by collapsing the tests into a for loop.
This has the side effect of ensuring that realpath is also run for the
nominal case of PORTSDIR=/usr/ports (assuming .CURDIR is a ports directory
that relies on /usr/ports but is not rooted in it).  This ensures that any
generated PORTSDIR used is always the actual location.

Submitted by:	jkim (different implementation)
2014-10-01 20:52:08 +00:00
Will Andrews
ff48e37159 Always resolve PORTSDIR to absolute paths using realpath(1).
Reported by:	madpilot
Reviewed by:	bapt
X-MFC-With:	272282
2014-10-01 15:02:37 +00:00
Will Andrews
a0dec793d0 Search for the nearest PORTSDIR where Mk/bsd.ports.mk exists, from .CURDIR.
This will only take effect if PORTSDIR is not set, as previously supported.

Use .if exists(), for four specific possibilities relative to .CURDIR:
., .., ../.., and ../../..  The fourth possibility is primarily in case
ports ever grows a third level.  If none of these paths exist, fall back to
the old default of /usr/ports.

This removes the need to set PORTSDIR explicitly (or via wrapper script) if
one is running out of a ports tree that is not in /usr/ports, but in a
home directory.

Reviewed by:	bapt, bdrewery (older version)
CR:		D799
MFC after:	1 week
Sponsored by:	Spectra Logic
2014-09-29 15:05:23 +00:00
Chris Rees
04a382563d Revert unapproved commit to bsd.port.mk.
This would have had more discussion, but it was explicitly rejected at submission by portmgr:

http://lists.freebsd.org/pipermail/freebsd-ports/2011-September/070591.html
2011-10-08 18:25:01 +00:00
Stanislav Sedov
2872f05432 - Add a couple of more sed subsitutions needed to get the correct
libtool.m4.  With these fixes libtool will correctly indentify the
  system as ELF (and not a.out).
- While here, change the substitutions so they're still correctly
  match freebsd1.x, freebsd2.x etc.
2011-10-08 00:01:17 +00:00
Stanislav Sedov
dd50bdfab6 - ${WRKSRC} might be missing when the autotools fixup is running.
Account for this.

Reported by:	Mykola Dzham <i@levsha.me>
2011-10-07 23:43:51 +00:00
Jilles Tjoelker
df8d253fb4 Work around the autotools problem with the 10.0 version.
With this, I can build various ports on a 10.0-CURRENT system without
hacking or hiding the version number.

This commit should be reverted when there is a cleaner fix in autotools
and/or ports/Mk/bsd.port.mk.

The original patch is from Ed Schouten but needed some additions.
2011-10-04 22:23:00 +00:00
Alexander Leidinger
21edb039c6 WITH_CTF can now be specified in src.conf (not recommended, there
are some problems with static executables), make.conf (would also
affect ports which do not use GNU make and do not override the
compile targets) or in the kernel config (via "makeoptions
WITH_CTF=yes").

Additional (related) changes:
 - propagate WITH_CTF to module builds
 - do not add -g to the linker flags, it's a noop there anyway
   (at least according to the man page of ld)
 - do not add -g to CFLAGS unconditionally
   we need to have a look if it is really needed (IMO not) or if there
   is a way to add it only when WITH_CTF is used

Note: ctfconvert / ctfmerge lines will not appear in the build output,
to protect the innocent (those which do not build with WITH_CTF would
see the shell-test and may think WITH_CTF is used).

Reviewed by:	imp, jhb, scottl (earlier version)
Discussed on:	arch@
2010-04-02 06:55:31 +00:00
Ruslan Ermilov
8ef03c79e1 Try harder to not leak src/ build stuff into ports/ environment
by not exposing the MK_* variables that were designed for src/.

Requested by:	many
2006-11-19 16:28:52 +00:00
David E. O'Brien
489ffb7126 Don't read in /etc/src.conf when building ports.
Reported by:	obrien
Submitted by:	ru
2006-08-24 18:04:49 +00:00
Oliver Eikemeier
4a209e39a0 Enable testing of customized variants of bsd.port.mk and
bsd.port.subdir.mk, without the overhead of an additional ports tree.

Use
  make BSDPORTMK='${PORTSDIR}/My.Mk/bsd.port.mk' target
and
  make BSDPORTSUBDIRMK='${PORTSDIR}/My.Mk/bsd.port.subdir.mk' target

to build with the alternate versions.

MFC after:	3 days
2004-07-02 20:47:18 +00:00
Ruslan Ermilov
139df6553c Style. 2002-04-19 07:43:50 +00:00
Ruslan Ermilov
abd41f7d17 Fix the bsd.port.mk breakage caused by sys.mk,v 1.60 commit.
Submitted by:	fenner
2002-04-19 07:40:34 +00:00
Peter Wemm
e36a59f7a7 Add $FreeBSD$ 2000-12-29 01:23:57 +00:00
Satoshi Asami
500ada61bf Move bsd.port.*mk to under ${PORTSDIR}/Mk (already repository copied).
There are only skeletons left here; they merely serve as a backup to
include the real versions under ${PORTSDIR}/Mk while we update the ports
tree to include them directly.
1999-01-26 03:40:12 +00:00
Satoshi Asami
5712096d18 (1) Add gnome master sites.
Submitted by:	Jeremy Lea <reg@shale.csir.co.za>

(2) Change backup distfiles dir to reflect change in ftp.freebsd.org's
    reorganization.
1999-01-20 01:55:05 +00:00
Satoshi Asami
68b35df498 (1) Add ONLY_FOR_ARCHS and NOT_FOR_ARCHS. They are list of architecture names
(as given by "uname -m") by which you can specify which
    architectures the port is appropriate for.
Idea borrowed from:	NetBSD, OpenBSD
Reviewed by:		simokawa

(2) New variable PERL_ARCH (value: ${ARCH}-freebsd) that is also
    passed to ${PLIST_SUB}.  Use it to simplify PLISTs.
Submitted by:	simokawa

(3) Check OSVERSION as well as existence of /usr/bin/perl5 before
    assuming USE_PERL5 is to be a no-op.  Basically to allow building
    of 2.2-INDEX on a 3.0 machine.

(4) Change USE_QT definition to use new shlib version (2) and
    directory (qt142).

(5) Uncomment temporary Motif dependency for parallel package
    building.  We still need to figure out a way to install the pkg
    database files, but it's a start.

(6) Move EXTRACT_SUFX up into the pre.mk area so it can be used in
    exists() tests.

(7) Add MASTER_SITE_COMP_SOURCES.  Note that this is defined like
    "/pub/usenet/comp.sources.%SUBDIR%/" so you can specify something
    like "SUBDIR=x/volume18" to select the newsgroup as well as
    subdirectory name.
Submitted by:	"distfiles" fenner

(8) Other misc. master site cleanup.
Submitted by:	"distfiles" fenner

(9) New target "maintainer".  I intend to use it to auto-mail failure
    build failure notices to the maintainer.
1999-01-11 13:04:18 +00:00
Satoshi Asami
01e85cb38d (0) Fast INDEX generation. Only print out the directory name and
don't recurse in "make describe".  The new INDEX target in
    ports/Makefile invokes a perl script to recurse and convert them
    into package names.

    While I'm here, change the name of targets and move them around a
    little bit for the sake of consistency.

    It is also probably worth noting here that the meaning of the
    "build dependency" list in INDEX has been changed slightly
    changed.  The old list was "build depends and its build depends"
    -- not particularly useful if you had things like autoconf, which
    run-depend on gm4 (you install all the things listed here and
    you'll get an autoconf that won't run).

    It is now "build depends and its run depends" -- you install
    everything listed here, and you'll be able to build the port.
Submitted by:	steve

(0') Fast README.html generation.  It uses ports/INDEX to find
    dependencies instead of embarking on to a recursive loop.
Submitted by:	steve

(1) Remove NO_WRKDIR and NO_EXTRACT.  Their functionality are easily
    replacable with NO_WRKSUBDIR=t and EXTRACT_ONLY= (nothing on right
    side), and they get in the way of read-only port trees.

(2) Surround first few variable definitions with ".if !defined()".
    This will make cross-compilation easier and also speed up make
    processes.

(3) Call sysctl with absolute path.  Prefer the one in /sbin over the
    one in /usr/sbin.

(4) Add four new variables

    PKGINSTALL?=	${PKGDIR}/INSTALL
    PKGDEINSTALL?=	${PKGDIR}/DEINSTALL
    PKGREQ?=		${PKGDIR}/REQ
    PKGMESSAGE?=	${PKGDIR}/MESSAGE

    and use them in PKG_ARGS.  Frobbing with PKG_ARGS directly is
    strongly discouraged.

(5) Change PKG_SUFX to ".tar" (instead of ".tgz") if PKG_NOCOMPRESS is
    defined.  This is intended only for our own use.

(6) Add more sites to MASTER_SITE_GNU.
Submitted by:	billf

(7) Override MANUAL_PACKAGE_BUILD if PARALLEL_PACKAGE_BUILD is
    defined.  This is intended only for our own use.

(8) Add new target "ignorelist" which will print out the package name
    if the port is not going to be built on this machine.  This is
    intended only for our own use.

(9) Make mtree a little quieter.
1998-12-12 07:39:30 +00:00
Satoshi Asami
0e544fd5ea Change USE_QT to use version 1.41. I know this is a little premature,
but I'd like as many people to test this before the release.
1998-11-25 00:12:27 +00:00
Satoshi Asami
db0921e889 (1) Remove LOOP_VAR and LOOP_OPTIONS. It's a hack and just too many things
break one way or another.  With it goes the package-loop and the
    describe loop.

(2) Add new variable MASTERDIR to make it easier to share files between ports.
    bsd.port.mk will find things like ${PKGDIR} underneath
    ${MASTERDIR} (which defaults to ${.CURDIR}).

(3) Do not allow MD5_FILE to be renamed.  Funny things can happen if
    you do that.

(4) Use a few more absolute paths in the bsd.port.pre.mk part.  I
    can't use absolute paths for sysctl because it moved recently.
1998-11-20 04:00:38 +00:00
Satoshi Asami
ffbc42db2c Add EXTRA_PKG_FLAGS to PKG_FLAGS. You can now add arguments to pkg_create
without redefining PKG_FLAGS after bsd.port.mk.
1998-11-14 09:45:09 +00:00
Satoshi Asami
218515c5f8 Make bsd.port.mk includable in two phases. bsd.port.pre.mk defines only
a few variables that could be used in the port Makefile for ".if exists()"
tests.  bsd.port.post.mk defines the rest.

Note: if you define USE_X_PREFIX or USE_IMAKE, put it before including
bsd.port.pre.mk.  These are the only two variables used in the first part.

In reality, bsd.port.pre.mk and bsd.port.post.mk just include bsd.port.mk
with special variables to turn part of it off.
1998-11-11 05:21:29 +00:00
Satoshi Asami
9fbb2e1c7b (1) New variable MAKE_ARGS: will be appended to build/install make argument
list.  The old MAKE_FLAGS was a little hard to use since it had a weird
    default ("-f").
Suggested by:	Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(2) Add new targets clean-restricted and clean-for-cdrom, which will
    delete RESTRICTED and NO_CDROM packages and distfiles from the top.
Reviewed by:	jkh

(3) Add depends to list of things to recurse on.  It will help people
    who are trying to fetch some ports plus their dependencies.

Requested by:	Chris Dillon <cdillon@wolves.k12.mo.us>
1998-11-08 10:29:53 +00:00
Satoshi Asami
fc006fb4ee (1) Add new variables LOOP_VAR and LOOP_OPTIONS to implement building several
packages from a single port.  LOOP_VAR is the name of the variable
    and LOOP_OPTIONS is a space-separated list of values it should
    take.  When these are set, the target "package-loop" will go
    through a clean and package loop for all the options.  The
    "package-loop" target is defined as "package" when LOOP_VAR is not
    defined, so if you are in the business for building packages, you
    should use "package-loop" all the time.  (This target is added to
    bsd.port.subdir.mk too.)

    Also, the "describe" target prints out multiple lines so that all
    options will go into the INDEX.  (In other words, if you define
    these variables, INDEX is going to look real silly if you don't
    put ${${LOOP_VAR}} in PKGNAME.)

Seconded by:	obrien ("ANYTHING")

(2) Turn off regexp support for LIB_DEPENDS.  It is a fixed string of
    the form <NAME>.<VER> now.
Tested by:	several rounds of complete package builds

(3) Check checksum even if NO_EXTRACT is defined.

(4) Cosmetic fix for message in MANUAL_PACKAGE_BUILD case.
1998-10-30 08:28:02 +00:00
Satoshi Asami
37a64fc4b4 Add new variable NO_FILTER_SHLIBS -- it will disable ELF <-> a.out shlib
name conversion.  Use it for binary ports that come with its own private
shlib dirs, ports that install linux compatibility libraries (thus following
their naming conventions and not ours), etc.

Reviewed by:	Martin Cracauer <cracauer@FreeBSD.ORG>
1998-10-09 01:27:21 +00:00
Satoshi Asami
e96b50e352 (1) Add new variable ${PERL} which is equal to ${PERL5} but without the
version number part (i.e., "<directory>/perl").  Use this to
    substitute #! lines in your perl5 scripts.

Requested and reviewed by:	ache

(2) Add new variable WRKDIRPREFIX (defaults to "").  The "work"
    directories are now in ${WRKDIRPREFIX}${.CURDIR}/work by default.
    You can have a read-only ports tree (modulo any broken ports that
    write something to places other than ${WRKDIR}) by setting this to
    a writable location.

    Ports that set WRKDIR explicitly should append this to front so
    they will work when the user has WRKDIRPREFIX set.

Reviewed by:	Toshihiko Kodama <kodama@ayame.mfd.cs.fujitsu.co.jp>
1998-10-06 21:12:14 +00:00
Satoshi Asami
c6d9533ece (1) Add BROKEN_ELF variable, similar to BROKEN. (There is no BROKEN_AOUT,
since ports are not supposed to be broken during the process of
    conversion to ELF -- please proceed with caution.)

(2) Support for checking file size before fetching.  The essential
    parts are commented out for now, so I won't lose the submission
    while we discuss how to do it.
Submitted by:	se (mostly)

(3) Don't run "fetch" twice.  It was due to the change in checksum
    target chaining.  It used to be fetch -> checksum -> extract,
    after 1.285 it was fetch -> checksum and checksum was also
    explicitly called from extract.  Fix it by not calling fetch from
    checksum when it's invoked by extract.
Noticed by:	pre-fetch target of lesstif being run twice

(4) Don't try to remove non-existent distfiles and patchfiles in
    distclean.
Submitted by:	anto@netscape.net
PR:		7988
1998-09-22 23:58:49 +00:00
Satoshi Asami
d2748a4068 Yikes, put .endif in wrong place. 1998-09-17 01:22:05 +00:00
Satoshi Asami
b6ab977c7b Remove shlib minor if PORTOBJFORMAT=elf. 1998-09-17 01:00:23 +00:00
Satoshi Asami
66078de1a1 (1) Pass PORTOBJFORMAT in SCRIPTS_ENV too.
Submitted by:	"Eugene M. Kim" <gene@nttlabs.com>

(2) Check for exact version of perl5 in /usr/bin and exit with error
    message if USE_PERL5 is defined and version does not match
    ${PERL_VERSION}.

(3) Note LIB_DEPENDS should not have any regular expressions.  Remove
    those in USE_XLIB and USE_QT.
1998-09-16 12:04:38 +00:00
Satoshi Asami
aa135a93cd (1) Add MLINKS support.
Submitted by:	hoek

(2) ELF support.
 2a. Variable PORTOBJFORMAT specifies the object format of the system.
     It is passed down to configure/make via CONFIGURE_ENV/MAKE_ENV,
     and is given to generate-plist via PLIST_SUB.
 2b. In PLIST, substitute lines that end with "/libFOO.so.X" with
     "/libFOO.so.X.0".  (This means PLISTs should only list ELF
     libraries.)
Reviewed by:	jb, jdp, hoek, jseger, steve

(3) Perl5-in-system support.  Basically turns USE_PERL5 into a no-op
    if there exists a "/usr/bin/perl5".  Also fix prior breakage by
    dima (${PREFIX} => ${LOCALBASE} in perl5 path).
Reviewed by:	markm (sort of)

(4) Install requirement file as "+REQUIRE" so it will be executed
    correctly by pkg_delete.
Reported by:	Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(5) Do not disable checksum and makesum when NO_EXTRACT is set.
Pointed out by:	hoek and kiri, among other people
1998-09-10 06:38:02 +00:00
Dima Ruban
fd08501ea2 Introduce PERL5 variable.
It's gonna be used in all p5- ports.

Reviewed by:	asami
1998-08-28 18:41:04 +00:00
Satoshi Asami
9d9806c5b9 Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)

The changes are (roughly in order of appearance):

(1) Revamp comments at beginning of file.  Major rewrites.  Reorder
    them into more relevant sections.  Make clear which ones are user
    variables and not to be set in ports' Makefiles.
Reviewed by:	hoek (well, he's the only one who sent any comments)

(2) Include ${.CURDIR}/Makefile.local if it exists.  This is a local
    configuration file (ala rc.conf.local and make.conf.local) so
    please do not commit a file with this name to the repository.
Suggested by:	dillon

(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
    "maybe".  (It used to be a binary variable -- the old behavior is
    now accomplished by "MANCOMPRESSED=yes".  Ports that defined this
    variable to other values have been corrected.)

    "yes" means the manpages are installed compressed, "no" means they
    are not, and "maybe" means the port already respects the value of
    NOMANCOMPRESS.  The default is "yes" for USE_IMAKE ports without
    NO_INSTALL_MANPAGES, and "no" otherwise.

    Add "compress-man" target and move manpage {,de}compression there.

Reviewed by:	hoek etc. and a full build of the ports tree

(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV.  Makes easier to "fix" ports
    for /usr/lib/aout mess.
Submitted by:	ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)

(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
    ${WRKDIR}/.PLIST.mktmp.
Suggested by:		hoek
Strongly seconded by:	steve

(6) Change a couple more relative pathnames to absolute ones.
Submitted by:	hoek

(7) Move checksum into real-extract.

(8) Change way rules are chained.  Instead of:

build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build

    we now have

build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build

    Other than being more PC (pmake clean), this really speeds up
    skipping ports already built.  For instance, "make package" on a
    fully packaged games subtree used to take 269 seconds on average,
    now it's 45 seconds on average.

    The flip side of this is that it will create more processes when
    the targets actually chain, but when you're actually compiling
    things, your make is creating half a bazzilion processes anyway so
    I don't think it matters.

(9) ${TMPPLIST} is now a real dependency.  Create "generate-plist"
    target to generate ${TMPPLIST}.  Make sure it's called when needed
    (usually between do-install and post-install), and that the
    required files exist.

(10) Change some messages so we can tell where "make index" failed.

(11) Check if LIB_DEPENDS really generated the required shared lib or
     not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
Mark Murray
7d970abcea Bump version number for latest perl 1998-08-15 17:34:00 +00:00
Satoshi Asami
b9a5e65b05 Merge 1.227.2.45 (perl version substitution in PLIST). 1998-08-12 09:47:47 +00:00
Satoshi Asami
de00beffba Merge 1.227.2.44. 1998-08-12 01:47:47 +00:00
David E. O'Brien
b9796e16d2 I presume Satoshi wanted `uname -r'' for OSREL not `uname -s''
Found by:	gcc28 port
1998-08-10 04:02:50 +00:00
Mark Murray
48a72a5522 Update for Perl 5.005_01 1998-08-06 11:43:11 +00:00
Satoshi Asami
11af289961 (1) Rename variable "USE_X11" to "USE_X_PREFIX" to make clearer what it
means (change PREFIX to ${X11BASE}) and add a new variable USE_X11
    which means "this port requires the X window system (actually the
    library)".  USE_X_PREFIX implies USE_X11.  USE_X11 adds a
    LIB_DEPENDS to libX11 with the x11/XFree86 port.
Reviewed by:	the ports list, hoek in particular

(2) Remove NO_CONFIGURE and NO_PATCH, which never meant anything.
    Yell if they are defined.
Reviewed by:	the ports list

(3) Add new variable OSREL, which is automatically set to the
    numeric OS version (e.g., 2.2.1, 3.0).  It can be used to refer to
    files in gcc installations, for instance.

(4) Finally remove EXEC_DEPENDS hack after all these years.
Submitted by:	hoek

(5) Put quotes around some echo ${*_DEPENDS} statements so they won't
    blow up when the variables include regular expressions like
    "qt\\.1\\.\\\(33\\\|40\\\):${PORTSDIR}/x11/qt140".
1998-08-05 09:29:13 +00:00
David E. O'Brien
79dea028fd Add var "CD_MOUNTPT" set to /cdrom by default.
Ok'ed by:  discussed with Satoshi at USENIX
1998-07-28 22:27:16 +00:00
Stefan Eßer
c3673cc077 Add US Mirror site to MASTER_SITE_KDE. 1998-07-13 23:39:02 +00:00
Jordan K. Hubbard
1c43d7e198 Complete back-out of the bsd.locale.mk change.
OK'd by:	asami
1998-05-20 22:27:18 +00:00
Peter Hawkins
802d2d4af0 PR: misc/6031
Patch applied as per PR - enables preferential fetch from local mirrors
1998-05-19 13:02:04 +00:00
Steve Price
05effdc4fc Change a couple 'make' to '${MAKE}'.
PR:		6341
Submitted by:	Niall Smart <rotel@indigo.ie>
1998-05-04 04:01:26 +00:00
Satoshi Asami
f0bb46b1b3 Don't delete "Latest" link if NO_LATEST_LINK is set. 1998-03-24 03:34:51 +00:00
Satoshi Asami
c89f86ce8f Add ${CXX} to list of variables passed in the environment when
invoking configure.

Submitted by:	obrien
1998-03-07 04:40:19 +00:00
Satoshi Asami
d4060348f4 (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
Satoshi Asami
6b76dece87 (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