File: libjconf.m4

package info (click to toggle)
xscorch 0.2.0-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 4,636 kB
  • ctags: 3,399
  • sloc: ansic: 31,504; sh: 8,826; makefile: 467; perl: 16
file content (171 lines) | stat: -rw-r--r-- 5,469 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
dnl $Header: /fridge/cvs/xscorch/libj/libjconf.m4,v 1.19 2004/03/11 02:05:42 justins Exp $
dnl Utilities for the libj configure script. This file is only of interest
dnl to projects which embed libj; projects linking against the shared lib
dnl version of libj only need libj.m4.


dnl LIBJ_VERSION_CHECK
dnl   Setup all version values based on the current libj version.
dnl
AC_DEFUN([LIBJ_VERSION_CHECK], [

   dnl
   dnl *** Current libj version is defined here ***
   dnl
   LIBJ_VERSION_MAJOR=4
   LIBJ_VERSION_MINOR=0
   LIBJ_VERSION_PATCH=16

   dnl Build the library version number based on the numbers above.
   AC_MSG_CHECKING([for libj version number])
   LIBJ_VERSION="${LIBJ_VERSION_MAJOR}.${LIBJ_VERSION_MINOR}.${LIBJ_VERSION_PATCH}"
   LIBJ_VERSION_EXPR="((((long)${LIBJ_VERSION_MAJOR} & 0xff) << 24) | (((long)${LIBJ_VERSION_MINOR} & 0xff) << 16) | (((long)${LIBJ_VERSION_PATCH} & 0xff) << 8)) /* Version ${LIBJ_VERSION} */"
   AC_SUBST([LIBJ_VERSION])
   AC_SUBST([LIBJ_VERSION_MAJOR])
   AC_SUBST([LIBJ_VERSION_MINOR])
   AC_SUBST([LIBJ_VERSION_PATCH])
   AC_SUBST([LIBJ_VERSION_EXPR])
   LIBJ_LT_CURRENT=`expr $LIBJ_VERSION_MAJOR + $LIBJ_VERSION_MINOR`
   LIBJ_LT_REVISION=$LIBJ_VERSION_PATCH
   LIBJ_LT_AGE=$LIBJ_VERSION_MINOR
   AC_SUBST([LIBJ_LT_CURRENT])
   AC_SUBST([LIBJ_LT_REVISION])
   AC_SUBST([LIBJ_LT_AGE])
   AC_MSG_RESULT([$LIBJ_VERSION])
])


dnl LIBJ_CONF_SIZES
dnl   Check the sizes of various data types.  Used to setup the
dnl   fixed-size type definitions in libj.h.
dnl
AC_DEFUN([LIBJ_CONF_SIZES], [
   dnl Requirements
   AC_REQUIRE([LIBJ_PROG_CC])

   dnl Checks for object sizes
   AC_CHECK_SIZEOF([short],      2)
   AC_CHECK_SIZEOF([int],        4)
   AC_CHECK_SIZEOF([long],       4)
   AC_CHECK_SIZEOF([long long],  8)
   AC_CHECK_SIZEOF([int16_t],    0)
   AC_CHECK_SIZEOF([int32_t],    0)
   AC_CHECK_SIZEOF([int64_t],    0)

   LIBJ_BYTE_TYPE=char

   case 2 in
      $ac_cv_sizeof_short)       LIBJ_WORD_TYPE=short       ;;
      $ac_cv_sizeof_int)         LIBJ_WORD_TYPE=int         ;;
      $ac_cv_sizeof_int16_t)     LIBJ_WORD_TYPE=int16_t     ;;
      *)                         AC_MSG_ERROR([Cannot find a suitable 16-bit data type])
   esac

   case 4 in
      $ac_cv_sizeof_short)       LIBJ_DWORD_TYPE=short      ;;
      $ac_cv_sizeof_int)         LIBJ_DWORD_TYPE=int        ;;
      $ac_cv_sizeof_long)        LIBJ_DWORD_TYPE=long       ;;
      $ac_cv_sizeof_int32_t)     LIBJ_DWORD_TYPE=int32_t    ;;
      *)                         AC_MSG_ERROR([Cannot find a suitable 32-bit data type])
   esac

   case 8 in
      $ac_cv_sizeof_int)         LIBJ_QWORD_TYPE=int        ;;
      $ac_cv_sizeof_long_long)   LIBJ_QWORD_TYPE="long long";;
      $ac_cv_sizeof_int64_t)     LIBJ_QWORD_TYPE=int64_t    ;;
      *)                         AC_MSG_ERROR([Cannot find a suitable 64-bit data type])
   esac

   AC_SUBST([LIBJ_BYTE_TYPE])
   AC_SUBST([LIBJ_WORD_TYPE])
   AC_SUBST([LIBJ_DWORD_TYPE])
   AC_SUBST([LIBJ_QWORD_TYPE])
])


