Rev 13454 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 7156 | georgesk | 1 | # Process this file with autoconf to produce a configure script. |
| 2 | |||
| 15781 | bpr | 3 | AC_INIT(WIMS, esyscmd(awk 'ORS=""; {print $0}' ../version), wimsdev@groupes.renater.fr) |
| 7156 | georgesk | 4 | AC_CONFIG_SRCDIR([wims.c]) |
| 5 | AC_CONFIG_HEADER([config.h:config.hin]) |
||
| 6 | |||
| 7 | AC_DEFUN([WIMS_NEED], [ |
||
| 8 | AC_PATH_PROG($1,$2) |
||
| 9 | if test -z "`eval echo '$'$1`"; then |
||
| 10 | echo ERROR: WIMS requires $3 |
||
| 11 | echo Please install this package then restart configure. |
||
| 12 | exit 1 |
||
| 13 | fi |
||
| 14 | ]) |
||
| 15 | AC_DEFUN([WIMS_FAIL], [ |
||
| 16 | if test "$2" = no; then |
||
| 17 | echo |
||
| 18 | echo ERROR! Your system does not have $1 |
||
| 19 | echo WIMS cannot be installed. Please report. |
||
| 20 | echo |
||
| 21 | exit 1 |
||
| 22 | fi |
||
| 23 | ]) |
||
| 24 | AC_DEFUN([WIMS_CHECK_FUNC], [ |
||
| 25 | AC_CHECK_FUNCS($1) |
||
| 26 | WIMS_FAIL($1, $ac_cv_func_$1) |
||
| 27 | ]) |
||
| 28 | |||
| 29 | # Checks for programs. |
||
| 30 | AC_PROG_LN_S |
||
| 31 | if test "$LN_S" != "ln -s"; then |
||
| 32 | WIMS_FAIL([symbolic links], no) |
||
| 33 | fi |
||
| 34 | AC_PROG_AWK |
||
| 35 | AC_PROG_YACC |
||
| 36 | AC_PROG_CC(gcc cc) |
||
| 37 | AC_PROG_CXX |
||
| 38 | AC_PROG_CPP |
||
| 39 | AC_PROG_LEX |
||
| 40 | AC_PROG_MAKE_SET |
||
| 41 | AC_PROG_RANLIB |
||
| 42 | AC_CHECK_PROG(STRIP,strip,strip,:) |
||
| 43 | |||
| 44 | #WIMS_NEED([TEX], [tex], [TeX]) |
||
| 45 | #WIMS_NEED([GP], [gp], [Pari/GP]) |
||
| 46 | #WIMS_NEED([CONVERT], [convert], [ImageMagick]) |
||
| 47 | |||
| 48 | # Checks for libraries. |
||
| 49 | SAVE=$LIBS |
||
| 50 | AC_CHECK_LIB([m], [cos]) |
||
| 51 | WIMS_FAIL([Math library libm], $ac_cv_lib_m_cos) |
||
| 52 | |||
| 53 | AC_CHECK_FUNCS([rint]) |
||
| 54 | WIMS_CHECK_FUNC(floor) |
||
| 55 | WIMS_CHECK_FUNC(pow) |
||
| 56 | WIMS_CHECK_FUNC(sqrt) |
||
| 57 | |||
| 58 | LIBS=$SAVE |
||
| 59 | AC_CHECK_LIB([gd], [gdFontCacheSetup]) |
||
| 60 | AC_CHECK_FUNCS([gdFontCacheSetup]) |
||
| 61 | GDLIB=$LIBS |
||
| 62 | |||
| 63 | LIBS=$SAVE |
||
| 64 | AC_CHECK_LIB([crypt], [crypt]) |
||
| 65 | AC_CHECK_FUNCS([crypt]) |
||
| 66 | CRYPTLIB=$LIBS |
||
| 67 | |||
| 68 | LIBS=$SAVE |
||
| 69 | AC_CHECK_LIB([fl], [main]) |
||
| 70 | FLEXLIB=$LIBS |
||
| 71 | |||
| 72 | LIBS=$SAVE |
||
| 73 | fun=gethostbyname |
||
| 74 | AC_CHECK_FUNCS($fun) |
||
| 75 | if test "$ac_cv_func_$fun" = no; then |
||
| 76 | AC_CHECK_LIB([nsl], $fun) |
||
| 77 | WIMS_FAIL($fun, $ac_cv_lib_$fun) |
||
| 78 | fi |
||
| 79 | |||
| 80 | WIMS_CHECK_FUNC(gethostname) |
||
| 81 | |||
| 82 | fun=socket |
||
| 83 | AC_CHECK_FUNCS($fun) |
||
| 7662 | bpr | 84 | if test "$ac_cv_func_$fun" = no; then |
| 7156 | georgesk | 85 | AC_CHECK_LIB([socket], [$fun]) |
| 7662 | bpr | 86 | if test "$ac_cv_lib_$fun" = no; then |
| 7156 | georgesk | 87 | AC_CHECK_LIB([socket], [$fun], [], [], [-lnsl]) |
| 88 | WIMS_FAIL($fun, $ac_cv_lib_$fun) |
||
| 89 | fi |
||
| 90 | fi |
||
| 91 | |||
| 92 | fun=inet_ntoa |
||
| 93 | AC_CHECK_FUNCS($fun) |
||
| 7662 | bpr | 94 | if test "$ac_cv_func_$fun" = no; then |
| 7156 | georgesk | 95 | AC_CHECK_LIB([socket], [$fun], [], [], [-lnsl]) |
| 96 | fi |
||
| 97 | fun=inet_aton |
||
| 98 | AC_CHECK_FUNCS($fun) |
||
| 7662 | bpr | 99 | if test "$ac_cv_func_$fun" = no; then |
| 7156 | georgesk | 100 | AC_CHECK_LIB([resolv], [$fun]) |
| 101 | fi |
||
| 102 | NETLIBS=$LIBS |
||
| 103 | |||
| 104 | LIBS=$SAVE |
||
| 105 | |||
| 106 | # Checks for header files. |
||
| 107 | AC_FUNC_ALLOCA |
||
| 108 | AC_HEADER_DIRENT |
||
| 109 | AC_HEADER_STDC |
||
| 110 | AC_HEADER_SYS_WAIT |
||
| 111 | AC_MEMORY_H |
||
| 112 | AC_CHECK_HEADERS([crypt.h arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h \ |
||
| 113 | stdlib.h string.h sys/socket.h sys/time.h unistd.h utime.h]) |
||
| 114 | WIMS_FAIL([ANSI C header files], $ac_cv_header_stdc) |
||
| 115 | WIMS_FAIL([Header file unistd.h], $ac_cv_header_unistd_h) |
||
| 116 | |||
| 117 | # Checks for typedefs, structures, and compiler characteristics. |
||
| 118 | AC_C_CONST |
||
| 119 | AC_C_INLINE |
||
| 120 | AC_TYPE_PID_T |
||
| 121 | AC_TYPE_SIZE_T |
||
| 122 | AC_HEADER_TIME |
||
| 123 | AC_STRUCT_TM |
||
| 124 | AC_CHECK_TYPES(socklen_t, [], [], [ |
||
| 125 | #include <sys/types.h> |
||
| 126 | #include <sys/socket.h>]) |
||
| 127 | |||
| 128 | # Runpath |
||
| 129 | RPATH= |
||
| 130 | case "$CC+$with_dynamic" in |
||
| 131 | gcc+yes) RPATH="-Xlinker -rpath -Xlinker ../lib:../../lib:../../../lib";; |
||
| 132 | esac |
||
| 133 | |||
| 134 | # Checks for library functions. |
||
| 135 | AC_FUNC_MALLOC |
||
| 136 | WIMS_FAIL(malloc, $ac_cv_func_malloc_0_nonnull) |
||
| 137 | AC_FUNC_REALLOC |
||
| 138 | WIMS_FAIL(realloc, $ac_cv_func_realloc_0_nonnull) |
||
| 139 | AC_FUNC_FORK |
||
| 140 | WIMS_FAIL([working fork], $ac_cv_func_fork_works) |
||
| 141 | |||
| 142 | AC_FUNC_ERROR_AT_LINE |
||
| 143 | AC_FUNC_LSTAT |
||
| 144 | AC_FUNC_MEMCMP |
||
| 145 | AC_TYPE_SIGNAL |
||
| 146 | AC_FUNC_STAT |
||
| 147 | AC_FUNC_STRTOD |
||
| 148 | AC_CHECK_FUNCS([dup2 regcomp putenv strcasecmp strchr strdup strerror utime]) |
||
| 149 | |||
| 150 | WIMS_CHECK_FUNC(alarm) |
||
| 151 | WIMS_CHECK_FUNC(getcwd) |
||
| 152 | WIMS_CHECK_FUNC(gettimeofday) |
||
| 153 | WIMS_CHECK_FUNC(memmove) |
||
| 154 | WIMS_CHECK_FUNC(memset) |
||
| 155 | WIMS_CHECK_FUNC(mkdir) |
||
| 156 | WIMS_CHECK_FUNC(rmdir) |
||
| 157 | WIMS_CHECK_FUNC(select) |
||
| 158 | WIMS_CHECK_FUNC(strncasecmp) |
||
| 159 | WIMS_CHECK_FUNC(strpbrk) |
||
| 160 | WIMS_CHECK_FUNC(strrchr) |
||
| 161 | WIMS_CHECK_FUNC(strstr) |
||
| 162 | WIMS_CHECK_FUNC(utime) |
||
| 163 | |||
| 164 | # setenv ? |
||
| 165 | AC_CHECK_FUNCS([setenv]) |
||
| 166 | if test "$ac_cv_func_setenv" = no; then |
||
| 167 | common=../Common |
||
| 168 | SETENV_OBJS=$common/setenv.o |
||
| 169 | # FIXME: there should not be various xmallocs with different semantics. Only |
||
| 170 | # SETENV_OBJS should be necessary. |
||
| 171 | ALLSETENV_OBJS="$SETENV_OBJS $common/xmalloc.o" |
||
| 172 | else |
||
| 173 | SETENV_OBJS= |
||
| 174 | ALLSETENV_OBJS= |
||
| 175 | fi |
||
| 176 | |||
| 177 | # Case insensitive file system? |
||
| 178 | AC_CHECK_FILE(WIMS.C, D_CASE_INSENSITIVE_FS="-DCASE_INSENSITIVE_FS=1", |
||
| 179 | D_CASE_INSENSITIVE_FS=) |
||
| 180 | # Static libm? |
||
| 181 | AC_CHECK_FILE(/usr/lib/libm.a,STATIC_LIB=-static,STATIC_LIB=) |
||
| 182 | |||
| 183 | # Configure options |
||
| 184 | AC_ARG_WITH(units, [ --without-units Don't compile units-filter (units recognition)],echo Compile units-filter: $with_units, with_units=yes; echo Compile units-filter: yes) |
||
| 185 | BUILD_UNITS= |
||
| 186 | if test "$with_units" = "yes"; then |
||
| 187 | case "$LEXLIB" in |
||
| 13317 | bpr | 188 | -lfl | -ll) BUILD_UNITS=units-filter;; |
| 7156 | georgesk | 189 | *) with_units=no; echo "Wait ... flex is not available, Compile units : no";; |
| 190 | esac |
||
| 191 | fi |
||
| 192 | |||
| 193 | AC_ARG_WITH(chemeq,[ --without-chemeq Don't compile chemeq (chemical equation analyzer)],echo Compile chemeq: $with_chemeq, with_chemeq=yes; echo Compile chemeq: yes) |
||
| 194 | BUILD_CHEMEQ= |
||
| 195 | if test "$with_chemeq" = "yes"; then |
||
| 196 | case "$LEXLIB" in |
||
| 13317 | bpr | 197 | -lfl | -ll) if test "$CXX" = "g++"; then |
| 7156 | georgesk | 198 | case `"$CXX" --version` in |
| 199 | [ 1*|2.[1-8]*|2.9[1-4]*|2.95.[1-2]) ] |
||
| 200 | with_chemeq=no |
||
| 201 | echo "Wait ... I need at least g++-2.95.3, Compile chemeq: no" ;; |
||
| 202 | *) BUILD_CHEMEQ=chemeq;; |
||
| 203 | esac |
||
| 204 | else |
||
| 205 | with_chemeq=no |
||
| 206 | echo "Wait ... g++ is not available, Compile chemeq: no" |
||
| 207 | fi;; |
||
| 208 | *) with_chemeq=no |
||
| 209 | echo "Wait ... flex is not available, Compile chemeq: no";; |
||
| 210 | esac |
||
| 211 | fi |
||
| 212 | |||
| 213 | AC_ARG_WITH(wimsd,[ --without-wimsd Don't compile wimsd (standalone http server)],echo Compile wimsd: $with_wimsd, with_wimsd=yes; echo Compile wimsd: yes) |
||
| 214 | if test "$with_wimsd" = "yes"; then |
||
| 215 | BUILD_WIMSD=wimsd |
||
| 216 | fi |
||
| 217 | |||
| 13454 | georgesk | 218 | if test -n "$SOURCE_DATE_EPOCH"; then |
| 219 | # When a debian package is built, SOURCE_DATE_EPOCH is defined, so |
||
| 220 | # the build date is taken from the head of the file debian/changelog. |
||
| 221 | # This provides reproducible builds, and more security in Debian. |
||
| 222 | date=`date --utc --date="@$SOURCE_DATE_EPOCH" +%Y-%m-%d` |
||
| 223 | else |
||
| 224 | date=`date +%Y-%m-%d` |
||
| 225 | fi |
||
| 226 | |||
| 7156 | georgesk | 227 | DEFINES="-DGNU_SOURCE -DVERSION_DATE=\\\"$date\\\"" |
| 228 | AC_SUBST(D_CASE_INSENSITIVE_FS) |
||
| 229 | AC_SUBST(STATIC_LIB) |
||
| 230 | AC_SUBST(DEFINES) |
||
| 231 | AC_SUBST(STRIP) |
||
| 232 | AC_SUBST(RPATH) |
||
| 233 | AC_SUBST(BUILD_UNITS) |
||
| 234 | AC_SUBST(BUILD_CHEMEQ) |
||
| 235 | AC_SUBST(BUILD_WIMSD) |
||
| 236 | AC_SUBST(SETENV_OBJS) |
||
| 237 | AC_SUBST(ALLSETENV_OBJS) |
||
| 238 | AC_SUBST(NETLIBS) |
||
| 239 | AC_SUBST(FLEXLIB) |
||
| 240 | AC_SUBST(GDLIB) |
||
| 241 | AC_SUBST(CRYPTLIB) |
||
| 242 | |||
| 7614 | schaersvoo | 243 | AC_CONFIG_FILES([Flydraw/Makefile |
| 7156 | georgesk | 244 | Interfaces/Makefile |
| 245 | Lib/Makefile |
||
| 246 | Makefile |
||
| 247 | Misc/Makefile |
||
| 248 | Misc/symtext/Makefile |
||
| 249 | Misc/mathexp/Makefile |
||
| 250 | Misc/chemeq/Makefile |
||
| 251 | Misc/chemeq/src/Makefile |
||
| 252 | Misc/units-filter/src/Makefile |
||
| 253 | Misc/voronoiW/Makefile |
||
| 254 | Misc/bioinfo/Makefile |
||
| 255 | Misc/checkmol/Makefile |
||
| 256 | Misc/crossword/Makefile |
||
| 257 | Misc/lceb/Makefile |
||
| 258 | Misc/moneyprint/Makefile |
||
| 259 | Misc/toascii/Makefile |
||
| 260 | Misc/scienceprint/Makefile |
||
| 261 | Misc/sigdigits/Makefile |
||
| 7614 | schaersvoo | 262 | Misc/canvasdraw/Makefile |
| 7156 | georgesk | 263 | Misc/whirlgif/Makefile |
| 264 | Misc/authors/jm.evers/applets/Makefile |
||
| 8182 | georgesk | 265 | Misc/applets/Makefile |
| 7156 | georgesk | 266 | Module/Makefile |
| 267 | Module/drawode/Makefile |
||
| 8148 | bpr | 268 | OefMsg2wims/Makefile |
| 7156 | georgesk | 269 | Wimsd/Makefile |
| 270 | Wimslogd/Makefile |
||
| 271 | Texgif/Makefile |
||
| 272 | Mathml/Makefile]) |
||
| 273 | AC_OUTPUT |