freebsd-ports/Makefile
Kris Kennaway e74f65891d - Allow processing of info files in non-standard locations; the
INFO_PATH variable may be used to specify their location.  It defaults
  to 'share/info' for the standard PREFIX, and 'info' when PREFIX ==
  /usr. [1]

- Remove the <category>/pkg/COMMENT files in favour of a COMMENT
  variable in <category>/Makefile [2]

- Prevent patch breakage with VERSION_CONTROL=numbered [3]

- Fix some instances of incorrect WRKDIRPREFIX handling. [4]

- remove useless ${MKDIR} ${WRKSRC} in config target [5]

- remove reference to OpenBSD [6]

- Exempt devel/p5-Module-Build from the self-dependency in
  PERL_MODBUILD so that this port may use the option without getting an
  infinite dependency list [7]

- The default PERL_ARCH is currently determined as a function of
  OSVERSION. It should however be a function of PERL_LEVEL since the
  correct value depends on what Perl version one has installed (older
  Perl versions use ${ARCH}-freebsd, newer versions use mach). [8]

- Fix PORTDOCS on older (4.7, 5.0) systems [9]

- Allow 'make parallel' to generate a working makefile when not all
  categories are present (this does not mean you'll be able to build all
  ports, unless you make sure they don't have external dependencies) [10]

- Don't report symlinks as world-writable in the security check [11]

- Fix a comment that was broken by a mismerged patch [12]

- Clarify the meaning of USE_*, WANT_*, WITH_* and WITHOUT_* [13]

- Don't set _CHKSUMFILES/_IGNOREFILES if CKSUMFILES/IGNOREFILES is
  empty and DIST_SUBDIR is set. [14]

- Fix comment for DISTDIR [15]

- Update the documentation of the USE_GL variable [16]

- Check to see if NONEXISTENT exists, and fail with an error if it does [17]

- Fix fetching of new distfiles in 'make makesum' when SIZE is set [18]

- Consistently set MAKE_ENV when USE_GCC=3.2 or 3.3 are set [19]

- Rework INDEX builds: [20]

  * Fix the bsd.port.subdir.mk code that is supposed to report index
    breakage (the fallback code wasn't actually being run because make
    would halt immediately following the error).  This should help with
    INDEX error reports because it will immediately show the cause of
    failure, so we won't have to pull teeth to extract it from the
    submitter.

  * Streamline the 'make describe' code a bit.

  * Provide some basic instructions to the user when an index build
    fails, on when and how to report index build failures (turn this off
    with INDEX_QUIET=1)

  * Removed INDEX_NOSORT, because I couldn't imagine it to be very
    useful and it doesn't cost very much anyway.

  * Don't prevent INDEX builds from seeing the local host environment.
    Since a lot of users are using 'make index' thesedays they should get
    an index that reflects their local settings and installed ports.  If
    you want to build a 'default' index that isn't influenced by local
    settings (e.g. for release builds), set the INDEX_PRISTINE variable.

  * Allows parallel INDEX builds (using make -j).  The most obvious way
    of doing this doesn't work, because I/O from child makes is broken up
    into 2k chunks, and output lines from 'make describe' that exceed this
    length (*cough* GNOME *cough*) will be intertwined with the output of
    other makes, leading to a corrupted INDEX.  The I/O interleaving
    can be disabled using 'make -P', but this inserts extraneous output of
    its own, and redirects stderr, making it useless for our purposes.
    Instead, I collect the output from the child make processes in
    temporary files and recombine them at the end.

  * The number of concurrent make processes to spawn can be set using
    INDEX_JOBS.  By default this is set to 2, which seems to be a sweet
    spot for both single and dual-processor systems.  On my tests I do not
    see any significant performance changes on UP, but on a dual 4.x
    system the build time drops by 47% (6 minute index builds on one test
    machine!).  Depending on your disk and CPU hardware you might see
    further gains with INDEX_JOBS=4 or higher, so you might like to
    experiment to see what works best.  On a dual 5.x system the
    performance gains do not seem to be as great (20-30%), but this is
    still a significant net win.

PR: 		55493 [1], 59651 [2], 61552 [3], 62247 [4], 62329 [5],
		62337 [6], 62422 [7], 62441 [8], 62627 [9], 62983 [10],
		63112 [11], 63297 [12], 63335 [13], 64029 [14], 64069 [15],
		64236 [16], 64519 [17], 62958 [18], 64237 [19]

Submitted by:	lev [1],
		Matthew Seaman <m.seaman@infracaninophile.co.uk> [2],
		Joel Ray Holveck <joelh@piquan.org> [3],
		ade [4], Sergey Matveychuk <sem@ciam.ru> [5],
		markus [6], mat [7], des [8], eik [9],
		Dmitry Morozovsky <marck@rinet.ru> [10],
		Andrew <andrew@ugh.net.au> [11], vs [12], linimon [13],
		edwin [14][15], gerald [16], marcus[17][18], kris [19][20]
2004-04-02 07:25:23 +00:00

147 lines
4.6 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# $FreeBSD$
#
SUBDIR += accessibility
SUBDIR += arabic
SUBDIR += archivers
SUBDIR += astro
SUBDIR += audio
SUBDIR += benchmarks
SUBDIR += biology
SUBDIR += cad
SUBDIR += chinese
SUBDIR += comms
SUBDIR += converters
SUBDIR += databases
SUBDIR += deskutils
SUBDIR += devel
SUBDIR += dns
SUBDIR += editors
SUBDIR += emulators
SUBDIR += finance
SUBDIR += french
SUBDIR += ftp
SUBDIR += games
SUBDIR += german
SUBDIR += graphics
SUBDIR += hebrew
SUBDIR += hungarian
SUBDIR += irc
SUBDIR += japanese
SUBDIR += java
SUBDIR += korean
SUBDIR += lang
SUBDIR += mail
SUBDIR += math
SUBDIR += mbone
SUBDIR += misc
SUBDIR += multimedia
SUBDIR += net
SUBDIR += net-mgmt
SUBDIR += news
SUBDIR += palm
SUBDIR += picobsd
SUBDIR += polish
SUBDIR += portuguese
SUBDIR += print
SUBDIR += russian
SUBDIR += science
SUBDIR += security
SUBDIR += shells
SUBDIR += sysutils
SUBDIR += textproc
SUBDIR += ukrainian
SUBDIR += vietnamese
SUBDIR += www
SUBDIR += x11
SUBDIR += x11-clocks
SUBDIR += x11-fm
SUBDIR += x11-fonts
SUBDIR += x11-servers
SUBDIR += x11-themes
SUBDIR += x11-toolkits
SUBDIR += x11-wm
PORTSTOP= yes
.include <bsd.port.subdir.mk>
index:
@rm -f ${.CURDIR}/${INDEXFILE}
@cd ${.CURDIR} && make ${.CURDIR}/${INDEXFILE}
INDEX_JOBS?= 2
${.CURDIR}/${INDEXFILE}:
@echo -n "Generating ${INDEXFILE} - please wait.."; \
if [ "${INDEX_PRISTINE}" != "" ]; then \
export LOCALBASE=/nonexistentlocal; \
export X11BASE=/nonexistentx; \
fi; \
tmpdir=`/usr/bin/mktemp -d -t index` || exit 1; \
trap "rm -rf $${tmpdir}; exit 1" 1 2 3 5 10 13 15; \
( cd ${.CURDIR} && make -j${INDEX_JOBS} INDEX_TMPDIR=$${tmpdir} BUILDING_INDEX=1 \
ECHO_MSG="echo > /dev/null" describe ) || \
(rm -rf $${tmpdir} ; \
if [ "${INDEX_QUIET}" = "" ]; then \
echo; \
echo "********************************************************************"; \
echo "Before reporting this error, verify that you are running a supported"; \
echo "version of FreeBSD (see http://www.FreeBSD.org/ports/) and that you"; \
echo "have a complete and up-to-date ports collection. If so, then report"; \
echo "the failure to ports@FreeBSD.org together with relevant details of"; \
echo "your ports configuration (including FreeBSD version, environment and"; \
echo "/etc/make.conf settings)."; \
echo "********************************************************************"; \
echo; \
fi; \
exit 1); \
cat $${tmpdir}/${INDEXFILE}.desc.* | perl ${.CURDIR}/Tools/make_index | \
sed -e 's/ */ /g' -e 's/| */|/g' -e 's/ *|/|/g' -e 's./..g' | \
sort -t '|' +1 -2 | \
sed -e 's../.g' > ${.CURDIR}/${INDEXFILE}.tmp; \
if [ "${INDEX_PRISTINE}" != "" ]; then \
sed -e "s,$${LOCALBASE},/usr/local," -e "s,$${X11BASE},/usr/X11R6," \
${.CURDIR}/${INDEXFILE}.tmp > ${.CURDIR}/${INDEXFILE}; \
else \
mv ${.CURDIR}/${INDEXFILE}.tmp ${.CURDIR}/${INDEXFILE}; \
fi; \
rm -rf $${tmpdir}; \
echo " Done."
print-index: ${.CURDIR}/${INDEXFILE}
@awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nB-deps:\t%s\nR-deps:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9); }' < ${.CURDIR}/${INDEXFILE}
parallel: ${.CURDIR}/${INDEXFILE}
.if !defined(branch)
@echo "The parallel target requires a branch parameter,"
@echo "e.g.: \"make parallel branch=X\""
@false
.endif
.for dir in ${SUBDIR}
@[ -r ${dir}/Makefile ] && echo "all: ${dir}-all" || true
.endfor
@awk -F '|' '{me=$$1; here=$$2; bdep=$$8; rdep=$$9; split(here, tmp, "/"); if (bdep != "") { gsub("$$", ".tgz", bdep); gsub(" ", ".tgz ", bdep); } if (rdep != "") { gsub("$$", ".tgz", rdep); gsub(" ", ".tgz ", rdep); } print tmp[4] "-all: " me ".tgz"; print me ": " me ".tgz"; print me ".tgz: " bdep " " rdep; printf("\t@/var/portbuild/scripts/pdispatch ${branch} /var/portbuild/scripts/portbuild %s.tgz %s", me, here); if (bdep != "") printf(" %s", bdep); if (rdep != "") printf(" %s", rdep); printf("\n")}' < ${.CURDIR}/${INDEXFILE}
CVS?= cvs
SUP?= cvsup
.if defined(SUPHOST)
SUPFLAGS+= -h ${SUPHOST}
.endif
update:
.if defined(SUP_UPDATE) && defined(PORTSSUPFILE)
@echo "--------------------------------------------------------------"
@echo ">>> Running ${SUP}"
@echo "--------------------------------------------------------------"
@${SUP} ${SUPFLAGS} ${PORTSSUPFILE}
.elif defined(CVS_UPDATE)
@echo "--------------------------------------------------------------"
@echo ">>> Updating ${.CURDIR} from cvs repository" ${CVSROOT}
@echo "--------------------------------------------------------------"
cd ${.CURDIR}; ${CVS} -R -q update -A -P -d
.elif defined(SUP_UPDATE) && !defined(PORTSSUPFILE)
@${ECHO_MSG} "Error: Please define PORTSSUPFILE before doing make update."
@exit 1
.else
@${ECHO_MSG} "Error: Please define either SUP_UPDATE or CVS_UPDATE first."
.endif