Sync bbclass files with OE

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@374 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie 2006-05-09 16:10:46 +00:00
parent 8d41bd1c8f
commit 189b9a916b
16 changed files with 190 additions and 94 deletions

View File

@ -27,7 +27,7 @@ def base_read_file(filename):
try:
f = file( filename, "r" )
except IOError, reason:
raise bb.build.FuncFailed("can't read from file '%s' (%s)", (filename,reason))
return "" # WARNING: can't raise an error now because of the new RDEPENDS handling. This is a bit ugly. :M:
else:
return f.read().strip()
return None
@ -196,7 +196,7 @@ oe_libinstall() {
# stop libtool using the final directory name for libraries
# in staging:
__runcmd rm -f $destpath/$libname.la
__runcmd sed -e 's/^installed=yes$/installed=no/' $dotlai >$destpath/$libname.la
__runcmd sed -e 's/^installed=yes$/installed=no/' -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,' $dotlai >$destpath/$libname.la
else
__runcmd install -m 0644 $dotlai $destpath/$libname.la
fi
@ -723,7 +723,14 @@ python __anonymous () {
this_host = bb.data.getVar('HOST_SYS', d, 1)
if not re.match(need_host, this_host):
raise bb.parse.SkipPackage("incompatible with host %s" % this_host)
need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1)
if need_machine:
import re
this_machine = bb.data.getVar('MACHINE', d, 1)
if not re.match(need_machine, this_machine):
raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine)
pn = bb.data.getVar('PN', d, 1)
srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1)

View File

@ -14,6 +14,7 @@ CPPFLAGS = "${BUILD_CPPFLAGS}"
CFLAGS = "${BUILD_CFLAGS}"
CXXFLAGS = "${BUILD_CFLAGS}"
LDFLAGS = "${BUILD_LDFLAGS}"
LDFLAGS_build-darwin = "-L${STAGING_DIR}/${BUILD_SYS}/lib "
# Overrides for paths

View File

@ -0,0 +1,37 @@
MAINTAINER = "Justin Patrin <papercrane@reversefold.com>"
HOMEPAGE = "http://www.enlightenment.org"
SECTION = "e/apps"
inherit autotools pkgconfig binconfig
do_prepsources () {
make clean distclean || true
}
addtask prepsources after do_fetch before do_unpack
def binconfig_suffix(d):
import bb
return ["","-native"][bb.data.inherits_class('native', d)]
export CURL_CONFIG = "${STAGING_BINDIR}/curl-config${@binconfig_suffix(d)}"
export EDB_CONFIG = "${STAGING_BINDIR}/edb-config${@binconfig_suffix(d)}"
export EET_CONFIG = "${STAGING_BINDIR}/eet-config${@binconfig_suffix(d)}"
export EVAS_CONFIG = "${STAGING_BINDIR}/evas-config${@binconfig_suffix(d)}"
export ECORE_CONFIG = "${STAGING_BINDIR}/ecore-config${@binconfig_suffix(d)}"
export EMBRYO_CONFIG = "${STAGING_BINDIR}/embryo-config${@binconfig_suffix(d)}"
export ENGRAVE_CONFIG = "${STAGING_BINDIR}/engrave-config${@binconfig_suffix(d)}"
export ENLIGHTENMENT_CONFIG = "${STAGING_BINDIR}/enlightenment-config${@binconfig_suffix(d)}"
export EPSILON_CONFIG = "${STAGING_BINDIR}/epsilon-config${@binconfig_suffix(d)}"
export EPEG_CONFIG = "${STAGING_BINDIR}/epeg-config${@binconfig_suffix(d)}"
export ESMART_CONFIG = "${STAGING_BINDIR}/esmart-config${@binconfig_suffix(d)}"
export FREETYPE_CONFIG = "${STAGING_BINDIR}/freetype-config${@binconfig_suffix(d)}"
export IMLIB2_CONFIG = "${STAGING_BINDIR}/imlib2-config${@binconfig_suffix(d)}"
do_compile_prepend() {
find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:'
find ${S} -name Makefile | xargs sed -i 's:/usr/X11R6/include:${STAGING_INCDIR}:'
}
PACKAGES = "${PN} ${PN}-themes"
FILES_${PN} = "${libdir}/lib*.so*"
FILES_${PN}-themes = "${datadir}/${PN}/themes ${datadir}/${PN}/data ${datadir}/${PN}/fonts ${datadir}/${PN}/pointers ${datadir}/${PN}/images ${datadir}/${PN}/users ${datadir}/${PN}/images ${datadir}/${PN}/styles"

View File

