configure.in 11.2 KB
Newer Older
1 2
dnl Process this file with autoconf to produce a configure script.
AC_INIT(backend/access/common/heaptuple.c)
3
AC_PREFIX_DEFAULT(/usr/local/pgsql)
4 5

AC_CANONICAL_HOST
6
case "$host_os" in
7 8 9 10 11
 solaris*)
        case "$host_cpu" in
          sparc) PORTNAME='sparc_solaris' ;;
           i386) PORTNAME='i386_solaris' ;;
        esac ;;
12
   sunos*) PORTNAME='sunos4' ;;
13 14
   linux*) PORTNAME='linux' ;;
    bsdi*) PORTNAME='bsdi' ;;
15
 freebsd*|netbsd*) PORTNAME='BSD44_derived';;
16 17 18
    dgux*) PORTNAME='dgux';;
     aix*) PORTNAME='aix';;
nextstep*) PORTNAME='nextstep';;
19
  ultrix*) PORTNAME='ultrix4';;
20
    irix*) PORTNAME='irix5';;
M
Marc G. Fournier 已提交
21
    hpux*) PORTNAME='hpux';;
22
     osf*) PORTNAME='alpha';;
23 24 25 26 27
 sysv4.2*) 
       case "$host_vendor" in
               univel) PORTNAME='univel';;
                    *) PORTNAME='unknown';;
       esac ;;
28 29 30 31
*) echo ""
   echo "*************************************************************"
   echo "configure does not currently recognize your operating system,"
   echo "therefore you must do a manual configuration of:"
32
   echo "$host_os"
33 34 35 36 37 38
   echo "Please contact scrappy@hub.org to see about rectifying this, "
   echo "including the above 'checking host system type...' line "
   echo "*************************************************************"
   echo ""
   exit;;
esac
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

echo "checking echo setting..."
if echo '\c' | grep -s c >/dev/null 2>&1
then
	ECHO_N="echo -n"
	ECHO_C=""
else
	ECHO_N="echo"
	ECHO_C='\c'
fi

cat <<EOT
**************************************************************
	PostreSQL v6.1 Installation Program

Welcome to the new improved PostgreSQL installation program.
This configuration program is for version 6.1alpha of the
PostgreSQL software.

EOT

dnl this part selects the template from the one in the
dnl template directory. 

if test "X$with_template" != "X"
then
	TEMPLATE=template/$with_template
else
	TEMPLATE=DO_NOT_CHANGE_THIS_INVALID_FILENAME
fi

if test ! -f $TEMPLATE
then
	cat <<EOT
Please select a template from the ones listed below.  If no
template is available, then select the 'generic' one and
consider emailling scrappy@hub.org with the above line which
starts 'checking host system type...'
**************************************************************
EOT
	TEMPLATE=generic
	GUESS=`grep $host_os template/.similar 2>/dev/null`
	if test $GUESS
	then
		TEMPLATE=`echo $GUESS | sed 's/.*=//'`
	fi
	export TEMPLATE
	ls template
	echo "**************************************************************"
	$ECHO_N "Appropriate template file { $TEMPLATE }: $ECHO_C"
	read a
	if test "$a." != "."
	then
		TEMPLATE=$a
	fi
	if test ! -f template/$TEMPLATE
	then
		echo "You must choose an appropriate template file."
		exit
	fi
99
	TEMPLATE=template/$TEMPLATE 
100
fi
101 102
export TEMPLATE
echo ""
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

AROPT=`grep AROPT $TEMPLATE | awk -F: '{print $2}'`
SHARED_LIB=`grep SHARED_LIB $TEMPLATE | awk -F: '{print $2}'`
CFLAGS=`grep CFLAGS $TEMPLATE | awk -F: '{print $2}'`
SRCH_INC=`grep SRCH_INC $TEMPLATE | awk -F: '{print $2}'`
SRCH_LIB=`grep SRCH_LIB $TEMPLATE | awk -F: '{print $2}'`
USE_LOCALE=`grep USE_LOCALE $TEMPLATE | awk -F: '{print $2}'`
DLSUFFIX=`grep DLSUFFIX $TEMPLATE | awk -F: '{print $2}'`
DL_LIB=`grep DL_LIB $TEMPLATE | awk -F: '{print $2}'`
YACC=`grep YACC $TEMPLATE | awk -F: '{print $2}'`
YFLAGS=`grep YFLAGS $TEMPLATE | awk -F: '{print $2}'`


