1 #############################################################################
3 # You should *NOT* edit this file. Instead, edit ${OEDIR}/conf/local.conf #
14 # This looks like a shell file, but it isn't. All variables get expanded #
15 # after ALL config files have been read in. This allows you to override #
18 # The following config files will be read (if existent): #
20 # ${OEDIR}/conf/oe.conf #
21 # ${OEDIR}/conf/local.conf #
22 # <current-dir>/oe.conf #
23 # ${OEDIR}/conf/auto.conf #
24 # ${OEDIR}/conf/${DISTRO}.conf #
25 # ${OEDIR}/conf/${BUILD_SYS}.conf #
26 # ${OEDIR}/conf/${SYS}.conf #
27 # ${OEDIR}/conf/${MACHINE}.conf #
29 # DISTRO is something like 'mandrake82' or 'debian3' #
30 # BUILD_SYS is made of BUILD_ARCH and BUILD_OS and like 'i686-linux' #
31 # SYS is made of ARCH and OS and like 'arm-linux' #
32 # MACHINE is something like 'collie', 'corgie' or 'ramses' #
34 # The auto.conf file will be automatically generated, either by something #
35 # like "./configure" or by something like "make menuconfig". #
37 #############################################################################
40 ### Date/time variables
43 DATE := "${@time.strftime('%Y%m%d',time.gmtime())}"
44 TIME := "${@time.strftime('%H%M%S',time.gmtime())}"
45 DATETIME = "${DATE}${TIME}"
47 # Variable that controls the date CVS HEAD checkouts are pulled from.
51 CACHE = "${TMPDIR}/cache"
54 ### Package default variables
56 PN = "${@oe.parse.OEHandler.vars_from_file(oe.data.getVar('FILE',d),d)[0] or 'defaultpkgname'}"
57 PV = "${@oe.parse.OEHandler.vars_from_file(oe.data.getVar('FILE',d),d)[1] or '1.0'}"
58 PR = "${@oe.parse.OEHandler.vars_from_file(oe.data.getVar('FILE',d),d)[2] or 'r0'}"
59 PF = "${PN}-${PV}-${PR}"
64 DESCRIPTION = "Version ${PV}-${PR} of package ${PN}"
66 MAINTAINER = "OpenEmbedded Team <oe@handhelds.org>"
71 PROVIDES_prepend = "${P} ${PF} ${PN} "
74 PACKAGES = "${PN} ${PN}-doc ${PN}-dev ${PN}-locale"
76 FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* \
77 ${sysconfdir} ${sharedstatedir} ${localstatedir} \
78 /bin /sbin /lib/*.so* ${datadir}/${PN} ${libdir}/${PN} \
79 ${datadir}/pixmaps ${datadir}/applications \
80 ${datadir}/idl ${datadir}/omf ${datadir}/sounds \
81 ${libdir}/bonobo/servers"
82 FILES_${PN}-doc = "${datadir}/doc ${mandir} ${infodir} ${datadir}/gtk-doc \
83 ${datadir}/gnome/help"
84 FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \
85 ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
86 /lib/*.a /lib/*.o ${datadir}/aclocal"
87 FILES_${PN}-locale = "${datadir}/locale"
90 ### Directories for the Buildsystem
94 TMPDIR = "${TOPDIR}/tmp"
97 DL_DIR = "${TMPDIR}/downloads"
99 # Stamps mark tasks that are done
100 STAMP = "${TMPDIR}/stamps/${PF}"
103 export MANIFEST = "${FILESDIR}/manifest"
105 FILE_DIRNAME = "${@os.path.dirname(oe.data.getVar('FILE', d))}"
106 FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
107 FILESDIR = "${@oe.which(oe.data.getVar('FILESPATH', d, 1), '.')}"
109 # Per package directories
112 WORKDIR = "${TMPDIR}/work/${PF}"
114 # shell script output and log area
115 T = "${WORKDIR}/temp"
117 # do_install output area
118 D = "${WORKDIR}/image"
120 # default source tree path
121 S = "${WORKDIR}/${P}"
126 # slot - currently unused by OE. portage remnants
129 # default source is just the .oe
130 SRC_URI = "file://${FILE}"
132 # Staging area - used to handle inter-package dependency
133 STAGING_DIR = "${TMPDIR}/staging"
134 STAGING_BINDIR = "${STAGING_DIR}/${BUILD_SYS}/bin"
135 STAGING_LIBDIR = "${STAGING_DIR}/${HOST_SYS}/lib"
136 STAGING_INCDIR = "${STAGING_DIR}/${HOST_SYS}/include"
137 STAGING_DATADIR = "${STAGING_DIR}/${HOST_SYS}/share"
141 DEPLOY_DIR = "${TMPDIR}/deploy"
142 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
143 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
144 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
149 BOOTSTRAP_EXTRA_DEPENDS = ""
150 BOOTSTRAP_EXTRA_RDEPENDS = ""
151 BOOTSTRAP_EXTRA_RRECOMMENDS = ""
153 # image creation and rootfs population
154 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images"
155 IMAGE_ROOTFS = "${TMPDIR}/rootfs"
156 PACKAGE_ARCH = "${TARGET_ARCH}"
157 MACHINE_ARCH = "${MACHINE}"
159 IMAGE_BASENAME = "rootfs"
160 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
162 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime \
163 --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
165 IMAGE_CMD_cramfs = "mkcramfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cramfs ${EXTRA_IMAGECMD}"
166 IMAGE_CMD_ext2 = "genext2fs -b ${IMAGE_ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2 ${EXTRA_IMAGECMD}"
167 IMAGE_CMD_ext2.gz = "genext2fs -b ${IMAGE_ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2 ${EXTRA_IMAGECMD}; gzip ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2"
168 IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend"
169 IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -jcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.bz2 ."
171 EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x40000"
172 EXTRA_IMAGECMD_squashfs = "-le -b 16384"
173 IMAGE_ROOTFS_SIZE_ext2 = "65536"
174 IMAGE_ROOTFS_SIZE_ext2.gz = "65536"
177 IMAGE_DEPENDS_jffs2 = "mtd-native"
178 IMAGE_DEPENDS_cramfs = "cramfs-native"
179 IMAGE_DEPENDS_ext2 = "genext2fs-native"
180 IMAGE_DEPENDS_ext2.gz = "genext2fs-native"
181 IMAGE_DEPENDS_squashfs = "squashfs-tools-native"
183 IMAGE_FSTYPE = "jffs2"
184 IMAGE_FSTYPES = "${IMAGE_FSTYPE}"
186 EXTRA_IMAGEDEPENDS = ""
188 # minimum kernel version that we support
189 OLDEST_KERNEL = "2.4.0"
192 CROSS_DIR = "${TMPDIR}/cross"
193 CROSS_DATADIR = "${CROSS_DIR}/share"
195 # Add staging and cross to the PATH
196 export PATH_prepend = "${STAGING_BINDIR}:${CROSS_DIR}/bin:"
198 # palmtop things - per default for opie, qtopia
199 export QTDIR = "${STAGING_DIR}/${HOST_SYS}/qt2"
200 export QPEDIR = "${STAGING_DIR}/${HOST_SYS}"
201 export OPIEDIR = "${STAGING_DIR}/${HOST_SYS}"
202 export palmtopdir = "/opt/QtPalmtop"
203 export palmqtdir = "/opt/QtPalmtop"
205 # target filesystem paths
206 export prefix = "/usr"
207 export exec_prefix = "${prefix}"
209 export bindir = "${exec_prefix}/bin"
210 export sbindir = "${exec_prefix}/sbin"
211 export libexecdir = "${exec_prefix}/libexec"
212 export datadir = "${prefix}/share"
213 export sysconfdir = "/etc"
214 export sharedstatedir = "${prefix}/com"
215 export localstatedir = "/var"
216 export libdir = "${exec_prefix}/lib"
217 export includedir = "${prefix}/include"
218 export oldincludedir = "/usr/include"
219 export infodir = "${datadir}/info"
220 export mandir = "${datadir}/man"
221 export docdir = "${datadir}/doc"
224 ### Mirrors and download
227 GNU_MIRROR = "ftp://ftp.gnu.org/gnu"
228 DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
229 SOURCEFORGE_MIRROR = "http://aleron.dl.sourceforge.net/sourceforge"
230 GPE_MIRROR = "http://gpe.handhelds.org/pub/projects/gpe/source"
231 XLIBS_MIRROR = "http://freedesktop.org/~xlibs/release"
232 GNOME_MIRROR = "http://ftp.gnome.org/pub/GNOME/sources"
234 # You can use the mirror of your country to get faster downloads by putting
235 # export DEBIAN_MIRROR = "ftp://ftp.de.debian.org/debian/pool"
236 # export SOURCEFORGE_MIRROR = "http://belnet.dl.sourceforge.net/sourceforge"
237 # into ${OEDIR}/local.conf
240 FETCHCOMMAND_wget = "/usr/bin/env wget -t 5 --passive-ftp -P ${DL_DIR} ${URI}"
241 FETCHCOMMAND_cvs = "/usr/bin/env cvs -d${CVSROOT} co ${CVSCOOPTS} ${CVSMODULE}"
243 RESUMECOMMAND_wget = "/usr/bin/env wget -c -t 5 --passive-ftp -P ${DL_DIR} ${URI}"
245 MKTEMPDIRCMD = "mktemp -d -q ${TMPBASE}"
246 MKTEMPCMD = "mktemp -q ${TMPBASE}"
250 ### Compilation control
253 # NOTE: _VENDOR fields must be either empty or start with a -
256 BUILD_ARCH = "${@os.uname()[4]}"
257 BUILD_OS = "${@os.uname()[0].lower()}"
260 BUILD_SYS = "${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}"
264 # host vars (either target or build)
265 HOST_ARCH = "${TARGET_ARCH}"
266 HOST_OS = "${TARGET_OS}"
267 HOST_VENDOR = "${TARGET_VENDOR}"
269 HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
270 HOST_PREFIX = "${TARGET_PREFIX}"
271 HOST_CC_ARCH = "${TARGET_CC_ARCH}"
274 TARGET_ARCH = "${BUILD_ARCH}"
275 TARGET_OS = "${BUILD_OS}"
276 TARGET_VENDOR = "${BUILD_VENDOR}"
278 TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
279 TARGET_PREFIX = "${TARGET_SYS}-"
282 # Which flags to leave by strip-flags() in bin/build/oebuild.sh ?
283 ALLOWED_FLAGS = "-O -mcpu -march -pipe"
286 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
287 DEBUG_OPTIMIZATION = "-O -g"
288 SELECTED_OPTIMIZATION = "${@oe.data.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][oe.data.getVar('DEBUG_BUILD', d, 1) == '1'], d, 1)}"
289 BUILD_OPTIMIZATION = "-O2"
292 export BUILD_CPPFLAGS = "-I${STAGING_DIR}/${BUILD_SYS}/include"
293 export CPPFLAGS = "${TARGET_CPPFLAGS}"
294 export TARGET_CPPFLAGS = "-I${STAGING_DIR}/${TARGET_SYS}/include"
296 export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
297 export CFLAGS = "${TARGET_CFLAGS}"
298 export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"
300 export BUILD_CXXFLAGS = "${BUILD_CFLAGS} -fpermissive"
301 export CXXFLAGS = "${TARGET_CXXFLAGS}"
302 export TARGET_CXXFLAGS = "${TARGET_CFLAGS} -fpermissive"
304 export BUILD_LDFLAGS = "-L${STAGING_DIR}/${BUILD_SYS}/lib \
305 -Wl,-rpath-link,${STAGING_DIR}/${BUILD_SYS}/lib \
306 -Wl,-rpath,${STAGING_DIR}/${BUILD_SYS}/lib"
307 export LDFLAGS = "${TARGET_LDFLAGS}"
308 export TARGET_LDFLAGS = "-L${STAGING_DIR}/${TARGET_SYS}/lib \
309 -Wl,-rpath-link,${STAGING_DIR}/${TARGET_SYS}/lib \
310 -Wl,-rpath,${libdir}"
312 # host vars (can be either target or build, based on CROSS variable)
313 export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
314 export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}"
315 export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}"
316 export CPP = "${HOST_PREFIX}gcc -E"
317 export LD = "${HOST_PREFIX}ld"
318 export CCLD = "${HOST_PREFIX}gcc"
319 export AR = "${HOST_PREFIX}ar"
320 export RANLIB = "${HOST_PREFIX}ranlib"
321 export STRIP = "${HOST_PREFIX}strip"
323 # Flags to compile stuff for the build host:
324 export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
325 export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
326 export BUILD_F77 = "${CCACHE}${BUILD_PREFIX}g77 ${BUILD_CC_ARCH}"
327 export BUILD_CPP = "${BUILD_PREFIX}cpp"
328 export BUILD_LD = "${BUILD_PREFIX}ld"
329 export BUILD_CCLD = "${BUILD_PREFIX}gcc"
330 export BUILD_AR = "${BUILD_PREFIX}ar"
331 export BUILD_RANLIB = "${BUILD_PREFIX}ranlib"
332 export BUILD_STRIP = "${BUILD_PREFIX}strip"
335 CCACHE = "${@oe.which(oe.data.getVar('PATH', d), 'ccache') and 'ccache '}"
337 EXTRA_OEMAKE = "-e MAKEFLAGS="
339 export PKG_CONFIG_PATH = "${STAGING_DATADIR}/pkgconfig"
340 export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
342 export QMAKE_MKSPEC_PATH = "${STAGING_DIR}/${BUILD_SYS}/share/qmake"
343 export STAGING_SIPDIR = "${STAGING_DIR}/${BUILD_SYS}/share/sip"
344 export STAGING_IDLDIR = "${STAGING_DATADIR}/idl"
347 STAGING_KERNEL_DIR = "${STAGING_DIR}/${HOST_SYS}/kernel"
350 # default test results for autoconf
351 # possible candidate for moving into autotools.oeclass -CL
352 export CONFIG_SITE = "${@oe.which(oe.data.getVar('OEPATH', d, 1), 'site/%s-%s' % (oe.data.getVar('HOST_ARCH', d, 1), oe.data.getVar('HOST_OS', d, 1)))}"
354 # library package naming
355 AUTO_LIBNAME_PKGS = "${PACKAGES}"
358 ### Config file processing
361 # This means that an envionment variable named '<foo>_arm' overrides an
362 # environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an
363 # environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm
364 # when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything.
366 # This works for functions as well, they are really just environment variables.
368 OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}"
370 # Read rest of config files:
373 include conf/site.conf
374 include conf/auto.conf
375 include conf/local.conf
376 include conf/${MACHINE}.conf
377 include conf/${DISTRO}.conf
378 include conf/${BUILD_SYS}.conf
379 include conf/${TARGET_SYS}.conf