📄 lc-configure.in
字号:
dnl -*- mode: shell-script -*-dnl Process this file with autoconf to produce a configure script.dnldnl Permission is hereby granted, free of charge, to any person obtaining adnl copy of this software and associated documentation files (the "Software"),dnl to deal in the Software without restriction, subject to the conditionsdnl listed in the Click LICENSE file. These conditions include: you mustdnl preserve this copyright notice, and you cannot mention the copyrightdnl holders in advertising related to the Software without their permission.dnl The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. Thisdnl notice is a summary of the Click LICENSE file; the license in that file isdnl legally binding.AC_INIT([libclick], [1.7.0])AC_PREREQ(2.50)AC_CONFIG_HEADER(include/click/config.h:config.h.in include/click/pathvars.h:pathvars.h.in include/click/config-userlevel.h:config-userlevel.h.in)CLICK_VERSION=$PACKAGE_VERSIONAC_SUBST(ac_configure_args)AC_DEFINE_UNQUOTED(CLICK_VERSION, "$CLICK_VERSION")AC_SUBST(CLICK_VERSION)CLICK_INIT('$(top_srcdir)')dnl support for cross compilingAC_CANONICAL_SYSTEMdnl This is wrong!!AC_CHECK_TOOL(CC, gcc)AC_CHECK_TOOL(CXX, g++)CLICK_PROG_CCAC_PROG_CPPAC_C_INLINECLICK_PROG_CXXAC_PROG_CXXCPPac_preset_ar="$AR"AC_CHECK_TOOL(AR, ar)AC_CHECK_TOOL(LD, ld)AC_CHECK_TOOL(RANLIB, ranlib, :)AC_CHECK_TOOL(STRIP, strip, :)conf_auxdir='$(top_srcdir)'AC_SUBST(conf_auxdir)test -z "$AR_CREATEFLAGS" && AR_CREATEFLAGS=cruAC_SUBST(AR_CREATEFLAGS)dnl userlevel driver and featuresAC_ARG_ENABLE(user-multithread, [[ --enable-user-multithread support userlevel multithreading (EXPERIMENTAL)]], :, [enable_user_multithread=no])PTHREAD_LIBS=""AC_SUBST(PTHREAD_LIBS)if test "x$enable_user_multithread" = xyes; then SAVE_LIBS="$LIBS" AC_SEARCH_LIBS([pthread_create], [pthread], [ac_have_libpthread=yes], [ac_have_libpthread=no]) AC_CHECK_HEADERS([pthread.h], [ac_have_pthread_h=yes], [ac_have_pthread_h=no]) if test "$ac_have_libpthread$ac_have_pthread_h" = yesyes; then AC_DEFINE(HAVE_USER_MULTITHREAD) if echo "$LIBS" | grep -e -lpthread >/dev/null 2>&1; then PTHREAD_LIBS="-lpthread" fi else AC_MSG_ERROR([=========================================Can't find -lpthread and/or <pthread.h>, so I can't compile with--enable-user-multithread.=========================================]) fi LIBS="$SAVE_LIBS"fidnldnl element collectionsdnlAC_ARG_ENABLE(all-elements, [ --enable-all-elements include all provided element groups])dnl ELEMENTS_ARG_ENABLE(COLLECTION, HELP-STRING, DEFAULT-VALUE)element_groups=""AC_SUBST(element_groups)AC_DEFUN([ELEMENTS_ARG_ENABLE],[AC_ARG_ENABLE($1, [ --]builtin(substr, builtin(ifelse, [$3], yes, dis, en)[able-$1 ], 0, 21)[ ]builtin(ifelse, [$3], yes, [do not ], [])[$2], ,[enable_]patsubst([$1], -, _)=$3)dnltest "x$enable_all_elements" = xyes -a ["x$enable_]patsubst([$1], -, _)["] = xNO && [enable_]patsubst([$1], -, _)[=yes]if test ["x$enable_]patsubst([$1], -, _)["] = xyes; then : $4fi])ELEMENTS_ARG_ENABLE(ipsec, [include IP security elements], no, AC_DEFINE(HAVE_IPSEC))ELEMENTS_ARG_ENABLE(ip6, [include IPv6 elements (EXPERIMENTAL)], no, AC_DEFINE(HAVE_IP6))dnldnl check whether target is LinuxdnlAC_CACHE_CHECK([whether we are compiling for Linux], [ac_cv_under_linux], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[#ifndef __linux__#error "fuckers! fuckers!"#endifreturn 0;]])], ac_cv_under_linux=yes, ac_cv_under_linux=no)])dnldnl functionsdnlAC_LANG_CAC_REPLACE_FUNCS(strerror)AC_CHECK_FUNCS(random snprintf strtoul tcgetpgrp vsnprintf)AC_LANG_CPLUSPLUSdnldnl integer types, endianness, int64, addressable va_listdnlAC_ARG_ENABLE(int64, [ --disable-int64 disable 64-bit integer support], :, enable_int64=yes)AC_CHECK_SIZEOF(int)AC_CHECK_SIZEOF(long)AC_CHECK_SIZEOF(size_t)CLICK_CHECK_INTEGER_TYPESCLICK_CHECK_ALIGNMENTif test "x$enable_int64" = xyes; then AC_CHECK_SIZEOF(long long) CLICK_CHECK_INT64_TYPESfiCLICK_CHECK_ENDIANCLICK_CHECK_SIGNED_SHIFTCLICK_CHECK_ADDRESSABLE_VA_LISTCLICK_CHECK_INTEGER_BUILTINSdnldnl timestampsdnlAC_ARG_ENABLE(nanotimestamp, [ --enable-nanotimestamp enable nanosecond timestamps])if test "x$enable_nanotimestamp" = xyes; then AC_DEFINE(HAVE_NANOTIMESTAMP_ENABLED)fiAC_CHECK_HEADERS(time.h)AC_CHECK_SIZEOF([struct timeval])AC_CHECK_TYPES([struct timespec], have_timespec=yes, have_timespec=no)if test "x$have_timespec" = xyes; then AC_CHECK_SIZEOF([struct timespec])fiCLICK_CHECK_POSIX_CLOCKSdnldnl headers, event detection, dynamic linkingdnlAC_CHECK_HEADERS(termio.h netdb.h sys/event.h pwd.h grp.h)CLICK_CHECK_POLL_HAC_CHECK_FUNCS(sigaction)AC_CHECK_FUNCS(kqueue, have_kqueue=yes)if test "x$have_kqueue" = xyes; then AC_CACHE_CHECK([whether EV_SET last argument is void *], [ac_cv_ev_set_udata_pointer], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>#include <sys/event.h>#include <sys/time.h>]], [[struct kevent kev; EV_SET(&kev, 1, EVFILT_WRITE, EV_ADD, 0, 0, (void *) &kev);]])], [ac_cv_ev_set_udata_pointer=yes], [ac_cv_ev_set_udata_pointer=no])]) if test $ac_cv_ev_set_udata_pointer = yes; then AC_DEFINE([HAVE_EV_SET_UDATA_POINTER], [1], [Define if the last argument to EV_SET has pointer type.]) fifiAC_ARG_ENABLE(dynamic-linking, [ --disable-dynamic-linking disable dynamic linking], :, enable_dynamic_linking=yes)if test "x$enable_dynamic_linking" = xyes; then CLICK_CHECK_DYNAMIC_LINKINGfidnldnl socketsdnlAC_LANG_CSOCKET_LIBS=dnl if test "$enable_userlevel" = yes; then savelibs="$LIBS"; LIBS= AC_SEARCH_LIBS(gethostbyname, nsl, , , $savelibs) AC_SEARCH_LIBS(connect, socket, , , $savelibs) SOCKET_LIBS="$LIBS"; LIBS="$savelibs" AC_CACHE_CHECK([whether accept() uses socklen_t], [ac_cv_accept_socklen_t], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>#include <sys/socket.h>]], [[socklen_t sl; (void) accept(0, (struct sockaddr *) 0, &sl);]])], ac_cv_accept_socklen_t=yes, ac_cv_accept_socklen_t=no)]) if test "$ac_cv_accept_socklen_t" = yes; then AC_DEFINE([HAVE_ACCEPT_SOCKLEN_T], [1], [Define if accept() uses socklen_t.]) fidnl fiAC_SUBST(SOCKET_LIBS)AC_LANG_CPLUSPLUSdnldnl large file supportdnlCLICK_CHECK_LARGE_FILE_SUPPORTdnldnl mmapdnlAC_LANG_CAC_CHECK_HEADERS(sys/mman.h)AC_FUNC_MMAPAC_LANG_CPLUSPLUSAC_CHECK_FUNCS(madvise)AC_CHECK_DECLS(madvise, [], [], [#if HAVE_SYS_MMAN_H#include <sys/types.h>#include <sys/mman.h>#endif])dnldnl kernel featuresdnl AC_DEFINE_UNQUOTED(NUM_CLICK_CPUS, 1)dnldnl objects required by element collectionsdnlEXTRA_DRIVER_OBJS=EXTRA_TOOL_OBJS=if test "x$enable_ip6" = xyes; then EXTRA_DRIVER_OBJS="ip6address.o ip6flowid.o ip6table.o $EXTRA_DRIVER_OBJS" EXTRA_TOOL_OBJS="ip6address.o $EXTRA_TOOL_OBJS"fiAC_SUBST(EXTRA_DRIVER_OBJS)AC_SUBST(EXTRA_TOOL_OBJS)dnldnl type of schedulingdnlAC_ARG_ENABLE(stride, [ --disable-stride disable stride scheduler], :, enable_stride=yes)if test $enable_stride = yes; then AC_DEFINE(HAVE_STRIDE_SCHED)fiAC_ARG_ENABLE(task-heap, [ --enable-task-heap use heap for task list], :, enable_task_heap=no)if test $enable_task_heap = yes -a $enable_stride = yes; then AC_DEFINE(HAVE_TASK_HEAP)elif test $enable_task_heap = yes; then AC_MSG_WARN([=========================================Ignoring --enable-task-heap, which is incompatible with --disable-stride.=========================================])fiAC_ARG_ENABLE(adaptive, [ --enable-adaptive use adaptive scheduler to flexibly arbitrate between Click and the kernel (EXPERIMENTAL)], :, enable_adaptive=no)if test "x$enable_adaptive" = xyes; then AC_DEFINE(HAVE_ADAPTIVE_SCHEDULER)fidnldnl debugging mallocdnlAC_ARG_ENABLE(dmalloc, [ --enable-dmalloc enable debugging malloc], :, enable_dmalloc=no)if test $enable_dmalloc = yes; then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -