configure.ac (sometimes also named:
configure.in) is an input file for
autoconf. It contains tests that check for conditions that are likely to differ on different platforms. The tests are made by actually invoke
autoconf macros.
configure.ac is processed by
m4 which produces
./configure. Basically, configure.ac is copied, but macros found within configure.ac are expanded.
A configure.ac should contain the following macros:
AC_INIT
AC_PREREQ
AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE
AC_EXEEXT
AC_PROG_CC
AC_PROG_CXX
AM_PROG_LIBTOOL
AC_DEFINE (???)
AC_OUTPUT
autoscan helps create a
configure.ac file by examining source files. It creates a
configure.scan file which can then be changed for a configure.ac file.
Typical layout
AC_INIT(package, version, bug-report-address)
package information
program checks
library checks
header file checks
type checks
structure checks
compiler characteristics checks
library functions check
system service checks
AC_CONFIG_FILES([...])
AC_OUTPUT
AC_INIT and
AC_OUTPUT are the two only required macros by the
configure script.
program_file is used to check wheter autoconf finds it. If it doesn't find it, it is somehow screwed up.
AC_INIT generates the following m4 macros, output variables and preprocessor symbols:
[AC_]PACKAGE_NAME
[AC_]PACKAGE_TARNAME
[AC_]PACKAGE_VERSION
[AC_]PACKAGE_STRING
[AC_]PACKAGE_BUGREPORT
AC_PREREQ
AC_PREREQ(version)
Indicates the version of
autoconf that is used.
AM_INIT_AUTOMAKE
AM_INIT_AUTOMAKE([options])
The following form obsolete: the package and the version can be optained by
AC_INIT
AM_INIT_AUTOMAKE(package, version [, no-define])
This macro is always needed for
automake
AC_DEFINE
Defines a c preprocessor macro
For example
AC_DEFINE(DEBUG) or
AC_DEFINE(VERSION, "2.3")
AC_DEFINE_UNQUOTED
Defines a preprocessor macro with shell expansion
AC_DEFINE_UNQUOTED(FOO, "${some_variable}")
AC_CHECK_LIB
Checks for a symbol within a library
AC_ARG_ENABLE
AC_OUTPUT
AC_OUTPUT(Makefile foo_config)
There should be an AC_OUTPUT for each
Makefile.am in the project.
AC_INIT and AC_OUTPUT are the two only required macros by the
configure script.
AC_OUTPUT generates the files that are required for the building process.
Lists the names of the files that will be output by the
./configure script.
AC_CHECK_FUNCS(func-name-1 func-name-2)
Checks if a functions exist (within the c library ???).
If they exist, it defines
HAVE_func-name-n
AC_HEADERS
Defines
STDC_HEADER if Ansi C header files are present. It actually assumes that the header files are present if it finds stdlib.h stdarg.h string.h and float.h.
AC_HEADERS
Checks if a header file is present. ???
If so, defines HAVE_header.
AC_EGREP_HEADER
AC_FUNC_xxx
AC_FUNC_STRFTIME
Checks if strftime exists. Includes libintl in LIBS if needed (eg for SCO).
AC_FUNC_MEMCMP
Checks if memcmp exists and is 8-bit clean.
AC_FUNC_UTIME_NULL
Checks whether
utime accepts a NULL second argument to set the file change time to the current time.
See also
AC_FUNC_xxx
AC_PROG_INSTALL
Generates an install target, so that it is possible to install the program with
make install
Sets INSTALL to a BSD compatible install programm, if possible. If not possible, sets it to some-dir/install-sh. In order to determine some-dir, it checkes the directories specified with
AC_CONFIG_AUX_DIR.
Also sets variable INSTALL_PROGRAM to ${INSTALL} and INSTALL_DATA to ${INSTALL} -m 644.
If AC_PROG_INSTALL is used but
configure cannot find an install-sh, configure will report an error.
AC_CONFIG_AUX_DIR
AC_CONFIG_HEADER
AC_CONFIG_SRCDIR
AC_CONFIG_FILES
AC_PROG_CC
Checks for a working C compiler and discovers its characteristics.
AC_PROG_CXX
Like AC_PROG_CC, but for C++ compilers.
AM_DISABLE_SHARED
See
AM_PROG_LIBTOOL.
AM_PROG_LIBTOOL
Used if building libraries. By default, libraries are built as shared libraries. In order to build static libraries,
AM_DISABLE_SHARED needs to be defined before AM_PROG_LIBTOOL. This behaviour can be overriden with the
--enable_shared and
--disable_shared configure options.
It may optionally name the input file for the output file, by default this is config.h.in, however, this works poorly on dos.
Names the header file which will hold the preprocessor macro definitions for compile time. Normally, this is
config.h. The source files will then
#include "config.h".
Generates a portability header file, requires a
accconfig.h file.
???? Use AC_CONFIG_HEADER instead of AM_CONFIG_HEADER if you're not using
automake. ????
??? In order to use AM_CONFIG_HEADER, a
stamp-h file is needed ???.
AM_MAINTAINER_MODE
AC_EXEEXT
Always present in Cygnus configure scripts, finds the executable suffix on the system (.exe for windows, empty for unix).
1. 创建一个maven项目
2. 创建com.CoberturaStart.java
package com;
public class CoberturaStart {
public void helloEveryone(){
System.out.println("=================================================
我并不知道出现这个问题的实际原理,只是通过其他朋友的博客,文章得知的一个解决方案,目前先记录一个解决方法,未来要是真了解以后,还会继续补全.
在mysql5中有一个safe update mode,这个模式让sql操作更加安全,据说要求有where条件,防止全表更新操作.如果必须要进行全表操作,我们可以执行
SET
public class DeleteSpecificChars {
/**
* Q 63 在字符串中删除特定的字符
* 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
* 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
*/
public static voi
File descriptors are represented by the C int type. Not using a special type is often considered odd, but is, historically, the Unix way. Each Linux process has a maximum number of files th