@ -1,18 +1,11 @@
MAINTAINER = "Justin Patrin <papercrane@reversefold.com>"
HOMEPAGE = "http://www.enlightenment.org"
inherit e
SECTION = "e/libs"
SRCNAME = "${@bb.data.getVar('PN', d, 1).replace('-native', '')}"
SRC_URI = "http://enlightenment.freedesktop.org/files/${SRCNAME}-${PV}.tar.gz"
SRC_URI = "${E_URI}/${SRCNAME}-${PV}.tar.gz"
S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit autotools pkgconfig binconfig
do_prepsources () {
make clean distclean || true
}
addtask prepsources after do_fetch before do_unpack
INHIBIT_AUTO_STAGE_INCLUDES = "1"
INHIBIT_NATIVE_STAGE_INSTALL = "1"
@ -20,29 +13,6 @@ libdirectory = "src/lib"
libraries = "lib${SRCNAME}"
headers = "${@bb.data.getVar('SRCNAME',d,1).capitalize()}.h"
def binconfig_suffix(d):
import bb
return ["","-native"][bb.data.inherits_class('native', d)]
export CURL_CONFIG = "${STAGING_BINDIR}/curl-config${@binconfig_suffix(d)}"
export EDB_CONFIG = "${STAGING_BINDIR}/edb-config${@binconfig_suffix(d)}"
export EET_CONFIG = "${STAGING_BINDIR}/eet-config${@binconfig_suffix(d)}"
export EVAS_CONFIG = "${STAGING_BINDIR}/evas-config${@binconfig_suffix(d)}"
export ECORE_CONFIG = "${STAGING_BINDIR}/ecore-config${@binconfig_suffix(d)}"
export EMBRYO_CONFIG = "${STAGING_BINDIR}/embryo-config${@binconfig_suffix(d)}"
export ENGRAVE_CONFIG = "${STAGING_BINDIR}/engrave-config${@binconfig_suffix(d)}"
export ENLIGHTENMENT_CONFIG = "${STAGING_BINDIR}/enlightenment-config${@binconfig_suffix(d)}"
export EPSILON_CONFIG = "${STAGING_BINDIR}/epsilon-config${@binconfig_suffix(d)}"
export EPEG_CONFIG = "${STAGING_BINDIR}/epeg-config${@binconfig_suffix(d)}"
export ESMART_CONFIG = "${STAGING_BINDIR}/esmart-config${@binconfig_suffix(d)}"
export FREETYPE_CONFIG = "${STAGING_BINDIR}/freetype-config${@binconfig_suffix(d)}"
export IMLIB2_CONFIG = "${STAGING_BINDIR}/imlib2-config${@binconfig_suffix(d)}"
do_compile_prepend() {
find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:'
find ${S} -name Makefile | xargs sed -i 's:/usr/X11R6/include:${STAGING_INCDIR}:'
}
do_stage_append () {
for i in ${libraries}
do
@ -73,9 +43,7 @@ do_stage_append () {
fi
}
PACKAGES = "${PN} ${PN}-themes ${PN}-dev ${PN}-examples "
FILES_${PN} = "${libdir}/lib*.so*"
FILES_${PN}-themes = "${datadir}/${PN}/themes ${datadir}/${PN}/data ${datadir}/${PN}/fonts ${datadir}/${PN}/pointers ${datadir}/${PN}/images ${datadir}/${PN}/users ${datadir}/${PN}/images ${datadir}/${PN}/styles"
PACKAGES = "${PN} ${PN}-themes ${PN}-dev ${PN}-examples"
FILES_${PN}-dev = "${bindir}/${PN}-config ${libdir}/pkgconfig ${libdir}/lib*.?a ${libdir}/lib*.a"
FILES_${PN}-examples = "${bindir} ${datadir}"

View File

@ -163,6 +163,7 @@ kernel_do_install() {
oe_runmake SUBDIRS="scripts/genksyms"
fi
install -d ${STAGING_KERNEL_DIR}
cp -fR scripts ${STAGING_KERNEL_DIR}/
}
@ -193,7 +194,7 @@ ALLOW_EMPTY_kernel-image = "1"
pkg_postinst_modules () {
if [ -n "$D" ]; then
${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_RELEASE} ${KERNEL_VERSION}
${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_RELEASE} ${KERNEL_VERSION}
else
depmod -A
update-modules || true
@ -261,8 +262,9 @@ python populate_packages_prepend () {
kernelver_stripped = m.group(1)
path = bb.data.getVar("PATH", d, 1)
host_prefix = bb.data.getVar("HOST_PREFIX", d, 1) or ""
major_version = bb.data.getVar('KERNEL_MAJOR_VERSION', d, 1)
cmd = "PATH=\"%s\" %sdepmod -n -a -r -b %s -F %s/boot/System.map-%s %s" % (path, host_prefix, dvar, dvar, kernelver, kernelver_stripped)
cmd = "PATH=\"%s\" %sdepmod-%s -n -a -r -b %s -F %s/boot/System.map-%s %s" % (path, host_prefix, major_version, dvar, dvar, kernelver, kernelver_stripped)
f = os.popen(cmd, 'r')
deps = {}

View File

@ -34,6 +34,7 @@ CPPFLAGS = "${BUILD_CPPFLAGS}"
CFLAGS = "${BUILD_CFLAGS}"
CXXFLAGS = "${BUILD_CFLAGS}"
LDFLAGS = "${BUILD_LDFLAGS}"
LDFLAGS_build-darwin = "-L${STAGING_DIR}/${BUILD_SYS}/lib "
# Path prefixes
base_prefix = "${exec_prefix}"

View File

@ -23,7 +23,8 @@ OPIE_CVS_PV = "1.2.1+cvs-${SRCDATE}"
DEPENDS_prepend = "${@["libopie2 ", ""][(bb.data.getVar('PN', d, 1) == 'libopie2')]}"
# to be consistent, put all targets into workdir
EXTRA_QMAKEVARS_POST_append = " DESTDIR=${S}"
# NOTE: leave one space at the end, other files are expecting that
EXTRA_QMAKEVARS_POST += "DESTDIR=${S} "
# Opie standard TAG value
TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '_')}"

View File

@ -241,6 +241,14 @@ python populate_packages () {
return 0
return (s[stat.ST_MODE] & stat.S_IEXEC)
# Sanity check PACKAGES for duplicates - should be moved to
# sanity.bbclass once we have he infrastucture
pkgs = []
for pkg in packages.split():
if pkg in pkgs:
bb.error("%s is listed in PACKAGES mutliple times. Undefined behaviour will result." % pkg)
pkgs += pkg
for pkg in packages.split():
localdata = bb.data.createCopy(d)
root = os.path.join(workdir, "install", pkg)

View File

@ -1,10 +1,20 @@
# basically a placeholder for something more fancy
# for now, just declare some things
# this build class sets up qmake variables to
# * build using the Qt Windowing System (QWS)
# * use qt
# * link against supc++ instead of stdc++
# * use threads, if requested via PALMTOP_USE_MULTITHREADED_QT = "yes"
# inherit this class to build programs against libqpe
# inherit opie if you want to build programs against libopie2
# don't override EXTRA_QMAKEVARS_POST, if you use inherit this class
inherit qmake
EXTRA_QMAKEVARS_POST_append = " DEFINES+=QWS LIBS+=-lqpe CONFIG+=qt LIBS-=-lstdc++ LIBS+=-lsupc++"
DEPENDS_prepend = "virtual/libqpe uicmoc-native "
# special case for DISTRO = sharprom
CPP_SUPPORT_LIB = "LIBS-=-lstdc++ LIBS+=-lsupc++"
CPP_SUPPORT_LIB_sharprom = "LIBS-=-lstdc++"
EXTRA_QMAKEVARS_POST += "DEFINES+=QWS CONFIG+=qt ${CPP_SUPPORT_LIB}"
EXTRA_QMAKEVARS_POST += '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "CONFIG+=thread", "CONFIG-=thread",d)}'
EXTRA_QMAKEVARS_POST += "${@["LIBS+=-lqpe ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}"
DEPENDS_prepend = "${@["virtual/libqpe1 uicmoc-native ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}"
FILES_${PN} = "${palmtopdir}"

