source: zzuf/trunk/configure.ac @ 4683

Last change on this file since 4683 was 4683, checked in by Sam Hocevar, 11 years ago

Get rid of the getopt reimplementation and depend on libcaca instead.

File size: 7.0 KB
Line 
1# $Id: configure.ac 98 2006-09-22 16:27:37Z sam $
2
3AC_INIT(zzuf, 0.13)
4AC_CONFIG_AUX_DIR(.auto)
5AM_CONFIG_HEADER(config.h)
6AM_INIT_AUTOMAKE([no-define tar-ustar])
7
8AC_PREREQ(2.50)
9
10AM_PROG_CC_C_O
11AC_PROG_CPP
12AC_PROG_LIBTOOL
13
14dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
15dnl now otherwise it might be set in an obscure if statement. Same thing for
16dnl PKG_PROG_PKG_CONFIG which needs to be called first.
17AC_EGREP_CPP(yes, foo)
18PKG_PROG_PKG_CONFIG()
19
20dnl Don't let pkg-config fuck our cross-compilation environment
21m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
22if test "$build" != "$host" -a "${PKG_CONFIG_LIBDIR}" = ""; then
23  export PKG_CONFIG_LIBDIR=/dev/null
24fi
25
26AC_C_INLINE
27AC_C_FUNC
28
29# Library suffix
30AC_MSG_CHECKING(for libzzuf full name)
31case "$shrext_cmds" in
32  "") SONAME="libzzuf.so" ;;
33  *) eval SONAME="libzzuf$shrext_cmds" ;;
34esac
35AC_MSG_RESULT($SONAME)
36AC_DEFINE_UNQUOTED(SONAME, "$SONAME", [Define to the libzzuf full name])
37
38PKG_CHECK_MODULES(CACA, caca >= 0.99.beta18,
39 [:],
40 [AC_MSG_RESULT(no)
41  AC_MSG_ERROR([you need libcaca version 0.99.beta18 or later])])
42
43# Optimizations
44AC_TRY_CFLAGS(-g -O2, CFLAGS="${CFLAGS} -g -O2")
45# Code qui fait des warnings == code de porc == deux baffes dans ta gueule
46AC_TRY_CFLAGS(-Wall, CFLAGS="${CFLAGS} -Wall")
47AC_TRY_CFLAGS(-W, CFLAGS="${CFLAGS} -W")
48AC_TRY_CFLAGS(-Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare, CFLAGS="${CFLAGS} -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare")
49
50case "${host_os}" in
51  *mingw32*)
52    DLL_LDFLAGS="-Wl,-l,imagehlp" # Trick libtool here
53    WINSOCK2_LIBS="-lws2_32"
54    ac_cv_func_recv=yes
55    ac_cv_func_recvfrom=yes
56    ac_cv_func_socket=yes
57    ac_cv_func_accept=yes
58    ac_cv_func_bind=yes
59    ac_cv_func_connect=yes
60    ;;
61esac
62AC_SUBST(WINSOCK2_LIBS)
63AC_SUBST(DLL_LDFLAGS)
64
65AC_CHECK_HEADERS(windows.h winsock2.h io.h process.h unistd.h inttypes.h stdint.h libc.h malloc.h dlfcn.h regex.h sys/cdefs.h sys/socket.h netinet/in.h arpa/inet.h sys/uio.h aio.h sys/mman.h sys/wait.h sys/resource.h sys/time.h endian.h mach/task.h)
66
67AC_CHECK_FUNCS(setenv waitpid setrlimit gettimeofday fork kill pipe _pipe)
68AC_CHECK_FUNCS(dup dup2 ftello fseeko _IO_getc getline getdelim fgetln map_fd memalign posix_memalign aio_read accept bind connect socket readv pread recv recvfrom recvmsg mmap valloc sigaction getpagesize)
69AC_CHECK_FUNCS(getc_unlocked getchar_unlocked fgetc_unlocked fread_unlocked fgets_unlocked)
70AC_CHECK_FUNCS(__getdelim __srefill __filbuf __srget __uflow)
71AC_CHECK_FUNCS(open64 lseek64 mmap64 fopen64 freopen64 ftello64 fseeko64 fsetpos64)
72AC_CHECK_FUNCS(__open64 __lseek64 __fopen64 __freopen64 __ftello64 __fseeko64 __fsetpos64)
73AC_CHECK_FUNCS(__fgets_chk __fgets_unlocked_chk __fread_chk __fread_unlocked_chk __read_chk __recv_chk __recvfrom_chk)
74AC_CHECK_FUNCS(CreateFileA CreateFileW ReOpenFile ReadFile CloseHandle)
75
76AC_CHECK_TYPES(sighandler_t, [], [],
77  [#define _GNU_SOURCE
78   #include <signal.h>])
79AC_CHECK_TYPES(sig_t, [], [],
80  [#include <signal.h>])
81AC_CHECK_TYPES(socklen_t, [], [],
82  [#include <sys/types.h>
83   #include <sys/socket.h>])
84
85AC_MSG_CHECKING(for connect() second argument)
86AC_TRY_COMPILE([#include <sys/types.h>
87                #include <sys/socket.h>],
88 [#if defined HAVE_SOCKLEN_T
89  int connect(int, const struct sockaddr *, socklen_t);
90  #else
91  int connect(int, const struct sockaddr *, int);
92  #endif],
93 [AC_MSG_RESULT(const struct sockaddr *)
94  AC_DEFINE(CONNECT_USES_STRUCT_SOCKADDR, 1, [Define to 1 if connect() uses struct sockaddr.])],
95 [AC_MSG_RESULT(const void *)])
96
97AC_MSG_CHECKING(for read() prototype)
98AC_TRY_COMPILE([#define _INCLUDE_POSIX_SOURCE
99                #include <unistd.h>],
100 [ssize_t read(int fd, void *buf, size_t count);],
101 [AC_MSG_RESULT(ssize_t read(... size_t);)
102  AC_DEFINE(READ_USES_SSIZE_T, 1, [Define to 1 if read() uses ssize_t.])],
103 [AC_MSG_RESULT(int read(... unsigned int);)])
104
105AC_MSG_CHECKING(for recv() return value)
106ac_v_recv_t="int"
107AC_TRY_COMPILE([#define _XOPEN_SOURCE_EXTENDED
108                #include <sys/types.h>
109                #include <sys/socket.h>],
110 [ssize_t recv(int s, void *buf, size_t len, int flags);],
111 [ac_v_recv_t="ssize_t"])
112AC_MSG_RESULT($ac_v_recv_t)
113AC_DEFINE_UNQUOTED(RECV_T, $ac_v_recv_t, [Define to the recv() return type])
114
115AC_MSG_CHECKING([for _IO_read_ptr and _IO_read_end in FILE (glibc-style)])
116AC_TRY_COMPILE([#include <stdio.h>],
117 [FILE *fp; fp->_IO_read_ptr++; fp->_IO_read_end++],
118 [ac_cv_have_glibc_file=yes],
119 [ac_cv_have_glibc_file=no])
120AC_MSG_RESULT($ac_cv_have_glibc_file)
121if test "$ac_cv_have_glibc_file" != "no"; then
122  AC_DEFINE(HAVE_GLIBC_FILE, 1, [Define to 1 if FILE has glibc-style members])
123fi
124
125AC_MSG_CHECKING([for _bf._base, _r and _p in FILE (FreeBSD-style)])
126AC_TRY_COMPILE([#include <stdio.h>],
127 [FILE *fp; fp->_bf._base++; fp->_r++; fp->_p++],
128 [ac_cv_have_freebsd_file=yes],
129 [ac_cv_have_freebsd_file=no])
130AC_MSG_RESULT($ac_cv_have_freebsd_file)
131if test "$ac_cv_have_freebsd_file" != "no"; then
132  AC_DEFINE(HAVE_FREEBSD_FILE, 1, [Define to 1 if FILE has FreeBSD-style members])
133fi
134
135AC_MSG_CHECKING([for _base, _cnt and _ptr in FILE (Solaris-style)])
136AC_TRY_COMPILE([#include <stdio.h>],
137 [FILE *fp; fp->_base++; fp->_cnt++; fp->_ptr++],
138 [ac_cv_have_solaris_file=yes],
139 [ac_cv_have_solaris_file=no])
140AC_MSG_RESULT($ac_cv_have_solaris_file)
141if test "$ac_cv_have_solaris_file" != "no"; then
142  AC_DEFINE(HAVE_SOLARIS_FILE, 1, [Define to 1 if FILE has Solaris-style members])
143fi
144
145dnl  On HP-UX, fpos64_t == int64_t, but on Linux it's a compound object.
146AC_MSG_CHECKING(how to access fpos64_t x)
147ac_v_fpos64_t="unknown"
148AC_TRY_COMPILE(
149 [#define _LARGEFILE64_SOURCE
150  #define _LARGEFILE_SOURCE
151  #include <stdio.h>],
152 [fpos64_t x; long long int y = x.__pos;],
153 [ac_v_fpos64_t="(x).__pos"])
154AC_TRY_COMPILE(
155 [#define _LARGEFILE64_SOURCE
156  #define _LARGEFILE_SOURCE
157  #include <stdio.h>],
158 [fpos64_t x; long long int y = (long long int)x;],
159 [ac_v_fpos64_t="(x)"])
160AC_MSG_RESULT($ac_v_fpos64_t)
161AC_DEFINE_UNQUOTED(FPOS_CAST(x), $ac_v_fpos64_t, [Define to a macro for accessing an fpos64_t variable])
162
163AC_MSG_CHECKING(for pragma INIT/FINI)
164AC_TRY_COMPILE([],
165 [#pragma INIT "my_init"
166  void my_init(void)],
167 [AC_MSG_RESULT(yes)
168  AC_DEFINE(HAVE_PRAGMA_INIT, 1, [Define to 1 if you have pragma INIT])],
169 [AC_MSG_RESULT(no)])
170
171AC_MSG_CHECKING(for __printf__ attribute)
172ac_v_attribute_printf=""
173AC_TRY_COMPILE([],
174 [extern void foo(const char *, ...)
175     __attribute__((__format__(__printf__, 1, 2)));],
176 [AC_MSG_RESULT(yes)
177  ac_v_attribute_printf="__attribute__((__format__(__printf__, x, y)))"],
178 [AC_MSG_RESULT(no)])
179AC_DEFINE_UNQUOTED(ATTRIBUTE_PRINTF(x,y), $ac_v_attribute_printf, [Define to the __printf__ attribute if present])
180
181AC_CHECK_LIB(m, log, [MATH_LIBS="-lm"])
182AC_SUBST(MATH_LIBS)
183AC_CHECK_LIB(dl, dlopen, [DL_LIBS="-ldl"])
184AC_SUBST(DL_LIBS)
185
186AC_CONFIG_FILES([
187  Makefile
188  src/Makefile
189  doc/Makefile
190  test/Makefile
191])
192AC_CONFIG_FILES([
193  doc/zzat.1
194  doc/zzuf.1
195  doc/libzzuf.3
196])
197AC_OUTPUT
198
Note: See TracBrowser for help on using the repository browser.