File:  [ELWIX - Embedded LightWeight unIX -] / libaitsched / configure.in
Revision 1.59: download - view: text, annotated - select for diffs - revision graph
Mon Aug 19 13:14:46 2024 UTC (3 months, 2 weeks ago) by misho
Branches: MAIN
CVS tags: sched8_4, SCHED8_3, HEAD
take clear CFLAGS from env
append Debian arch detection

#
# $Author: misho $
# $Id: configure.in,v 1.59 2024/08/19 13:14:46 misho Exp $
#
AC_INIT(libaitsched, 8.2, misho@elwix.org)
AC_CONFIG_SRCDIR([src/aitsched.c])
AC_CONFIG_HEADERS([inc/config.h])

ac_cv_func_malloc_0_nonnull="yes"
ac_cv_func_realloc_0_nonnull="yes"

# Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_RANLIB

AC_CANONICAL_HOST
AC_CANONICAL_TARGET

AC_CHECK_TOOL(MKDEP, mkdep, ../mkdep)
AC_SUBST(MKDEP)

if test "${ac_cv_env_CFLAGS_set}" != "set"; then
	CFLAGS="-Wall -O2 -fPIC"
else
	CFLAGS="${ac_cv_env_CFLAGS_value}"
fi
LDFLAGS="${LDFLAGS}"


# Checks for libraries.
AC_CHECK_LIB([pthread], [pthread_create])
AC_CHECK_LIB([rt], [aio_read])
AC_CHECK_LIB([bsd], [strlcpy])

# Checks for header files.
AC_CHECK_HEADERS([stdint.h stdlib.h string.h sys/time.h unistd.h])
AC_CHECK_HEADERS([bsd/string.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_SIZE_T

# Checks for library functions.
AC_FUNC_MALLOC
AC_CHECK_FUNCS([clock_gettime memset strerror timer_create timer_settime timer_delete strlcat strlcpy])

DEBUG=no
AC_MSG_CHECKING(Debug Build)
AC_ARG_ENABLE(debug,
	[  --enable-debug          Build library with debug information and additional messages],
	[ DEBUG=$enableval
		case "$enableval" in
			yes)
				AC_DEFINE(__DEBUG,, [Build libraries with debug information and additional messages])
				CFLAGS="-g ${CFLAGS}"
				;;
			*)
				AC_DEFINE(NDEBUG,, [Turn off debug asserts])
				;;
		esac ], AC_DEFINE(NDEBUG,, [Turn off debug asserts]))
AC_MSG_RESULT($DEBUG)

AIO=no
AC_MSG_CHECKING(AIO Builtin support)
AC_ARG_ENABLE(aio,
	[  --enable-aio            Build scheduler library with AIO operations ], 
	[ AIO=$enableval
		case "$enableval" in
			yes)
				AC_DEFINE(AIO_SUPPORT,, [Build scheduler library with AIO operations])
				;;
			*)
				;;
		esac ],)
AC_MSG_RESULT($AIO)

AC_DEFINE(NO_SUPPORT, 0, [select support])
AC_DEFINE(KQ_SUPPORT, 1, [kqueue support])
AC_DEFINE(EP_SUPPORT, 2, [epoll support])

AC_DEFINE(SUP_ENABLE, KQ_SUPPORT, [support type])

EPSUP=no
AC_MSG_CHECKING(epoll support)
AC_ARG_ENABLE(epoll,
	[  --enable-epoll          Enable epoll support (only under Linux) ],
	[ EPSUP=$enableval
		case "$enableval" in
			yes)
				AC_DEFINE(SUP_ENABLE, EP_SUPPORT, [support type])
				KQSUP=no
				;;
			*)
				KQSUP=yes
				;;
	 	esac ], [ KQSUP=yes ])
AC_MSG_RESULT($EPSUP)

AC_MSG_CHECKING(kqueue support)
AC_ARG_ENABLE(kqueue,
	[  --disable-kqueue        Disable kqueue support ],
	[ KQSUP=$enableval
		case "$enableval" in
			no)
				AC_DEFINE(SUP_ENABLE, NO_SUPPORT, [support type])
				;;
			*)
				;;
	 	esac ], )
AC_MSG_RESULT($KQSUP)

KQ_EVENTS=24
AC_MSG_CHECKING(How many kqueue events can scheduling at one time)
AC_ARG_WITH(kq_events, 
	[  --with-kq_events        Set how many kqueue events can scheduling at one time ],
	[ KQ_EVENTS=$withval ], KQ_EVENTS=32)
AC_DEFINE_UNQUOTED(KQ_EVENTS, $KQ_EVENTS, [ How many kqueue events can scheduling at one time ])
AC_MSG_RESULT($KQ_EVENTS)

ELWIX=no
AC_MSG_CHECKING(With libelwix Build)
AC_ARG_WITH(elwix,
	[  --with-elwix          Build library with libelwix memory managemant],
	[ ELWIX=$withval
		case "$withval" in
			yes)
				AC_DEFINE(__ELWIX,, [Build libraries with libelwix memory managemant])
				LIBS="${LIBS} -lelwix"
				;;
			*)
				;;
		esac ],)
AC_MSG_RESULT($ELWIX)

DEBIAN_ARCH=$target_cpu
AS_IF([ test "x$target_cpu" = "xarm6l" -o "x$target_cpu" = "xarm7l" ], DEBIAN_ARCH="armhf") 
AS_IF([ test "x$target_cpu" = "xaarch64" ], DEBIAN_ARCH="arm64") 
AS_IF([ test "x$target_cpu" = "xi686" ], DEBIAN_ARCH="i386") 
AS_IF([ test "x$target_cpu" = "xx86_64" ], DEBIAN_ARCH="amd64") 
AC_SUBST(DEBIAN_ARCH)

AC_CONFIG_FILES([Makefile
                 inc/Makefile
                 lib/Makefile
                 debian/Makefile
                 debian/control
                 src/Makefile])
AC_OUTPUT()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>