View File

@ -16,6 +16,8 @@ export OE_QMAKE_AR="${AR}"
export OE_QMAKE_STRIP="${STRIP}"
export OE_QMAKE_UIC="${STAGING_BINDIR}/uic"
export OE_QMAKE_MOC="${STAGING_BINDIR}/moc"
export OE_QMAKE_RCC="non-existant"
export OE_QMAKE_QMAKE="${STAGING_BINDIR}/qmake"
export OE_QMAKE_RPATH="-Wl,-rpath-link,"
# default to qte2 via bb.conf, inherit qt3x11 to configure for qt3x11

View File

@ -2,7 +2,7 @@ inherit qmake-base
qmake_do_configure() {
case ${QMAKESPEC} in
*linux-oe-g++|*linux-uclibc-oe-g++)
*linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++)
;;
*-oe-g++)
die Unsupported target ${TARGET_OS} for oe-g++ qmake spec
@ -47,9 +47,9 @@ qmake_do_configure() {
oenote "qmake prevar substitution: ${EXTRA_QMAKEVARS_PRE}"
fi
#oenote "Calling 'qmake -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST'"
#oenote "Calling '${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST'"
unset QMAKESPEC || true
qmake -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling qmake on $PROFILES"
${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling ${OE_QMAKE_QMAKE} on $PROFILES"
}
EXPORT_FUNCTIONS do_configure

View File

@ -1,9 +1,14 @@
DEPENDS_prepend = "qmake2-native "
#
# override variables set by qmake-base to compile Qt/X11 apps
# override variables set by qmake-base to compile Qt4/X11 apps
#
export QTDIR="${STAGING_DIR}/${HOST_SYS}/qt4"
export QMAKESPEC="${QTDIR}/mkspecs/${TARGET_OS}-oe-g++"
export OE_QMAKE_UIC="${STAGING_BINDIR}/uic4"
export OE_QMAKE_MOC="${STAGING_BINDIR}/moc4"
export OE_QMAKE_RCC="${STAGING_BINDIR}/rcc4"
export OE_QMAKE_QMAKE="${STAGING_BINDIR}/qmake2"
export OE_QMAKE_LINK="${CXX}"
export OE_QMAKE_CXXFLAGS="${CXXFLAGS}"
export OE_QMAKE_INCDIR_QT="${QTDIR}/include"
export OE_QMAKE_LIBDIR_QT="${QTDIR}/lib"

View File

@ -2,11 +2,9 @@
# Sanity check the users setup for common misconfigurations
#
BB_MIN_VERSION = "1.3.3"
def raise_sanity_error(msg):
import bb
bb.fatal("Openembedded's config sanity checker detected a potential misconfiguration.\nEither fix cause of this error or at your own risk disable the checker (see sanity.conf).\n%s" % msg)
bb.fatal("Openembedded's config sanity checker detected a potential misconfiguration.\nEither fix the cause of this error or at your own risk disable the checker (see sanity.conf).\n%s" % msg)
def check_conf_exists(fn, data):
import bb, os
@ -22,37 +20,41 @@ def check_conf_exists(fn, data):
return True
return False
addhandler check_sanity_eventhandler
python check_sanity_eventhandler() {
def check_app_exists(app, d):
from bb import which, data
app = data.expand(app, d)
path = data.getVar('PATH', d)
return len(which(path, app)) != 0
def check_sanity(e):
from bb import note, error, data, __version__
from bb.event import Handled, NotHandled, getName
from distutils.version import LooseVersion
import os
sanity_checked = bb.data.getVar('SANITY_CHECKED', e.data)
if sanity_checked == "1":
return
# Check the bitbake version meets minimum requirements
minversion = bb.data.getVar('BB_MIN_VERSION', e.data , True)
minversion = data.getVar('BB_MIN_VERSION', e.data , True)
if not minversion:
# Hack: BB_MIN_VERSION hasn't been parsed yet so return
# and wait for the next call
print "Foo %s" % minversion
return
if (LooseVersion(bb.__version__) < LooseVersion(minversion)):
raise_sanity_error('Bitbake version %s is required and version %s was found' % (minversion, bb.__version__))
if (LooseVersion(__version__) < LooseVersion(minversion)):
raise_sanity_error('Bitbake version %s is required and version %s was found' % (minversion, __version__))
# Check TARGET_ARCH is set
if bb.data.getVar('TARGET_ARCH', e.data, True) == 'INVALID':
if data.getVar('TARGET_ARCH', e.data, True) == 'INVALID':
raise_sanity_error('Please set TARGET_ARCH directly, or choose a MACHINE or DISTRO that does so.')
# Check TARGET_OS is set
if bb.data.getVar('TARGET_OS', e.data, True) == 'INVALID':
if data.getVar('TARGET_OS', e.data, True) == 'INVALID':
raise_sanity_error('Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.')
# Check user doesn't have ASSUME_PROVIDED = instead of += in local.conf
if "diffstat-native" not in bb.data.getVar('ASSUME_PROVIDED', e.data, True).split():
if "diffstat-native" not in data.getVar('ASSUME_PROVIDED', e.data, True).split():
raise_sanity_error('Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf')
# Check the MACHINE is valid
@ -62,8 +64,36 @@ python check_sanity_eventhandler() {
# Check the distro is valid
if not check_conf_exists("conf/distro/${DISTRO}.conf", e.data):
raise_sanity_error('Please set a valid DISTRO in your local.conf')
bb.data.setVar('SANITY_CHECKED', "1", e.data)
return
}
if not check_app_exists("${MAKE}", e.data):
raise_sanity_error('GNU make missing. Please install GNU make')
if not check_app_exists('${BUILD_PREFIX}gcc', e.data):
raise_sanity_error('C Host-Compiler is missing, please install one' )
if not check_app_exists('${BUILD_PREFIX}g++', e.data):
raise_sanity_error('C++ Host-Compiler is missing, please install one' )
if not check_app_exists('patch', e.data):
raise_sanity_error('Please install the patch utility, preferable GNU patch.')
if not check_app_exists('diffstat', e.data):
raise_sanity_error('Please install the diffstat utility')
if not check_app_exists('texi2html', e.data):
raise_sanity_error('Please install the texi2html binary')
oes_bb_conf = data.getVar( 'OES_BITBAKE_CONF', e.data, True )
if not oes_bb_conf:
raise_sanity_error('You do not include OpenEmbeddeds version of conf/bitbake.conf')
addhandler check_sanity_eventhandler
python check_sanity_eventhandler() {
from bb import note, error, data, __version__
from bb.event import getName
if getName(e) == "BuildStarted":
check_sanity(e)
return NotHandled
}

View File

@ -1,27 +1,44 @@
FILES_${PN} += '${libdir}/perl5'
#
# (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
#
sdl_do_configure () {
if [ -x ${S}/configure ] ; then
cfgcmd="${S}/configure \
-GL -GLU"
oenote "Running $cfgcmd..."
$cfgcmd || oefatal "oe_runconf failed"
if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
. ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
sed -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:; s:\(SITEARCHEXP = \).*:\1${sitearchexp}:; s:\(INSTALLVENDORLIB = \).*:\1${D}${libdir}/perl5:; s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5:" < Makefile > Makefile.new
mv Makefile.new Makefile
fi
else
oefatal "no configure script found"
fi
DEPENDS += "virtual/libsdl libsdl-mixer libsdl-image"
APPDESKTOP ?= "${PN}.desktop"
APPNAME ?= "${PN}"
APPIMAGE ?= "${PN}.png"
sdl_do_sdl_install() {
install -d ${D}${palmtopdir}/bin
install -d ${D}${palmtopdir}/pics
install -d ${D}${palmtopdir}/apps/Games
ln -sf ${bindir}/${APPNAME} ${D}${palmtopdir}/bin/${APPNAME}
install -m 0644 ${APPIMAGE} ${D}${palmtopdir}/pics/${PN}.png
if [ -e "${APPDESKTOP}" ]
then
echo ${APPDESKTOP} present, installing to palmtopdir...
install -m 0644 ${APPDESKTOP} ${D}${palmtopdir}/apps/Games/${PN}.desktop
else
echo ${APPDESKTOP} not present, creating one on-the-fly...
cat >${D}${palmtopdir}/apps/Games/${PN}.desktop <<EOF
[Desktop Entry]
Note=Auto Generated... this may be not what you want
Comment=${DESCRIPTION}
Exec=${APPNAME}
Icon=${APPIMAGE}
Type=Application
Name=${PN}
EOF
fi
}
sdl_do_compile () {
oe_runmake PASTHRU_INC="${CFLAGS}"
}
EXPORT_FUNCTIONS do_sdl_install
addtask sdl_install after do_compile before do_populate_staging
sdl_do_install () {
oe_runmake install_vendor
}
SECTION = "x11/games"
SECTION_${PN}-opie = "opie/games"
EXPORT_FUNCTIONS do_configure do_compile do_install
PACKAGES += "${PN}-opie"
RDEPENDS_${PN}-opie += "${PN}"
FILES_${PN}-opie = "${palmtopdir}"

View File

@ -1,6 +1,11 @@
DEPENDS_prepend = "sip-native python-sip "
# Build Class for Sip based Python Bindings
# (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
#
#EXTRA_SIPTAGS = "-tWS_QWS -tQtPE_1_6_0 -tQt_2_3_1"
DEPENDS =+ "sip-native python-sip"
# default stuff, do not uncomment
# EXTRA_SIPTAGS = "-tWS_QWS -tQtPE_1_6_0 -tQt_2_3_1"
sip_do_generate() {
if [ -z "${SIP_MODULES}" ]; then

View File

@ -10,6 +10,8 @@ SREC_CMD = "${TARGET_PREFIX}objcopy -O srec -I binary --adjust-vma ${SREC_VMAADD
# Do not build srec files for these types of images:
SREC_SKIP = "tar"
do_srec[nostamp] = 1
do_srec () {
if [ ${SREC_VMAADDR} = "" ] ; then
oefatal Cannot do_srec without SREC_VMAADDR defined.