genmodule: revert r52790
[AROS.git] / tools / cxref / cpp / configure.in
blob76ae0e31b8059a79cc4417cadfb92af5db4fc266
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(cccp.c)
4 dnl Specify the autoconf file.
5 AC_CONFIG_HEADER(autoconfig.h)
7 dnl Check if we are forced to use the cxref-cpp
8 WITH_CXREF_CPP=test
9 AC_ARG_WITH(cxref-cpp,
10 [  --with-cxref-cpp       use the supplied cpp instead of trying to use gcc],
11 [if test "$withval" = "yes"; then WITH_CXREF_CPP=yes; fi
12  if test "$withval" = "no";  then WITH_CXREF_CPP=no;  fi])
14 dnl Checks for programs.
15 AC_PROG_CC
16 AC_PROG_YACC
17 AC_PROG_CPP
18 AC_PROG_INSTALL
19 AC_PROG_LN_S
20 AC_PROG_MAKE_SET
21 AC_PROG_EGREP
23 dnl Checks for libraries.
25 dnl Checks for header files.
26 AC_HEADER_STDC
27 AC_HEADER_TIME
28 AC_CHECK_HEADERS(fcntl.h malloc.h sys/time.h unistd.h stdlib.h)
30 dnl Checks for typedefs, structures, and compiler characteristics.
31 AC_C_CONST
32 AC_TYPE_PID_T
33 AC_STRUCT_TM
34 AC_CHECK_SIZEOF(int)
35 AC_CHECK_SIZEOF(long)
37 dnl Checks for library functions.
38 AC_FUNC_ALLOCA
39 AC_TYPE_SIGNAL
40 AC_FUNC_VPRINTF
41 AC_CHECK_FUNCS(strerror strstr bcmp)
43 dnl Check the gcc version
45 if test ! "x$GCC" = "x" ; then
47    AC_MSG_CHECKING([if installed gcc is new enough to use instead of cxref-cpp])
49    AC_TRY_RUN([
50    int main()
51    {
52    #if defined(__GNUC__) && ( ( __GNUC__==2 && __GNUC_MINOR__>=8 ) || __GNUC__>=3 )
53     exit(0);
54    #else
55     exit(1);
56    #endif
57    }
58    ],
59    [newGCC=yes])
61    if test "$WITH_CXREF_CPP" = "no" ; then
63       if test "x$newGCC" = "x" ; then
64          AC_MSG_RESULT([no])
65          AC_MSG_ERROR([the '--without-cxref-cpp' option was used but gcc is not suitable])
66       else
67          AC_MSG_RESULT([yes, ignoring further checks due to '--without-cxref-cpp' option])
68       fi
70    elif test "x$newGCC" = "x" || test "$WITH_CXREF_CPP" = "yes" ; then
72       if test "x$newGCC" = "x" ; then
73          AC_MSG_RESULT([no, using cxref-cpp])
74       else
75          AC_MSG_RESULT([yes, but '--with-cxref-cpp' option overrides this])
76       fi
78       rm ./conftest.gcc
80       AC_MSG_CHECKING([if installed gcc preserves comments after define statements])
82       echo "#define foo bar /* FIND-ME */" | $CC -E -C - > ./conftest.gcc
84       if $EGREP -e FIND-ME ./conftest.gcc > /dev/null 2>&1 ; then
85          AC_MSG_RESULT(yes)
86       else
87          AC_MSG_RESULT([no, using cxref-cpp])
89          CXREF_CPP=cxref-cpp
90       fi
92       rm ./conftest.gcc
94       AC_MSG_CHECKING([if installed gcc preserves comments after include statements])
96       touch conftest.h
98       echo "#include \"conftest.h\" /* FIND-ME */" | $CC -E -C - > ./conftest.gcc
100       if $EGREP -e FIND-ME ./conftest.gcc > /dev/null 2>&1 ; then
101          AC_MSG_RESULT(yes)
102       else
103          AC_MSG_RESULT([no, using cxref-cpp])
105          CXREF_CPP=cxref-cpp
106       fi
108       rm ./conftest.h ./conftest.gcc
110    fi
112 else
114    AC_MSG_WARN(-----------------------------------------------------)
115    AC_MSG_WARN(The C compiler is not gcc, you may have problems!    )
116    AC_MSG_WARN(read the file cpp/README and cpp/cxref-cpp-configure.)
117    AC_MSG_WARN(-----------------------------------------------------)
119    CXREF_CPP=cxref-cpp
123 AC_SUBST(CXREF_CPP)
124 AC_SUBST(GCC)
126 dnl Create the output files.
127 AC_OUTPUT(Makefile)
128 AC_OUTPUT(cxref-cpp-configure)
130 chmod 755 cxref-cpp-configure