1dnl
2dnl configure.in -- for sam2p
3dnl by pts@fazekas.hu at Thu Nov  1 22:46:51 CET 2001
4dnl Mon Mar  4 08:56:35 CET 2002
5dnl
6dnl Dat: autoheader stops reading the file at the 1st error
7dnl Imp: concat (TCL, Ruby)
8dnl Imp: stringify
9dnl Imp: C and C++
10dnl Imp: warnings
11dnl OK : traditional C
12dnl Imp: ctype
13dnl Imp: check for socklen_t
14
15dnl Process this file with autoconf to produce a configure script.
16
17AC_INIT(gensi.cpp)
18AC_CONFIG_HEADER(config.h)
19AC_PTS_ENABLE_DEBUG
20
21AC_MSG_CHECKING([for --enable-lzw])
22AC_ARG_ENABLE(lzw,
23  [  --enable-lzw            enable built-in LZW (de)compression (def: no)],
24  [], [])
25if test x1 = x"`perl -e 'print time>1056165811'`"; then
26  # After 19 June 2003: default: yes
27  if test x"$enable_lzw" = x"no"; then
28    AC_MSG_RESULT(no)
29  else
30    AC_MSG_RESULT(yes)
31    AC_DEFINE(USE_BUILTIN_LZW)
32    dnl AC_MSG_WARN(LZW was patented till 19 June 2003; ask permission from Unisys to use it!)
33  fi
34else
35  if test x"$enable_lzw" = x"yes"; then
36    AC_MSG_RESULT(yes)
37    AC_DEFINE(USE_BUILTIN_LZW)
38    AC_MSG_WARN(LZW is patented till 19 June 2003; ask permission from Unisys to use it!)
39  else
40    AC_MSG_RESULT(no)
41  fi
42fi
43
44dnl Sun Jul  7 23:58:11 CEST 2002
45AC_MSG_CHECKING([for --enable-zip])
46AC_ARG_ENABLE(zip,
47  [  --enable-zip            enable built-in ZIP compression (def: yes)],
48  [], [])
49if test x"$enable_zip" = x"no"; then
50  AC_MSG_RESULT(no)
51else
52  AC_MSG_RESULT(yes)
53  AC_DEFINE(USE_BUILTIN_ZIP)
54fi
55
56dnl Sun Jul  7 23:58:11 CEST 2002
57AC_MSG_CHECKING([for --enable-fax])
58AC_ARG_ENABLE(fax,
59  [  --enable-fax            enable built-in Fax compression (def: yes)],
60  [], [])
61if test x"$enable_fax" = x"no"; then
62  AC_MSG_RESULT(no)
63else
64  AC_MSG_RESULT(yes)
65  AC_DEFINE(USE_BUILTIN_FAXE)
66fi
67
68AC_MSG_CHECKING([for --enable-gif])
69AC_ARG_ENABLE(gif,
70  [  --enable-gif            enable reading and writing GIF images (def: no)],
71  [], [])
72if test x"$enable_gif" = x"yes"; then
73  AC_MSG_RESULT(yes)
74  AC_DEFINE(USE_IN_GIF)
75  AC_DEFINE(USE_OUT_GIF)
76  AC_MSG_WARN(GIF is a resistered trademark of Compuserve; ask permission from them to use it!)
77else
78  AC_MSG_RESULT(no)
79fi
80
81dnl Checks for programs.
82dnl AC_PROG_CC
83AC_LANG_CPLUSPLUS
84CXXFLAGS=" "
85dnl ^^^ set it to non-empty, so AC_PROG_CXX won't include `-g'
86CCC="$CCC g++"
87dnl ^^^ check g++ before c++ (see acspecific.m4, grep AC_PROG_CXX)
88AC_PROG_CXX
89
90AC_SUBST(GFLAG)
91if test x"$ac_cv_prog_cxx_g" = xyes; then GFLAG=-g; else GFLAG=""; fi
92dnl ac_cv_prog_cc_g also
93
94AC_PTS_PROG_CXXFLAGS(fs, -fsigned-char)
95AC_PTS_PROG_CXXFLAGS(nrne, -fno-rtti -fno-exceptions)
96dnl ^^^ `g++ -fno-rtti': disables `typeinfo' (??) and run-time type identification
97dnl ^^^ `g++ -fno-exceptions': disables catch and throw
98AC_PTS_PROG_CXXFLAGSB(apwaw, -ansi -pedantic -Wall -W)
99AC_PTS_PROG_CXXFLAGSB(wextra, -Wextra)
100dnl vvv gcc-3.2 gives too many stupid warnings with -Wtraditional
101dnl AC_PTS_PROG_CXXFLAGSB(-Wtraditional)
102AC_PTS_PROG_CXXFLAGSB(ptscxxopts, -felide-constructors -Wstrict-prototypes dnl
103-Wpointer-arith -Wcast-align -Winline dnl
104-Wcast-qual -Wmissing-prototypes)
105AC_PTS_CHECK_IGNORING(nebfcmd,-W -Wall -Wnested-externs -Wbad-function-cast -Wmissing-declarations)
106if test x"$ac_cv_pts_ignoring_nebfcmd" = xyes
107then ac_cv_prog_cxx_nebfcmd=no
108fi
109AC_PTS_PROG_CXXFLAGSB(nebfcmd,-Wnested-externs -Wbad-function-cast -Wmissing-declarations)
110dnl vvv g++ version egcs-2.91.60 + gcc version 2.7.2.3 requires
111dnl     `g++ -fno-rtti -fno-exceptions' for AC_PTS_GCC_LINKS_CXX to be `yes'
112AC_PTS_GCC_LINKS_CXX
113
114AC_PTS_WARN_PROG(cjpeg, [cjpeg is required for /Compression/IJG])
115AC_PTS_WARN_PROG(djpeg, [djpeg is required for loading JPEG files])
116AC_PTS_WARN_PROG(tif22pnm, [tif22pnm is required for loading TIFF files])
117AC_PTS_WARN_PROG(tifftopnm, [tifftopnm might become useful for loading TIFF files])
118AC_PTS_WARN_PROG(pngtopnm, [pngtopnm might become useful for loading PNG files])
119dnl AC_PTS_WARN_PROG(gs, [gs is required for /Compression/Fax, and might become recommended for /Compression/ZIP])
120AC_PTS_WARN_PROG(gs, [gs is recommended for viewing PS files[,] and might become recommended for /Compression/ZIP])
121AC_PTS_WARN_PROG(lzw_codec, [lzw_codec might become recommended for /Compression/LZW])
122AC_PTS_WARN_PROG(gzip, [gzip might become useful for /Compression/ZIP])
123AC_PTS_WARN_PROG(zip, [zip might become useful for /Compression/ZIP])
124AC_PTS_ERR_PROG(bash, [bash is required for compiling this program])
125AC_PTS_ERR_PROG(make, [make is required for compiling this program])
126AC_PTS_ERR_PROG(perl, [perl is required for compiling this program])
127dnl AC_PTS_ERR_PROG(touch, [touch is required for compiling this program])
128dnl ^^^ as of 0.37, touch is not required
129
130#AC_CHECK_PROG(ac_pts_cjpeg, cjpeg, yes)
131
132dnl Checks for C/C++ language features
133AC_PTS_HAVE_STDC
134AC_PTS_HAVE_SWITCH_ENUM_BUG
135AC_PTS_ENSURE_ASCII_SYSTEM
136AC_C_CONST
137AC_PTS_C_VOLATILE
138AC_PTS_HAVE_STATIC_CONST
139
140dnl Checks for libraries.
141
142dnl Checks for header files.
143dnl AC_CHECK_HEADERS(stdio.h); exit 42
144dnl AC_CHECK_HEADERS(stdio.h stdlib.h unistd.h string.h strings.h)
145
146dnl Dat: getc_in_stdio fails for uClibc-0.9.14 _and_ `i386-uclibc-gcc -ansi'
147CXXFLAGS_save="$CXXFLAGS"
148CXXFLAGS="$CXXFLAGS -ansi"
149AC_PTS_CHECK_HEADER(stdio.h,  getc,    getc_in_stdio,    [return argc>42? getc(stdin)*0+1:0;])
150AC_PTS_CHECK_HEADER(stdio.h,  fgetc,   fgetc_in_stdio,   [return argc>42?fgetc(stdin)*0+1:0;])
151AC_PTS_CHECK_HEADER(stdio.h,  putc,    putc_in_stdio,    [return argc>42? putc(' ',stdout)*0+1:0;])
152AC_PTS_CHECK_HEADER(stdio.h,  fputc,   fputc_in_stdio,   [return argc>42?fputc(' ',stdout)*0+1:0;])
153CXXFLAGS="$CXXFLAGS_save"
154
155AC_PTS_CHECK_HEADER(stdio.h,  sprintf, sprintf_in_stdio, [char s[42]="X"; sprintf(s, "Hello, World!"); return *s!='H';] )
156AC_PTS_CHECK_HEADER(stdlib.h, atoi,    atoi_in_stdlib,   [return atoi("42")!=42;])
157AC_PTS_CHECK_HEADER(unistd.h, write,   write_in_unistd,  [return write(1,"what",0)!=0;])
158AC_PTS_CHECK_HEADER(stdlib.h, system,  system_in_stdlib, [/*>255 OK*/return system("true")!=0;])
159AC_PTS_CHECK_HEADER(sys/stat.h, lstat, lstat_in_sys_stat,[struct stat st; return 0!=lstat("/",&st);])
160AC_PTS_CHECK_STRING
161AC_PTS_CHECK_MALLOC
162AC_FUNC_ALLOCA
163AC_PTS_CFG_PRINTFGLEN
164AC_PTS_CFG_P_TMPDIR
165AC_PTS_HAVE_POPEN_
166if test $ac_cv_pts_have_popen_ = yes; then
167  ac_cv_pts_have_popen_b=no
168fi
169AC_PTS_HAVE_POPEN_B
170AC_PTS_HAVE_VSNPRINTF
171AC_PTS_HAVE_SYSTEMF
172
173dnl Checks for integral/pointer sizes.
174
175dnl AC_C_CHAR_UNSIGNED
176
177AC_PTS_CHECK_POINTERS
178dnl AC_PTS_CHECK_INTEGRALS -- alread in AC_PTS_CHECK_POINTERS
179dnl AC_REQUIRE([AC_PTS_CHECK_POINTERS])
180dnl AC_REQUIRE([AC_PTS_CHECK_INTEGRALS])
181dnl Dat: POINTERS, INTEGRALS order would result in `(cached)' without AC_REQUIRE
182dnl DAT: newer autoconfs disallow AC_REQUIRE(...) outside macros
183
184dnl ac_cv_alma=korte # Dat: automagically inserted into config.cache
185dnl AC_DEFINE(PTS_INT128_T, 42) # Dat: includes to conftest.h, config.h
186
187dnl cat confdefs.h # Dat: contains already AC_DEFINE()d symbols
188
189dnl Checks for typedefs, structures, and compiler characteristics.
190dnl AC_TYPE_SIZE_T
191AC_PTS_CHECK_INTEGRAL_TYPE(size_t, unsigned)
192dnl AC_PTS_CHECK_INTEGRAL_TYPE(time_t, unsigned)
193dnl AC_PTS_CHECK_INTEGRAL_TYPE(mode_t, int)
194dnl AC_PTS_CHECK_INTEGRAL_TYPE(off_t, long)
195dnl AC_PTS_CHECK_INTEGRAL_TYPE(pid_t, int)
196dnl AC_PTS_CHECK_INTEGRAL_TYPE(dev_t, unsigned long)
197dnl dnl ^^^ Dat: unsigned PTS_INT64_T on Linux i386
198dnl AC_PTS_CHECK_INTEGRAL_TYPE(uid_t, unsigned)
199dnl AC_PTS_CHECK_INTEGRAL_TYPE(gid_t, unsigned)
200dnl AC_PTS_CHECK_INTEGRAL_TYPE(size_tt, signed)
201dnl Dat: AC_TYPE_SIGNAL is OK, there should be no AC_PTS_CHECK_* substitute
202dnl AC_PTS_TYPE_GETGROUPS
203dnl ^^^ doesn't work wth CPPFLAGS=-traditional
204AC_PTS_CHECK_SIZEOF(bool, -1)
205dnl ^^^ Dat: 0 #if (PC: 1, Digital Unix: 8, Solaris: 4)
206dnl ^^^ Dat: autoconf-2.54 AC_CHECK_SIZEOF checks sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h inttypes.h stdint.h unistd.h
207
208dnl Checks for library functions.
209dnl (None!)
210
211dnl Finishing.
212
213dnl AC_OUTPUT(config.h) -- bad!!
214dnl skipping AC_OUTPUT -- bad!!
215AC_OUTPUT(Makehelp)
216
217dnl AC_PTS_RUN_OK([perl -x -S ./ccdep.pl $CXX], [], [AC_MSG_ERROR(cannot compute depends)])
218rm -f Makedep
219AC_PTS_RUN_OK([make Makedep.force], [], [AC_MSG_ERROR(cannot compute depends)])
220AC_PTS_OK
221echo "configure done. Now you should run: make; make install"
222
223dnl end of configure.in
224