dnl LIBJ_CONF_HEADERS
dnl   Check several headers that libj requires, and make
dnl   the appropriate definitions.
dnl
AC_DEFUN([LIBJ_CONF_HEADERS], [
   dnl Check for standard C headers (may have already run)
   AC_REQUIRE([LIBJ_PROG_CC])
   AC_REQUIRE([AC_HEADER_STDC])

   dnl Check C headers
   AC_CHECK_HEADERS([sys/time.h])
   if test "$ac_cv_header_sys_time_h" = "yes"; then
      LIBJ_HAVE_SYS_TIME_H=1
   else
      LIBJ_HAVE_SYS_TIME_H=0
   fi
   AC_SUBST([LIBJ_HAVE_SYS_TIME_H])
   AC_HEADER_TIME
   if test "$ac_cv_header_time" = "yes"; then
      LIBJ_TIME_WITH_SYS_TIME=1
   else
      LIBJ_TIME_WITH_SYS_TIME=0
   fi
   AC_SUBST([LIBJ_TIME_WITH_SYS_TIME])
])


dnl LIBJ_CONF_FUNCTIONS
dnl   Check several functions that libj requires, and make
dnl   the appropriate definitions.
dnl
AC_DEFUN([LIBJ_CONF_FUNCTIONS], [
   dnl Make sure we checked for the compiler.
   AC_REQUIRE([LIBJ_PROG_CC])

   dnl Checks for library functions.
   AC_CHECK_FUNCS([gettimeofday])
   if test "$ac_cv_func_gettimeofday" = "yes"; then
      LIBJ_HAVE_GETTIMEOFDAY=1
   else
      LIBJ_HAVE_GETTIMEOFDAY=0
   fi
   AC_SUBST([LIBJ_HAVE_GETTIMEOFDAY])
   AC_CHECK_FUNCS([snprintf], , [AC_MSG_ERROR([snprintf not found, aborting])])
])


dnl LIBJ_CONF_STANDALONE
dnl LIBJ_CONF_EMBEDDED
dnl   Setup STANDALONE or EMBEDDED mode build.
dnl   LIBJ_STANDALONE is always 1 for a libj build.
dnl   Programs that embed libj should set this 0 in
dnl   their configure scripts.  These macros are
dnl   convenient shorthands for setting the build.
dnl
dnl   The embedded macro conveniently does all the
dnl   standard libj checks, and also defines defaults
dnl   for the libj compilation options.
dnl
AC_DEFUN([LIBJ_CONF_STANDALONE], [
   LIBJ_STANDALONE=1
   AC_SUBST([LIBJ_STANDALONE])
   AM_CONDITIONAL(LIBJ_STANDALONE, [true])
])

AC_DEFUN([LIBJ_CONF_EMBEDDED], [
   dnl Requirements for the embedded build
   dnl Note that requirements are *always* expanded first.
   AC_REQUIRE([LIBJ_VERSION_CHECK])
   AC_REQUIRE([LIBJ_PROG_CC])
   AC_REQUIRE([LIBJ_CONF_HEADERS])
   AC_REQUIRE([LIBJ_CONF_FUNCTIONS])
   AC_REQUIRE([LIBJ_CONF_SIZES])

   dnl Setup for embedded (not standalone) build.
   LIBJ_STANDALONE=0
   AC_SUBST([LIBJ_STANDALONE])
   AM_CONDITIONAL(LIBJ_STANDALONE, [false])

   dnl Set default compile options for libj
   LIBJ_USE_LIBC_STRING=1
   LIBJ_C99_STANDARD=0
   AC_SUBST([LIBJ_USE_LIBC_STRING])
   AC_SUBST([LIBJ_C99_STANDARD])
   AM_CONDITIONAL(LIBJ_USE_LIBC_STRING, [true])
])