1 |
786 |
skrzyp |
dnl Process this file with autoconf to produce a configure script.
|
2 |
|
|
dnl ====================================================================
|
3 |
|
|
dnl
|
4 |
|
|
dnl configure.in
|
5 |
|
|
dnl
|
6 |
|
|
dnl Host side implementation of the eCos infrastructure.
|
7 |
|
|
dnl
|
8 |
|
|
dnl ====================================================================
|
9 |
|
|
dnl ####ECOSHOSTGPLCOPYRIGHTBEGIN####
|
10 |
|
|
dnl -------------------------------------------
|
11 |
|
|
dnl This file is part of the eCos host tools.
|
12 |
|
|
dnl Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
13 |
|
|
dnl
|
14 |
|
|
dnl This program is free software; you can redistribute it and/or modify
|
15 |
|
|
dnl it under the terms of the GNU General Public License as published by
|
16 |
|
|
dnl the Free Software Foundation; either version 2 or (at your option) any
|
17 |
|
|
dnl later version.
|
18 |
|
|
dnl
|
19 |
|
|
dnl This program is distributed in the hope that it will be useful, but
|
20 |
|
|
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
21 |
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
22 |
|
|
dnl General Public License for more details.
|
23 |
|
|
dnl
|
24 |
|
|
dnl You should have received a copy of the GNU General Public License
|
25 |
|
|
dnl along with this program; if not, write to the
|
26 |
|
|
dnl Free Software Foundation, Inc., 51 Franklin Street,
|
27 |
|
|
dnl Fifth Floor, Boston, MA 02110-1301, USA.
|
28 |
|
|
dnl -------------------------------------------
|
29 |
|
|
dnl ####ECOSHOSTGPLCOPYRIGHTEND####
|
30 |
|
|
dnl ====================================================================
|
31 |
|
|
dnl#####DESCRIPTIONBEGIN####
|
32 |
|
|
dnl
|
33 |
|
|
dnl Author(s): bartv
|
34 |
|
|
dnl Contact(s): bartv
|
35 |
|
|
dnl Date: 1998/07/13
|
36 |
|
|
dnl Version: 0.01
|
37 |
|
|
dnl
|
38 |
|
|
dnl####DESCRIPTIONEND####
|
39 |
|
|
dnl ====================================================================
|
40 |
|
|
|
41 |
|
|
dnl No infrastructure is complete without assertions.
|
42 |
|
|
AC_INIT(assert.cxx)
|
43 |
|
|
|
44 |
|
|
dnl Pick up the support files from the top-level acsupport directory.
|
45 |
|
|
AC_CONFIG_AUX_DIR(../../acsupport)
|
46 |
|
|
|
47 |
|
|
ECOS_CHECK_BUILD_ne_SRC
|
48 |
|
|
|
49 |
|
|
dnl Other standard options.
|
50 |
|
|
AC_CANONICAL_HOST
|
51 |
|
|
|
52 |
|
|
dnl This package is called cyginfra, partly for historical reasons
|
53 |
|
|
dnl and partly to avoid reorganizing the testsuite subdirectory.
|
54 |
|
|
dnl The generated header file may get #include'd indirectly by other
|
55 |
|
|
dnl packages, so it is not a good idea to define package and version.
|
56 |
|
|
AM_INIT_AUTOMAKE(cyginfra, 0.1,0)
|
57 |
|
|
ECOS_SUBST_VERSION(CYGNUM_INFRA_VERSION)
|
58 |
|
|
AM_MAINTAINER_MODE
|
59 |
|
|
|
60 |
|
|
dnl The package contains a library implemented in C++. It has to be
|
61 |
|
|
dnl buildable under NT. Only a static version of the library is
|
62 |
|
|
dnl of interest at the moment.
|
63 |
|
|
AC_PROG_CC
|
64 |
|
|
AC_PROG_CXX
|
65 |
|
|
AC_PROG_RANLIB
|
66 |
|
|
AC_OBJEXT
|
67 |
|
|
AC_EXEEXT
|
68 |
|
|
ECOS_PROG_MSVC
|
69 |
|
|
ECOS_PROG_STANDARD_COMPILER_FLAGS
|
70 |
|
|
|
71 |
|
|
dnl Work out the endianness. The standard macro for this is used
|
72 |
|
|
dnl even though it will give warnings at autoconf time.
|
73 |
|
|
AC_C_BIGENDIAN
|
74 |
|
|
|
75 |
|
|
dnl Work out a suitable datatype for 64 bit arithmetic.
|
76 |
|
|
ECOS_TYPE_64bit
|
77 |
|
|
|
78 |
|
|
dnl Check the sizes of the pointer and long data types, so that
|
79 |
|
|
dnl CYG_ADDRWORD can be defined correctly.
|
80 |
|
|
AC_CHECK_SIZEOF(int *)
|
81 |
|
|
AC_CHECK_SIZEOF(long)
|
82 |
|
|
|
83 |
|
|
dnl See whether or not the compiler provides __PRETTY_FUNCTION__
|
84 |
|
|
ECOS_C_PRETTY_FUNCTION
|
85 |
|
|
|
86 |
|
|
dnl What function should be used to create a temporary file?
|
87 |
|
|
dnl tmpnam() is deprecated for security reasons.
|
88 |
|
|
AC_CHECK_FUNCS(mkstemp)
|
89 |
|
|
|
90 |
|
|
dnl --------------------------------------------------------------------
|
91 |
|
|
dnl User-settable options. Currently these are handled via --enable
|
92 |
|
|
dnl command line options, in the absence of an accepted and more rational
|
93 |
|
|
dnl alternative.
|
94 |
|
|
|
95 |
|
|
AC_ARG_ENABLE(tracebufsize,[ --enable-tracebufsize=X size of the trace buffer],[
|
96 |
|
|
if test "$enableval" = "no" -o "$enableval" = "yes"; then
|
97 |
|
|
AC_MSG_ERROR("--enable-tracebufsize should be given a suitable value")
|
98 |
|
|
else
|
99 |
|
|
AC_DEFINE_UNQUOTED(CYGNUM_INFRA_TRACE_VECTOR_SIZE,$enableval,[size of trace vector])
|
100 |
|
|
fi
|
101 |
|
|
])
|
102 |
|
|
|
103 |
|
|
dnl --------------------------------------------------------------------
|
104 |
|
|
dnl Directory structures.
|
105 |
|
|
dnl
|
106 |
|
|
dnl The purpose of this infrastructure implementation is to provide a way
|
107 |
|
|
dnl of giving host code access to the same set of assertions and tracing
|
108 |
|
|
dnl facilities as are available on the target side. The implementations
|
109 |
|
|
dnl of these facilities has to be rather different, for example the host
|
110 |
|
|
dnl side has to worry about running in both command-line and GUI tools,
|
111 |
|
|
dnl not to mention supporting different languages such as Tcl as well
|
112 |
|
|
dnl as C and C++.
|
113 |
|
|
dnl
|
114 |
|
|
dnl After a successful build there should be a library libcyginfra.a
|
115 |
|
|
dnl which can be linked with the application code and which can get
|
116 |
|
|
dnl installed. In addition there will be a set of header files.
|
117 |
|
|
dnl
|
118 |
|
|
dnl The infrastructure exports four main header files:
|
119 |
|
|
dnl
|
120 |
|
|
dnl cyg/infra/cyg_type.h data types, useful macros, and a
|
121 |
|
|
dnl few compiler-related odds and ends
|
122 |
|
|
dnl
|
123 |
|
|
dnl cyg/infra/cyg_ass.h lots of lovely assertion macros
|
124 |
|
|
dnl
|
125 |
|
|
dnl cyg/infra/cyg_trac.h lots of lovely trace macros
|
126 |
|
|
dnl
|
127 |
|
|
dnl cyg/infra/testcase.h routines for use in testcases
|
128 |
|
|
dnl
|
129 |
|
|
dnl These header files are shared between host and target side, to make
|
130 |
|
|
dnl sure that a consistent set of macros is used between the two. There
|
131 |
|
|
dnl are a number of host-specific extensions in the header files as
|
132 |
|
|
dnl well.
|
133 |
|
|
dnl
|
134 |
|
|
dnl The header files rely on a number of other header files:
|
135 |
|
|
dnl
|
136 |
|
|
dnl pkgconf/infra.h
|
137 |
|
|
dnl cyg/hal/basetype.h
|
138 |
|
|
dnl
|
139 |
|
|
dnl Obviously cyg/hal/basetype.h cannot be shared between host and target,
|
140 |
|
|
dnl instead it has to depend on autoconf information.
|
141 |
|
|
dnl
|
142 |
|
|
dnl Sharing pkgconf/infra.h between host and target is slightly more feasible,
|
143 |
|
|
dnl especially if we get the configuration tool to a point where it can
|
144 |
|
|
dnl be used for both host and target. However for now this would create a
|
145 |
|
|
dnl bit of confusion because two configuration systems would be in use, and
|
146 |
|
|
dnl it seems better to stick with just autoconf for now. Therefore
|
147 |
|
|
dnl pkgconf/infra.h #include's the file generated by autoconf and
|
148 |
|
|
dnl generates the appropriate #define's (it is not a good idea to have
|
149 |
|
|
dnl autoconf generate pkgconf/infra.h directly, autoconf is slightly too
|
150 |
|
|
dnl eager to do substitutions).
|
151 |
|
|
dnl
|
152 |
|
|
dnl The configuration header file that is normally generated is
|
153 |
|
|
dnl config.h. It is more in keeping with eCos conventions to have
|
154 |
|
|
dnl a different header file hostinfra.h instead. This can
|
155 |
|
|
dnl achieved using the appropriate AM_CONFIG_HEADER macro.
|
156 |
|
|
dnl
|
157 |
|
|
dnl Making the copies of cyg_type.h etc. is the responsibility of
|
158 |
|
|
dnl Makefile.am, configure is responsible only for the makefile and for
|
159 |
|
|
dnl hostinfra.h.
|
160 |
|
|
|
161 |
|
|
AM_CONFIG_HEADER(hostinfra.h:config.h.in)
|
162 |
|
|
AC_OUTPUT(Makefile:Makefile.in testsuite/Makefile:testsuite/Makefile.in)
|