dnl We now need to check for additional directories (include
dnl and library directories.
echo "**************************************************************"
echo "We now need to know if your compiler needs to search any
echo "additional directories for include or library files.  If
echo "you don't know the answers to these questions, then just
echo "hit enter and we will try and figure it out.  If things
echo "don't compile because of missing libraries or include
echo "files, then you probably need to enter something here.
125
echo "enter 'none' or new directories to override default"
126
echo ""
127
$ECHO_N "Additional directories to search for include files { $SRCH_INC }: $ECHO_C"
128
read a
129
if test "$a." = "none." 
130 131 132
then
	SRCH_INC=
	CPPFLAGS=
133 134 135 136 137 138 139
else
	if test "$a." = "."
	then
		a=$SRCH_INC
	fi
	CPPFLAGS=`echo "$a" | sed 's@  *@ @g; s@^\([[^ ]]\)@-I\1@; s@ \([[^ ]]\)@ -I\1@g'`

140
fi
141
export CPPFLAGS
142
echo "- setting CPPFLAGS=$CPPFLAGS"
143

144
$ECHO_N "Additional directories to search for library files { $SRCH_LIB }: $ECHO_C"
145
read a
146
if test "$a." = "none."
147 148 149
then
	SRCH_LIB=
	LDFLAGS=
150 151 152 153 154 155 156
else
	if test "$a." = "."
	then
		a=$SRCH_LIB
	fi
	LDFLAGS=`echo "$a" | sed 's@  *@ @g; s@^\([[^ ]]\)@-L\1@; s@ \([[^ ]]\)@ -L\1@g'`

157
fi
158
export LDFLAGS
159
echo "- setting LDFLAGS=$LDFLAGS"
160 161 162

dnl We have read the default value of USE_LOCALE from the template 
dnl file.  We have a further option of using 
163 164 165
dnl	--disable-locale	to explicitly disable it 
dnl	--enable-locale		to explicitly enable it 
dnl It defaults to disabled
166 167 168 169
if test "$enable_locale" = "yes" -o "$enable_locale" = "no"
then
	USE_LOCALE=$enable_locale
else
170
	USE_LOCALE=no
171 172 173 174
fi
export USE_LOCALE

dnl We use the default value of 5432 for the DEF_PGPORT value.  If
175
dnl we over-ride it with --with-pgport=port then we bypass this piece
176 177 178 179
if test "X$with_pgport" != "X"
then
	DEF_PGPORT=$with_pgport
else
180
	DEF_PGPORT=5432
181 182 183 184
fi
export DEF_PGPORT

dnl Unless we specify the command line options
185 186 187
dnl	--disable-hba		to explicitly disable it 
dnl	--enable-hba		to explicitly enable it 
dnl The default is to enable it
188 189 190 191 192 193 194
if test "$enable_hba" = "yes" 
then
	NOHBA=no
elif test "$enable_hba" = "no"
then
	NOHBA=yes
else
195
	NOHBA=no
196 197 198
fi
export NOHBA

199 200 201
dnl Unless we specify the command line options
dnl     --disable cassert       to explicitly disable it
dnl     --enable cassert        to explicitly enable it
202 203
dnl If you do not explicitly do it, it defaults to disabled - we
dnl should make the default enabled for the development cycle
204 205
dnl We need some explanatory text here.
echo ""
206

207 208
if test "$enable_cassert" = "no"
then
209
	echo "-ASSERT CHECKING disabled"
210 211 212
        AC_DEFINE(NO_ASSERT_CHECKING)
elif test "$enable_cassert" = "yes"
then
213
	echo "-ASSERT CHECKING enabled"
214
else
215 216
	echo "-ASSERT CHECKING disabled"
	AC_DEFINE(NO_ASSERT_CHECKING)
217 218
fi

219 220 221 222 223 224 225 226 227
dnl We use the default value of 5432 for the DEF_PGPORT value.  If
dnl we over-ride it with --with-pgport=port then we bypass this piece
if test "X$with_compiler" != "X"
then
        CC=$with_compiler
else
        AC_PROG_CC
fi

228

M
Marc G. Fournier 已提交
229 230 231 232 233
AC_CONFIG_HEADER(include/config.h)

dnl Checks for programs.
AC_PROG_CPP

234 235
AC_LINK_FILES(include/port/${PORTNAME}.h, include/os.h)
AC_LINK_FILES(makefiles/Makefile.${PORTNAME}, Makefile.port)
236
AC_SUBST(PORTNAME)
237 238
AC_SUBST(LDFLAGS)
AC_SUBST(CPPFLAGS)
M
Marc G. Fournier 已提交
239
AC_SUBST(AROPT)
240 241 242 243
AC_SUBST(SHARED_LIB)
AC_SUBST(CFLAGS)
AC_SUBST(DLSUFFIX)
AC_SUBST(DL_LIB)
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260

dnl ****************************************************************
dnl Hold off on the C++ stuff until we can figure out why it doesn't 
dnl work under Solaris..
dnl
dnl AC_PROG_CXX
dnl
dnl Check if we should set   Have_Cplusplus
dnl if test -n "$CXX"; then
dnl   export HAVECXX
dnl   HAVECXX='HAVE_Cplusplus=true'
dnl fi
dnl AC_SUBST(HAVECXX)
dnl ****************************************************************
HAVECXX='HAVE_Cplusplus=false'
AC_SUBST(HAVECXX)

261 262 263 264 265
AC_PATH_PROGS(INSTALL, installbsd install bsdinst, NONE, $PATH)
if test $INSTALL = "NONE"
then
   echo "- No Install Script found - aborting."
   exit 0;
266
fi
267 268 269 270 271

INSTLOPTS="-m 444"
INSTL_EXE_OPTS="-m 555"
INSTL_LIB_OPTS="-m 664"

272
if test "`basename $INSTALL`." = "install."
273 274 275 276 277 278
then
	INSTLOPTS="-c $INSTLOPTS"
	INSTL_EXE_OPTS="-c $INSTL_EXE_OPTS"
	INSTL_LIB_OPTS="-c $INSTL_LIB_OPTS"
fi

279
echo "- Using $INSTALL"
280 281 282 283 284 285 286 287 288 289 290 291 292 293
AC_SUBST(INSTALL)
AC_SUBST(INSTLOPTS)
AC_SUBST(INSTL_LIB_OPTS)
AC_SUBST(INSTL_EXE_OPTS)

dnl Check the option to echo to inhibit newlines.
ECHO_N_OUT=`echo -n "" | wc -c`
ECHO_C_OUT=`echo "\c" | wc -c`
if test "$ECHO_N_OUT" -eq 0; then
  DASH_N='-n'
  BACKSLASH_C=
else
  if test "ECHO_C_OUT" -eq 0; then
    DASH_N=
294
    BACKSLASH_C='\\\\c'
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
  else
    AC_MSG_ERROR("echo behaviour undetermined")
  fi
fi
AC_SUBST(DASH_N)
AC_SUBST(BACKSLASH_C)

AC_PROG_LEX
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PATH_PROG(find, find)
AC_PATH_PROG(tar, tar)
AC_PATH_PROG(split, split)
AC_PATH_PROG(etags, etags)
AC_PATH_PROG(xargs, xargs)
AC_PATH_PROG(ipcs, ipcs)
AC_PATH_PROG(ipcrm, ipcrm)
313
AC_PATH_PROGS(TR, trbsd tr, NOT_FOUND)
314

315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
dnl Changes to look for YACC.  We have three choices (in order of pref.)
dnl (1) We specify in YACC and YFLAGS what we want
dnl (2) We have bison and we use bison -y
dnl (3) We have yacc and use it

AC_SUBST(YACC)
AC_SUBST(YFLAGS)
AC_PATH_PROG(yacc, yacc)
AC_PATH_PROG(bison, bison)
if test -f "$YACC" 
then
	echo "- Using $YACC $YFLAGS"
elif test -f "$bison"
then
	echo "- Using $bison -y $YFLAGS"
	YACC="$bison"
	YFLAGS="-y $YFLAGS"
	export YACC YFLAGS
else
	echo "- Using $yacc $YFLAGS"
	YACC="$yacc"
	export YACC
fi

339 340
AC_CHECK_LIB(curses,   main)
AC_CHECK_LIB(termcap,  main)
M
Marc G. Fournier 已提交
341 342 343
AC_CHECK_LIB(history,  main)
AC_CHECK_LIB(readline, main)
AC_CHECK_LIB(readline, write_history, AC_DEFINE(HAVE_HISTORY))
344 345 346 347 348 349 350 351 352 353 354 355 356
AC_CHECK_LIB(m,        main)
AC_CHECK_LIB(dl,       main)
AC_CHECK_LIB(socket,   main)
AC_CHECK_LIB(nsl,      main)
AC_CHECK_LIB(ipc,      main)
AC_CHECK_LIB(IPC,      main)
AC_CHECK_LIB(lc,       main)
AC_CHECK_LIB(dld,      main)
AC_CHECK_LIB(ln,       main)
AC_CHECK_LIB(bsd,      main)
AC_CHECK_LIB(ld,       main)
AC_CHECK_LIB(compat,   main)
AC_CHECK_LIB(BSD,      main)
M
Marc G. Fournier 已提交
357
AC_CHECK_LIB(crypt,      main)
358
AC_CHECK_LIB(gen,      main)
359 360 361 362 363

dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h)
364
AC_CHECK_HEADERS(sys/resource.h)
M
Marc G. Fournier 已提交
365
AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h)
366 367 368 369 370 371 372 373 374 375 376 377

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_UID_T
AC_C_INLINE
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM

dnl Check for any "odd" conditions
378
AC_MSG_CHECKING(for int timezone)
379
AC_TRY_LINK([#include <time.h>], 
380
            [int res = timezone / 60; ], 
381
            [AC_DEFINE(HAVE_INT_TIMEZONE) AC_MSG_RESULT(yes)],
382 383 384 385
            AC_MSG_RESULT(no))

AC_MSG_CHECKING(for union semun)
AC_TRY_LINK([#include <sys/types.h>
386
#include <sys/ipc.h>
387 388 389 390
#include <sys/sem.h>],
            [union semun semun;],
            [AC_DEFINE(HAVE_UNION_SEMUN) AC_MSG_RESULT(yes)],
            AC_MSG_RESULT(no))
391 392 393 394 395 396 397

dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(isinf tzset getrusage vfork memmove sigsetjmp kill sysconf)
398
AC_CHECK_FUNCS(sigprocmask waitpid setsid random fcvt)
399
AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON), INET_ATON='inet_aton.o')
400
AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR), STRERROR='strerror.o')
401
AC_CHECK_FUNC(strdup, AC_DEFINE(HAVE_STRDUP), STRDUP='../../utils/strdup.o')
402
AC_SUBST(STRDUP)
403
AC_SUBST(INET_ATON)
404
AC_SUBST(STRERROR)
405 406 407
AC_CHECK_FUNC(cbrt, AC_DEFINE(HAVE_CBRT), AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT)))
AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT), AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT)))

408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428
AC_MSG_CHECKING(setting USE_LOCALE)
if test "$USE_LOCALE" = "yes"
then
	AC_MSG_RESULT(enabled)
	AC_DEFINE(USE_LOCALE)
else
	AC_MSG_RESULT(disabled)
fi
AC_MSG_CHECKING(setting DEF_PGPORT)
AC_DEFINE_UNQUOTED(DEF_PGPORT, "${DEF_PGPORT}")
AC_MSG_RESULT($DEF_PGPORT)
AC_MSG_CHECKING(setting HBA)
if test "$NOHBA" = "no"
then
        AC_MSG_RESULT(enabled)
        AC_DEFINE(HBA)
else
        AC_MSG_RESULT(disabled)
fi 


M
Marc G. Fournier 已提交
429
AC_OUTPUT(GNUmakefile Makefile.global backend/port/Makefile bin/psql/Makefile bin/pg_dump/Makefile backend/utils/Gen_fmgrtab.sh)