URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [configure.in] - Rev 819
Go to most recent revision | Compare with Previous | Blame | View Log
dnl Process this file with autoconf to produce a configure script.dnl ====================================================================dnldnl configure.indnldnl Top-level configure script for eCos software.dnldnl ====================================================================dnl ####ECOSHOSTGPLCOPYRIGHTBEGIN####dnl ----------------------------------------------------------------------------dnl Copyright (C) 2002, 2003 Bart Veerdnl Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.dnldnl This file is part of the eCos host tools.dnldnl This program is free software; you can redistribute it and/or modify itdnl under the terms of the GNU General Public License as published by the Freednl Software Foundation; either version 2 of the License, or (at your option)dnl any later version.dnldnl This program is distributed in the hope that it will be useful, but WITHOUTdnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ordnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License fordnl more details.dnldnl You should have received a copy of the GNU General Public License along withdnl this program; if not, write to the Free Software Foundation, Inc.,dnl 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.dnl ----------------------------------------------------------------------------dnl ####ECOSHOSTGPLCOPYRIGHTEND####dnl ====================================================================dnl#####DESCRIPTIONBEGIN####dnldnl Author(s): bartvdnl Contact(s): bartvdnl Date: 1998/12/17dnl Version: 0.01dnldnl####DESCRIPTIONEND####dnl ====================================================================dnl eCos is a componentized architecture for deeply embedded systems.dnl It requires a very different configuration system from typicaldnl autoconfiscated software such as the various GNU packages.dnldnl The main eCos host-side software is autoconfiscated to some extent,dnl in that the usual sequence of "configure;make;make install" willdnl work under the right conditions. However it does not conform todnl the GNU coding standards in numerous ways, for example "make dist"dnl will not work. The main eCos host-side software lives in thednl "host" subdirectory, and is built unconditionally.dnldnl The eCos target-side software lives in the "packages" subdirectory,dnl and is organized in numerous subdirectories corresponding to differentdnl packages and potentially different versions of each package. In thednl master repository managed by CVS there will only be one version ofdnl each package, "current", which simplifies things somewhat. Otherdnl repositories will not be quite so straightforward and require adnl suitable administration tool.dnldnl The various eCos packages are not currently auto-confiscated.dnl In particular building eCos requires the use of eCos configurationdnl technology, not autoconf - there is simply no good way of handlingdnl a system as highly configurable as eCos using a few command-linednl options passed to "configure". There would also be serious confusiondnl between host and target, especially when e.g. cross-compiling thednl host tools. However a possible future enhancementdnl would involve making eCos releases via configure and make, thusdnl allowing for a release process that combines building the variousdnl host-side tools such as gcc with creating eCos epk's for the variousdnl packages.dnldnl A complication is that some of the eCos target-side packages alsodnl contain package-specific host-side support. For example thednl Linux synthetic target support uses special host-side softwarednl to provide I/O facilities: the architectural HAL package provdesdnl generic support, the synthetic ethernet package extends thisdnl with ethernet support, and so on. Such package-specific host-sidednl software does not belong in the main host subdirectory, thatdnl would make it very difficult to distribute new packages ordnl new versions of a package. However keeping the code with thednl various packages makes building more complicated.dnldnl 1) if the entire repository is managed by CVS or anoncvs, thisdnl configure script will search the packages tree for any packagesdnl that have host-side software that needs to be built -dnl specifically, that have a file "configure" inside a "host"dnl subdirectory in a version of a package.dnldnl 2) if instead the repository contains additional packagesdnl installed as epk's and managed by an administration tool thendnl it is the responsibility of that tool to let the users builddnl and rebuild the host-side software as required, for whicheverdnl host platform or platforms are being used. In other wordsdnl it is the responsibility of the admin tool to create adnl suitable build directory and run "configure; make; make install",dnl usually as part of the installation process. Note that severaldnl versions of a package may be installed, and it is thednl responsibility of each package to take this into accountdnl (although the configure macros are aware of this to some extent,dnl and will e.g. generate suitable install directory names).dnl Also note that the top-level configure script will not pickdnl up such packages because they will be versioned, i.e. thednl test for current/host/configure will fail because thednl version will not be "current".dnldnl 3) as a special case it may be desirable to ship pre-built binariesdnl of some of the package-specific software. It is not cleardnl just what would be the best way of shipping these - puttingdnl them into the epk's would not be quite right because that woulddnl make the epk's host-specific rather than generic.dnldnl There is an unresolved problem with possible dependencies betweendnl packages, if e.g. the host-side of the synthetic ethernet package coulddnl only be built after the architectural synthetic target package.dnl Some of the eCos documentation is generic and lives in the "doc"dnl subdirectory. Other eCos documentation is package-specific and livesdnl in the appropriate package directory. At present there is no supportdnl for building the documentation via configure and make, but suchdnl support may be added in future.dnldnl There is a subdirectory acsupport containing various files suchdnl as config.guess and install.sh that are common. This also containsdnl an acinclude.m4 file with various macros that are useful fordnl eCos.dnl Generic initialization.AC_INIT(acsupport/config.guess)AC_CONFIG_AUX_DIR(acsupport)AC_CANONICAL_HOSTAM_INIT_AUTOMAKE(eCos,2.0,0)AM_MAINTAINER_MODEECOS_CHECK_BUILD_ne_SRCdnl Nothing actually gets built in this directory, so there should be nodnl need to worry about compiler flags etc. Instead, the problem isdnl figuring out what should actually get built.dnldnl 1) the host subdirectory should always get built, if it exists.dnl With the 2.0 release system the directory gets moved todnl tools/srcif test -f "${srcdir}/host/configure" ; thenSUBDIRS="host"elif test -f "${srcdir}/tools/src/configure" ; thenSUBDIRS="tools/src"elseSUBDIRS=""fidnl 2) any package which has a configure script in adnl current/host subdirectory should also get built.dnldnl Searching the directory tree is currently done by shell globbing.dnl Invoking "find" with suitable arguments might be quicker, butdnl less portable. On some hosts there may be problems with environmentaldnl limits if too many packages provide host-side software.dnldnl Currently there is no ordering of packages, so e.g. a devicednl driver's host-side support cannot depend on some HAL packagednl because the latter may not have been built and installed yet.dnl This is a good thing because packages are meant to be self-containeddnl whenever possible. Interaction between packages is typically handleddnl at the Tcl level at run-time, so there are no build-time complications.PKGHOSTDIRS=""FOUND_CONFIGURES=""FOUND_CONFIGURES="${FOUND_CONFIGURES} ${srcdir}/packages/*/*/host/configure"FOUND_CONFIGURES="${FOUND_CONFIGURES} ${srcdir}/packages/*/*/*/host/configure"FOUND_CONFIGURES="${FOUND_CONFIGURES} ${srcdir}/packages/*/*/*/*/host/configure"FOUND_CONFIGURES="${FOUND_CONFIGURES} ${srcdir}/packages/*/*/*/*/*/host/configure"FOUND_CONFIGURES="${FOUND_CONFIGURES} ${srcdir}/packages/*/*/*/*/*/*/host/configure"for configure in ${FOUND_CONFIGURES}; doif test -f ${configure}; thendnl A configure script has been found in the source tree.dnl First turn it into a directory, then replace the absolute pathdnl with a relative one.hostdir=`dirname ${configure}`hostdir=`echo ${hostdir} | sed -e "s:^${srcdir}/::"`PKGHOSTDIRS="${PKGHOSTDIRS} ${hostdir}"fidoneSUBDIRS="${SUBDIRS} ${PKGHOSTDIRS}"dnl Because the eCos directory layout does not conform to GNU conventionsdnl it is necessary to create various levels of intermediate directories.dnl This happens via config.status, prior to the recursion into thednl appropriate directories.AC_OUTPUT_COMMANDS([${CONFIG_SHELL-/bin/sh} ${top_srcdir}/acsupport/mkinstalldirs ${REQUIRED_DIRS}],REQUIRED_DIRS="${SUBDIRS}")AC_SUBST(SUBDIRS)AC_CONFIG_SUBDIRS(${SUBDIRS})AC_OUTPUT(Makefile)
Go to most recent revision | Compare with Previous | Blame | View Log
