fb338f26c3
- pass an argument for the file into which we want to save the result, to avoid getting it polluted with error messages (defaults to /dev/stdout for debug). - create the makefile fragment as a temp file and only copy it when complete. - copy it in one chunk, so that one can read a partial mirror-maker file and have it be usable. This does allow for people to start a make mirror-maker in one shell, and start fetching stuff right away, before mirror-maker is finished. This also produces usable mirror-maker Makefiles even if the ports tree contains bogus entries.
134 lines
3.8 KiB
Makefile
134 lines
3.8 KiB
Makefile
# $OpenBSD: Makefile,v 1.55 2007/07/28 12:58:34 espie Exp $
|
|
# $FreeBSD: Makefile,v 1.36 1997/10/04 15:54:31 jkh Exp $
|
|
#
|
|
|
|
PKGPATH =
|
|
MIRROR_MK ?= ${.CURDIR}/distfiles/Makefile
|
|
PORTSTOP ?= yes
|
|
DISTFILES_DB ?= ${.CURDIR}/infrastructure/db/locate.database
|
|
|
|
|
|
.if defined(SUBDIR)
|
|
# nothing to do
|
|
.elif defined(key) || defined(name) || defined(category) || defined(author)
|
|
|
|
# set up subdirs from the index, assume it's up-to-date
|
|
_CMD = perl ${.CURDIR}/infrastructure/build/index-retrieve index='${.CURDIR}/INDEX'
|
|
. if defined(key)
|
|
_CMD += key='${key}'
|
|
. endif
|
|
. if defined(name)
|
|
_CMD += maintainer='${name}'
|
|
. endif
|
|
. if defined(category)
|
|
_CMD += category='${category}'
|
|
. endif
|
|
. if defined(maintainer)
|
|
_CMD += maintainer='${maintainer}'
|
|
. endif
|
|
SUBDIR != ${_CMD}
|
|
.elif defined(SUBDIRLIST)
|
|
SUBDIR != sed -e 's,[ ]*\#.*,,' -e '/^[ ]*$$/d' ${SUBDIRLIST}
|
|
.else
|
|
SUBDIR += archivers
|
|
SUBDIR += astro
|
|
SUBDIR += audio
|
|
SUBDIR += benchmarks
|
|
SUBDIR += biology
|
|
SUBDIR += books
|
|
SUBDIR += cad
|
|
SUBDIR += chinese
|
|
SUBDIR += comms
|
|
SUBDIR += converters
|
|
SUBDIR += databases
|
|
SUBDIR += devel
|
|
SUBDIR += editors
|
|
SUBDIR += education
|
|
SUBDIR += emulators
|
|
SUBDIR += games
|
|
SUBDIR += geo
|
|
SUBDIR += graphics
|
|
SUBDIR += inputmethods
|
|
SUBDIR += japanese
|
|
SUBDIR += java
|
|
SUBDIR += korean
|
|
SUBDIR += lang
|
|
SUBDIR += mail
|
|
SUBDIR += math
|
|
SUBDIR += misc
|
|
SUBDIR += multimedia
|
|
SUBDIR += net
|
|
SUBDIR += news
|
|
SUBDIR += palm
|
|
SUBDIR += plan9
|
|
SUBDIR += print
|
|
SUBDIR += productivity
|
|
SUBDIR += russian
|
|
SUBDIR += security
|
|
SUBDIR += shells
|
|
SUBDIR += sysutils
|
|
SUBDIR += telephony
|
|
SUBDIR += textproc
|
|
SUBDIR += www
|
|
SUBDIR += x11
|
|
.endif
|
|
|
|
.include <bsd.port.subdir.mk>
|
|
|
|
index:
|
|
@rm -f ${.CURDIR}/INDEX
|
|
@${MAKE} ${.CURDIR}/INDEX
|
|
|
|
${.CURDIR}/INDEX:
|
|
@echo "Generating INDEX..."
|
|
@${MAKE} describe ECHO_MSG="echo 1>&2" > ${.CURDIR}/INDEX
|
|
@echo "Done."
|
|
|
|
print-index: ${.CURDIR}/INDEX
|
|
@awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nL-deps:\t%s\nB-deps:\t%s\nR-deps:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9, $$10); }' < ${.CURDIR}/INDEX
|
|
|
|
print-licenses: ${.CURDIR}/INDEX
|
|
@printf "Port PC PF DC DF Maint\n"
|
|
@awk -F\| '{printf("%-40.39s%-3.2s%-3.2s%-3.2s%-3.2s%-25.25s\n",$$2,$$12,$$13,$$14,$$15,$$6);}' < ${.CURDIR}/INDEX
|
|
|
|
search: ${.CURDIR}/INDEX
|
|
.if !defined(key) && !defined(name)
|
|
@echo "The search target requires a keyword or name parameter,"
|
|
@echo "e.g.: \"make search key=somekeyword\" \"make search name=somename\""
|
|
.else
|
|
. if defined(key)
|
|
@egrep -i -- "${key}" ${.CURDIR}/INDEX | awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nL-deps:\t%s\nB-deps:\t%s\nR-deps:\t%s\nArchs:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9, $$10, $$11); }'
|
|
. else
|
|
@awk -F\| '$$1 ~ /${name}/ { printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nL-deps:\t%s\nB-deps:\t%s\nR-deps:\t%s\nArchs:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9, $$10, $$11); }' ${.CURDIR}/INDEX
|
|
. endif
|
|
.endif
|
|
|
|
|
|
mirror-maker:
|
|
@mkdir -p ${MIRROR_MK:H}
|
|
# Indirection needed for broken OSes that don't grok this exec
|
|
@echo "EXEC=exec" >${MIRROR_MK}
|
|
@echo "default:: ftp cdrom" >>${MIRROR_MK}
|
|
@echo ".PHONY: default all ftp cdrom" >>${MIRROR_MK}
|
|
@_DONE_FILES=`mktemp /tmp/depends.XXXXXXXXX|| exit 1`; \
|
|
export _DONE_FILES; \
|
|
trap "rm -f $${_DONE_FILES}" 0 1 2 3 13 15; \
|
|
${MAKE} fetch-makefile \
|
|
ECHO_MSG='echo >&2' \
|
|
_FETCH_MAKEFILE=${MIRROR_MK}
|
|
|
|
homepages.html:
|
|
@echo '<html><ul>' >$@
|
|
@${MAKE} homepage-links ECHO_MSG='echo >&2' >>$@
|
|
@echo '</ul></html>' >>$@
|
|
|
|
distfiles-update-locatedb:
|
|
@PORTSDIR=${.CURDIR} /bin/sh ${.CURDIR}/infrastructure/fetch/distfiles-update-locatedb ${DISTFILES_DB}
|
|
|
|
pkglocatedb:
|
|
@pkg_mklocatedb ${.CURDIR}/packages/${MACHINE_ARCH}/all/* \
|
|
>${.CURDIR}/packages/${MACHINE_ARCH}/ftp/pkglocatedb
|
|
|
|
.PHONY: mirror-maker index search distfiles-update-locatedb \
|
|
pkglocatedb print-licenses print-index
|