|
Lines 1-138
Link Here
|
| 1 |
# $FreeBSD$ |
|
|
| 2 |
# |
| 3 |
# IMPORTANT NOTE: |
| 4 |
# Before making any changes to this file, contact portmgr to arrange |
| 5 |
# for an experimental ports run. |
| 6 |
# Untested commits will almost certainly break the tree, incur the |
| 7 |
# wrath of countless folks, and be unceremoniously backed out by |
| 8 |
# the maintainer and/or portmgr. |
| 9 |
|
| 10 |
Autotools_Include_MAINTAINER= tijl@FreeBSD.org |
| 11 |
|
| 12 |
#--------------------------------------------------------------------------- |
| 13 |
# USE_AUTOTOOLS= tool[:env] ... |
| 14 |
# |
| 15 |
# 'tool' can currently be one of the following: |
| 16 |
# autoconf |
| 17 |
# |
| 18 |
# ':env' is used to specify that the environmental variables are needed |
| 19 |
# but the relevant tool should NOT be run as part of the |
| 20 |
# 'run-autotools' target |
| 21 |
# |
| 22 |
# In addition, these variables can be set in the port Makefile to be |
| 23 |
# passed to the relevant tools: |
| 24 |
# |
| 25 |
# AUTOCONF_ARGS=... |
| 26 |
# - Extra arguments passed to autoconf during configure step |
| 27 |
# |
| 28 |
#--------------------------------------------------------------------------- |
| 29 |
|
| 30 |
#--------------------------------------------------------------------------- |
| 31 |
# NO USER-SERVICABLE PARTS BEYOND THIS POINT. REALLY. WE MEAN IT. |
| 32 |
#--------------------------------------------------------------------------- |
| 33 |
|
| 34 |
# Known autotools components |
| 35 |
_AUTOTOOLS_ALL= autoconf |
| 36 |
|
| 37 |
#--------------------------------------------------------------------------- |
| 38 |
# Primary magic to break out the USE_AUTOTOOLS stanza into something |
| 39 |
# more useful, along with substantial error checking to prevent |
| 40 |
# foot-shooting |
| 41 |
#--------------------------------------------------------------------------- |
| 42 |
|
| 43 |
# Break out the stanza |
| 44 |
# |
| 45 |
_AUTOTOOLS_IMPL= |
| 46 |
.for stanza in ${USE_AUTOTOOLS} |
| 47 |
_AUTOTOOLS_IMPL+= ${stanza:C/^([^:]+).*/\1/} |
| 48 |
_AUTOTOOL_${stanza:C/^([^:]+).*/\1/}= ${stanza:C/^[^:]+:([^:]+)/\1/} |
| 49 |
.endfor |
| 50 |
|
| 51 |
# Verify each component, normalize |
| 52 |
# |
| 53 |
_AUTOTOOLS_NOCOMP= |
| 54 |
.for component in ${_AUTOTOOLS_IMPL} |
| 55 |
. if ${_AUTOTOOLS_ALL:M${component}}=="" |
| 56 |
_AUTOTOOLS_NOCOMP+= ${component} |
| 57 |
. endif |
| 58 |
. if ${_AUTOTOOL_${component}}==${component} |
| 59 |
_AUTOTOOL_${component}= yes |
| 60 |
. elsif ${_AUTOTOOL_${component}}!="env" && ${_AUTOTOOL_${component}}!="yes" |
| 61 |
_AUTOTOOLS_BADCOMP+= ${component}:${_AUTOTOOL_${component}} |
| 62 |
. endif |
| 63 |
.endfor |
| 64 |
.if !empty(_AUTOTOOLS_NOCOMP) |
| 65 |
IGNORE+= Unknown autotool: ${_AUTOTOOLS_NOCOMP:O:u} |
| 66 |
.endif |
| 67 |
|
| 68 |
# Check for anything other than 'yes' or 'env' |
| 69 |
# |
| 70 |
_AUTOTOOLS_BADCOMP= |
| 71 |
.for component in ${_AUTOTOOLS_IMPL} |
| 72 |
. if ${_AUTOTOOL_${component}}!="env" && ${_AUTOTOOL_${component}}!="yes" |
| 73 |
_AUTOTOOLS_BADCOMP+= ${component}:${_AUTOTOOL_${component}} |
| 74 |
. endif |
| 75 |
.endfor |
| 76 |
.if !empty(_AUTOTOOLS_BADCOMP) |
| 77 |
IGNORE+= Bad autotool stanza: ${_AUTOTOOLS_BADCOMP:O:u} |
| 78 |
.endif |
| 79 |
|
| 80 |
#--------------------------------------------------------------------------- |
| 81 |
# autoconf |
| 82 |
#--------------------------------------------------------------------------- |
| 83 |
|
| 84 |
.if defined(_AUTOTOOL_autoconf) |
| 85 |
AUTOCONF_VERSION= 2.69 |
| 86 |
AUTOCONF_PORT= devel/autoconf |
| 87 |
|
| 88 |
. if ${_AUTOTOOL_autoconf} == "yes" |
| 89 |
_AUTOTOOL_rule_autoconf= yes |
| 90 |
GNU_CONFIGURE?= yes |
| 91 |
. endif |
| 92 |
.endif |
| 93 |
|
| 94 |
.if defined(AUTOCONF_VERSION) |
| 95 |
AUTOCONF= ${LOCALBASE}/bin/autoconf-${AUTOCONF_VERSION} |
| 96 |
AUTOCONF_DIR= ${LOCALBASE}/share/autoconf-${AUTOCONF_VERSION} |
| 97 |
AUTOIFNAMES= ${LOCALBASE}/bin/ifnames-${AUTOCONF_VERSION} |
| 98 |
AUTOM4TE?= ${LOCALBASE}/bin/autom4te-${AUTOCONF_VERSION} |
| 99 |
AUTORECONF= ${LOCALBASE}/bin/autoreconf-${AUTOCONF_VERSION} |
| 100 |
AUTOSCAN= ${LOCALBASE}/bin/autoscan-${AUTOCONF_VERSION} |
| 101 |
AUTOUPDATE= ${LOCALBASE}/bin/autoupdate-${AUTOCONF_VERSION} |
| 102 |
|
| 103 |
AUTOCONF_VARS= AUTOCONF=${AUTOCONF} \ |
| 104 |
AUTOCONF_DIR=${AUTOCONF_DIR} \ |
| 105 |
AUTOIFNAMES=${AUTOIFNAMES} \ |
| 106 |
AUTOM4TE=${AUTOM4TE} \ |
| 107 |
AUTORECONF=${AUTORECONF} \ |
| 108 |
AUTOSCAN=${AUTOSCAN} \ |
| 109 |
AUTOUPDATE=${AUTOUPDATE} \ |
| 110 |
AUTOCONF_VERSION=${AUTOCONF_VERSION} |
| 111 |
|
| 112 |
AUTOCONF_DEPENDS= ${AUTOCONF}:${AUTOCONF_PORT} |
| 113 |
BUILD_DEPENDS+= ${AUTOCONF_DEPENDS} |
| 114 |
.endif |
| 115 |
|
| 116 |
#--------------------------------------------------------------------------- |
| 117 |
# Add to the environment |
| 118 |
#--------------------------------------------------------------------------- |
| 119 |
|
| 120 |
AUTOTOOLS_VARS= ${AUTOCONF_VARS} |
| 121 |
|
| 122 |
.if defined(AUTOTOOLS_VARS) && !empty(AUTOTOOLS_VARS) |
| 123 |
. for var in AUTOTOOLS CONFIGURE MAKE SCRIPTS |
| 124 |
${var:tu}_ENV+= ${AUTOTOOLS_VARS} |
| 125 |
. endfor |
| 126 |
.endif |
| 127 |
|
| 128 |
#--------------------------------------------------------------------------- |
| 129 |
# Make targets |
| 130 |
#--------------------------------------------------------------------------- |
| 131 |
|
| 132 |
_USES_configure+=461:run-autotools-autoconf |
| 133 |
|
| 134 |
.if defined(_AUTOTOOL_rule_autoconf) && !target(run-autotools-autoconf) |
| 135 |
run-autotools-autoconf: |
| 136 |
@(cd ${CONFIGURE_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOCONF} \ |
| 137 |
${AUTOCONF_ARGS}) |
| 138 |
.endif |