     START-INFO-DIR-ENTRY
     * Autoconf: (autoconf-ru).       óÏÚÄÁÎÉÅ ÓËÒÉÐÔÏ× ËÏÎÆÉÇÕÒÁÃÉÉ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×
     END-INFO-DIR-ENTRY

Autoconf: óÏÚÄÁÎÉÅ ÓËÒÉÐÔÏ× Á×ÔÏÍÁÔÉÞÅÓËÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ, Á×ÔÏÒ David MacKenzie.

üÔÏÔ ÄÏËÕÍÅÎÔ ÏÐÉÓÙ×ÁÅÔ GNU Autoconf --- ÐÁËÅÔ ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÏ× ÄÌÑ ËÏÎÆÉÇÕÒÁÃÉÉ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ÉÓÐÏÌØÚÕÑ ÛÁÂÌÏÎÙ É ÐÁËÅÔ ÍÁËÒÏÓÏ× ÎÁ ÑÚÙËÅ m4.

Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998 Free Software Foundation, Inc.

ðÅÒÅ×ÏÄ ïÔÔ áÌÅËÓÅÊ (C) 2000.

÷ÙÞÉÔÁÎÏ É ÓËÏÒÒÅËÔÉÒÏ×ÁÎÏ by Alexey Mahotkin <alexm@hsys.msk.ru> 2000

òÁÚÒÅÛÁÅÔÓÑ ÓÏÚÄÁ×ÁÔØ É ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÎÅ ÉÚÍÅÎÅÎÎÙÅ ËÏÐÉÉ ÜÔÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á ÓÏÈÒÁÎÑÑ ×Ï ×ÓÅÈ ËÏÐÉÑÈ Õ×ÅÄÏÍÌÅÎÉÅ ÏÂ Á×ÔÏÒÓËÉÈ ÐÒÁ×ÁÈ É ÄÁÎÎÏÅ Õ×ÅÄÏÍÌÅÎÉÅ.

òÁÚÒÅÛÁÅÔÓÑ ËÏÐÉÒÏ×ÁÔØ É ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÉÚÍÅÎÅÎÎÙÅ ËÏÐÉÉ ÜÔÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á, ÉÓÐÏÌØÚÕÑ ÕÓÌÏ×ÉÑ ÐÒÉÍÅÎÑÅÍÙÅ ÄÌÑ Ô×ÅÒÄÙÈ ËÏÐÉÊ, ÏÂÅÓÐÅÞÉ×ÁÑ ÞÔÏÂÙ ÒÁÂÏÔÁ ×ÙÐÏÌÎÅÎÎÁÑ ÎÁ ÏÓÎÏ×Å ÄÁÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á ÒÁÓÐÒÏÓÔÒÁÎÑÌÁÓØ Ó Õ×ÅÄÏÍÌÅÎÉÅÍ, ÁÎÁÌÏÇÉÞÎÙÍ ÔÅËÕÝÅÍÕ.

òÁÚÒÅÛÁÅÔÓÑ ËÏÐÉÒÏ×ÁÔØ É ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÐÅÒÅ×ÏÄÙ ÜÔÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á ÎÁ ÄÒÕÇÉÅ ÑÚÙËÉ, ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÕÓÌÏ×ÉÊ ÐÒÉ×ÅÄÅÎÎÙÈ ÄÌÑ ÉÚÍÅÎÅÎÎÙÈ ×ÅÒÓÉÊ ÜÔÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ Õ×ÅÄÏÍÌÅÎÉÑ Ï ÐÒÁ×ÁÈ, ËÏÔÏÒÏÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÉ×ÅÄÅÎÏ × ÐÅÒÅ×ÏÄÅ, ÕÔ×ÅÒÖÄÅÎÎÏÍ æÏÎÄÏÍ.

üÔÏÔ ÆÁÊÌ ÏÐÉÓÙ×ÁÅÔ GNU Autoconf--- ÐÁËÅÔ ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÏ× ÄÌÑ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÁËÅÔÏ× Ó ÉÓÈÏÄÎÙÍ ËÏÄÏÍ, ÉÓÐÏÌØÚÕÀÝÉÊ ÛÁÂÌÏÎÙ É ÎÁÂÏÒÙ ÍÁËÒÏÓÏ× ÎÁ ÑÚÙËÅ m4. ÷ÅÒÓÉÑ ÄÏËÕÍÅÎÔÁ 2.13, ÏÐÉÓÙ×ÁÅÔ Autoconf ×ÅÒÓÉÉ 2.13.

÷×ÅÄÅÎÉÅ
********

     æÉÚÉË, ÉÎÖÅÎÅÒ É ÓÐÅÃÉÁÌÉÓÔ ÐÏ ËÏÍÐØÀÔÅÒÁÍ ÓÐÏÒÉÌÉ Ï ÐÒÉÒÏÄÅ
     âÏÇÁ. ëÏÎÅÞÎÏ, ÏÎ ÂÙÌ æÉÚÉËÏÍ, ÓËÁÚÁÌ ÆÉÚÉË, ÐÏÓËÏÌØËÕ × ÎÁÞÁÌÅ
     ô×ÏÒÅÎÉÑ âÏÇ ÓÏÚÄÁÌ ó×ÅÔ; É ×Ù ÚÎÁÅÔÅ, ÅÓÔØ ÕÒÁ×ÎÅÎÉÑ íÁËÓ×ÅÌÌÁ,
     Ä×ÏÊÎÁÑ ÐÒÉÒÏÄÁ ÜÌÅËÔÒÏÍÁÇÎÉÔÎÙÈ ×ÏÌÎ, ÕÒÁ×ÎÅÎÉÑ ÏÔÎÏÓÉÔÅÌØÎÏÓÔÉ...
     "ïÎ ÂÙÌ éÎÖÅÎÅÒÏÍ!" -- ÓËÁÚÁÌ ÉÎÖÅÎÅÒ, ÐÏÓËÏÌØËÕ ÄÏ ÓÏÚÄÁÎÉÑ Ó×ÅÔÁ, âÏÇ
     ÒÁÚÄÅÌÉÌ èÁÏÓ ÎÁ úÅÍÌÀ É ÷ÏÄÕ; ÎÕÖÎÏ ÂÙÔØ ÎÁÓÔÏÑÝÉÍ ÉÎÖÅÎÅÒÏÍ, ÞÔÏÂÙ ÏÂÒÁÂÏÔÁÔØ
     ÏÇÒÏÍÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÇÒÑÚÉ É ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ÒÁÚÄÅÌÉÔØ Ô×ÅÒÄÙÅ ×ÅÝÅÓÔ×Á
     ÏÔ ÖÉÄËÉÈ... ëÏÍÐØÀÔÅÒÎÙÊ ÓÐÅÃÉÁÌÉÓÔ ×ÏÓËÌÉËÎÕÌ: á ËÁË ×Ù ÄÕÍÁÅÔÅ,
     ÏÔËÕÄÁ ×ÚÑÌÓÑ ÈÁÏÓ?

     ---Anonymous

Autoconf--- ÜÔÏ ÕÔÉÌÉÔÁ ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÏ× ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÅ Á×ÔÏÍÁÔÉÞÅÓËÉ ËÏÎÆÉÇÕÒÉÒÕÀÔ ÐÁËÅÔÙ Ó ÉÓÈÏÄÎÙÍ ËÏÄÏÍ ÔÁË, ÞÔÏÂÙ ÏÎÉ ÍÏÇÌÉ ÒÁÂÏÔÁÔØ ÎÁ ÍÎÏÖÅÓÔ×Å UNIX-ÐÏÄÏÂÎÙÈ ÓÉÓÔÅÍ.  óËÒÉÐÔÙ ÎÁÓÔÒÏÊËÉ, ÓÏÚÄÁÎÎÙÅ Ó ÐÏÍÏÝØÀ Autoconf, ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÎÅ ÚÁ×ÉÓÑÔ ÏÔ Autoconf, ÔÁË ÞÔÏ Autoconf ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÄÏÌÖÅÎ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎ Õ ÐÏÌØÚÏ×ÁÔÅÌÑ.

óËÒÉÐÔÙ ËÏÎÆÉÇÕÒÁÃÉÉ, ÓÏÚÄÁÎÎÙÅ Autoconf, ÐÒÉ ÒÁÂÏÔÅ ÎÅ ÔÒÅÂÕÀÔ ×ÍÅÛÁÔÅÌØÓÔ×Á ÐÏÌØÚÏ×ÁÔÅÌÑ; ÏÂÙÞÎÏ ÏÎÉ ÄÁÖÅ ÎÅ ÔÒÅÂÕÀÔ, ÞÔÏÂÙ ÂÙÌÉ ÚÁÄÁÎÙ ÁÒÇÕÍÅÎÔÙ, ÕËÁÚÙ×ÁÀÝÉÅ ÔÉÐ ÓÉÓÔÅÍÙ.  ÷ÍÅÓÔÏ ÜÔÏÇÏ, ÔÁËÉÅ ÓËÒÉÐÔÙ ÔÅÓÔÉÒÕÀÔ ÎÁÌÉÞÉÅ ËÁÖÄÏÇÏ ÓÒÅÄÓÔ×Á, ËÏÔÏÒÏÅ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ ÄÁÎÎÏÍÕ ÐÁËÅÔÕ.  (äÏ ×ÙÐÏÌÎÅÎÉÑ ËÁÖÄÏÊ ÉÚ ÐÒÏ×ÅÒÏË, ÓËÒÉÐÔÙ ÐÅÞÁÔÁÀÔ ÏÄÎÏÓÔÒÏÞÎÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÔÏÍ, ËÁËÕÀ ÉÍÅÎÎÏ ×ÏÚÍÏÖÎÏÓÔØ ÏÎÉ ÐÒÏ×ÅÒÑÀÔ, ÔÁË ÞÔÏ ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÂÕÄÅÔ ÓÉÌØÎÏ ÓËÕÞÁÔØ, ÏÖÉÄÁÑ ËÏÎÃÁ ÒÁÂÏÔÙ ÓËÒÉÐÔÏ×). ÷ ÒÅÚÕÌØÔÁÔÅ ÜÔÉ ÓËÒÉÐÔÙ ÈÏÒÏÛÏ ÓÐÒÁ×ÌÑÀÔÓÑ Ó ÓÉÓÔÅÍÁÍÉ, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÇÉÂÒÉÄÁÍÉ ÉÌÉ ÓÐÅÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÍÉ ×ÁÒÉÁÎÔÁÍÉ ÂÏÌØÛÉÎÓÔ×Á ×ÉÄÏ× UNIX.  ôÁËÉÍ ÏÂÒÁÚÏÍ, ÐÒÏÐÁÄÁÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔØ × ÓÏÐÒÏ×ÏÖÄÅÎÉÉ ÆÁÊÌÏ× ÓÏ ÓÐÉÓËÏÍ ×ÓÅÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ×ÓÅÈ ×ÅÒÓÉÊ ËÁÖÄÏÇÏ ×ÁÒÉÁÎÔÁ UNIX.

äÌÑ ËÁÖÄÏÇÏ ÐÁËÅÔÁ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔ Autoconf, ÉÚ ÛÁÂÌÏÎÁ ÓÏÚÄÁÅÔÓÑ ÓËÒÉÐÔ ÎÁÓÔÒÏÊËÉ, ËÏÔÏÒÙÊ ÐÅÒÅÞÉÓÌÑÅÔ ÓÉÓÔÅÍÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, × ËÏÔÏÒÙÈ ÎÕÖÄÁÅÔÓÑ ÄÁÎÎÙÊ ÐÁËÅÔ ÉÌÉ ËÏÔÏÒÙÅ ÏÎ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ.  ðÏÓÌÅ ÔÏÇÏ, ËÁË ËÏÄ ÎÁ ÑÚÙËÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÒÁÓÐÏÚÎÁÀÝÉÊ É ÏÂÒÁÂÁÔÙ×ÁÀÝÉÊ ÔÕ ÉÌÉ ÉÎÕÀ ×ÏÚÍÏÖÎÏÓÔØ, ÎÁÐÉÓÁÎ, Autoconf ÐÏÚ×ÏÌÑÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏÔ ËÏÄ ×Ï ×ÓÅÈ ÐÁËÅÔÁÈ, ËÏÔÏÒÙÅ ÍÏÇÕ ÉÓÐÏÌØÚÏ×ÁÔØ (ÉÌÉ ÎÕÖÄÁÀÔÓÑ) × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ×ÏÚÍÏÖÎÏÓÔÉ.  åÓÌÉ ÐÏÚÖÅ ÐÏ ËÁËÉÍ-ÔÏ ÐÒÉÞÉÎÁÍ ÐÏÎÁÄÏÂÉÔÓÑ ÉÚÍÅÎÉÔØ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÔÏ ÉÚÍÅÎÅÎÉÑ ÎÅÏÂÈÏÄÉÍÏ ÂÕÄÅÔ ×ÎÅÓÔÉ ÔÏÌØËÏ × ÏÄÎÏ ÍÅÓÔÏ; ×ÓÅ ÓËÒÉÐÔÙ ÎÁÓÔÒÏÊËÉ ÍÏÇÕÔ ÂÙÔØ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÅÒÅÓÏÚÄÁÎÙ, ÞÔÏÂÙ ÏÔÒÁÚÉÔØ ÉÚÍÅÎÅÎÉÑ ËÏÄÁ.

ðÁËÅÔ Metaconfig ÐÒÅÄÎÁÚÎÁÞÅÎ ÐÒÁËÔÉÞÅÓËÉ ÄÌÑ ÔÅÈ ÖÅ ÃÅÌÅÊ, ÞÔÏ É Autoconf, ÎÏ ÓÏÚÄÁ×ÁÅÍÙÅ ÓËÒÉÐÔÙ ÔÒÅÂÕÀÔ ÉÎÔÅÒÁËÔÉ×ÎÏÇÏ ×ÚÁÉÍÏÄÅÊÓÔ×ÉÑ Ó ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ÞÔÏ ÄÏ×ÏÌØÎÏ ÎÅÕÄÏÂÎÏ ÐÒÉ ËÏÎÆÉÇÕÒÁÃÉÉ ÂÏÌØÛÉÈ ÐÒÏÇÒÁÍÍÎÙÈ ÐÒÏÅËÔÏ×.  ÷ ÏÔÌÉÞÉÅ ÏÔ ÓËÒÉÐÔÏ× Metaconfig, ÓËÒÉÐÔÙ Autoconf ÍÏÇÕÔ ÐÏÄÄÅÒÖÉ×ÁÔØ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÀ, ÅÓÌÉ ËÔÏ-ÔÏ ÐÏÚÁÂÏÔÉÔÓÑ Ï ÅÅ ÐÏÄÄÅÒÖËÅ ÎÁ ÄÁÎÎÏÊ ÓÉÓÔÅÍÅ.

óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÚÁÄÁÞ, ÏÔÎÏÓÑÝÉÈÓÑ Ë ÓÏÚÄÁÎÉÀ ÐÅÒÅÎÏÓÉÍÏÇÏ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ËÏÔÏÒÙÅ × ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ ÎÅÌØÚÑ ÒÅÛÉÔØ ÓÒÅÄÓÔ×ÁÍÉ Autoconf. óÒÅÄÉ ÎÉÈ--- Á×ÔÏÍÁÔÉÞÅÓËÏÅ ÓÏÚÄÁÎÉÅ ÆÁÊÌÏ× Makefile ÓÏ ×ÓÅÍÉ ÎÅÏÂÈÏÄÉÍÙÍÉ ÓÔÁÎÄÁÒÔÎÙÍÉ ÃÅÌÑÍÉ, Á ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÅ ÚÁÍÅÎÙ ÓÔÁÎÄÁÒÔÎÙÈ ÂÉÂÌÉÏÔÅÞÎÙÈ ÆÕÎËÃÉÊ É ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× × ÔÅÈ ÓÉÓÔÅÍÁÈ, × ËÏÔÏÒÙÈ ÜÔÉ ÆÕÎËÃÉÉ ÉÌÉ ÆÁÊÌÙ ÏÔÓÕÔÓÔ×ÕÀÔ. ïÄÎÁËÏ ÒÁÂÏÔÁ × ÜÔÏÍ ÎÁÓÔÒÏÅÎÉÉ ×ÅÄÅÔÓÑ É ÜÔÉ ×ÏÚÍÏÖÎÏÓÔÉ ÍÏÇÕÔ ÐÏÑ×ÉÔØÓÑ × ÂÕÄÕÝÉÈ ×ÅÒÓÉÑÈ.

Autoconf ÎÁ×ÑÚÙ×ÁÅÔ ÎÅËÏÔÏÒÙÅ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ÉÍÅÎÁ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ × ÄÉÒÅËÔÉ×ÁÈ #ifdef ÐÒÏÇÒÁÍÍ ÎÁ ÑÚÙËÅ C (see éÎÄÅËÓ ÓÉÍ×ÏÌÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ).

äÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÏ× Autoconf ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÑ ÐÒÏÇÒÁÍÍÙ GNU m4.  ïÎ ÐÏÌØÚÕÅÔÓÑ ×ÏÚÍÏÖÎÏÓÔÑÍÉ, ËÏÔÏÒÙÈ ÎÅÔ × ÎÅËÏÔÏÒÙÈ UNIX-×ÅÒÓÉÑÈ ÐÒÏÇÒÁÍÍÙ m4. ïÎ ÔÁËÖÅ ÐÒÅ×ÙÛÁÅÔ ×ÎÕÔÒÅÎÎÉÅ ÏÇÒÁÎÉÞÅÎÉÑ ÎÅËÏÔÏÒÙÈ ×ÅÒÓÉÊ m4, ×ËÌÀÞÁÑ GNU m4 ×ÅÒÓÉÉ 1.0. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÅÒÓÉÀ 1.1 (ÉÌÉ ÂÏÌÅÅ ÐÏÚÄÎÀÀ) ÐÒÏÇÒÁÍÍÙ GNU m4. ÷ÅÒÓÉÉ 1.3 É ÂÏÌÅÅ ÐÏÚÄÎÉÅ ÂÕÄÕÔ ÒÁÂÏÔÁÔØ ÇÏÒÁÚÄÏ ÂÙÓÔÒÅÅ, ÞÅÍ ×ÅÒÓÉÉ 1.1 ÉÌÉ 1.2.

See ïÂÎÏ×ÌÅÎÉÅ, ÇÄÅ ÏÐÉÓÁÎÏ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 1. See éÓÔÏÒÉÑ, ÇÄÅ ÏÐÉÓÁÎÁ ÉÓÔÏÒÉÑ ÒÁÚÒÁÂÏÔËÉ Autoconf. See ÷ÏÐÒÏÓÙ, ÇÄÅ ÄÁÀÔÓÑ ÏÔ×ÅÔÙ ÎÁ ÎÅËÏÔÏÒÙÅ ÏÂÝÉÅ ×ÏÐÒÏÓÙ ÏÂ Autoconf.

óÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ É Ó×ÏÉ ÐÏÖÅÌÁÎÉÑ ÄÌÑ Autoconf ÐÏÓÙÌÁÊÔÅ ÐÏ ÁÄÒÅÓÕ bug-gnu-utils@prep.ai.mit.edu. ÷ËÌÀÞÉÔÅ × ÓÏÏÂÝÅÎÉÅ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf, ËÏÔÏÒÙÊ ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ×ÙÐÏÌÎÉ× ËÏÍÁÎÄÕ autoconf --version.

óÏÚÄÁÎÉÅ ÓËÒÉÐÔÏ× configure
***************************

óËÒÉÐÔÙ ËÏÎÆÉÇÕÒÁÃÉÉ, ÓÏÚÄÁ×ÁÅÍÙÅ Autoconf, ÐÏ ÐÒÉÎÑÔÙÍ ÓÏÇÌÁÛÅÎÉÑÍ ÎÁÚÙ×ÁÀÔÓÑ configure.  ðÒÉ ÚÁÐÕÓËÅ configure ÓÏÚÄÁÅÔ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ×, ÚÁÍÅÎÑÑ × ÎÉÈ ÐÁÒÁÍÅÔÒÙ ËÏÎÆÉÇÕÒÁÃÉÉ ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÉÓÔÅÍÅ ÚÎÁÞÅÎÉÑ. configure ÓÏÚÄÁÅÔ ÓÌÅÄÕÀÝÉÅ ÆÁÊÌÙ:

  * ÏÄÉÎ ÉÌÉ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× Makefile, ÐÏ ÏÄÎÏÍÕ ÎÁ ËÁÖÄÙÊ ÐÏÄËÁÔÁÌÏÇ ÐÁËÅÔÁ (see ðÏÄÓÔÁÎÏ×ËÉ × Makefile);

  * ÅÓÌÉ ÚÁÄÁÎÏ, ÓÏÚÄÁÅÔÓÑ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÄÌÑ ÑÚÙËÁ C, ÉÍÑ ËÏÔÏÒÏÇÏ ÍÏÖÎÏ ÚÁÄÁÔØ ÐÒÉ ÓÏÚÄÁÎÉÉ ÓËÒÉÐÔÁ É ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÄÉÒÅËÔÉ×Ù #define (see úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ËÏÎÆÉÇÕÒÁÃÉÉ);

  * ÓËÒÉÐÔ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ Ó ÉÍÅÎÅÍ config.status, ËÏÔÏÒÙÊ ÐÒÉ ÚÁÐÕÓËÅ ÚÁÎÏ×Ï ÓÏÚÄÁÓÔ ×ÙÛÅÐÅÒÅÞÉÓÌÅÎÎÙÅ ÆÁÊÌÙ (see úÁÐÕÓË config.status);

  * ÓËÒÉÐÔ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ Ó ÉÍÅÎÅÍ config.cache, ËÏÔÏÒÙÊ ÓÏÈÒÁÎÑÅÔ ÒÅÚÕÌØÔÁÔÙ ×ÙÐÏÌÎÅÎÉÑ ÍÎÏÇÉÈ ÔÅÓÔÏ× (see ëÜÛ-ÆÁÊÌÙ);

  * ÆÁÊÌ Ó ÉÍÅÎÅÍ config.log, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ×ÓÅ ÓÏÏÂÝÅÎÉÑ, ×ÙÄÁÎÎÙÅ ËÏÍÐÉÌÑÔÏÒÁÍÉ. üÔÏÔ ÆÁÊÌ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÒÉ ÏÔÌÁÄËÅ, ÅÓÌÉ configure ÒÁÂÏÔÁÅÔ ÎÅÐÒÁ×ÉÌØÎÏ.

äÌÑ ÔÏÇÏ, ÞÔÏÂÙ Ó ÐÏÍÏÝØÀ Autoconf ÓÏÚÄÁÔØ ÓËÒÉÐÔ configure, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÎÁÐÉÓÁÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ Ó ÉÍÅÎÅÍ configure.in É ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ autoconf. åÓÌÉ ×Ù ÎÁÐÉÛÉÔÅ ÓÏÂÓÔ×ÅÎÎÙÊ ËÏÄ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ ÓÉÓÔÅÍÙ, × ÄÏÐÏÌÎÅÎÉÅ Ë ÐÏÓÔÁ×ÌÑÅÍÙÍ Ó Autoconf, ÔÏ ×ÁÍ ÐÒÉÄÅÔÓÑ ÚÁÐÉÓÁÔØ ÅÇÏ × ÆÁÊÌÙ Ó ÉÍÅÎÁÍÉ aclocal.m4 É acsite.m4. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÄÉÒÅËÔÉ×Ù #define, ÔÏ ×Ù ÔÁËÖÅ ÄÏÌÖÎÙ ÓÏÚÄÁÔØ ÆÁÊÌ acconfig.h, É ×Ù ÓÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ Ó ÐÁËÅÔÏÍ ÓÏÚÄÁÎÎÙÊ Ó ÐÏÍÏÝØÀ Autoconf ÆÁÊÌ config.h.in.

÷ÏÔ ÄÉÁÇÒÁÍÍÁ, ÐÏËÁÚÙ×ÁÀÝÁÑ, ËÁË ÓÏÚÄÁÀÔÓÑ ÆÁÊÌÙ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉ ËÏÎÆÉÇÕÒÁÃÉÉ.  ÷ÙÐÏÌÎÑÅÍÙÅ ÐÒÏÇÒÁÍÍÙ ÏÂÏÚÎÁÞÅÎÙ ÓÕÆÆÉËÓÏÍ *. îÅÏÂÑÚÁÔÅÌØÎÙÅ ÆÁÊÌÙ ×ÚÑÔÙ × Ë×ÁÄÒÁÔÎÙÅ ÓËÏÂËÉ ([]). ðÒÏÇÒÁÍÍÙ autoconf É autoheader ÔÁËÖÅ ÞÉÔÁÀÔ ÕÓÔÁÎÏ×ÌÅÎÎÙÅ ÆÁÊÌÙ Ó ÍÁËÒÏÓÁÍÉ Autoconf (ÏÂÒÁÂÁÔÙ×ÁÑ ÆÁÊÌ autoconf.m4).

æÁÊÌÙ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉ ÐÏÄÇÏÔÏ×ËÅ ÐÒÏÇÒÁÍÍÎÏÇÏ ÐÁËÅÔÁ Ë ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÀ:

     æÁÊÌÙ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× --> [autoscan*] --> [configure.scan] --> configure.in

     configure.in --.   .------> autoconf* -----> configure
                    +---+
     [aclocal.m4] --+   `---.
     [acsite.m4] ---'       |
                            +--> [autoheader*] -> [config.h.in]
     [acconfig.h] ----.     |
                      +-----'
     [config.h.top] --+
     [config.h.bot] --'

     Makefile.in -------------------------------> Makefile.in

æÁÊÌÙ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÒÏÇÒÁÍÍÎÏÇÏ ÐÁËÅÔÁ:

                            .-------------> config.cache
     configure* ------------+-------------> config.log
                            |
     [config.h.in] -.       v            .-> [config.h] -.
                    +--> config.status* -+               +--> make*
     Makefile.in ---'                    `-> Makefile ---'

îÁÐÉÓÁÎÉÅ configure.in
======================

äÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÁ configure ÄÌÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÐÁËÅÔÁ, ÓÏÚÄÁÊÔÅ ÆÁÊÌ Ó ÉÍÅÎÅÍ configure.in, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ×ÙÚÏ×Ù ÍÁËÒÏÓÏ× Autoconf, ËÏÔÏÒÙÅ ÐÒÏ×ÅÒÑÀÔ ÓÉÓÔÅÍÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÅ ÎÕÖÎÙ ×ÁÛÅÍÕ ÐÁËÅÔÕ ÉÌÉ ËÏÔÏÒÙÅ ÏÎ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ.  äÌÑ ÍÎÏÇÉÈ ÔÁËÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ÍÁËÒÏÓÙ Autoconf ÕÖÅ ÎÁÐÉÓÁÎÙ; see óÕÝÅÓÔ×ÕÀÝÉÅ ÔÅÓÔÙ, ÇÄÅ ÎÁÈÏÄÉÔÓÑ ÉÈ ÏÐÉÓÁÎÉÅ.  äÌÑ ÂÏÌØÛÉÎÓÔ×Á ÄÒÕÇÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÛÁÂÌÏÎÎÙÅ ÍÁËÒÏÓÙ Autoconf, ÎÁ ÂÁÚÅ ËÏÔÏÒÙÈ ÍÏÖÎÏ ÓÏÚÄÁÔØ ÓÐÅÃÉÁÌØÎÙÅ ÐÒÏ×ÅÒËÉ; see îÁÐÉÓÁÎÉÅ ÔÅÓÔÏ×, ÇÄÅ ÜÔÏ ÏÐÉÓÁÎÏ. äÌÑ ÏÓÏÂÏ ÈÉÔÒÏÕÍÎÙÈ ÉÌÉ ÓÐÅÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ, × ÆÁÊÌ configure.in ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ ×ËÌÀÞÉÔØ ÓÐÅÃÉÁÌØÎÏ ÎÁÐÉÓÁÎÎÙÅ ÓËÒÉÐÔÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ.  ðÒÏÇÒÁÍÍÁ autoscan ÍÏÖÅÔ ÏËÁÚÁÔØ ×ÁÍ ÈÏÒÏÛÕÀ ÐÏÍÏÝØ ÎÁ ÐÅÒ×ÙÈ ÐÏÒÁÈ, ÐÒÉ ÓÏÚÄÁÎÉÉ ÆÁÊÌÁ configure.in (see úÁÐÕÓË autoscan, ÇÄÅ ÏÐÉÓÁÎÁ ÜÔÁ ÐÒÏÇÒÁÍÍÁ).

úÁ ÎÅËÏÔÏÒÙÍÉ ÉÓËÌÀÞÅÎÉÑÍÉ, ÐÏÒÑÄÏË ×ÙÚÏ×Ï× ÍÁËÒÏÓÏ× Autoconf × configure.in ÎÅ ×ÁÖÅÎ.  ëÁÖÄÙÊ ÆÁÊÌ configure.in ÄÏÌÖÅÎ × ÓÁÍÏÍ ÎÁÞÁÌÅ ÓÏÄÅÒÖÁÔØ ×ÙÚÏ× ÍÁËÒÏÓÁ AC_INIT, Á ÔÁËÖÅ ×ÙÚÏ× ÍÁËÒÏÓÁ AC_OUTPUT × ÓÁÍÏÍ ËÏÎÃÅ (see ÷Ù×ÏÄ). ôÁËÖÅ ÎÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ ÐÏÌÁÇÁÀÔÓÑ ÎÁ ÔÏ, ÞÔÏ ÄÒÕÇÉÅ ÍÁËÒÏÓÙ ÂÙÌÉ ×ÙÚ×ÁÎÙ ÐÅÒ×ÙÍÉ, ÐÏÓËÏÌØËÕ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÒÉÎÑÔØ ÒÅÛÅÎÉÅ, ÏÎÉ ÐÒÏ×ÅÒÑÀÔ ÕÖÅ ÕÓÔÁÎÏ×ÌÅÎÎÙÅ ÚÎÁÞÅÎÉÑ ÐÅÒÅÍÅÎÎÙÈ.  ôÁËÉÅ ÍÁËÒÏÓÙ ÏÔÄÅÌØÎÏ ÏÔÍÅÞÅÎÙ × ÏÐÉÓÁÎÉÉ (see óÕÝÅÓÔ×ÕÀÝÉÅ ÔÅÓÔÙ), Á ÐÒÉ ÓÏÚÄÁÎÉÉ ÓËÒÉÐÔÁ configure ×ÙÄÁÅÔÓÑ ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ, ÅÓÌÉ ×Ù ÎÁÒÕÛÉÌÉ ÐÏÒÑÄÏË ×ÙÚÏ×Á ÍÁËÒÏÓÏ×.

äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÁÛÉ ÆÁÊÌÙ ÂÙÌÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙ É ÅÄÉÎÏÏÂÒÁÚÎÙ, ÍÙ ÐÒÉ×ÅÄÅÍ ÖÅÌÁÔÅÌØÎÙÊ ÐÏÒÑÄÏË ×ÙÚÏ×Á ÍÁËÒÏÓÏ× Autoconf.  ÷ÏÏÂÝÅ ÇÏ×ÏÒÑ, ÔÏ, ÞÔÏ ÎÁÈÏÄÉÔÓÑ ÂÌÉÖÅ Ë ËÏÎÃÕ ÓÐÉÓËÁ, ÍÏÖÅÔ ÚÁ×ÉÓÅÔØ ÏÔ ÔÏÇÏ, ÞÔÏ ÎÁÈÏÄÉÔÓÑ × ÎÁÞÁÌÅ ÓÐÉÓËÁ.  îÁÐÒÉÍÅÒ, ÂÉÂÌÉÏÔÅÞÎÙÅ ÆÕÎËÃÉÉ ÍÏÇÕÔ ÚÁ×ÉÓÅÔØ ÏÔ ÏÐÒÅÄÅÌÅÎÉÊ ÔÉÐÏ× É ÂÉÂÌÉÏÔÅË.

     AC_INIT(FILE)
     ðÒÏ×ÅÒËÁ ÐÒÏÇÒÁÍÍ
     ðÒÏ×ÅÒËÁ ÂÉÂÌÉÏÔÅË
     ðÒÏ×ÅÒËÁ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×
     ðÒÏ×ÅÒËÁ ÏÐÒÅÄÅÌÅÎÉÊ ÔÉÐÏ×
     ðÒÏ×ÅÒËÁ ÓÔÒÕËÔÕÒ
     ðÒÏ×ÅÒËÁ ÈÁÒÁËÔÅÒÉÓÔÉË ËÏÍÐÉÌÑÔÏÒÁ
     ðÒÏ×ÅÒËÁ ÂÉÂÌÉÏÔÅÞÎÙÈ ÆÕÎËÃÉÊ
     ðÒÏ×ÅÒËÁ ÓÉÓÔÅÍÎÙÈ ÓÅÒ×ÉÓÏ×
     AC_OUTPUT([FILE...])

ìÕÞÛÅ ×ÓÅÇÏ ÐÏÍÅÝÁÔØ ËÁÖÄÙÊ ×ÙÚÏ× ÍÁËÒÏÓÁ ÎÁ ÏÔÄÅÌØÎÕÀ ÓÔÒÏËÕ ÆÁÊÌÁ configure.in. âÏÌØÛÉÎÓÔ×Ï ÍÁËÒÏÓÏ× ÎÅ ÄÏÂÁ×ÌÑÀÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÐÅÒÅ×ÏÄÏ× ÓÔÒÏË; ÏÎÉ ÐÏÌÁÇÁÀÔ, ÞÔÏ ÐÏÓÌÅ ËÁÖÄÏÇÏ ×ÙÚÏ×Á ÍÁËÒÏÓÁ ÎÁÈÏÄÉÔÓÑ ÎÏ×ÁÑ ÓÔÒÏËÁ.  üÔÏ ÐÏÚ×ÏÌÑÅÔ ÓÄÅÌÁÔØ ÓËÒÉÐÔ configure ÞÉÔÁÂÅÌØÎÅÅ, ÎÅ ÄÏÂÁ×ÌÑÑ ÎÅÎÕÖÎÙÈ ÐÕÓÔÙÈ ÓÔÒÏË.  íÏÖÎÏ ÓÐÏËÏÊÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ÐÅÒÅÍÅÎÎÙÅ ÏËÒÕÖÅÎÉÑ × ÔÏÊ ÖÅ ÓÔÒÏËÅ, ÞÔÏ É ×ÙÚÏ× ÍÁËÒÏÓÁ, ÐÏÔÏÍÕ ÞÔÏ ËÏÍÁÎÄÎÙÅ ÐÒÏÃÅÓÓÏÒÙ ÐÏÚ×ÏÌÑÀÔ ×ÙÐÏÌÎÑÔØ ÐÒÉÓ×ÁÉ×ÁÎÉÅ × ÏÄÎÏÊ ÓÔÒÏËÅ, ÂÅÚ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÐÕÓÔÙÈ ÓÔÒÏË.

ðÒÉ ×ÙÚÏ×Å ÍÁËÒÏÓÏ× Ó ÁÒÇÕÍÅÎÔÁÍÉ ÍÅÖÄÕ ÏÔËÒÙ×ÁÀÝÅÊ ÓËÏÂËÏÊ É ÎÁÚ×ÁÎÉÅÍ ÍÁËÒÏÓÁ ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÐÒÏÂÅÌÏ×.  áÒÇÕÍÅÎÔÙ ÍÏÇÕÔ ÚÁÎÉÍÁÔØ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÅÓÌÉ ÏÎÉ ÚÁËÌÀÞÅÎÙ × ``ËÁ×ÙÞËÉ'' ÑÚÙËÁ m4---  [ É ]. åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÄÌÉÎÎÁÑ ÓÔÒÏËÁ, ÎÁÐÒÉÍÅÒ, ÓÐÉÓÏË ÉÍÅÎ ÆÁÊÌÏ×, ÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÉÍ×ÏÌ ÏÂÒÁÔÎÏÇÏ ÓÌÜÛÁ × ËÏÎÃÅ ÓÔÒÏËÉ ÄÌÑ ÕËÁÚÁÎÉÑ, ÞÔÏ ÓÐÉÓÏË ÐÒÏÄÏÌÖÁÅÔÓÑ ÎÁ ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ (ÜÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÒÅÁÌÉÚÕÅÔÓÑ ËÏÍÁÎÄÎÙÍ ÐÒÏÃÅÓÓÏÒÏÍ, ÂÅÚ ÐÒÉ×ÌÅÞÅÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ Autoconf).

îÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ ÏÔÒÁÂÁÔÙ×ÁÀÔ Ä×Á ÓÌÕÞÁÑ--- ËÏÇÄÁ ÚÁÄÁÎÎÏÅ ÕÓÌÏ×ÉÅ ×ÙÐÏÌÎÑÅÔÓÑ É ËÏÇÄÁ ÕÓÌÏ×ÉÅ ÎÅ ×ÙÐÏÌÎÑÅÔÓÑ. ÷ ÎÅËÏÔÏÒÙÈ ÍÅÓÔÁÈ ×Ù ÍÏÖÅÔÅ ÚÁÈÏÔÅÔØ ÓÄÅÌÁÔØ ÞÔÏ-ÌÉÂÏ, ÅÓÌÉ ÕÓÌÏ×ÉÅ ×ÙÐÏÌÎÑÅÔÓÑ, É ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÔØ × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, É ÎÁÏÂÏÒÏÔ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÒÏÐÕÓÔÉÔØ ÄÅÊÓÔ×ÉÅ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÕÓÌÏ×ÉÑ, ÐÅÒÅÄÁÊÔÅ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ ÁÒÇÕÍÅÎÔÕ ACTION-IF-FOUND ÄÁÎÎÏÇÏ ÍÁËÒÏÓÁ. äÌÑ ÐÒÏÐÕÓËÁ ÄÅÊÓÔ×ÉÑ ÐÒÉ ÎÅ×ÙÐÏÌÎÅÎÉÉ ÕÓÌÏ×ÉÑ ÕÂÅÒÉÔÅ ÁÒÇÕÍÅÎÔ ACTION-IF-NOT-FOUND ÄÁÎÎÏÇÏ ÍÁËÒÏÓÁ, ×ËÌÀÞÁÑ ÐÒÅÄÛÅÓÔ×ÕÀÝÕÀ ÅÍÕ ÚÁÐÑÔÕÀ.

÷ ÆÁÊÌ configure.in ÍÏÖÎÏ ×ËÌÀÞÁÔØ ËÏÍÍÅÎÔÁÒÉÉ, ÎÁÞÉÎÁÑ ÉÈ ÓÏ ×ÓÔÒÏÅÎÎÏÇÏ ÍÁËÒÏÓÁ m4--- dnl, ËÏÔÏÒÙÊ ÏÔÂÒÁÓÙ×ÁÅÔ ÔÅËÓÔ ×ÐÌÏÔØ ÄÏ ÎÁÞÁÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ. üÔÉ ËÏÍÍÅÎÔÁÒÉÉ ÎÅ ÐÏÑ×ÑÔÓÑ × ÓÏÚÄÁÎÎÙÈ ÓËÒÉÐÔÁÈ configure. îÁÐÒÉÍÅÒ, ÐÏÌÅÚÎÏ ÎÁÞÉÎÁÔØ ÆÁÊÌÙ configure.in ÓÏ ÓÔÒÏËÉ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ ÔÁË:

     dnl ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÁ configure ÏÂÒÁÂÏÔÁÊÔÅ ÜÔÏÔ ÆÁÊÌ ÐÒÏÇÒÁÍÍÏÊ autoconf.

éÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ autoscan ÄÌÑ ÓÏÚÄÁÎÉÑ configure.in
==========================================================

ðÒÏÇÒÁÍÍÁ autoscan ÍÏÖÅÔ ÐÏÍÏÞØ ×ÁÍ × ÓÏÚÄÁÎÉÉ ÆÁÊÌÁ configure.in ÄÌÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÐÁËÅÔÁ. autoscan ×ÙÐÏÌÎÑÅÔ ÁÎÁÌÉÚ ÄÅÒÅ×Á ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ËÏÒÅÎØ ËÏÔÏÒÏÇÏ ÕËÁÚÁÎ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÉÌÉ ÓÏ×ÐÁÄÁÅÔ Ó ÔÅËÕÝÉÍ ËÁÔÁÌÏÇÏÍ. ðÒÏÇÒÁÍÍÁ ÉÝÅÔ × ÉÓÈÏÄÎÙÈ ÔÅËÓÔÁÈ ÓÌÅÄÙ ÏÂÙÞÎÙÈ ÐÒÏÂÌÅÍ Ó ÐÅÒÅÎÏÓÉÍÏÓÔØÀ É ÓÏÚÄÁÅÔ ÆÁÊÌ configure.scan, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÚÁÇÏÔÏ×ËÏÊ ÄÌÑ configure.in ÄÌÑ ÄÁÎÎÏÇÏ ÐÁËÅÔÁ.

÷Ù ÄÏÌÖÎÙ ÓÁÍÉ ÐÒÏÓÍÏÔÒÅÔØ ÆÁÊÌ configure.scan ÐÅÒÅÄ ÔÅÍ, ËÁË ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÅÇÏ × configure.in: ÓËÏÒÅÅ ×ÓÅÇÏ, ÏÎ ÂÕÄÅÔ ÎÕÖÄÁÔØÓÑ × ÎÅËÏÔÏÒÙÈ ÉÓÐÒÁ×ÌÅÎÉÑÈ. éÎÏÇÄÁ autoscan ×ÙÄÁÅÔ ÍÁËÒÏÓÙ × ÎÅÐÒÁ×ÉÌØÎÏÍ ÐÏÒÑÄËÅ, É ÐÏÜÔÏÍÕ autoconf ÂÕÄÅÔ ×ÙÄÁ×ÁÔØ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ; ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ×ÒÕÞÎÕÀ ÐÅÒÅÄ×ÉÎÕÔØ ÜÔÉ ÍÁËÒÏÓÙ.  ôÁËÖÅ, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ, ÞÔÏÂÙ ÐÁËÅÔ ÉÓÐÏÌØÚÏ×ÁÌ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÎÁÓÔÒÏÅË, ÔÏ ×Ù ÄÏÌÖÎÙ ÓÁÍÉ ÄÏÂÁ×ÉÔØ ×ÙÚÏ× ÍÁËÒÏÓÁ AC_CONFIG_HEADER (see úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ËÏÎÆÉÇÕÒÁÃÉÉ).  ÷ÁÍ ÔÁËÖÅ ÎÅÏÂÈÏÄÉÍÏ ÄÏÂÁ×ÉÔØ ÉÌÉ ÉÚÍÅÎÉÔØ ÎÅËÏÔÏÒÙÅ ÄÉÒÅËÔÉ×Ù ÐÒÅÐÒÏÃÅÓÓÏÒÁ #if × ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÚÁÓÔÁ×ÉÔØ ÅÅ ÒÁÂÏÔÁÔØ Ó Autoconf (see úÁÐÕÓË ifnames, ÇÄÅ ÏÐÉÓÁÎÁ ÐÒÏÇÒÁÍÍÁ, ËÏÔÏÒÁÑ ÐÏÍÏÖÅÔ ×ÁÍ ×ÙÐÏÌÎÉÔØ ÜÔÕ ÒÁÂÏÔÕ).

ðÒÏÇÒÁÍÍÁ autoscan ÉÓÐÏÌØÚÕÅÔ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× ÄÁÎÎÙÈ, ÞÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ, ËÁËÉÅ ÍÁËÒÏÓÙ ÓÌÅÄÕÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÉ ÏÂÎÁÒÕÖÅÎÉÉ ÏÐÒÅÄÅÌÅÎÎÙÈ ÓÉÍ×ÏÌÏ× × ÉÓÈÏÄÎÙÈ ÆÁÊÌÁÈ ÐÁËÅÔÁ.  üÔÉ ÆÁÊÌÙ ÄÁÎÎÙÈ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ×ÍÅÓÔÅ Ó ÄÉÓÔÒÉÂÕÔÉ×ÎÙÍÉ ÍÁËÒÏ-ÆÁÊÌÁÍÉ Autoconf É ÉÍÅÀÔ ÏÄÉÎÁËÏ×ÙÊ ÆÏÒÍÁÔ. ëÁÖÄÁÑ ÓÔÒÏËÁ ÓÏÓÔÏÉÔ ÉÚ ÓÉÍ×ÏÌÁ, ÐÒÏÂÅÌÏ× É ÉÍÅÎÉ ÍÁËÒÏÓÁ Autoconf, ËÏÔÏÒÏÅ ×ÙÄÁÅÔÓÑ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÚÁÄÁÎÎÙÊ ÓÉÍ×ÏÌ ÉÍÅÅÔÓÑ × ÉÓÈÏÄÎÙÈ ÔÅËÓÔÁÈ.  óÔÒÏËÉ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó ÓÉÍ×ÏÌÁ # Ñ×ÌÑÀÔÓÑ ËÏÍÍÅÎÔÁÒÉÑÍÉ.

autoscan ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ Õ ×ÁÓ ÕÓÔÁÎÏ×ÌÅÎÁ ÐÒÏÇÒÁÍÍÁ Perl. autoscan ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--help
     ÷ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--macrodir=DIR
     úÁÓÔÁ×ÌÑÅÔ ÐÒÏÇÒÁÍÍÕ ÉÓËÁÔØ ÆÁÊÌÙ ÄÁÎÎÙÈ × ËÁÔÁÌÏÇÅ DIR, Á ÎÅ × ËÁÔÁÌÏÇÅ, ËÕÄÁ ÐÒÏÉÚ×ÏÄÉÌÁÓØ ÕÓÔÁÎÏ×ËÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ AC_MACRODIR ÒÁ×ÎÙÍ ÐÕÔÉ Ë ÜÔÏÍÕ ËÁÔÁÌÏÇÕ; ÄÁÎÎÙÊ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ.

--verbose
     ÷ÙÄÁÅÔ ÉÍÅÎÁ ÉÓÓÌÅÄÕÅÍÙÈ ÆÁÊÌÏ× É ÐÏÔÅÎÃÉÁÌØÎÏ ÉÎÔÅÒÅÓÎÙÅ ÓÉÍ×ÏÌÙ, ÏÂÎÁÒÕÖÅÎÎÙÅ × ÜÔÉÈ ÆÁÊÌÁÈ.  ÷ÙÄÁÞÁ ÍÏÖÅÔ ÂÙÔØ ÄÏ×ÏÌØÎÏ ÏÂÛÉÒÎÏÊ.

--version
     ×ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

éÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ ifnames ÄÌÑ ÐÅÒÅÞÉÓÌÅÎÉÑ ÕÓÌÏ×ÎÙÈ ×ÙÒÁÖÅÎÉÊ
===================================================================

ðÒÏÇÒÁÍÍÁ ifnames ÍÏÖÅÔ ÐÏÍÏÞØ ÐÒÉ ÓÏÚÄÁÎÉÉ ÆÁÊÌÁ configure.in ÄÌÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÐÁËÅÔÁ.  ïÎÁ ×ÙÄÁÅÔ ÓÐÉÓÏË ÉÄÅÎÔÉÆÉËÁÔÏÒÏ×, ËÏÔÏÒÙÅ ÐÁËÅÔ ÕÖÅ ÉÓÐÏÌØÚÕÅÔ × ÕÓÌÏ×ÎÙÈ ×ÙÒÁÖÅÎÉÑÈ ÐÒÅÐÒÏÃÅÓÓÏÒÁ ÑÚÙËÁ ó. åÓÌÉ ×ÁÛÁ ÐÒÏÇÒÁÍÍÁ ÕÖÅ ÂÙÌÁ ÎÁÐÉÓÁÎÁ Ó ÕÞÅÔÏÍ ×ÏÚÍÏÖÎÏÇÏ ÐÅÒÅÎÏÓÁ ÎÁ ÄÒÕÇÉÅ ÐÌÁÔÆÏÒÍÙ, ÔÏ ÄÁÎÎÁÑ ÐÒÏÇÒÁÍÍÁ ÍÏÖÅÔ ÐÏÍÏÞØ ×ÁÍ ÏÐÒÅÄÅÌÉÔØ, ËÁËÉÅ ÐÒÏ×ÅÒËÉ ÎÅÏÂÈÏÄÉÍÏ ×ÙÐÏÌÎÉÔØ × configure. üÔÁ ÐÒÏÇÒÁÍÍÁ ÍÏÖÅÔ ÐÏÍÏÞØ ÚÁÐÏÌÎÉÔØ ÎÅËÏÔÏÒÙÅ ÐÒÏÂÅÌÙ × ÆÁÊÌÅ configure.in, ËÏÔÏÒÙÊ ÂÙÌ ÓÏÚÄÁÎ ÐÒÏÇÒÁÍÍÏÊ autoscan (see úÁÐÕÓË autoscan).

ðÒÏÇÒÁÍÍÁ ifnames ÏÂÒÁÂÁÔÙ×ÁÅÔ ×ÓÅ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÎÁ C, ÐÅÒÅÞÉÓÌÅÎÎÙÅ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ (ÉÌÉ ÖÅ ÐÒÉÎÉÍÁÅÔ ÔÅËÓÔ ÓÏ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ, ÅÓÌÉ ÎÉ ÏÄÉÎ ÆÁÊÌ ÎÅ ÂÙÌ ÕËÁÚÁÎ) É ×ÙÄÁÅÔ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ ÓÏÒÔÉÒÏ×ÁÎÎÙÊ ÓÐÉÓÏË ÉÄÅÎÔÉÆÉËÁÔÏÒÏ×, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ × ÄÉÒÅËÔÉ×ÁÈ #if, #elif, #ifdef ÉÌÉ #ifndef. ðÒÏÇÒÁÍÍÁ ×ÙÄÁÅÔ ËÁÖÄÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÎÁ ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ, ÚÁ ËÏÔÏÒÙÍ ÞÅÒÅÚ ÐÒÏÂÅÌ ÓÌÅÄÕÅÔ ÓÐÉÓÏË ÆÁÊÌÏ×, × ËÏÔÏÒÙÈ ÜÔÏÔ ÉÄÅÎÔÉÆÉËÁÔÏÒ ×ÓÔÒÅÞÁÅÔÓÑ.

ðÒÏÇÒÁÍÍÁ ifnames ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--help
-h
     ×ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--macrodir=DIR
     úÁÓÔÁ×ÌÑÅÔ ÐÒÏÇÒÁÍÍÕ ÉÓËÁÔØ ÆÁÊÌÙ ÄÁÎÎÙÈ × ËÁÔÁÌÏÇÅ DIR, Á ÎÅ × ËÁÔÁÌÏÇÅ, ËÕÄÁ ÐÒÏÉÚ×ÏÄÉÌÁÓØ ÕÓÔÁÎÏ×ËÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ AC_MACRODIR ÒÁ×ÎÙÍ ÐÕÔÉ Ë ÜÔÏÍÕ ËÁÔÁÌÏÇÕ; ÄÁÎÎÙÊ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ.

--version
     ×ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

éÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ autoconf ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÁ configure
===============================================================

äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÏÚÄÁÔØ ÓËÒÉÐÔ configure ÉÚ ÆÁÊÌÁ configure.in, ÐÒÏÓÔÏ ÚÁÐÕÓÔÉÔÅ ÐÒÏÇÒÁÍÍÕ autoconf ÂÅÚ ÁÒÇÕÍÅÎÔÏ×. autoconf ÏÂÒÁÂÏÔÁÅÔ ÆÁÊÌ configure.in Ó ÐÏÍÏÝØÀ ÍÁËÒÏÐÒÏÃÅÓÓÏÒÁ m4, ÉÓÐÏÌØÚÕÑ ÍÁËÒÏÓÙ Autoconf. åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ ÁÒÇÕÍÅÎÔ ÐÒÏÇÒÁÍÍÅ autoconf, ÔÏ ÐÒÏÇÒÁÍÍÁ ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØ ÞÔÅÎÉÅ ÚÁÄÁÎÎÏÇÏ ÆÁÊÌÁ, Á ÎÅ ÆÁÊÌÁ configure.in É ×Ù×ÏÄ ÂÕÄÅÔ ÐÒÏÉÚ×ÏÄÉÔØÓÑ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ, ÎÅ × × ÆÁÊÌ configure. åÓÌÉ ×Ù ÄÁÄÉÔÅ ÐÒÏÇÒÁÍÍÅ autoconf ÁÒÇÕÍÅÎÔ -, ÔÏ ÏÎÁ ÂÕÄÅÔ ÞÉÔÁÔØ ÓÏ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ, Á ÎÅ ÉÚ ÆÁÊÌÁ configure.in, Á ÒÅÚÕÌØÔÁÔÙ ÂÕÄÕÔ ×ÙÄÁ×ÁÔØÓÑ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ.

íÁËÒÏÓÙ Autoconf ÏÐÒÅÄÅÌÅÎÙ × ÎÅÓËÏÌØËÉÈ ÆÁÊÌÁÈ. îÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ÒÁÓÐÒÏÓÔÒÁÎÑÀÔÓÑ ×ÍÅÓÔÅ Ó Autoconf; autoconf ÞÉÔÁÅÔ ÉÈ × ÐÅÒ×ÕÀ ÏÞÅÒÅÄØ. úÁÔÅÍ ÉÝÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÆÁÊÌ acsite.m4 × ËÁÔÁÌÏÇÅ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÙÅ Ó Autoconf ÆÁÊÌÙ ÍÁËÒÏÓÏ×, É ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÆÁÊÌ aclocal.m4 × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ.  üÔÉ ÆÁÊÌÙ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ ÍÁËÒÏÓÙ, ÓÐÅÃÉÆÉÞÅÓËÉÅ ÄÌÑ ×ÁÛÅÊ ÍÁÛÉÎÙ ÉÌÉ ÍÁËÒÏÓÙ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÐÁËÅÔÏ× ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ (see óÏÚÄÁÎÉÅ ÍÁËÒÏÓÏ×, ÇÄÅ ÐÒÉ×ÅÄÅÎÁ ÄÏÐÏÌÎÉÔÅÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ).  åÓÌÉ ÏÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÁ ÓÕÝÅÓÔ×ÕÅÔ × ÎÅÓËÏÌØËÉÈ ÆÁÊÌÁÈ, ËÏÔÏÒÙÅ ÓÞÉÔÙ×ÁÅÔ autoconf, ÔÏ ÐÏÓÌÅÄÎÅÅ ÍÁËÒÏÏÐÒÅÄÅÌÅÎÉÅ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ×ÓÅ ÐÒÅÄÙÄÕÝÉÅ.

autoconf ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--help
-h
     ×ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--localdir=DIR
-l DIR
     éÝÅÔ ÆÁÊÌ aclocal.m4 ÄÌÑ ÄÁÎÎÏÇÏ ÐÁËÅÔÁ × ËÁÔÁÌÏÇÅ DIR, Á ÎÅ × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ.

--macrodir=DIR
     úÁÓÔÁ×ÌÑÅÔ ÐÒÏÇÒÁÍÍÕ ÉÓËÁÔØ ÆÁÊÌÙ ÄÁÎÎÙÈ × ËÁÔÁÌÏÇÅ DIR, Á ÎÅ × ËÁÔÁÌÏÇÅ, ËÕÄÁ ÐÒÏÉÚ×ÏÄÉÌÁÓØ ÕÓÔÁÎÏ×ËÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ AC_MACRODIR ÒÁ×ÎÙÍ ÐÕÔÉ Ë ÜÔÏÍÕ ËÁÔÁÌÏÇÕ; ÄÁÎÎÙÊ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ.

--version
     ×ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

éÓÐÏÌØÚÏ×ÁÎÉÅ autoreconf ÄÌÑ ÏÂÎÏ×ÌÅÎÉÑ ×ÁÛÉÈ ÓËÒÉÐÔÏ× configure
================================================================

åÓÌÉ Õ ×ÁÓ ÍÎÏÇÏ ÓËÒÉÐÔÏ× configure, ÓÏÚÄÁÎÎÙÈ Ó ÐÏÍÏÝØÀ Autoconf, ÔÏ ÐÒÏÇÒÁÍÍÁ autoreconf ÍÏÖÅÔ ÏÂÌÅÇÞÉÔØ ×ÁÛÕ ÒÁÂÏÔÕ. ïÎÁ ÚÁÐÕÓËÁÅÔ ÐÒÏÇÒÁÍÍÙ autoconf (É, ÅÓÌÉ ÎÅÏÂÈÏÄÉÍÏ, autoheader) ÄÌÑ ÐÏ×ÔÏÒÎÏÇÏ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÏ× configure É ÛÁÂÌÏÎÏ× ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× ÎÁÓÔÒÏÊËÉ ÄÌÑ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ËÏÒÎÅ×ÏÊ ËÁÔÁÌÏÇ ËÏÔÏÒÙÈ ÎÁÈÏÄÉÔÓÑ × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ. ðÏ ÕÍÏÌÞÁÎÉÀ, ÜÔÉ ÐÒÏÇÒÁÍÍÙ ÓÏÚÄÁÀÔ ÚÁÎÏ×Ï ÔÏÌØËÏ ÔÅ ÆÁÊÌÙ, ËÏÔÏÒÙÅ ÓÔÁÒÛÅ, ÞÅÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÆÁÊÌ configure.in ÉÌÉ (ÅÓÌÉ ÉÍÅÅÔÓÑ) aclocal.m4. ðÏÓËÏÌØËÕ ÐÒÏÇÒÁÍÍÁ autoheader ÎÅ ÉÚÍÅÎÑÅÔ ×ÒÅÍÑ ÍÏÄÉÆÉËÁÃÉÉ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ × ÓÌÕÞÁÅ, ÅÓÌÉ ÆÁÊÌ ÎÅ ÉÚÍÅÎÑÌÓÑ, ÔÏ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÂÕÄÅÔ ÐÒÏÄÅÌÁÎÏ ÍÉÎÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÒÁÂÏÔÙ.  åÓÌÉ ×Ù ÕÓÔÁÎÏ×ÉÌÉ ÎÏ×ÕÀ ×ÅÒÓÉÀ Autoconf, ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÓÔÁ×ÉÔØ autoreconf ÚÁÎÏ×Ï ÓÏÚÄÁÔØ ×ÓÅ ÆÁÊÌÙ, ÚÁÄÁ× ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --force.

åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ ÐÒÏÇÒÁÍÍÅ autoreconf ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --macrodir=DIR ÉÌÉ --localdir=DIR, ÔÏ ÏÎÁ ÐÅÒÅÄÁÓÔ ÉÈ ÐÒÏÇÒÁÍÍÁÍ autoconf É autoheader (Ó ÐÒÁ×ÉÌØÎÏ ÎÁÓÔÒÏÅÎÎÙÍÉ ÏÔÎÏÓÉÔÅÌØÎÙÍÉ ÐÕÔÑÍÉ).

autoreconf ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÎÁÈÏÖÄÅÎÉÅ × ÏÄÎÏÍ ÄÅÒÅ×Å ËÁË ËÁÔÁÌÏÇÏ×, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÞÁÓÔÑÍÉ ÂÏÌØÛÏÇÏ ÐÒÏÅËÔÁ (É ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔ ÏÄÎÉ É ÔÅ ÖÅ ÆÁÊÌÙ aclocal.m4 É acconfig.h), ÔÁË É ËÁÔÁÌÏÇÏ×, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÎÅÚÁ×ÉÓÉÍÙÍÉ ÐÁËÅÔÁÍÉ (ËÏÔÏÒÙÅ ÉÍÅÀÔ ÓÏÂÓÔ×ÅÎÎÙÅ ÆÁÊÌÙ aclocal.m4 É acconfig.h). ðÒÏÇÒÁÍÍÁ ÐÒÅÄÐÏÌÁÇÁÅÔ, ÞÔÏ ×ÓÅ ËÁÔÁÌÏÇÉ Ñ×ÌÑÀÔÓÑ ÞÁÓÔÑÍÉ ÏÄÎÏÇÏ ÐÁËÅÔÁ, ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --localdir, ÉÌÉ ÞÔÏ ËÁÖÄÙÊ ËÁÔÁÌÏÇ Ñ×ÌÑÅÔÓÑ ÏÔÄÅÌØÎÙÍ ÐÁËÅÔÏÍ, ÅÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ ÜÔÏÔ ËÌÀÞ. üÔÏ ÏÇÒÁÎÉÞÅÎÉÅ ÍÏÖÅÔ ÂÙÔØ ÕÂÒÁÎÏ × ÂÕÄÕÝÅÍ.

See á×ÔÏÍÁÔÉÞÅÓËÁÑ ÐÅÒÅÓÂÏÒËÁ, ÇÄÅ ÏÐÉÓÁÎÙ ÐÒÁ×ÉÌÁ Makefile ÄÌÑ Á×ÔÏÍÁÔÉÞÅÓËÏÇÏ ÐÅÒÅÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÏ× configure, ÅÓÌÉ ÉÚÍÅÎÑÀÔÓÑ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÜÔÉÈ ÓËÒÉÐÔÏ×.  üÔÏÔ ÍÅÔÏÄ ËÏÒÒÅËÔÎÏ ÏÂÒÁÂÁÔÙ×ÁÅÔ ÉÚÍÅÎÅÎÉÅ ÛÁÂÌÏÎÏ× ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× ËÏÎÆÉÇÕÒÁÃÉÉ, ÎÏ ÎÅ ÐÅÒÅÄÁÅÔ ËÏÍÁÎÄÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --macrodir=DIR ÉÌÉ --localdir=DIR.

autoreconf ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--help
-h
     ×ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--force
-f
     ðÅÒÅÓÏÚÄÁÔØ ÄÁÖÅ ÔÅ ÓËÒÉÐÔÙ configure É ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ÎÁÓÔÒÏÊËÉ, ËÏÔÏÒÙÅ ÎÏ×ÅÅ, ÞÅÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ×ÈÏÄÎÙÅ ÆÁÊÌÙ (configure.in É, ÅÓÌÉ ÅÓÔØ, aclocal.m4).

--localdir=DIR
-l DIR
     úÁÓÔÁ×ÌÑÅÔ ÐÒÏÇÒÁÍÍÙ autoconf É autoheader ÉÓËÁÔØ ÆÁÊÌÙ aclocal.m4 É (ÄÌÑ autoheader) acconfig.h (ÎÏ ÎÅ FILE.top É FILE.bot) ÄÁÎÎÏÇÏ ÐÁËÅÔÁ × ËÁÔÁÌÏÇÅ DIR ×ÍÅÓÔÏ ËÁÔÁÌÏÇÁ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÏÔÄÅÌØÎÙÊ ÆÁÊÌ configure.in.

--macrodir=DIR
-m DIR
     úÁÓÔÁ×ÌÑÅÔ ÐÒÏÇÒÁÍÍÕ ÉÓËÁÔØ ÆÁÊÌÙ ÄÁÎÎÙÈ × ËÁÔÁÌÏÇÅ DIR, Á ÎÅ × ËÁÔÁÌÏÇÅ, ËÕÄÁ ÐÒÏÉÚ×ÏÄÉÌÁÓØ ÕÓÔÁÎÏ×ËÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ AC_MACRODIR ÒÁ×ÎÙÍ ÐÕÔÉ Ë ÜÔÏÍÕ ËÁÔÁÌÏÇÕ; ÄÁÎÎÙÊ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ.

--verbose
     ÷ÙÄÁÅÔ ÉÍÅÎÁ ËÁÖÄÏÇÏ ËÁÔÁÌÏÇÁ, × ËÏÔÏÒÏÍ autoreconf ÚÁÐÕÓËÁÅÔ autoconf (É ÅÓÌÉ ÎÅÏÂÈÏÄÉÍÏ ÔÏ É autoheader).

--version
     ÷ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

æÁÊÌÙ ÉÎÉÃÉÁÌÉÚÁÃÉÉ É ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ
************************************

óËÒÉÐÔÁÍ, ÓÏÚÄÁÎÎÙÍ Autoconf, ÎÕÖÎÁ ÎÅËÏÔÏÒÁÑ ÉÎÉÃÉÁÌÉÚÁÃÉÏÎÎÁÑ ÉÎÆÏÒÍÁÃÉÑ, ËÁË ÔÏ: ÇÄÅ ÎÁÊÔÉ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÐÁËÅÔÁ; ËÁËÉÅ ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ ÓÏÚÄÁ×ÁÔØ.  ÷ ÎÉÖÅÓÌÅÄÕÀÝÅÊ ÇÌÁ×Å ÏÐÉÓÁÎÁ ÉÎÉÃÉÁÌÉÚÁÃÉÑ É ÓÏÚÄÁÎÉÅ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×.

îÁÈÏÖÄÅÎÉÅ ××ÏÄÁ configure
==========================

ëÁÖÄÙÊ ÓËÒÉÐÔ configure ÄÏÌÖÅÎ ÐÅÒ×ÙÍ ÄÅÌÏÍ ×ÙÚ×ÁÔØ ÍÁËÒÏÓ AC_INIT.  åÄÉÎÓÔ×ÅÎÎÙÊ ÏÂÑÚÁÔÅÌØÎÙÊ ÍÁËÒÏÓ -- AC_OUTPUT (see ÷Ù×ÏÄ).

 -- Macro: AC_INIT (UNIQUE-FILE-IN-SOURCE-DIR)
     ïÂÒÁÂÁÔÙ×ÁÅÔ ÁÒÇÕÍÅÎÔÙ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÉÝÅÔ ËÁÔÁÌÏÇ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ. UNIQUE-FILE-IN-SOURCE-DIR--- ÜÔÏ ÎÅËÏÔÏÒÙÊ ÆÁÊÌ × ËÁÔÁÌÏÇÅ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ ÐÁËÅÔÁ; configure ÐÒÏ×ÅÒÑÅÔ ÓÕÝÅÓÔ×Ï×ÁÎÉÅ ÜÔÏÇÏ ÆÁÊÌÁ, ÞÔÏÂÙ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÜÔÏ ÉÍÅÎÎÏ ÔÏÔ ËÁÔÁÌÏÇ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ, ËÁËÏÊ ÎÕÖÎÏ.  éÎÏÇÄÁ ÌÀÄÉ ÕËÁÚÙ×ÁÀÔ ÎÅ×ÅÒÎÙÊ ËÁÔÁÌÏÇ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ, ÉÓÐÏÌØÚÕÑ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --srcdir; ÜÔÁ ÐÒÏ×ÅÒËÁ ÐÏÚ×ÏÌÑÅÔ ÎÅ ÄÏÐÕÓËÁÔØ ÔÁËÉÈ ÉÎÃÉÄÅÎÔÏ×.  äÌÑ ÄÅÔÁÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ see úÁÐÕÓË configure.

ðÁËÅÔÁÍ, ËÏÔÏÒÙÅ ×ÙÐÏÌÎÑÀÔ ÒÕÞÎÕÀ ÎÁÓÔÒÏÊËÕ ÉÌÉ ÉÓÐÏÌØÚÕÀÔ ÐÒÏÇÒÁÍÍÕ install, ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ ÕËÁÚÁÔØ ÓËÒÉÐÔÕ configure, ÇÄÅ ÍÏÖÎÏ ÎÁÊÔÉ ÄÒÕÇÉÅ ÓËÒÉÐÔÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. üÔÏ ×ÙÐÏÌÎÑÅÔÓÑ Ó ÐÏÍÏÝØÀ ×ÙÚÏ×Á ÍÁËÒÏÓÁ AC_CONFIG_AUX_DIR, ÈÏÔÑ ÉÓÐÏÌØÚÕÅÍÙÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÚÎÁÞÅÎÉÑ × ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ÂÕÄÕÔ ÐÒÁ×ÉÌØÎÙÍÉ.

 -- Macro: AC_CONFIG_AUX_DIR(DIR)
     éÓÐÏÌØÚÕÅÔ ÓËÒÉÐÔÙ install-sh, config.sub, config.guess É Cygnus-×ÅÒÓÉÀ configure, ËÏÔÏÒÙÅ ÒÁÓÐÏÌÁÇÁÀÔÓÑ × ËÁÔÁÌÏÇÅ DIR. üÔÉ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÆÁÊÌÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÐÒÉ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ.  úÎÁÞÅÎÉÅ DIR ÍÏÖÅÔ ÂÙÔØ ÚÁÄÁÎÏ ÌÉÂÏ ÁÂÓÏÌÀÔÎÙÍ ÐÕÔÅÍ, ÌÉÂÏ ÐÕÔÅÍ ÏÔÎÏÓÉÔÅÌØÎÏ SRCDIR. úÎÁÞÅÎÉÅÍ ÐÏ ÕÍÏÌÞÁÎÉÀ Ñ×ÌÑÅÔÓÑ ÐÅÒ×ÙÊ ÉÚ ËÁÔÁÌÏÇÏ× SRCDIR, SRCDIR/.. ÉÌÉ SRCDIR/../.., × ËÏÔÏÒÏÍ ÂÕÄÅÔ ÎÁÊÄÅÎ ÆÁÊÌ install-sh. ðÒÏ×ÅÒËÁ ÎÁÌÉÞÉÑ ÄÒÕÇÉÈ ÆÁÊÌÏ× ÎÅ ÐÒÏÉÚ×ÏÄÉÔÓÑ, ÔÁË ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ AC_PROG_INSTALL ÎÅ ÔÒÅÂÕÅÔ ×ËÌÀÞÅÎÉÑ × ÄÉÓÔÒÉÂÕÔÉ× ÄÒÕÇÉÈ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÈ ÆÁÊÌÏ×. ôÁËÖÅ ÐÒÏ×ÅÒÑÅÔÓÑ ÎÁÌÉÞÉÅ ÆÁÊÌÁ install.sh, ÎÏ ÜÔÏ ÉÍÑ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ, ÐÏÓËÏÌØËÕ ÎÅËÏÔÏÒÙÅ ÐÒÏÇÒÁÍÍÙ make ÉÍÅÀÔ ÐÒÁ×ÉÌÏ, ËÏÔÏÒÏÅ ÓÏÚÄÁÅÔ ÆÁÊÌ install ÉÚ ÜÔÏÇÏ ÆÁÊÌÁ, × ÓÌÕÞÁÅ ÅÓÌÉ Makefile ÏÔÓÕÔÓÔ×ÕÅÔ.

óÏÚÄÁÎÉÅ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×
========================

ëÁÖÄÙÊ ÓËÒÉÐÔ configure, ÓÏÚÄÁÎÎÙÊ Autoconf, ÄÏÌÖÅÎ ÚÁËÁÎÞÉ×ÁÔØÓÑ ×ÙÚÏ×ÏÍ ÍÁËÒÏÓÁ AC_OUTPUT. üÔÏÔ ÍÁËÒÏÓ ÓÏÚÄÁÅÔ ÆÁÊÌÙ Makefile É, ÍÏÖÅÔ ÂÙÔØ, ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÆÁÊÌÙ, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÒÅÚÕÌØÔÁÔÏÍ ËÏÎÆÉÇÕÒÁÃÉÉ.  åÝÅ ÏÄÎÉÍ ÏÂÑÚÁÔÅÌØÎÙÍ ÍÁËÒÏÓÏÍ Ñ×ÌÑÅÔÓÑ AC_INIT (see ÷×ÏÄ).

 -- Macro: AC_OUTPUT ([FILE... [, EXTRA-CMDS [, INIT-CMDS]]])
     óÏÚÄÁÅÔ ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ.  ÷ÙÚÏ×ÉÔÅ ÜÔÏÔ ÍÁËÒÏÓ ÏÄÉÎ ÒÁÚ × ËÏÎÃÅ ÆÁÊÌÁ configure.in. áÒÇÕÍÅÎÔ FILE... Ñ×ÌÑÅÔÓÑ ÓÐÉÓËÏÍ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ× ÞÅÒÅÚ ÐÒÏÂÅÌ; ÜÔÏÔ ÓÐÉÓÏË ÍÏÖÅÔ ÂÙÔØ ÐÕÓÔÙÍ.  üÔÏÔ ÍÁËÒÏÓ ÓÏÚÄÁÅÔ ËÁÖÄÙÊ ÉÚ ÆÁÊÌÏ× FILE, ËÏÐÉÒÕÑ ×ÈÏÄÎÏÊ ÆÁÊÌ (ËÏÔÏÒÙÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÁÚÙ×ÁÅÔÓÑ FILE.in) É ÐÏÄÓÔÁ×ÌÑÑ ÚÎÁÞÅÎÉÑ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. äÌÑ ÂÏÌÅÅ ÄÅÔÁÌØÎÏÇÏ ÏÐÉÓÁÎÉÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ see ðÏÄÓÔÁÎÏ×ËÉ × Makefile. äÌÑ ÄÅÔÁÌØÎÏÇÏ ÏÐÉÓÁÎÉÑ ÔÏÇÏ, ËÁË ÓÏÚÄÁ×ÁÔØ ÔÁËÉÅ ÐÅÒÅÍÅÎÎÙÅ see õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. üÔÏÔ ÍÁËÒÏÓ ÓÏÚÄÁÅÔ ËÁÔÁÌÏÇ, × ËÏÔÏÒÏÍ ÎÁÈÏÄÉÔÓÑ ÆÁÊÌ, ÅÓÌÉ ÜÔÏÔ ËÁÔÁÌÏÇ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ (ÎÏ ÎÅ ÓÏÚÄÁÅÔ ÒÏÄÉÔÅÌØÓËÉÅ ËÁÔÁÌÏÇÉ ÄÌÑ ÜÔÏÇÏ ËÁÔÁÌÏÇÁ). ïÂÙÞÎÏ ÔÁËÉÍ  ÏÂÒÁÚÏÍ ÓÏÚÄÁÀÔÓÑ ÆÁÊÌÙ Makefile, ÎÏ ÍÏÖÎÏ ÕËÁÚÁÔØ ÔÁËÖÅ É ÄÒÕÇÉÅ ÆÁÊÌÙ, ÔÁËÉÅ ËÁË .gdbinit.

     åÓÌÉ ×ÙÚÙ×ÁÌÉÓØ ÍÁËÒÏÓÙ AC_CONFIG_HEADER, AC_LINK_FILES ÉÌÉ AC_CONFIG_SUBDIRS, ÔÏ ÜÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ÓÏÚÄÁÅÔ ÆÁÊÌÙ, ÕËÁÚÁÎÎÙÅ × ÁÒÇÕÍÅÎÔÁÈ ÜÔÉÈ ÍÁËÒÏÓÏ×.

     ôÉÐÉÞÎÙÊ ×ÙÚÏ× AC_OUTPUT ×ÙÇÌÑÄÉÔ ÐÒÉÍÅÒÎÏ ÔÁË:

          AC_OUTPUT(Makefile src/Makefile man/Makefile X/Imakefile)

     ÷Ù ÍÏÖÅÔÅ ÐÅÒÅÏÐÒÅÄÅÌÉÔØ ÉÍÅÎÁ ×ÈÏÄÎÙÈ ÆÁÊÌÏ×, ÄÏÂÁ×É× Ë FILE ÓÐÉÓÏË ×ÈÏÄÎÙÈ ÆÁÊÌÏ×, ËÏÔÏÒÙÊ ÒÁÚÄÅÌÅÎ Ä×ÏÅÔÏÞÉÅÍ. îÁÐÒÉÍÅÒ:

          AC_OUTPUT(Makefile:templates/top.mk lib/Makefile:templates/lib.mk)
          AC_OUTPUT(Makefile:templates/vars.mk:Makefile.in:templates/rules.mk)

     üÔÏ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÓÏÈÒÁÎÉÔØ ÉÍÅÎÁ ÆÁÊÌÏ× × ÆÏÒÍÁÔÅ MS-DOS, ÉÌÉ ÄÌÑ ÄÏÂÁ×ÌÅÎÉÑ ÓÔÁÎÄÁÒÔÎÙÈ ËÕÓËÏ× ËÏÄÁ ËÏÄÁ × ÎÁÞÁÌÏ ÉÌÉ ËÏÎÅÃ ÆÁÊÌÁ.

     ÷ ÐÁÒÁÍÅÔÒÅ EXTRA-CMDS ÍÏÖÎÏ ÕËÁÚÁÔØ ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÂÕÄÕÔ ×ÓÔÁ×ÌÅÎÙ × ÆÁÊÌ config.status É ÓÒÁÂÏÔÁÀÔ ÐÏÓÌÅ ÔÏÇÏ, ËÁË ÂÙÌÏ ÓÄÅÌÁÎÏ ×ÓÅ ÏÓÔÁÌØÎÏÅ.  ÷ ÐÁÒÁÍÅÔÒÅ INIT-CMDS ÍÏÖÎÏ ÕËÁÚÁÔØ ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÂÕÄÕÔ ×ÓÔÁ×ÌÅÎÙ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÐÅÒÅÄ EXTRA-CMDS, ÐÒÉÞÅÍ configure ×ÙÐÏÌÎÉÔ × ÎÉÈ ÐÏÄÓÔÁÎÏ×ËÕ ÐÅÒÅÍÅÎÎÙÈ, ËÏÍÁÎÄÙ É ÏÂÒÁÔÎÙÈ ÓÌÜÛÅÊ.   áÒÇÕÍÅÎÔ INIT-CMDS ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÐÅÒÅÄÁÞÉ ÐÅÒÅÍÅÎÎÙÈ ÉÚ configure × EXTRA-CMDS.  åÓÌÉ ÂÙÌ ×ÙÚ×ÁÎ ÍÁËÒÏÓ AC_OUTPUT_COMMANDS, ÔÏ ËÏÍÁÎÄÙ, ÐÅÒÅÄÁÎÎÙÅ ÅÍÕ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ, ×ÙÐÏÌÎÑÀÔÓÑ ÐÒÑÍÏ ÐÅÒÅÄ ËÏÍÁÎÄÁÍÉ, ÐÅÒÅÄÁÎÎÙÍÉ ÍÁËÒÏÓÕ AC_OUTPUT.

 -- Macro: AC_OUTPUT_COMMANDS (EXTRA-CMDS [, INIT-CMDS])
     úÁÄÁÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ËÏÍÁÎÄÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÅ ×ÙÐÏÌÎÑÀÔÓÑ × ËÏÎÃÅ config.status, Á ÔÁËÖÅ ËÏÍÁÎÄÙ ÄÌÑ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÐÅÒÅÍÅÎÎÙÈ × configure.  üÔÏÔ ÍÁËÒÏÓ ÍÏÖÎÏ ×ÙÚÙ×ÁÔØ ÎÅÓËÏÌØËÏ ÒÁÚ.  ÷ÏÔ ÎÅÒÅÁÌØÎÙÊ ÐÒÉÍÅÒ:

          fubar=27
          AC_OUTPUT_COMMANDS([echo this is extra $fubar, and so on.], fubar=$fubar)
          AC_OUTPUT_COMMANDS([echo this is another, extra, bit], [echo init bit])

åÓÌÉ ×ÁÍ ÎÕÖÎÏ ÚÁÐÕÓÔÉÔØ make × ÐÏÄËÁÔÁÌÏÇÁÈ, ÔÏ ÜÔÏ ÓÌÅÄÕÅÔ ÄÅÌÁÔØ Ó ÐÏÍÏÝØÀ ÐÅÒÅÍÅÎÎÏÊ MAKE.  âÏÌØÛÉÎÓÔ×Ï ×ÅÒÓÉÊ ÐÒÏÇÒÁÍÍÙ make ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ MAKE ÒÁ×ÎÙÍ ÉÍÅÎÉ ÐÒÏÇÒÁÍÍÙ make Ó ÄÏÐÏÌÎÉÔÅÌØÎÏ ÚÁÄÁÎÎÙÍÉ ËÌÀÞÁÍÉ. (îÏ ÍÎÏÇÉÅ ×ÅÒÓÉÉ ÎÅ ×ËÌÀÞÁÀÔÓÑ ÓÀÄÁ ÚÎÁÞÅÎÉÑ ÐÅÒÅÍÅÎÎÙÈ, ÚÁÄÁÎÎÙÈ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, ÐÏÜÔÏÍÕ ÏÎÉ ÎÅ ÐÅÒÅÄÁÀÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ).  îÅËÏÔÏÒÙÅ ÓÔÁÒÙÅ ×ÅÒÓÉÉ ËÏÍÁÎÄÙ make ÎÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ. óÌÅÄÕÀÝÉÊ ÍÁËÒÏÓ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÅÒÅÍÅÎÎÕÀ MAKE ÄÁÖÅ ÔÁËÉÈ ÓÔÁÒÙÈ ×ÅÒÓÉÊ.

 -- Macro: AC_PROG_MAKE_SET
     åÓÌÉ make ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ MAKE, ÔÏ ÐÅÒÅÍÅÎÎÁÑ SET_MAKE ÐÏÌÕÞÁÅÔ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ. éÎÁÞÅ, ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ SET_MAKE ÓÏ ÚÎÁÞÅÎÉÅÍ MAKE=make. äÌÑ ÐÅÒÅÍÅÎÎÏÊ SET_MAKE ×ÙÚÙ×ÁÅÔÓÑ ÍÁËÒÏÓ AC_SUBST.

äÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÄÁÎÎÏÇÏ ÍÁËÒÏÓÁ ÐÏÍÅÓÔÉÔÅ ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ × ËÁÖÄÙÊ ÉÚ ÆÁÊÌÏ× Makefile.in, × ËÏÔÏÒÏÍ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÚÁÐÕÓË MAKE ÄÌÑ ÐÏÄËÁÔÁÌÏÇÏ×:

     @SET_MAKE@

ðÏÄÓÔÁÎÏ×ËÉ × ÆÁÊÌÁÈ Makefile
=============================

ëÁÖÄÙÊ ÐÏÄËÁÔÁÌÏÇ ÄÉÓÔÒÉÂÕÔÉ×Á, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÞÔÏ ÌÉÂÏ, ÞÔÏ ÄÏÌÖÎÏ ËÏÍÐÉÌÉÒÏ×ÁÔØÓÑ ÉÌÉ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ, ÄÏÌÖÅÎ ÐÏÓÔÁ×ÌÑÔØÓÑ Ó ÆÁÊÌÏÍ Makefile.in, ÉÚ ËÏÔÏÒÏÇÏ configure ÓÏÚÄÁÓÔ ÆÁÊÌ Makefile ÄÌÑ ÄÁÎÎÏÇÏ ËÁÔÁÌÏÇÁ. äÌÑ ÓÏÚÄÁÎÉÑ Makefile, configure ×ÙÐÏÌÎÉÔ ÐÒÏÓÔÕÀ ÐÏÄÓÔÁÎÏ×ËÕ ÐÅÒÅÍÅÎÎÙÈ, ÚÁÍÅÎÑÑ ×ÈÏÖÄÅÎÉÑ @VARIABLE@ × ÆÁÊÌÅ Makefile.in ÎÁ ÚÎÁÞÅÎÉÑ, ËÏÔÏÒÙÅ ÏÐÒÅÄÅÌÅÎÙ configure ÄÌÑ ÄÁÎÎÏÊ ÐÅÒÅÍÅÎÎÏÊ. ðÅÒÅÍÅÎÎÙÅ, ËÏÔÏÒÙÅ ÐÏÄÓÔÁ×ÌÑÀÔÓÑ × ×ÙÈÏÄÎÙÈ ÆÁÊÌÁÈ ÔÁËÉÍ ÓÐÏÓÏÂÏÍ, ÎÁÚÙ×ÁÀÔÓÑ ×ÙÈÏÄÎÙÍÉ ÐÅÒÅÍÅÎÎÙÍÉ (output variables).  ïÎÉ Ñ×ÌÑÀÔÓÑ ÏÂÙÞÎÙÍÉ ÐÅÒÅÍÅÎÎÙÍÉ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ × configure. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ configure ÐÏÄÓÔÁ×ÌÑÌ × ×ÙÈÏÄÎÙÈ ÆÁÊÌÁÈ ÏÐÒÅÄÅÌÅÎÎÕÀ ÐÅÒÅÍÅÎÎÕÀ, ÎÅÏÂÈÏÄÉÍÏ ×ÙÚ×ÁÔØ ÍÁËÒÏÓ AC_SUBST Ó ÉÍÅÎÅÍ ÐÅÒÅÍÅÎÎÏÊ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ. ìÀÂÏÅ ×ÈÏÖÄÅÎÉÅ @VARIABLE@ ÄÌÑ ÄÒÕÇÉÈ ÐÅÒÅÍÅÎÎÙÈ ÏÓÔÁÅÔÓÑ ÎÅÉÚÍÅÎÅÎÎÙÍ.  äÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ÓÏÚÄÁÎÉÉ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÁ AC_SUBST see õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.

ðÁËÅÔÙ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ÉÓÐÏÌØÚÕÀÝÉÅ ÓËÒÉÐÔ configure, ÄÏÌÖÎÙ ÒÁÓÐÒÏÓÔÒÁÎÑÔØÓÑ Ó ÆÁÊÌÁÍÉ Makefile.in, ÎÏ ÎÅ Ó ÆÁÊÌÁÍÉ Makefile; ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÐÏÌØÚÏ×ÁÔÅÌØ ÄÏÌÖÅÎ ÐÅÒÅÄ ËÏÍÐÉÌÑÃÉÅÊ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÐÒÏÇÒÁÍÍÎÙÊ ÐÁËÅÔ ÔÁË, ÞÔÏÂÙ ÏÎ ÓÏÏÔ×ÅÔÓÔ×Ï×ÁÌ ÉÓÐÏÌØÚÕÅÍÏÊ ÓÉÓÔÅÍÅ.

See Makefile Conventions (The GNU Coding Standards), ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ÞÔÏ ÍÏÖÎÏ ÐÏÍÅÝÁÔØ × ÆÁÊÌÙ Makefile.

ðÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÕÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ
---------------------------------------------

îÅËÏÔÏÒÙÅ ×ÙÈÏÄÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÚÁÒÁÎÅÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÍÁËÒÏÓÁÍÉ Autoconf. îÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ Autoconf ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÙÈÏÄÎÙÅ ÐÅÒÅÍÅÎÎÙÅ, ËÏÔÏÒÙÅ ÕÐÏÍÑÎÕÔÙ × ÏÐÉÓÁÎÉÑÈ ÜÔÉÈ ÍÁËÒÏÓÏ×. ðÏÌÎÙÊ ÓÐÉÓÏË ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ ÎÁÈÏÄÉÔÓÑ × éÎÄÅËÓ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. See Variables for Installation Directories (The GNU Coding Standards), ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ÐÅÒÅÍÅÎÎÙÈ Ó ÉÍÅÎÁÍÉ, ËÏÔÏÒÙÅ ÚÁËÁÎÞÉ×ÁÀÔÓÑ ÎÁ dir.

 -- Variable: bindir
     ëÁÔÁÌÏÇ × ËÏÔÏÒÙÊ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÉÓÐÏÌÎÑÅÍÙÅ ÐÒÏÇÒÁÍÍÙ, ËÏÔÏÒÙÅ ÚÁÐÕÓËÁÀÔ ÐÏÌØÚÏ×ÁÔÅÌÉ.

 -- Variable: configure_input
     ëÏÍÍÅÎÔÁÒÉÊ, ÓÏÏÂÝÁÀÝÉÊ ÞÔÏ ÆÁÊÌ ÂÙÌ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÎ ÓËÒÉÐÔÏÍ configure É ×ÙÄÁÅÔ ÉÍÑ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ. AC_OUTPUT ÄÏÂÁ×ÌÑÅÔ ÓÔÒÏËÕ ËÏÍÍÅÎÔÁÒÉÑ, ÓÏÄÅÒÖÁÝÕÀ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ, × ÎÁÞÁÌÏ ËÁÖÄÏÇÏ ÓÏÚÄÁ×ÁÅÍÏÇÏ ÆÁÊÌÁ Makefile.  äÌÑ ÄÒÕÇÉÈ ÆÁÊÌÏ× ×Ù ÄÏÌÖÎÙ ÓÏÓÌÁÔØÓÑ ÎÁ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ × ËÏÍÍÅÎÔÁÒÉÉ × ÚÁÇÏÌÏ×ËÅ ËÁÖÄÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ. îÁÐÒÉÍÅÒ, ×ÈÏÄÎÏÊ ÓËÒÉÐÔ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ÄÏÌÖÅÎ ÎÁÞÉÎÁÔØÓÑ ÐÒÉÍÅÒÎÏ ÔÁË:

          #! /bin/sh
          # @configure_input@

     îÁÌÉÞÉÅ ÜÔÏÊ ÓÔÒÏËÉ ÔÁËÖÅ ÎÁÐÏÍÉÎÁÅÔ ÌÀÄÑÍ, ÒÅÄÁËÔÉÒÕÀÝÉÍ ÜÔÏÔ ÆÁÊÌ, ÞÔÏ ÐÅÒÅÄ ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÅÇÏ ÎÅÏÂÈÏÄÉÍÏ ÏÂÒÁÂÏÔÁÔØ Ó ÐÏÍÏÝØÀ configure.

 -- Variable: datadir
     ëÁÔÁÌÏÇ, ËÕÄÁ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÆÁÊÌÙ ÄÁÎÎÙÈ, ÎÅ ÚÁ×ÉÓÑÝÉÅ ÏÔ ÁÒÈÉÔÅËÔÕÒÙ.

 -- Variable: exec_prefix
     ðÒÅÆÉËÓ ÕËÁÚÙ×ÁÀÝÉÊ, ËÕÄÁ ÂÕÄÕÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÆÁÊÌÙ, ÚÁ×ÉÓÑÝÉÅ ÏÔ ÁÒÈÉÔÅËÔÕÒÙ.

 -- Variable: includedir
     ëÁÔÁÌÏÇ, ËÕÄÁ ÂÕÄÕÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ C.

 -- Variable: infodir
     ëÁÔÁÌÏÇ, ËÕÄÁ ÂÕÄÅÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÄÏËÕÍÅÎÔÁÃÉÑ × ÆÏÒÍÁÔÅ Info.

 -- Variable: libdir
     ëÁÔÁÌÏÇ ËÕÄÁ ÂÕÄÕÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÙÅ ÂÉÂÌÉÏÔÅËÉ.

 -- Variable: libexecdir
     ëÁÔÁÌÏÇ, × ËÏÔÏÒÙÊ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÉÓÐÏÌÎÑÅÍÙÅ ÆÁÊÌÙ, ÚÁÐÕÓËÁÅÍÙÅ ÄÒÕÇÉÍÉ ÐÒÏÇÒÁÍÍÁÍÉ.

 -- Variable: localstatedir
     ëÁÔÁÌÏÇ, ËÕÄÁ ÂÕÄÕÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÉÚÍÅÎÑÅÍÙÅ ÆÁÊÌÙ ÄÁÎÎÙÈ ÄÌÑ ÄÁÎÎÏÊ ÍÁÛÉÎÙ.

 -- Variable: mandir
     ëÁÔÁÌÏÇ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ, × ËÏÔÏÒÙÊ ÂÕÄÕÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÓÔÒÁÎÉÃÙ ÒÕËÏ×ÏÄÓÔ×Á.

 -- Variable: oldincludedir
     ëÁÔÁÌÏÇ, ËÕÄÁ ÂÕÄÕÔ ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ, ÄÌÑ ÎÅ-gcc ËÏÍÐÉÌÑÔÏÒÏ×.

 -- Variable: prefix
     ðÒÅÆÉËÓ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÆÁÊÌÏ×, ÎÅ ÚÁ×ÉÓÑÝÉÈ ÏÔ ÁÒÈÉÔÅËÔÕÒÙ.

 -- Variable: sbindir
     ëÁÔÁÌÏÇ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÉÓÐÏÌÎÑÅÍÙÈ ÆÁÊÌÏ×, ÚÁÐÕÓËÁÅÍÙÈ ÁÄÍÉÎÉÓÔÒÁÔÏÒÏÍ.

 -- Variable: sharedstatedir
     ëÁÔÁÌÏÇ × ËÏÔÏÒÙÊ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÉÚÍÅÎÑÅÍÙÅ, ÎÅÚÁ×ÉÓÑÝÉÅ ÏÔ ÁÒÈÉÔÅËÔÕÒÙ ÆÁÊÌÙ ÄÁÎÎÙÈ.

 -- Variable: srcdir
     ëÁÔÁÌÏÇ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÉÓÈÏÄÎÙÊ ËÏÄ ÄÌÑ ÄÁÎÎÏÇÏ Makefile.

 -- Variable: sysconfdir
     ëÁÔÁÌÏÇ, × ËÏÔÏÒÙÊ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÎÅÉÚÍÅÎÑÅÍÙÅ ÆÁÊÌÙ ÄÁÎÎÙÈ ÄÌÑ ÄÁÎÎÏÊ ÍÁÛÉÎÙ.

 -- Variable: top_srcdir
     ëÁÔÁÌÏÇ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ, ÓÏÄÅÒÖÁÝÉÊ ÉÓÈÏÄÎÙÊ ËÏÄ ÐÁËÅÔÁ. ÷ ËÁÔÁÌÏÇÅ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ÓÏ×ÐÁÄÁÅÔ Ó srcdir.

 -- Variable: CFLAGS
     ëÌÀÞÉ ÏÐÔÉÍÉÚÁÃÉÉ É ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ C. åÓÌÉ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × ÓÒÅÄÅ ÐÒÉ ÚÁÐÕÓËÅ configure, ÔÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÒÉ ×ÙÚÏ×Å ÍÁËÒÏÓÁ AC_PROG_CC (ÉÌÉ ÒÁ×ÎÏ ÐÕÓÔÏÍÕ ÚÎÁÞÅÎÉÀ, ÅÓÌÉ ×Ù ÎÅ ×ÙÚÙ×ÁÅÔÅ ÜÔÏÔ ÍÁËÒÏÓ). configure ÉÓÐÏÌØÚÕÅÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ ÐÒÏÇÒÁÍÍ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÏÍÐÉÌÑÔÏÒÁ C.

 -- Variable: CPPFLAGS
     ëÁÔÁÌÏÇÉ ÐÏÉÓËÁ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× (-IDIR) É ÌÀÂÙÅ ÄÒÕÇÉÅ ËÌÀÞÉ ÄÌÑ ÐÒÅÐÒÏÃÅÓÓÏÒÁ É ËÏÍÐÉÌÑÔÏÒÁ C.  åÓÌÉ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × ÓÒÅÄÅ ÐÒÉ ÚÁÐÕÓËÅ configure, ÔÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÒÁ×ÎÏ ÐÕÓÔÏÍÕ ÚÎÁÞÅÎÉÀ. configure ÉÓÐÏÌØÚÕÅÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ ÐÒÏÇÒÁÍÍ ÉÌÉ ÏÂÒÁÂÏÔËÅ ÐÒÅÐÒÏÃÅÓÓÏÒÏÍ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÏÍÐÉÌÑÔÏÒÁ C.

 -- Variable: CXXFLAGS
     ëÌÀÞÉ ÏÐÔÉÍÉÚÁÃÉÉ É ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ C++. åÓÌÉ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × ÓÒÅÄÅ ÐÒÉ ÚÁÐÕÓËÅ configure, ÔÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÒÉ ×ÙÚÏ×Å ÍÁËÒÏÓÁ AC_PROG_CXX (ÉÌÉ ÒÁ×ÎÏ ÐÕÓÔÏÍÕ ÚÎÁÞÅÎÉÀ, ÅÓÌÉ ×Ù ÎÅ ×ÙÚÙ×ÁÅÔÅ ÜÔÏÔ ÍÁËÒÏÓ). configure ÉÓÐÏÌØÚÕÅÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ ÐÒÏÇÒÁÍÍ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÏÍÐÉÌÑÔÏÒÁ C++.

 -- Variable: FFLAGS
     ëÌÀÞÉ ÏÐÔÉÍÉÚÁÃÉÉ É ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ Fortran 77. åÓÌÉ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × ÓÒÅÄÅ ÐÒÉ ÚÁÐÕÓËÅ configure, ÔÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÒÉ ×ÙÚÏ×Å ÍÁËÒÏÓÁ AC_PROG_F77 (ÉÌÉ ÒÁ×ÎÏ ÐÕÓÔÏÍÕ ÚÎÁÞÅÎÉÀ, ÅÓÌÉ ×Ù ÎÅ ×ÙÚÙ×ÁÅÔÅ ÜÔÏÔ ÍÁËÒÏÓ). configure ÉÓÐÏÌØÚÕÅÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ ÐÒÏÇÒÁÍÍ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÏÍÐÉÌÑÔÏÒÁ Fortran 77.

 -- Variable: DEFS
     ëÌÀÞÉ -D, ÐÅÒÅÄÁ×ÁÅÍÙÅ ËÏÍÐÉÌÑÔÏÒÕ C.  åÓÌÉ ×ÙÚÙ×ÁÅÔÓÑ ÍÁËÒÏÓ AC_CONFIG_HEADER, ÔÏ configure ÚÁÍÅÎÑÅÔ ×ÈÏÖÄÅÎÉÑ @DEFS@ ÎÁ -DHAVE_CONFIG_H (see úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ËÏÎÆÉÇÕÒÁÃÉÉ).  üÔÁ ÐÅÒÅÍÅÎÎÁÑ ÎÅ ÏÐÒÅÄÅÌÅÎÁ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ ÔÅÓÔÏ× configure, ÏÎÁ ÏÐÒÅÄÅÌÑÅÔÓÑ ÔÏÌØËÏ ÐÒÉ ÓÏÚÄÁÎÉÉ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×. See õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ, ÄÌÑ ÏÐÉÓÁÎÉÑ ÔÏÇÏ, ËÁË ÐÏÌÕÞÉÔØ ÒÅÚÕÌØÔÁÔÙ ÐÒÅÄÙÄÕÝÉÈ ÔÅÓÔÏ×.

 -- Variable: LDFLAGS
     ëÌÀÞ ÄÌÑ ÕÄÁÌÅÎÉÑ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ (-s), Á ÔÁËÖÅ ÄÒÕÇÉÅ ËÌÀÞÉ ÄÌÑ ËÏÍÐÏÎÏ×ÝÉËÁ. åÓÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × ÓÒÅÄÅ ÐÒÉ ÚÁÐÕÓËÅ configure, ÔÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÍÅÅÔ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ. configure ÉÓÐÏÌØÚÕÅÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ ÐÒÉ ËÏÍÐÏÎÏ×ËÅ ÐÒÏÇÒÁÍÍ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ ×ÏÚÍÏÖÎÏÓÔÅÊ ó.

 -- Variable: LIBS
     ëÌÀÞÉ -l É -L, ÐÅÒÅÄÁ×ÁÅÍÙÅ ËÏÍÐÏÎÏ×ÝÉËÕ.

ëÁÔÁÌÏÇÉ ÓÂÏÒËÉ ÐÒÏÇÒÁÍÍ
------------------------

÷Ù ÍÏÖÅÔÅ ÐÏÄÄÅÒÖÉ×ÁÔØ ÏÄÎÏ×ÒÅÍÅÎÎÕÀ ËÏÍÐÉÌÑÃÉÀ ÐÁËÅÔÁ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ ÄÌÑ ÒÁÚÌÉÞÎÙÈ ÁÒÈÉÔÅËÔÕÒ ÉÚ ÏÄÎÏÊ É ÔÏÊ ÖÅ ËÏÐÉÉ ÉÓÈÏÄÎÏÇÏ ËÏÄÁ. ïÂßÅËÔÎÙÅ ÆÁÊÌÙ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÁÒÈÉÔÅËÔÕÒ ÈÒÁÎÑÔÓÑ × ÏÔÄÅÌØÎÙÈ ËÁÔÁÌÏÇÁÈ.

äÌÑ ÐÏÄÄÅÒÖËÉ ÜÔÏÇÏ make ÉÓÐÏÌØÚÕÅÔ ÐÅÒÅÍÅÎÎÕÀ VPATH ÄÌÑ ÐÏÉÓËÁ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ.  ôÁËÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ GNU make É ÂÏÌØÛÉÎÓÔ×ÏÍ ÄÒÕÇÉÈ ÐÒÏÇÒÁÍÍ make Ó×ÅÖÉÈ ×ÅÒÓÉÊ. óÔÁÒÙÅ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ make ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÐÅÒÅÍÅÎÎÕÀ VPATH; ÐÒÉ ÉÈ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÄÏÌÖÎÙ ÎÁÈÏÄÉÔØÓÑ × ÔÏÍ ÖÅ ËÁÔÁÌÏÇÅ, ÞÔÏ É ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ.

äÌÑ ÐÏÄÄÅÒÖËÉ VPATH ËÁÖÄÙÊ ÆÁÊÌ Makefile.in ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ Ä×Å ÓÔÒÏËÉ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ×ÙÇÌÑÄÅÔØ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ:

     srcdir = @srcdir@
     VPATH = @srcdir@

îÅ ÎÁÄÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ VPATH × ÚÎÁÞÅÎÉÅ ÄÒÕÇÏÊ ÐÅÒÅÍÅÎÎÏÊ, ÎÁÐÒÉÍÅÒ VPATH = $(srcdir), ÐÏÓËÏÌØËÕ ÎÅËÏÔÏÒÙÅ ×ÅÒÓÉÉ make ÎÅ ×ÙÐÏÌÎÑÀÔ ÐÏÄÓÔÁÎÏ×ËÕ ÐÅÒÅÍÅÎÎÙÈ ÄÌÑ VPATH.

configure ÐÏÄÓÔÁ×ÌÑÅÔ ÐÒÁ×ÉÌØÎÏÅ ÚÎÁÞÅÎÉÅ srcdir ÐÒÉ ÓÏÚÄÁÎÉÉ ÆÁÊÌÁ Makefile.

îÅ ÉÓÐÏÌØÚÕÊÔÅ ÐÅÒÅÍÅÎÎÕÀ $< ÐÒÏÇÒÁÍÍÙ make, ËÏÔÏÒÁÑ ÒÁÚ×ÏÒÁÞÉ×ÁÅÔÓÑ × ÉÍÑ ÆÁÊÌÁ Ó ÐÏÌÎÙÍ ÐÕÔÅÍ (ÎÁÊÄÅÎÎÙÍ Ó ÐÏÍÏÝØÀ VPATH), ÐÒÉÞÅÍ ÔÏÌØËÏ × Ñ×ÎÙÈ ÐÒÁ×ÉÌÁÈ.  (îÅÑ×ÎÙÅ ÐÒÁ×ÉÌÁ, ÎÁÐÒÉÍÅÒ, .c.o, ÓÏÏÂÝÁÀÔ, ËÁË ÓÏÚÄÁÔØ ÆÁÊÌ .o ÉÚ ÆÁÊÌÁ .c.) îÅËÏÔÏÒÙÅ ×ÅÒÓÉÉ make ÎÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ $< × Ñ×ÎÙÈ ÐÒÁ×ÉÌÁÈ; ÏÎÉ ÐÏÄÓÔÁ×ÌÑÀÔ ×ÍÅÓÔÏ ÎÅÇÏ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.

÷ÍÅÓÔÏ ÜÔÏÇÏ ËÏÍÁÎÄÎÙÅ ÓÔÒÏËÉMakefile ×ÓÅÇÄÁ ÄÏÌÖÎÙ ÓÓÙÌÁÔØÓÑ ÎÁ ÆÁÊÌÙ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ, Ó ÄÏÂÁ×ÌÅÎÉÅÍ Ë ÎÉÍ ÐÒÅÆÉËÓÁ $(srcdir)/. îÁÐÒÉÍÅÒ:

     time.info: time.texinfo
             $(MAKEINFO) $(srcdir)/time.texinfo

á×ÔÏÍÁÔÉÞÅÓËÁÑ ÐÅÒÅÓÂÏÒËÁ
-------------------------

÷Ù ÍÏÖÅÔÅ ÐÏÍÅÓÔÉÔØ ÐÒÁ×ÉÌÁ, ÕÐÏÍÑÎÕÔÙÅ ÎÉÖÅ, × ÆÁÊÌ Makefile.in ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ ÐÁËÅÔÁ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÂÎÏ×ÌÑÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ËÏÎÆÉÇÕÒÁÃÉÉ ÐÒÉ ÉÚÍÅÎÅÎÉÉ ÆÁÊÌÏ× ËÏÎÆÉÇÕÒÁÃÉÉ.  üÔÏÔ ÐÒÉÍÅÒ ÉÓÐÏÌØÚÕÅÔ ×ÓÅ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÆÁÊÌÙ, ÔÁËÉÅ ËÁË aclocal.m4, Á ÔÁËÖÅ ÔÏ, ÞÔÏ ÏÔÎÏÓÑÔÓÑ Ë ÚÁÇÏÌÏ×ÏÞÎÙÍ ÆÁÊÌÁÍ ËÏÎÆÉÇÕÒÁÃÉÉ.  õÂÅÒÉÔÅ ÉÚ ÐÒÁ×ÉÌÁ ÄÌÑ Makefile.in ÆÁÊÌÙ, ÎÅ ÉÓÐÏÌØÚÕÀÝÉÅÓÑ × ×ÁÛÅÍ ÐÁËÅÔÅ.

ðÒÅÆÉËÓ ${srcdir}/ ÄÏÂÁ×ÌÅÎ ÉÚ-ÚÁ ÏÇÒÁÎÉÞÅÎÉÊ ÍÅÈÁÎÉÚÍÁ ÉÓÐÏÌØÚÏ×ÁÎÉÑ VPATH.

æÁÊÌÙ stamp- Ñ×ÌÑÀÔÓÑ ÎÅÏÂÈÏÄÉÍÙÍÉ, ÐÏÓËÏÌØËÕ ×ÒÅÍÑ ÐÏÓÌÅÄÎÅÇÏ ÉÚÍÅÎÅÎÉÑ ÆÁÊÌÏ× config.h.in É config.h ÏÓÔÁÎÅÔÓÑ ÐÒÅÖÎÉÍ, ÅÓÌÉ ÐÅÒÅÓÏÚÄÁÎÉÅ ÜÔÉÈ ÆÁÊÌÏ× ÎÅ ÉÚÍÅÎÉÔ ÉÈ ÓÏÄÅÒÖÉÍÏÇÏ.  üÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÐÏÚ×ÏÌÑÅÔ ÉÚÂÅÖÁÔØ ÎÅÎÕÖÎÏÊ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ.  ÷Ù ÄÏÌÖÎÙ ×ËÌÀÞÉÔØ ÆÁÊÌ stamp-h.in × ÄÉÓÔÒÉÂÕÔÉ× ×ÁÛÅÇÏ ÐÁËÅÔÁ, ÔÁË ÞÔÏ make ÂÕÄÅÔ ÓÞÉÔÁÔØ config.h.in ÏÂÎÏ×ÌÅÎÎÙÍ. îÁ ÎÅËÏÔÏÒÙÈ ÓÔÁÒÙÈ ÓÉÓÔÅÍÁÈ BSD, ËÏÍÁÎÄÁ touch ÉÌÉ ÌÀÂÁÑ ÄÒÕÇÁÑ, ÓÏÚÄÁÀÝÁÑ ÆÁÊÌ ÎÕÌÅ×ÏÊ ÄÌÉÎÙ, ÎÅ ÏÂÎÏ×ÌÑÅÔ ×ÒÅÍÑ ÉÚÍÅÎÅÎÉÑ ÜÔÏÇÏ ÆÁÊÌÁ, ÔÁË ÞÔÏ ÉÓÐÏÌØÚÕÊÔÅ ÄÌÑ ÐÒÁ×ÉÌØÎÏÊ ÒÁÂÏÔÙ ËÏÍÁÎÄÕ echo.

     ${srcdir}/configure: configure.in aclocal.m4
             cd ${srcdir} && autoconf

     # autoheader ÍÏÇ ÎÅ ÉÚÍÅÎÉÔØ config.h.in, ÔÁË ÞÔÏ ÏÂÎÏ×ÉÔØ ÄÁÔÕ stamp-ÆÁÊÌÁ.
     ${srcdir}/config.h.in: stamp-h.in
     ${srcdir}/stamp-h.in: configure.in aclocal.m4 acconfig.h \
         config.h.top config.h.bot
             cd ${srcdir} && autoheader
             echo timestamp > ${srcdir}/stamp-h.in

     config.h: stamp-h
     stamp-h: config.h.in config.status
             ./config.status

     Makefile: Makefile.in config.status
             ./config.status

     config.status: configure
             ./config.status --recheck

÷ÄÏÂÁ×ÏË ×Ù ÄÏÌÖÎÙ ÐÅÒÅÄÁÔØ echo timestamp > stamp-h × ÁÒÇÕÍÅÎÔÅ EXTRA-CMDS ÍÁËÒÏÓÕ AC_OUTPUT, ÔÁË ÞÔÏ config.status ÂÕÄÅÔ ÇÁÒÁÎÔÉÒÏ×ÁÔØ, ÞÔÏ ÆÁÊÌ config.h ÂÕÄÅÔ ÒÁÓÓÍÁÔÒÉ×ÁÔØÓÑ ËÁË ÏÂÎÏ×ÌÅÎÎÙÊ. See ÷Ù×ÏÄ, ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï AC_OUTPUT.

See úÁÐÕÓË config.status, ÇÄÅ ÏÐÉÓÁÎÙ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÒÉÍÅÒÙ ÏÂÒÁÂÏÔËÉ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÚÁ×ÉÓÉÍÏÓÔÅÊ.

úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ËÏÎÆÉÇÕÒÁÃÉÉ
===============================

ëÏÇÄÁ ÐÁËÅÔ ÐÒÏÉÚ×ÏÄÉÔ ÔÅÓÔÉÒÏ×ÁÎÉÅ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÓÉÍ×ÏÌÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ C, ÔÏ ËÏÍÁÎÄÎÁÑ ÓÔÒÏËÁ  ËÌÀÞÅÊ -D, ÐÅÒÅÄÁ×ÁÅÍÙÈ ËÏÍÐÉÌÑÔÏÒÕ, ÍÏÖÅÔ ÐÏÌÕÞÉÔØÓÑ ÄÏÓÔÁÔÏÞÎÏ ÄÌÉÎÎÏÊ. üÔÏ ×ÙÚÙ×ÁÅÔ Ä×Å ÐÒÏÂÌÅÍÙ. ðÅÒ×ÁÑ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ ×Ù×ÏÄ ÒÅÚÕÌØÔÁÔÏ× ËÏÍÁÎÄÙ make ÂÕÄÅÔ ÔÑÖÅÌÏ ÞÉÔÁÔØ × ÐÏÉÓËÁÈ ÏÛÉÂÏË. ÷ÔÏÒÁÑ É ÂÏÌÅÅ ÓÅÒØÅÚÎÁÑ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ ÄÌÉÎÁ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÍÏÖÅÔ ÐÒÅ×ÙÓÉÔØ ÐÒÅÄÅÌØÎÕÀ ÄÌÉÎÕ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ × ÎÅËÏÔÏÒÙÈ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ. ÷ ËÁÞÅÓÔ×Å ÁÌØÔÅÒÎÁÔÉ×Ù ÐÅÒÅÄÁÞÅ ËÏÍÐÉÌÑÔÏÒÕ ËÌÀÞÅÊ -D, ÓËÒÉÐÔÙ configure ÍÏÇÕÔ ÓÏÚÄÁ×ÁÔØ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ C, ËÏÔÏÒÙÅ ÓÏÄÅÒÖÁÔ ÄÉÒÅËÔÉ×Ù #define. íÁËÒÏÓ AC_CONFIG_HEADER ×ÙÂÉÒÁÅÔ ÜÔÏÔ ÓÐÏÓÏÂ ×ÙÄÁÞÉ ÒÅÚÕÌØÔÁÔÏ×. íÁËÒÏÓ ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚ×ÁÎ ÓÒÁÚÕ ÐÏÓÌÅ ×ÙÚÏ×Á  AC_INIT.

ðÁËÅÔ ÄÏÌÖÅÎ ÐÏÄËÌÀÞÉÔØ Ó ÐÏÍÏÝØÀ #include ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÎÁÓÔÒÏÊËÉ ÄÏ ÐÏÄËÌÀÞÅÎÉÑ ÏÓÔÁÌØÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÎÅÓÏ×ÍÅÓÔÉÍÏÓÔÉ × ÏÂßÑ×ÌÅÎÉÑÈ (ÎÁÐÒÉÍÅÒ, ÅÓÌÉ ÜÔÏÔ ÆÁÊÌ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ const). éÓÐÏÌØÚÕÊÔÅ ÄÉÒÅËÔÉ×Õ #include <config.h> ×ÍÅÓÔÏ #include "config.h", É ÐÅÒÅÄÁÊÔÅ ËÏÍÐÉÌÑÔÏÒÕ C ËÌÀÞ -I.  (ÉÌÉ -I.., ÓÍÏÔÒÑ ÇÄÅ ÎÁÈÏÄÉÔÓÑ ÆÁÊÌ config.h). ôÁËÉÍ ÏÂÒÁÚÏÍ, ÄÁÖÅ ÅÓÌÉ ÓÁÍ ËÁÔÁÌÏÇ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÎ (ÎÁÐÒÉÍÅÒ, ÄÌÑ ÓÏÚÄÁÎÉÑ ÄÉÓÔÒÉÂÕÔÉ×Á), ÔÏ ÄÒÕÇÉÅ ÓÂÏÒÏÞÎÙÅ ËÁÔÁÌÏÇÉ ÍÏÖÎÏ ÂÕÄÅÔ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ, ÎÅ ÉÓÐÏÌØÚÕÑ ÐÒÉ ÜÔÏÍ ÆÁÊÌ config.h É ËÁÔÁÌÏÇÁ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ.

 -- Macro: AC_CONFIG_HEADER (HEADER-TO-CREATE ...)
     úÁÓÔÁ×ÌÑÅÔ AC_OUTPUT ÓÏÚÄÁÔØ ÆÁÊÌÙ Ó ÉÍÅÎÁÍÉ ÉÚ ÒÁÚÄÅÌÅÎÎÏÇÏ ÐÒÏÂÅÌÁÍÉ ÓÐÉÓËÁ HEADER-TO-CREATE, ËÏÔÏÒÙÅ ÂÕÄÕÔ ÓÏÄÅÒÖÁÔØ ÄÉÒÅËÔÉ×Ù #define ÐÒÅÐÒÏÃÅÓÓÏÒÁ C, É ÚÁÍÅÎÉÔØ @DEFS@ × ÓÏÚÄÁÎÎÙÈ ÆÁÊÌÁÈ ÎÁ -DHAVE_CONFIG_H ×ÍÅÓÔÏ ÚÎÁÞÅÎÉÑ DEFS. ïÂÙÞÎÙÍ ÚÎÁÞÅÎÉÅÍ ÄÌÑ HEADER-TO-CREATE Ñ×ÌÑÅÔÓÑ config.h.

     åÓÌÉ HEADER-TO-CREATE ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ É ÅÇÏ ÓÏÄÅÒÖÉÍÏÅ ÎÅ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÔÏÇÏ, ÞÔÏ × ÎÅÇÏ ÈÏÔÑÔ ÐÏÍÅÓÔÉÔØ, ÔÏ ÏÎ ÏÓÔÁÅÔÓÑ ÎÅÉÚÍÅÎÅÎÎÙÍ. üÔÏ ÐÏÚ×ÏÌÑÅÔ ×ÎÏÓÉÔØ ÎÅËÏÔÏÒÙÅ ÉÚÍÅÎÅÎÉÑ × ËÏÎÆÉÇÕÒÁÃÉÀ ÂÅÚ ÎÅÎÕÖÎÏÊ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÚÁ×ÉÓÑÔ ÏÔ ÄÁÎÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×.

     ïÂÙÞÎÏ ×ÈÏÄÎÏÊ ÆÁÊÌ ÎÁÚÙ×ÁÅÔÓÑ HEADER-TO-CREATE.in; ÏÄÎÁËÏ ×Ù ÍÏÖÅÔÅ ÐÅÒÅÏÐÒÅÄÅÌÉÔØ ÉÍÑ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ, ÄÏÂÁ×É× Ë HEADER-TO-CREATE ÓÐÉÓÏË ×ÈÏÄÎÙÈ ÆÁÊÌÏ×, ÒÁÚÄÅÌÅÎÎÙÊ Ä×ÏÅÔÏÞÉÅÍ. ðÒÉÍÅÒÙ:

          AC_CONFIG_HEADER(defines.h:defines.hin)
          AC_CONFIG_HEADER(defines.h:defs.pre:defines.h.in:defs.post)

     üÔÏ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÓÏÈÒÁÎÉÔØ ÉÍÅÎÁ × ×ÉÄÅ, ÐÒÉÅÍÌÅÍÏÍ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × MS-DOS, Á ÔÁËÖÅ ÄÌÑ ÄÏÂÁ×ÌÅÎÉÑ ÓÔÁÎÄÁÒÔÎÙÈ ËÕÓËÏ× ËÏÄÁ Ë ÆÁÊÌÁÍ.

ûÁÂÌÏÎÙ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×
---------------------------

÷ÁÛ ÄÉÓÔÒÉÂÕÔÉ× ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÆÁÊÌ ÛÁÂÌÏÎÁ, ËÏÔÏÒÙÊ ÄÏÌÖÅÎ ×ÙÇÌÑÄÅÔØ ÔÁË, ËÁË ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ ÏËÏÎÞÁÔÅÌØÎÙÊ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ, ×ËÌÀÞÁÑ ËÏÍÍÅÎÔÁÒÉÉ, ÎÏ ÐÒÉ ÜÔÏÍ ×ÓÅ ÚÎÁÞÅÎÉÑ ÄÉÒÅËÔÉ× #define × ÎÅÍ ÂÕÄÕÔ ÕÓÔÁÎÏ×ÌÅÎÙ ÐÏ ÕÍÏÌÞÁÎÉÀ.  îÁÐÒÉÍÅÒ, ÐÒÅÄÐÏÌÏÖÉÍ, ÞÔÏ ×ÁÛ ÆÁÊÌ configure.in ÐÒÏÉÚ×ÏÄÉÔ ÓÌÅÄÕÀÝÉÅ ×ÙÚÏ×Ù:

     AC_CONFIG_HEADER(conf.h)
     AC_CHECK_HEADERS(unistd.h)

äÌÑ ÜÔÏÇÏ ÐÒÉÍÅÒÁ ÎÅÏÂÈÏÄÉÍÏ ×ÓÔÁ×ÉÔØ × conf.h.in ÎÉÖÅÓÌÅÄÕÀÝÉÊ ËÏÄ.  ÷ ÓÉÓÔÅÍÁÈ, × ËÏÔÏÒÙÈ ÅÓÔØ unistd.h, configure ÚÁÍÅÎÉÔ 0 ÎÁ 1.  ÷ ÄÒÕÇÉÈ ÓÉÓÔÅÍÁÈ ÜÔÁ ÓÔÒÏËÁ ÏÓÔÁÎÅÔÓÑ ÎÅÉÚÍÅÎÅÎÎÏÊ.

     /* ïÐÒÅÄÅÌÉÔØ ÓÏ ÚÎÁÞÅÎÉÅÍ 1 ÅÓÌÉ Õ ×ÁÓ ÅÓÔØ unistd.h.  */
     #define HAVE_UNISTD_H 0

åÓÌÉ ×ÁÛ ËÏÄ ÐÒÏ×ÅÒÑÅÔ ËÏÎÆÉÇÕÒÁÃÉÀ, ÉÓÐÏÌØÚÕÑ ÄÉÒÅËÔÉ×Õ ÐÒÅÐÒÏÃÅÓÓÏÒÁ #ifdef ×ÍÅÓÔÏ #if, ÔÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÍÏÖÅÔ ÂÙÔØ ÕÄÁÌÅÎÏ ÄÉÒÅËÔÉ×ÏÊ #undef ×ÍÅÓÔÏ ÏÐÒÅÄÅÌÅÎÉÑ ÚÎÁÞÅÎÉÑ. ÷ ÓÉÓÔÅÍÁÈ × ËÏÔÏÒÙÈ ÉÍÅÅÔÓÑ ÆÁÊÌ unistd.h, configure ÉÚÍÅÎÉÔ ×ÔÏÒÕÀ ÓÔÒÏËÕ ÎÁ #define HAVE_UNISTD_H 1. ÷ ÄÒÕÇÉÈ ÓÉÓÔÅÍÁÈ ÜÔÁ ÓÔÒÏËÁ ÂÕÄÅÔ ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÎÁ (× ÓÌÕÞÁÅ, ÅÓÌÉ ÓÉÓÔÅÍÁ ÐÒÅÄÏÐÒÅÄÅÌÑÅÔ ÜÔÏÔ ÓÉÍ×ÏÌ).

     /* ïÐÒÅÄÅÌÑÅÔÓÑ, ÅÓÌÉ × ÓÉÓÔÅÍÅ ÅÓÔØ unistd.h.  */
     #undef HAVE_UNISTD_H

éÓÐÏÌØÚÏ×ÁÎÉÅ autoheader ÄÌÑ ÓÏÚÄÁÎÉÑ config.h.in
-------------------------------------------------

ðÒÏÇÒÁÍÍÁ autoheader ÍÏÖÅÔ ÓÏÚÄÁÔØ ÛÁÂÌÏÎ ÆÁÊÌÁ, ÓÏÄÅÒÖÁÝÅÇÏ ÄÉÒÅËÔÉ×Ù #define, ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ó configure.  åÓÌÉ configure.in ÉÓÐÏÌØÚÕÅÔ AC_CONFIG_HEADER(FILE), ÔÏ autoheader ÓÏÚÄÁÅÔ FILE.in; ÅÓÌÉ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ ÚÁÄÁÎÏ ÎÅÓËÏÌØËÏ ÉÍÅÎ ÆÁÊÌÏ×, ÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ ÔÏÌØËÏ ÐÅÒ×ÏÅ ÉÍÑ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ autoheader ÓÏÚÄÁÓÔ ÆÁÊÌ config.h.in.

åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ ÁÒÇÕÍÅÎÔ ÐÒÏÇÒÁÍÍÅ autoheader, ÔÏ ÏÎÁ ÂÕÄÅÔ ÓÞÉÔÙ×ÁÔØ ÄÁÎÎÙÅ ÉÚ ÜÔÏÇÏ ÆÁÊÌÁ, Á ÎÅ ÉÚ ÆÁÊÌÁ configure.in É ÂÕÄÅÔ ×Ù×ÏÄÉÔØ ÄÁÎÎÙÅ × ÐÏÔÏË ÓÔÁÎÄÁÒÔÎÏÇÏ ×Ù×ÏÄÁ ×ÍÅÓÔÏ config.h.in. åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ autoheader ÁÒÇÕÍÅÎÔ -, ÔÏ ÐÒÏÇÒÁÍÍÁ ÂÕÄÅÔ ÓÞÉÔÙ×ÁÔØ ÄÁÎÎÙÅ ÓÏ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ ×ÍÅÓÔÏ configure.in É ×ÙÄÁ×ÁÔØ ÒÅÚÕÌØÔÁÔÙ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ.

autoheader ÓËÁÎÉÒÕÅÔ ÆÁÊÌ configure.in É ÏÐÒÅÄÅÌÑÅÔ, ËÁËÉÅ ÓÉÍ×ÏÌÙ ÐÒÅÐÒÏÃÅÓÓÏÒÁ C ÍÏÇÕÔ ÂÙÔØ ÏÐÒÅÄÅÌÅÎÙ × ÎÅÍ. ðÒÏÇÒÁÍÍÁ ËÏÐÉÒÕÅÔ ËÏÍÍÅÎÔÁÒÉÉ É ÄÉÒÅËÔÉ×Ù #define É #undef ÉÚ ÆÁÊÌÁ Ó ÉÍÅÎÅÍ acconfig.h, ËÏÔÏÒÙÊ ÐÏÓÔÁ×ÌÑÅÔÓÑ ×ÍÅÓÔÅ Ó Autoconf. ðÒÏÇÒÁÍÍÁ ÔÁËÖÅ ÉÓÐÏÌØÚÕÅÔ ÆÁÊÌ Ó ÉÍÅÎÅÍ acconfig.h ÉÚ ÔÅËÕÝÅÇÏ ËÁÔÁÌÏÇÁ, ÅÓÌÉ ÏÎ ÐÒÉÓÕÔÓÔ×ÕÅÔ. åÓÌÉ ×Ù ÏÐÒÅÄÅÌÉÔÅ Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÁ AC_DEFINE ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÉÍ×ÏÌÙ, ÔÏ ×Ù ÄÏÌÖÎÙ ÓÏÚÄÁÔØ ÜÔÏÔ ÆÁÊÌ Ó ÚÁÐÉÓÑÍÉ ÄÌÑ ÎÉÈ.  äÌÑ ÓÉÍ×ÏÌÏ×, ÏÐÒÅÄÅÌÅÎÎÙÈ ÍÁËÒÏÓÁÍÉ AC_CHECK_HEADERS, AC_CHECK_FUNCS, AC_CHECK_SIZEOF ÉÌÉ AC_CHECK_LIB, ÐÒÏÇÒÁÍÍÁ autoheader ÓÁÍÁ ÓÏÚÄÁÅÔ ËÏÍÍÅÎÔÁÒÉÉ É ÄÉÒÅËÔÉ×Ù #undef, Á ÎÅ ËÏÐÉÒÕÅÔ ÉÈ ÉÚ ÆÁÊÌÁ, ÐÏÓËÏÌØËÕ ËÏÌÉÞÅÓÔ×Ï ×ÏÚÍÏÖÎÙÈ ÓÉÍ×ÏÌÏ× ÆÁËÔÉÞÅÓËÉ ÂÅÓËÏÎÅÞÎÏ.

æÁÊÌ, ËÏÔÏÒÙÊ ÓÏÚÄÁÅÔÓÑ autoheader, ÓÏÄÅÒÖÉÔ × ÏÓÎÏ×ÎÏÍ ÄÉÒÅËÔÉ×Ù #define É #undef É ËÏÍÍÅÎÔÁÒÉÉ Ë ÎÉÍ.  åÓÌÉ ./acconfig.h ÓÏÄÅÒÖÉÔ ÓÔÒÏËÕ @TOP@, ÔÏ autoheader ËÏÐÉÒÕÅÔ ÓÔÒÏËÉ, ËÏÔÏÒÙÅ ÎÁÈÏÄÑÔÓÑ ×ÙÛÅ ÓÔÒÏËÉ @TOP@, ÐÒÑÍÏ × ÚÁÇÏÌÏ×ÏË ÓÏÚÄÁ×ÁÅÍÏÇÏ ÆÁÊÌÁ. áÎÁÌÏÇÉÞÎÏ, ÅÓÌÉ ./acconfig.h ÓÏÄÅÒÖÉÔ ÓÔÒÏËÕ @BOTTOM@, ÔÏ autoheader ÓËÏÐÉÒÕÅÔ ÓÔÒÏËÉ, ÒÁÓÐÏÌÏÖÅÎÎÙÅ ÓÒÁÚÕ ÐÏÓÌÅ ÜÔÏÊ ÓÔÒÏËÉ, × ËÏÎÅÃ ÓÏÚÄÁ×ÁÅÍÏÇÏ ÆÁÊÌÁ.  íÏÖÎÏ ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÁË @TOP@, ÔÁË É @BOTTOM@.

äÒÕÇÏÊ ÓÐÏÓÏÂ ÄÏÂÉÔØÓÑ ÔÏÞÎÏ ÔÁËÏÇÏ ÖÅ ÒÅÚÕÌØÔÁÔÁ -- ÓÏÚÄÁÔØ × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ ÆÁÊÌÙ FILE.top (ÏÂÙÞÎÏ config.h.top) É/ÉÌÉ FILE.bot. åÓÌÉ ÜÔÉ ÆÁÊÌÙ ÓÕÝÅÓÔ×ÕÀÔ, ÔÏ autoheader ËÏÐÉÒÕÅÔ ÉÈ ÓÏÄÅÒÖÉÍÏÅ × ÎÁÞÁÌÏ É × ËÏÎÅÃ ×Ù×ÏÄÉÍÙÈ ÄÁÎÎÙÈ. éÈ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÅ ÒÅËÏÍÅÎÄÕÅÔÓÑ, ÐÏÓËÏÌØËÕ ÉÍÅÎÁ ÜÔÉÈ ÆÁÊÌÏ× ÓÏÄÅÒÖÁÔ Ä×Å ÔÏÞËÉ É ÎÅ ÍÏÇÕÔ ÐÒÉÍÅÎÑÔØÓÑ × MS-DOS; ÔÁËÖÅ ÜÔÏ Õ×ÅÌÉÞÉ×ÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ËÁÔÁÌÏÇÁ ÅÝÅ ÎÁ Ä×Á ÆÁÊÌÁ. îÏ ÅÓÌÉ ×Ù ×ÏÓÐÏÌØÚÕÅÔÅÓØ ËÌÀÞÏÍ --localdir=DIR ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ acconfig.h ÎÁÈÏÄÑÝÅÇÏÓÑ × ÄÒÕÇÏÍ ËÁÔÁÌÏÇÅ, ÔÏ ÜÔÉ ÆÁÊÌÙ ÐÏÚ×ÏÌÑÔ ×ÁÍ ×ÓÔÁ×ÌÑÔØ ÐÒÏÉÚ×ÏÌØÎÙÅ ËÕÓËÉ ËÏÄÁ × ËÁÖÄÙÊ ËÏÎËÒÅÔÎÙÊ ÆÁÊÌ config.h.in.

autoheader ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--help
-h
     ÷ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--localdir=DIR
-l DIR
     éÓËÁÔØ ÆÁÊÌÙ aclocal.m4 É acconfig.h (ÎÏ ÎÅ ÆÁÊÌÙ FILE.top É FILE.bot) × ËÁÔÁÌÏÇÅ DIR ×ÍÅÓÔÏ ÔÅËÕÝÅÇÏ ËÁÔÁÌÏÇÁ.

--macrodir=DIR
-m DIR
     éÓËÁÔØ ÉÎÓÔÁÌÌÉÒÏ×ÁÎÎÙÅ ÆÁÊÌÙ ÍÁËÒÏÓÏ× É acconfig.h × ËÁÔÁÌÏÇÅ DIR. ÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ AC_MACRODIR, ÕËÁÚÙ×ÁÀÝÕÀ ÎÁ ÜÔÏÔ ËÁÔÁÌÏÇ; ÜÔÏÔ ËÌÀÞ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ.

--version
     ÷ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

îÁÓÔÒÏÊËÁ ÄÒÕÇÉÈ ÐÁËÅÔÏ×, ÎÁÈÏÄÑÝÉÈÓÑ × ÐÏÄËÁÔÁÌÏÇÁÈ
====================================================

÷ ÂÏÌØÛÉÎÓÔ×Å ÓÉÔÕÁÃÉÊ ÄÌÑ ÓÏÚÄÁÎÉÑ ÆÁÊÌÏ× Makefile × ÐÏÄËÁÔÁÌÏÇÁÈ  ÄÏÓÔÁÔÏÞÎÏ ×ÙÚÏ×Á ÍÁËÒÏÓÁ AC_OUTPUT. ïÄÎÁËÏ ÓËÒÉÐÔÙ configure, ËÏÔÏÒÙÅ ËÏÎÔÒÏÌÉÒÕÀÔ ÂÏÌÅÅ ÞÅÍ ÏÄÉÎ ÎÅÚÁ×ÉÓÉÍÙÊ ÐÁËÅÔ, ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ AC_CONFIG_SUBDIRS ÄÌÑ ÚÁÐÕÓËÁ ÓËÒÉÐÔÏ× configure ÄÌÑ ÄÒÕÇÉÈ ÐÁËÅÔÏ×, ÎÁÈÏÄÑÝÉÈÓÑ × ÐÏÄËÁÔÁÌÏÇÁÈ.

 -- Macro: AC_CONFIG_SUBDIRS (DIR ...)
     úÁÓÔÁ×ÌÑÅÔ AC_OUTPUT ÚÁÐÕÓÔÉÔØ configure × ËÁÖÄÏÍ ÐÏÄËÁÔÁÌÏÇÅ DIR, ËÏÔÏÒÙÅ ÚÁÄÁÎÙ × ÓÐÉÓËÅ ÞÅÒÅÚ ÐÒÏÂÅÌ. åÓÌÉ ÚÁÄÁÎÎÙÊ ËÁÔÁÌÏÇ DIR ÎÅ ÎÁÊÄÅÎ, ÔÏ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÎÅ ×ÙÄÁÅÔÓÑ, ÐÏÜÔÏÍÕ ÓËÒÉÐÔ configure ÍÏÖÅÔ ÐÒÏÉÚ×ÏÄÉÔØ ËÏÎÆÉÇÕÒÁÃÉÀ, ÄÁÖÅ ÅÓÌÉ ÞÁÓÔØ ÐÏÄËÁÔÁÌÏÇÏ× ÏÔÓÕÔÓÔ×ÕÅÔ.  åÓÌÉ ÚÁÄÁÎÎÙÊ ËÁÔÁÌÏÇ DIR ÓÏÄÅÒÖÉÔ ÆÁÊÌ configure.in, ÎÏ ÎÅ ÓÏÄÅÒÖÉÔ configure, ÔÏ  ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Cygnus-×ÅÒÓÉÑ ÓËÒÉÐÔÁ configure, ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÅ ËÏÔÏÒÏÊ ÏÐÒÅÄÅÌÑÅÔÓÑ ÍÁËÒÏÓÏÍ AC_CONFIG_AUXDIR.

     óËÒÉÐÔÁÍ configure, ÎÁÈÏÄÑÝÉÍÓÑ × ÐÏÄËÁÔÁÌÏÇÁÈ, ÐÅÒÅÄÁÅÔÓÑ ÔÁ ÖÅ ËÏÍÁÎÄÎÁÑ ÓÔÒÏËÁ, ÞÔÏ ÚÁÄÁÎÁ ÔÅËÕÝÅÍÕ ÓËÒÉÐÔÕ configure, ÔÏÌØËÏ Ó ÎÅËÏÔÏÒÙÍÉ ÉÚÍÅÎÅÎÉÑÍÉ, ËÏÇÄÁ ÜÔÏ ÎÅÏÂÈÏÄÉÍÏ (ÎÁÐÒÉÍÅÒ, ÉÓÐÒÁ×ÌÅÎÉÅ ÏÔÎÏÓÉÔÅÌØÎÙÈ ÐÕÔÅ×ÙÈ ÉÍÅÎ ÄÌÑ ËÜÛ-ÆÁÊÌÁ ÉÌÉ ËÁÔÁÌÏÇÁ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ). üÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ subdirs ÒÁ×ÎÏÊ ÓÐÉÓËÕ ËÁÔÁÌÏÇÏ× DIR .... ðÒÁ×ÉÌÁ Makefile ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÏÇÏ, × ËÁËÉÅ ÐÏÄËÁÔÁÌÏÇÉ ÂÕÄÅÔ ÏÓÕÝÅÓÔ×ÌÑÔØÓÑ ÒÅËÕÒÓÉ×ÎÙÊ ÐÅÒÅÈÏÄ. üÔÏÔ ÍÁËÒÏÓ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØÓÑ ÍÎÏÇÏ ÒÁÚ.

ðÒÅÆÉËÓ ÐÏ ÕÍÏÌÞÁÎÉÀ
====================

ðÏ ÕÍÏÌÞÁÎÉÀ configure ÚÁÄÁÅÔ ÐÒÅÆÉËÓ ÄÌÑ ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÙÈ ÆÁÊÌÏ× ÒÁ×ÎÙÍ /usr/local. ðÏÌØÚÏ×ÁÔÅÌØ configure ÍÏÖÅÔ ×ÙÂÒÁÔØ ÄÒÕÇÏÊ ÐÒÅÆÉËÓ, ÉÓÐÏÌØÚÕÑ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --prefix É --exec-prefix.  åÓÔØ Ä×Á ÓÐÏÓÏÂÁ ÉÚÍÅÎÅÎÉÑ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ: ÐÒÉ ÓÏÚÄÁÎÉÉ configure É ÐÒÉ ÅÇÏ ÚÁÐÕÓËÅ.

îÅËÏÔÏÒÙÅ ÐÁËÅÔÙ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ ÍÏÇÕÔ ÔÒÅÂÏ×ÁÔØ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ × ËÁÔÁÌÏÇ, ÏÔÌÉÞÎÙÊ ÏÔ /usr/local.  þÔÏÂÙ ÉÚÍÅÎÉÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_PREFIX_DEFAULT.

 -- Macro: AC_PREFIX_DEFAULT (PREFIX)
     õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÚÎÁÞÅÎÉÅ ÐÒÅÆÉËÓÁ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ × ÚÎÁÞÅÎÉÅ PREFIX ×ÍÅÓÔÏ /usr/local.

äÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÍÏÖÅÔ ÂÙÔØ ÕÄÏÂÎÙÍ, ÞÔÏÂÙ configure ÐÏÐÙÔÁÌÓÑ ÕÇÁÄÁÔØ ÐÒÅÆÉËÓ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÎÁ ÏÓÎÏ×Å ÒÁÓÐÏÌÏÖÅÎÉÑ ÎÅËÏÔÏÒÙÈ ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÅ ÕÖÅ ÕÓÔÁÎÏ×ÌÅÎÙ × ÓÉÓÔÅÍÅ.  åÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÍÅÎÎÏ ÜÔÏÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_PREFIX_PROGRAM.

 -- Macro: AC_PREFIX_PROGRAM (PROGRAM)
     åÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÕËÁÚÁÌ ÐÒÅÆÉËÓ ÄÌÑ ÕÓÔÁÎÏ×ËÉ (ÉÓÐÏÌØÚÕÑ ËÌÀÞ --prefix), ÔÏ ÐÏÐÒÏÂÏ×ÁÔØ ÏÐÒÅÄÅÌÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÅÆÉËÓÁ ÎÁ ÏÓÎÏ×Å ÐÏÉÓËÁ PROGRAM × ÓÐÉÓËÅ ËÁÔÁÌÏÇÏ× ÉÚ PATH. åÓÌÉ PROGRAM ÎÁÊÄÅÎÁ, ÔÏ ÕÓÔÁÎÏ×ÉÔØ ÐÒÅÆÉËÓ ÒÁ×ÎÙÍ ÒÏÄÉÔÅÌØÓËÏÍÕ ËÁÔÁÌÏÇÕ ËÁÔÁÌÏÇÁ, × ËÏÔÏÒÏÍ ÎÁÈÏÄÉÔÓÑ PROGRAM; ÉÎÁÞÅ ÏÓÔÁ×ÉÔØ ÎÅÉÚÍÅÎÅÎÎÙÍ ÚÎÁÞÅÎÉÅ ÐÒÅÆÉËÓÁ, ÕËÁÚÁÎÎÏÇÏ Makefile.in. îÁÐÒÉÍÅÒ, ÅÓÌÉ ÚÎÁÞÅÎÉÅÍ PROGRAM Ñ×ÌÑÅÔÓÑ gcc, Á × ÐÕÔÑÈ ÎÁÊÄÅÎÁ ÐÒÏÇÒÁÍÍÁ /usr/local/gnu/bin/gcc, ÔÏ ÚÎÁÞÅÎÉÅÍ ÐÒÅÆÉËÓÁ ÂÕÄÅÔ /usr/local/gnu.

îÏÍÅÒÁ ×ÅÒÓÉÊ × configure
=========================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÏÍÅÒÁÍÉ ×ÅÒÓÉÊ × ÓËÒÉÐÔÁÈ configure. éÈ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ.

 -- Macro: AC_PREREQ (VERSION)
     ïÂÅÓÐÅÞÉ×ÁÅÔ ÐÒÏ×ÅÒËÕ ÔÏÇÏ, ÞÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÏÓÔÁÔÏÞÎÏ Ó×ÅÖÁÑ ×ÅÒÓÉÑ Autoconf. åÓÌÉ ×ÅÒÓÉÑ Autoconf, ÉÓÐÏÌØÚÕÅÍÁÑ ÄÌÑ ÓÏÚÄÁÎÉÑ configure, Ñ×ÌÑÅÔÓÑ ÂÏÌÅÅ ÓÔÁÒÏÊ, ÞÅÍ VERSION, ÔÏ × ÓÔÁÎÄÁÒÔÎÙÊ ÐÏÔÏË ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ ×ÙÄÁÅÔÓÑ ÓÏÏÂÝÅÎÉÅ É configure ÎÅ ÓÏÚÄÁÅÔÓÑ. îÁÐÒÉÍÅÒ:

          AC_PREREQ(1.8)

     üÔÏÔ ÍÁËÒÏÓ ÐÏÌÅÚÅÎ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ×ÁÛ configure.in ÐÏÌÁÇÁÅÔÓÑ ÎÁ ÎÅÏÞÅ×ÉÄÎÏÅ ÐÏ×ÅÄÅÎÉÅ, ËÏÔÏÒÏÅ ÉÚÍÅÎÉÌÏÓØ ÍÅÖÄÕ ×ÅÒÓÉÑÍÉ Autoconf.  åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÙ ÔÏÌØËÏ ÎÅÄÁ×ÎÏ ÄÏÂÁ×ÌÅÎÎÙÅ ÍÁËÒÏÓÙ, ÔÏ AC_PREREQ ÞÕÔØ ÍÅÎÅÅ ÐÏÌÅÚÅÎ, ÐÏÓËÏÌØËÕ ÐÒÏÇÒÁÍÍÁ autoconf É ÔÁË ÓÏÏÂÝÉÔ ÐÏÌØÚÏ×ÁÔÅÌÀ Ï ÔÏÍ, ËÁËÉÅ ÍÁËÒÏÓÙ ÎÅ ÎÁÊÄÅÎÙ. ôÏ ÖÅ ÓÁÍÏÅ ÓÌÕÞÉÔÓÑ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÆÁÊÌ configure.in ÂÕÄÅÔ ÏÂÒÁÂÁÔÙ×ÁÔØÓÑ ×ÅÒÓÉÅÊ Autoconf, ÂÏÌÅÅ ÓÔÁÒÏÊ, ÞÅÍ ÔÁ, × ËÏÔÏÒÏÊ ÂÙÌ ÄÏÂÁ×ÌÅÎ ÍÁËÒÏÓ AC_PREREQ.

 -- Macro: AC_REVISION (REVISION-INFO)
     ëÏÐÉÒÕÅÔ ÍÅÔËÉ ÒÅ×ÉÚÉÊ REVISION-INFO × ÓËÒÉÐÔ configure, ÕÄÁÌÑÑ ÚÎÁËÉ ÄÏÌÌÁÒÁ É Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ.  üÔÏÔ ÍÁËÒÏÓ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÏÍÅÝÁÔØ ÍÅÔËÉ ×ÅÒÓÉÊ ÉÚ ÆÁÊÌÁ configure.in × configure, ÎÏ ÐÒÉ ÜÔÏÍ RCS ÉÌÉ CVS ÎÅ ÓÔÁÎÕÔ ÉÚÍÅÎÑÔØ ÉÈ ÐÒÉ ÐÏÍÅÝÅÎÉÉ configure × ÒÅÐÏÚÉÔÏÒÉÊ.  ôÁËÉÍ ÏÂÒÁÚÏÍ, ×Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÏÐÒÅÄÅÌÉÔØ, ËÁËÁÑ ×ÅÒÓÉÑ configure.in ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ËÏÎËÒÅÔÎÏÍÕ configure.

     èÏÒÏÛÅÊ ÉÄÅÅÊ Ñ×ÌÑÅÔÓÑ ×ÙÚÏ× ÜÔÏÇÏ ÍÁËÒÏÓÁ ÐÅÒÅÄ AC_INIT, ÞÔÏÂÙ ÎÏÍÅÒ ÒÅ×ÉÚÉÉ ÒÁÓÐÏÌÁÇÁÌÓÑ × ÎÁÞÁÌÅ É configure.in, É configure. äÌÑ ÐÏÄÄÅÒÖËÉ ÜÔÏÇÏ ×ÙÄÁÞÁ AC_REVISION ÎÁÞÉÎÁÅÔÓÑ Ó #! /bin/sh, ÐÏÄÏÂÎÏ ÏÂÙÞÎÏÍÕ ÎÁÞÁÌÕ ÓËÒÉÐÔÁ configure.

     ÷ÏÔ ÐÒÉÍÅÒ ÜÔÏÊ ÓÔÒÏËÉ × configure.in:

          AC_REVISION($Revision: 1.30 $)dnl

     ÜÔÏ ÓÏÚÄÁÅÔ × configure ÓÔÒÏËÉ:

          #! /bin/sh
          # From configure.in Revision: 1.30

óÕÝÅÓÔ×ÕÀÝÉÅ ÔÅÓÔÙ
******************

üÔÉ ÍÁËÒÏÓÙ ×ÙÐÏÌÎÑÀÔ ÐÒÏ×ÅÒËÕ ÏÔÄÅÌØÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ÓÉÓÔÅÍÙ, × ËÏÔÏÒÙÈ ÐÁËÅÔ ÎÕÖÄÁÅÔÓÑ ÉÌÉ ËÏÔÏÒÙÅ ÏÎ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ. åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ×ÏÚÍÏÖÎÏÓÔØ, ËÏÔÏÒÕÀ ÎÅ ÐÒÏ×ÅÒÑÅÔ ÎÉ ÏÄÉÎ ÉÚ ÉÍÅÀÝÉÈÓÑ ÍÁËÒÏÓÏ×, ÔÏ, ÓËÏÒÅÅ ×ÓÅÇÏ, ×Ù ÓÍÏÖÅÔÅ ÜÔÏ ÓÄÅÌÁÔØ ÐÕÔÅÍ ×ÙÚÏ×Á ÐÒÉÍÉÔÉ×ÎÙÈ ÍÁËÒÏÓÏ× Ó ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍÉ ÁÒÇÕÍÅÎÔÁÍÉ (see îÁÐÉÓÁÎÉÅ ÔÅÓÔÏ×).

üÔÉ ÔÅÓÔÙ ÓÏÏÂÝÁÀÔ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÞÔÏ ÉÍÅÎÎÏ ÏÎÉ ÐÒÏ×ÅÒÑÀÔ É ËÁËÏ× ÒÅÚÕÌØÔÁÔ ÐÒÏ×ÅÒËÉ.  òÅÚÕÌØÔÁÔÙ ËÜÛÉÒÕÀÔÓÑ ÄÌÑ ÕÓËÏÒÅÎÉÑ ÐÏÓÌÅÄÕÀÝÉÈ ÚÁÐÕÓËÏ× configure (see ëÜÛÉÒÏ×ÁÎÉÅ ÒÅÚÕÌØÔÁÔÏ×).

îÅËÏÔÏÒÙÅ ÉÚ ÜÔÉÈ ÍÁËÒÏÓÏ× ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ×ÙÈÏÄÎÙÅ ÐÅÒÅÍÅÎÎÙÅ. See ðÏÄÓÔÁÎÏ×ËÉ × Makefile, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÚÎÁÔØ Ï ÔÏÍ, ËÁË ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÑ ÜÔÉÈ ÐÅÒÅÍÅÎÎÙÈ. æÒÁÚÁ ``ÏÐÒÅÄÅÌÉÔØ NAME'' ÎÉÖÅ ÉÓÐÏÌØÚÕÅÔÓÑ ËÁË ÓÏËÒÁÝÅÎÉÅ, ÏÂÏÚÎÁÞÁÀÝÅÅ ``ÏÐÒÅÄÅÌÉÔØ ÓÉÍ×ÏÌ NAME ÐÒÅÐÒÏÃÅÓÓÏÒÁ C × ÚÎÁÞÅÎÉÅ 1''.  See ïÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÏ×, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÚÎÁÔØ Ï ÔÏÍ, ËÁË ÐÏÌÕÞÉÔØ ÏÐÒÅÄÅÌÅÎÉÑ ÜÔÉÈ ÓÉÍ×ÏÌÏ× × ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ.

áÌØÔÅÒÎÁÔÉ×ÎÙÅ ÐÒÏÇÒÁÍÍÙ
========================

üÔÉ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÎÁÌÉÞÉÅ ÉÌÉ ÐÏ×ÅÄÅÎÉÅ ÏÐÒÅÄÅÌÅÎÎÙÈ ÐÒÏÇÒÁÍÍ.  ïÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ×ÙÂÏÒÁ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÒÁÚÌÉÞÎÙÍÉ ÐÒÏÇÒÁÍÍÁÍÉ É ÄÌÑ ÒÅÛÅÎÉÑ ÔÏÇÏ, ÞÔÏ ÄÅÌÁÔØ, ËÏÇÄÁ ÎÕÖÎÁÑ ÐÒÏÇÒÁÍÍÁ ×ÙÂÒÁÎÁ. åÓÌÉ ÄÌÑ ÐÒÏ×ÅÒËÉ ÎÁÌÉÞÉÑ ÎÅÏÂÈÏÄÉÍÏÊ ×ÁÍ ÐÒÏÇÒÁÍÍÙ ÎÅÔ ÏÔÄÅÌØÎÏÇÏ ÍÁËÒÏÓÁ, É ×ÁÍ ÎÅ ÎÕÖÎÏ ×ÙÐÏÌÎÑÔØ ÐÒÏ×ÅÒËÕ ÓÐÅÃÉÁÌØÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ, ÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÄÉÎ ÉÚ ÓÔÁÎÄÁÒÔÎÙÈ ÍÁËÒÏÓÏ× ÐÒÏ×ÅÒËÉ ÐÒÏÇÒÁÍÍ.

ðÒÏ×ÅÒËÁ ÏÔÄÅÌØÎÙÈ ÐÒÏÇÒÁÍÍ
---------------------------

üÔÉ ÍÁËÒÏÓÙ ×ÙÐÏÌÎÑÀÔ ÐÒÏ×ÅÒËÕ ÏÔÄÅÌØÎÙÈ ÐÒÏÇÒÁÍÍ--- ÓÕÝÅÓÔ×ÕÀÔ ÌÉ ÏÎÉ, Á ÔÁËÖÅ, × ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ, ÐÒÏ×ÅÒËÕ ÔÏÇÏ, ÐÏÄÄÅÒÖÉ×ÁÀÔ ÌÉ ÜÔÉ ÐÒÏÇÒÁÍÍÙ ÏÐÒÅÄÅÌÅÎÎÙÅ Ó×ÏÊÓÔ×Á.

 -- Macro: AC_DECL_YYTEXT
     ïÐÒÅÄÅÌÑÅÔ YYTEXT_POINTER, ÅÓÌÉ yytext ÉÍÅÅÔ ÔÉÐ char *, Á ÎÅ char [].  ôÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÚÎÁÞÅÎÉÅ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LEX_OUTPUT_ROOT ÒÁ×ÎÙÍ ÏÓÎÏ×Å ÉÍÅÎÉ ÆÁÊÌÁ, ÓÏÚÄÁ×ÁÅÍÏÇÏ ÌÅËÓÉÞÅÓËÉÍ ÇÅÎÅÒÁÔÏÒÏÍ; ÏÂÙÞÎÏ ÜÔÏ ÚÎÁÞÅÎÉÅ ÒÁ×ÎÏ lex.yy, ÎÏ ÉÎÏÇÄÁ ÉÓÐÏÌØÚÕÅÔÓÑ ÞÔÏ-ÔÏ ÄÒÕÇÏÅ. üÔÉ ÒÅÚÕÌØÔÁÔÙ ÒÁÚÌÉÞÁÀÔÓÑ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ÉÓÐÏÌØÚÕÅÔÓÑ ÌÉ lex ÉÌÉ flex.

 -- Macro: AC_PROG_AWK
     ðÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ mawk, gawk, nawk É awk, × ÔÁËÏÍ ÐÏÒÑÄËÅ É ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ AWK, ÒÁ×ÎÕÀ ÉÍÅÎÉ ÎÁÊÄÅÎÎÏÊ ÐÒÏÇÒÁÍÍÙ. óÎÁÞÁÌÁ ÐÙÔÁÅÔÓÑ ÎÁÊÔÉ mawk, ËÏÔÏÒÙÊ ÓÞÉÔÁÅÔÓÑ ÓÁÍÏÊ ÂÙÓÔÒÏÊ ÒÅÁÌÉÚÁÃÉÅÊ.

 -- Macro: AC_PROG_CC
     ïÐÒÅÄÅÌÑÅÔ ËÏÍÐÉÌÑÔÏÒ C, ËÏÔÏÒÙÊ ÎÁÄÏ ÉÓÐÏÌØÚÏ×ÁÔØ.  åÓÌÉ ÐÅÒÅÍÅÎÎÁÑ ÓÒÅÄÙ CC ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ, ÔÏ ÐÒÏ×ÅÒÉÔØ ÎÁÌÉÞÉÅ gcc É ÉÓÐÏÌØÚÏ×ÁÔØ cc, ÅÓÌÉ gcc ÎÅ ÎÁÊÄÅÎ. õÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ CC, ÒÁ×ÎÕÀ ÉÍÅÎÉ ÎÁÊÄÅÎÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ.

     åÓÌÉ ÉÓÐÏÌØÚÕÅÔÓÑ ËÏÍÐÉÌÑÔÏÒ GNU C, ÔÏ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ GCC ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ × ÚÎÁÞÅÎÉÅ yes, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎÏ ÏÓÔÁÅÔÓÑ ÐÕÓÔÙÍ. åÓÌÉ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ CFLAGS ÅÝÅ ÎÅ ÂÙÌÁ ÕÓÔÁÎÏ×ÌÅÎÁ, ÔÏ ÕÓÔÁÎÏ×ÉÔØ ÅÅ ÒÁ×ÎÏÊ -g -O2 ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ GNU C (-O2 ÎÁ ÓÉÓÔÅÍÁÈ, × ËÏÔÏÒÙÈ GCC ÎÅ ÐÏÎÉÍÁÅÔ ËÌÀÞÁ -g) ÉÌÉ ÒÁ×ÎÏÊ -g ÄÌÑ ÄÒÕÇÉÈ ËÏÍÐÉÌÑÔÏÒÏ×.

     åÓÌÉ ÉÓÐÏÌØÚÕÅÍÙÊ ËÏÍÐÉÌÑÔÏÒ C ÎÅ ÓÏÚÄÁÅÔ ÉÓÐÏÌÎÑÅÍÙÈ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÚÁÐÕÓËÁÔØÓÑ × ÔÏÊ ÓÉÓÔÅÍÅ, ÇÄÅ ÉÓÐÏÌÎÑÅÔÓÑ configure, ÔÏ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ cross_compiling ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ yes, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎÁ ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ no.  äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, ÚÄÅÓØ ÐÒÏ×ÅÒÑÅÔÓÑ, ÏÔÌÉÞÁÅÔÓÑ ÌÉ ÔÉÐ ÓÉÓÔÅÍÙ, ÄÌÑ ËÏÔÏÒÏÊ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÓÂÏÒËÁ, ÏÔ ÓÉÓÔÅÍÙ, ÎÁ ËÏÔÏÒÏÊ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÓÂÏÒËÁ (ÔÉÐ ÃÅÌÅ×ÏÊ ÓÉÓÔÅÍÙ ÎÅ ÏÔÎÏÓÉÔÓÑ Ë ÜÔÏÍÕ ÔÅÓÔÕ). äÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ see òÕÞÎÁÑ ÎÁÓÔÒÏÊËÁ.

 -- Macro: AC_PROG_CC_C_O
     åÓÌÉ ËÏÍÐÉÌÑÔÏÒ C ÎÅ ÍÏÖÅÔ ÚÁÐÕÓËÁÔØÓÑ ÏÄÎÏ×ÒÅÍÅÎÎÏ Ó ËÌÀÞÁÍÉ -c É -o, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ NO_MINUS_C_MINUS_O.

 -- Macro: AC_PROG_CPP
     úÎÁÞÅÎÉÅ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ CPP ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÒÁ×ÎÙÍ ÉÍÅÎÉ ËÏÍÁÎÄÙ, ËÏÔÏÒÁÑ ÚÁÐÕÓËÁÅÔ ÐÒÅÐÒÏÃÅÓÓÏÒ C. åÓÌÉ $CC -E ÎÅ ÒÁÂÏÔÁÅÔ, ÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ /lib/cpp. ðÅÒÅÎÏÓÉÍÙÍ ÒÅÛÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÓË CPP ÔÏÌØËÏ ÄÌÑ ÏÂÒÁÂÏÔËÉ ÆÁÊÌÏ× Ó ÒÁÓÛÉÒÅÎÉÅÍ .c.

     åÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ C (see ÷ÙÂÏÒ ÑÚÙËÁ), ÔÏ ÍÎÏÇÉÅ ÓÐÅÃÉÆÉÞÅÓËÉÅ ÔÅÓÔÙ ËÏÓ×ÅÎÎÏ ÉÓÐÏÌØÚÕÀÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ CPP, ×ÙÚÙ×ÁÑ ÍÁËÒÏÓÙ AC_TRY_CPP, AC_CHECK_HEADER, AC_EGREP_HEADER ÉÌÉ AC_EGREP_CPP.

 -- Macro: AC_PROG_CXX
     ïÐÒÅÄÅÌÑÅÔ ÉÍÑ ÉÓÐÏÌØÚÕÅÍÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ C++.  ðÒÏ×ÅÒÑÅÔÓÑ, ÕÓÔÁÎÏ×ÌÅÎÙ ÌÉ ÐÅÒÅÍÅÎÎÙÅ ÓÒÅÄÙ CXX ÉÌÉ CCC (ÉÍÅÎÎÏ × ÔÁËÏÍ ÐÏÒÑÄËÅ); ÅÓÌÉ ÏÄÎÁ ÉÚ ÎÉÈ ÕÓÔÁÎÏ×ÌÅÎÁ, ÔÏ ÚÎÁÞÅÎÉÅ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ CXX ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÒÁ×ÎÙÍ ÚÎÁÞÅÎÉÀ ÜÔÏÊ ÐÅÒÅÍÅÎÎÏÊ.  ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÐÏÉÓË ËÏÍÐÉÌÑÔÏÒÁ C++, ÉÓÐÏÌØÚÕÑ ×ÅÒÏÑÔÎÙÅ ÉÍÅÎÁ (c++, g++, gcc, CC, cxx É cc++). åÓÌÉ ÎÉ ÏÄÎÁ ÉÚ ÜÔÉÈ ÐÒÏ×ÅÒÏË ÎÅ ÐÒÏÛÌÁ ÕÓÐÅÛÎÏ, ÔÏ × ËÁÞÅÓÔ×Å ÐÏÓÌÅÄÎÅÇÏ ÛÁÎÓÁ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ CXX ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÒÁ×ÎÙÍ gcc.

     åÓÌÉ ÉÓÐÏÌØÚÕÅÔÓÑ ËÏÍÐÉÌÑÔÏÒ GNU C++, ÔÏ ÐÅÒÅÍÅÎÎÁÑ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ GXX ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ yes, ÉÎÁÞÅ ÅÊ ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.  åÓÌÉ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ CXXFLAGS ÅÝÅ ÎÅ ÂÙÌÁ ÕÓÔÁÎÏ×ÌÅÎÁ, ÔÏ ÅÊ ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ -g -O2 ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ GNU C++ (-O2 ÎÁ ÓÉÓÔÅÍÁÈ, ÇÄÅ G++ ÎÅ ÒÁÓÐÏÚÎÁÅÔ ËÌÀÞ -g) ÉÌÉ ÚÎÁÞÅÎÉÅ -g ÄÌÑ ÄÒÕÇÉÈ ÓÉÓÔÅÍ.

     åÓÌÉ ÉÓÐÏÌØÚÕÅÍÙÊ ËÏÍÐÉÌÑÔÏÒ C++ ÎÅ ÓÏÚÄÁÅÔ ÉÓÐÏÌÎÑÅÍÙÈ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÚÁÐÕÓËÁÔØÓÑ × ÓÉÓÔÅÍÅ, ÇÄÅ ×ÙÐÏÌÎÑÅÔÓÑ configure, ÔÏ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ cross_compiling ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ yes, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ no. äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, ÚÄÅÓØ ÐÒÏ×ÅÒÑÅÔÓÑ, ÏÔÌÉÞÁÅÔÓÑ ÌÉ ÔÉÐ ÓÉÓÔÅÍÙ, ÄÌÑ ËÏÔÏÒÏÊ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÓÂÏÒËÁ, ÏÔ ÓÉÓÔÅÍÙ, ÎÁ ËÏÔÏÒÏÊ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÓÂÏÒËÁ (ÔÉÐ ÃÅÌÅ×ÏÊ ÓÉÓÔÅÍÙ ÎÅ ÏÔÎÏÓÉÔÓÑ Ë ÜÔÏÍÕ ÔÅÓÔÕ).  äÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ see òÕÞÎÁÑ ÎÁÓÔÒÏÊËÁ.

 -- Macro: AC_PROG_CXXCPP

     úÎÁÞÅÎÉÅ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ CXXCPP ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÒÁ×ÎÙÍ ÉÍÅÎÉ ËÏÍÁÎÄÙ, ËÏÔÏÒÁÑ ÚÁÐÕÓËÁÅÔ ÐÒÅÐÒÏÃÅÓÓÏÒ C++. åÓÌÉ $CXX -E ÎÅ ÒÁÂÏÔÁÅÔ, ÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ /lib/cpp. ðÅÒÅÎÏÓÉÍÙÍ ÒÅÛÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÓË CXXCPP ÔÏÌØËÏ ÄÌÑ ÏÂÒÁÂÏÔËÉ ÆÁÊÌÏ× Ó ÒÁÓÛÉÒÅÎÉÑÍÉ .c, .C ÉÌÉ .cc.

     åÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ C++ (see ÷ÙÂÏÒ ÑÚÙËÁ), ÔÏ ÍÎÏÇÉÅ ÓÐÅÃÉÆÉÞÅÓËÉÅ ÔÅÓÔÙ ËÏÓ×ÅÎÎÏ ÉÓÐÏÌØÚÕÀÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ CXXCPP, ×ÙÚÙ×ÁÑ AC_TRY_CPP, AC_CHECK_HEADER, AC_EGREP_HEADER ÉÌÉ AC_EGREP_CPP.

 -- Macro: AC_PROG_F77
     ïÐÒÅÄÅÌÑÅÔ ÉÍÑ ÉÓÐÏÌØÚÕÅÍÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ Fortran 77. åÓÌÉ ÐÅÒÅÍÅÎÎÁÑ ÓÒÅÄÙ F77 ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ, ÔÏ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÐÒÏ×ÅÒËÁ ÎÁÌÉÞÉÑ ÐÒÏÇÒÁÍÍ g77, f77 and f2c, × ÏÐÉÓÁÎÎÏÍ ÐÏÒÑÄËÅ. éÍÑ ÎÁÊÄÅÎÎÏÊ ÐÒÏÇÒÁÍÍÙ ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ F77.

     åÓÌÉ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÏÇÒÁÍÍÁ g77 (ËÏÍÐÉÌÑÔÏÒ GNU Fortran 77), ÔÏ ÍÁËÒÏÓ AC_PROG_F77 ÕÓÔÁÎÏ×ÉÔ ÐÅÒÅÍÅÎÎÕÀ G77 ÒÁ×ÎÏÊ ÚÎÁÞÅÎÉÀ yes, Á × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÅÊ ÂÕÄÅÔ ÐÒÉÓ×ÏÅÎÏ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ. åÓÌÉ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ FFLAGS ÎÅ ÂÙÌÁ ÕÓÔÁÎÏ×ÌÅÎÁ × ÓÒÅÄÅ, ÔÏ ÄÌÑ g77 ÄÁÎÎÏÊ ÐÅÒÅÍÅÎÎÏÊ ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ -g -02 (ÉÌÉ -O2 × ÔÅÈ ÓÌÕÞÁÑÈ ËÏÇÄÁ g77 ÎÅ ÐÒÉÎÉÍÁÅÔ ËÌÀÞ -g). éÎÁÞÅ, ÄÌÑ ×ÓÅÈ ÏÓÔÁÌØÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× Fortran 77, ÐÅÒÅÍÅÎÎÏÊ FFLAGS ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ -g.

 -- Macro: AC_PROG_F77_C_O
     ÷ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÕ ÔÏÇÏ, ÞÔÏ ËÏÍÐÉÌÑÔÏÒ Fortran 77 ÍÏÖÅÔ ÚÁÐÕÓËÁÔØÓÑ ÏÄÎÏ×ÒÅÍÅÎÎÏ Ó ËÌÀÞÁÍÉ -c É -o. åÓÌÉ ËÏÍÐÉÌÑÔÏÒ ÎÅ ÐÒÉÎÉÍÁÅÔ ÜÔÉ ËÌÀÞÉ ÏÄÎÏ×ÒÅÍÅÎÎÏ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ F77_NO_MINUS_C_MINUS_O.

 -- Macro: AC_PROG_GCC_TRADITIONAL
     äÏÂÁ×ÌÑÅÔ ÓÔÒÏËÕ -traditional Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ CC × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÉÓÐÏÌØÚÕÅÍÙÊ ËÏÍÐÉÌÑÔÏÒ GNU C É ÆÕÎËÃÉÉ ioctl ÎÅÐÒÁ×ÉÌØÎÏ ÒÁÂÏÔÁÀÔ ÂÅÚ ÎÅÅ.  ïÂÙÞÎÏ ÜÔÏ ÓÌÕÞÁÅÔÓÑ, ÅÓÌÉ × ÓÔÁÒÏÊ ÓÉÓÔÅÍÅ ÎÅ ÂÙÌÉ ÕÓÔÁÎÏ×ÌÅÎÙ ÉÓÐÒÁ×ÌÅÎÎÙÅ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ. ðÏÓËÏÌØËÕ Ó×ÅÖÉÅ ×ÅÒÓÉÉ ËÏÍÐÉÌÑÔÏÒÁ GNU C ÐÒÉ ÕÓÔÁÎÏ×ËÅ ÉÓÐÒÁ×ÌÑÀÔ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ, ÜÔÏ ÓÔÁÎÏ×ÉÔÓÑ ÍÅÎÅÅ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÏÊ ÐÒÏÂÌÅÍÏÊ.

 -- Macro: AC_PROG_INSTALL
     õÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ INSTALL, ÒÁ×ÎÏÊ ÐÏÌÎÏÍÕ ÐÕÔÉ Ë ÓÏ×ÍÅÓÔÉÍÏÊ Ó BSD ÐÒÏÇÒÁÍÍÅ install, ÅÓÌÉ ÏÎÁ ÎÁÊÄÅÎÁ × ÔÅËÕÝÅÊ ÐÅÒÅÍÅÎÎÏÊ PATH. éÎÁÞÅ, ÐÅÒÅÍÅÎÎÁÑ INSTALL ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ DIR/install-sh -c, ÐÒÏ×ÅÒÑÑ ËÁÔÁÌÏÇÉ, ÕËÁÚÁÎÎÙÅ × AC_CONFIG_AUX_DIR (ÉÌÉ ËÁÔÁÌÏÇÉ ÐÏ ÕÍÏÌÞÁÎÉÀ) ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ DIR (see ÷Ù×ÏÄ). üÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÙÅ INSTALL_PROGRAM É INSTALL_SCRIPT ÒÁ×ÎÙÍÉ ÚÎÁÞÅÎÉÑÍ ${INSTALL}, Á INSTALL_DATA ÚÎÁÞÅÎÉÅ ${INSTALL} -m 644.

     üÔÏÔ ÍÁËÒÏÓ ÎÅ ÚÁÍÅÞÁÅÔ ×ÅÒÓÉÉ install Ï ËÏÔÏÒÙÈ ÉÚ×ÅÓÔÎÏ, ÞÔÏ ÏÎÉ ÎÅ ÒÁÂÏÔÁÀÔ. üÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ÐÒÅÄÐÏÞÉÔÁÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÏÇÒÁÍÍÕ ÎÁ ÑÚÙËÅ C ×ÍÅÓÔÏ ÓËÒÉÐÔÏ× ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. ÷ÍÅÓÔÏ install-sh, ÏÎ ÔÁËÖÅ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ install.sh, ÎÏ ÜÔÏ ÉÍÑ ÕÓÔÁÒÅÌÏ, ÐÏÓËÏÌØËÕ ÎÅËÏÔÏÒÙÅ ÐÒÏÇÒÁÍÍÙ make ÉÍÅÀÔ ÐÒÁ×ÉÌÏ, ËÏÔÏÒÏÅ ÓÏÚÄÁÅÔ ÆÁÊÌ install ÉÚ ÜÔÏÇÏ ÆÁÊÌÁ, ÅÓÌÉ ÎÅÔ ÆÁÊÌÁ Makefile.

     ëÏÐÉÑ install-sh, ËÏÔÏÒÕÀ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ, ÐÏÓÔÁ×ÌÑÅÔÓÑ Ó Autoconf. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ AC_PROG_INSTALL, ÔÏ ×Ù ÄÏÌÖÎÙ ×ËÌÀÞÉÔØ × Ó×ÏÊ ÄÉÓÔÒÉÂÕÔÉ× ÌÉÂÏ install-sh, ÌÉÂÏ install.sh, ÉÎÁÞÅ configure ×ÙÄÁÓÔ ÏÛÉÂËÕ, ÓÏÏÂÝÁÀÝÕÀ Ï ÔÏÍ, ÞÔÏ ÏÎ ÎÅ ÍÏÖÅÔ ÎÁÊÔÉ ÜÔÉ ÆÁÊÌÙ--- ÄÁÖÅ ÅÓÌÉ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÏÒÍÁÌØÎÕÀ ÐÒÏÇÒÁÍÍÕ install.  üÔÏ ÍÅÒÁ ÂÅÚÏÐÁÓÎÏÓÔÉ, ÞÔÏÂÙ ×Ù ÓÌÕÞÁÊÎÏ ÎÅ ÚÁÂÙÌÉ ÐÒÏ ÜÔÏÔ ÆÁÊÌ, ÔÅÍ ÓÁÍÙÍ ÌÉÛÉ× ÐÏÌØÚÏ×ÁÔÅÌÑ ×ÏÚÍÏÖÎÏÓÔÉ ÕÓÔÁÎÏ×ÉÔØ ×ÁÛ ÐÁËÅÔ × ÓÉÓÔÅÍÅ, × ËÏÔÏÒÏÊ ÎÅÔ BSD-ÓÏ×ÍÅÓÔÉÍÏÊ ÐÒÏÇÒÁÍÍÙ install.

     åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÁÛÕ ÓÏÂÓÔ×ÅÎÎÕÀ ÐÒÏÇÒÁÍÍÕ ÕÓÔÁÎÏ×ËÉ (ÐÏÓËÏÌØËÕ ÏÎÁ ÉÍÅÅÔ ×ÏÚÍÏÖÎÏÓÔÉ, ÏÔÓÕÔÓÔ×ÕÀÝÉÅ × ÓÔÁÎÄÁÒÔÎÙÈ ÐÒÏÇÒÁÍÍÁÈ install), ÔÏ ÎÅÔ ÎÉËÁËÏÊ ÎÁÄÏÂÎÏÓÔÉ × ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÍÁËÒÏÓÁ AC_PROG_INSTALL; ÐÒÏÓÔÏ ÐÏÍÅÓÔÉÔÅ ÐÕÔØ Ë ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ × ×ÁÛÉ ÆÁÊÌÙ Makefile.in.

 -- Macro: AC_PROG_LEX
     åÓÌÉ ÎÁÊÄÅÎÁ ÐÒÏÇÒÁÍÍÁ flex, ÔÏ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ LEX ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ flex, Á LEXLIB --- ÚÎÁÞÅÎÉÅ -lfl, × ÓÌÕÞÁÅ, ÅÓÌÉ ÂÉÂÌÉÏÔÅËÁ ÒÁÓÐÏÌÁÇÁÅÔÓÑ × ÓÔÁÎÄÁÒÔÎÏÍ ÍÅÓÔÅ.  éÎÁÞÅ ÐÅÒÅÍÅÎÎÁÑ LEX ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ lex, Á LEXLIB --- ÚÎÁÞÅÎÉÅ -ll.

 -- Macro: AC_PROG_LN_S
     åÓÌÉ ËÏÍÁÎÄÁ ln -s ÒÁÂÏÔÁÅÔ × ÔÅËÕÝÅÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ (É ÏÐÅÒÁÃÉÏÎÎÁÑ, É ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÙ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÓÉÍ×ÏÌØÎÙÅ ÓÓÙÌËÉ), ÔÏ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ LN_S ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ ln -s, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÚÎÁÞÅÎÉÅ ÒÁ×ÎÏ ln.

     åÓÌÉ ÓÓÙÌËÁ ÐÏÍÅÝÁÅÔÓÑ × ÄÒÕÇÏÊ, ÏÔÌÉÞÎÙÊ ÏÔ ÔÅËÕÝÅÇÏ, ËÁÔÁÌÏÇ, ÔÏ ÓÍÙÓÌ ÜÔÏÊ ÓÓÙÌËÉ ÚÁ×ÉÓÉÔ ÏÔ ÔÏÇÏ, ËÁËÁÑ ËÏÍÁÎÄÁ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ: ln ÉÌÉ ln -s.  þÔÏÂÙ ÂÅÚÂÏÑÚÎÅÎÎÏ ÓÏÚÄÁ×ÁÔØ ÓÓÙÌËÉ, ÉÓÐÏÌØÚÕÑ $(LN_S), ÌÉÂÏ ÏÐÒÅÄÅÌÉÔÅ, ËÁËÁÑ ÆÏÒÍÁ ËÏÍÁÎÄÙ ÉÓÐÏÌØÚÕÅÔÓÑ É ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÉÚÍÅÎÉÔÅ ÅÅ ÁÒÇÕÍÅÎÔÙ, ÌÉÂÏ ×ÓÅÇÄÁ ÚÁÐÕÓËÁÊÔÅ ln × ÔÏÍ ËÁÔÁÌÏÇÅ, ÇÄÅ ÂÕÄÅÔ ÓÏÚÄÁ×ÁÔØÓÑ ÓÓÙÌËÁ.

     äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, ÎÅ ÄÅÌÁÊÔÅ

          $(LN_S) foo /x/bar

     ÷ÍÅÓÔÏ ÜÔÏÇÏ ×ÙÐÏÌÎÑÊÔÅ

          (cd /x && $(LN_S) foo bar)

 -- Macro: AC_PROG_RANLIB
     åÓÌÉ ËÏÍÁÎÄÁ ranlib ÎÁÊÄÅÎÁ, ÔÏ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ RANLIB ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ ÒÁ×ÎÏÅ ranlib, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÚÎÁÞÅÎÉÅ : (ÎÅ ÄÅÌÁÔØ ÎÉÞÅÇÏ).

 -- Macro: AC_PROG_YACC
     åÓÌÉ ÎÁÊÄÅÎÁ ÐÒÏÇÒÁÍÍÁ bison, ÔÏ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ YACC ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ bison -y. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÎÁÊÄÅÎÁ ËÏÍÁÎÄÁ byacc, ÔÏ ÐÅÒÅÍÅÎÎÁÑ YACC ÐÏÌÕÞÉÔ ÚÎÁÞÅÎÉÅ byacc. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ YACC ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ × yacc.

ïÂÝÉÅ ÐÒÏÇÒÁÍÍÙ É ÐÒÏ×ÅÒËÉ ÆÁÊÌÏ×
---------------------------------

üÔÉ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÏÂÎÁÒÕÖÅÎÉÑ ÐÒÏÇÒÁÍÍ, ÄÌÑ ËÏÔÏÒÙÈ ÎÅÔ ÏÔÄÅÌØÎÙÈ ÍÁËÒÏÓÏ×. åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÐÒÏ×ÅÒÉÔØ ÎÅ ÔÏÌØËÏ ÐÒÉÓÕÔÓÔ×ÉÅ ÐÒÏÇÒÁÍÍÙ, ÎÏ É ÅÅ ÐÏ×ÅÄÅÎÉÅ, ÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÎÁÐÉÓÁÔØ Ó×ÏÊ ÔÅÓÔ ÄÌÑ ÄÁÎÎÏÊ ÐÒÏÇÒÁÍÍÙ (see îÁÐÉÓÁÎÉÅ ÔÅÓÔÏ×).  ðÏ ÕÍÏÌÞÁÎÉÀ ÜÔÉ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ PATH. åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÐÒÏ×ÅÒÉÔØ ÎÁÌÉÞÉÅ ÐÒÏÇÒÁÍÍÙ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÁÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÊ ÐÅÒÅÍÅÎÎÏÊ PATH, ÔÏ ×Ù ÍÏÖÅÔÅ ÐÅÒÅÄÁÔØ ÍÁËÒÏÓÕ ÉÚÍÅÎÅÎÎÕÀ ÐÅÒÅÍÅÎÎÕÀ PATH, ×ÏÔ ËÁË × ÜÔÏÍ ÓÌÕÞÁÅ:

     AC_PATH_PROG(INETD, inetd, /usr/libexec/inetd,
       $PATH:/usr/libexec:/usr/sbin:/usr/etc:etc)

 -- Macro: AC_CHECK_FILE (FILE [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     ÷ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÕ, ÓÕÝÅÓÔ×ÕÅÔ ÌÉ × ÓÉÓÔÅÍÅ ÆÁÊÌ FILE. åÓÌÉ ÏÎ ÎÁÊÄÅÎ, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÅÔÓÑ ACTION-IF-NOT-FOUND, ÅÓÌÉ ÚÁÄÁÎÏ.

 -- Macro: AC_CHECK_FILES (FILES[, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     ÷ÙÐÏÌÎÑÅÔ ÍÁËÒÏÓ AC_CHECK_FILE ÄÌÑ ËÁÖÄÏÇÏ ÉÚ ÆÁÊÌÏ× × ÓÐÉÓËÅ FILES. äÏÐÏÌÎÉÔÅÌØÎÏ ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ HAVEFILE ÄÌÑ ËÁÖÄÏÇÏ ÉÚ ÎÁÊÄÅÎÎÙÈ ÆÁÊÌÏ× É ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÅÅ ÒÁ×ÎÏÊ 1.

 -- Macro: AC_CHECK_PROG (VARIABLE, PROG-TO-CHECK-FOR, VALUE-IF-FOUND [, VALUE-IF-NOT-FOUND [, PATH, [ REJECT ]]])
     ðÒÏ×ÅÒÑÅÔ, ÎÁÈÏÄÉÔÓÑ ÌÉ ÐÒÏÇÒÁÍÍÁ PROG-TO-CHECK-FOR × ËÁÔÁÌÏÇÁÈ, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × ÐÅÒÅÍÅÎÎÏÊ PATH. åÓÌÉ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ÎÁÊÄÅÎÁ, ÔÏ ÐÅÒÅÍÅÎÎÁÑ VARIABLE ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÒÁ×ÎÙÍ ÚÎÁÞÅÎÉÀ VALUE-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÒÁ×ÎÙÍ ÚÎÁÞÅÎÉÀ VALUE-IF-NOT-FOUND (ÅÓÌÉ ÏÎÏ ÚÁÄÁÎÏ).  îÉËÏÇÄÁ ÎÅ ÉÓÐÏÌØÚÕÅÔ REJECT (ÉÍÑ ÆÁÊÌÁ Ó ÁÂÓÏÌÀÔÎÙÍ ÐÕÔÅÍ), ÄÁÖÅ ÅÓÌÉ ÔÁËÁÑ ÐÒÏÇÒÁÍÍÁ ÂÙÌÁ ÎÁÊÄÅÎÁ × ÐÕÔÑÈ ÐÏÉÓËÁ; × ÜÔÏÍ ÓÌÕÞÁÅ ÐÅÒÅÍÅÎÎÁÑ VARIABLE ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ, ÉÓÐÏÌØÚÕÑ ÁÂÓÏÌÀÔÎÏÅ ÉÍÑ ÎÁÊÄÅÎÎÏÊ ÐÒÏÇÒÁÍÍÙ PROG-TO-CHECK-FOR, ËÏÔÏÒÁÑ ÎÅ Ñ×ÌÑÅÔÓÑ REJECT. åÓÌÉ ÐÅÒÅÍÅÎÎÁÑ VARIABLE ÕÖÅ ÕÓÔÁÎÏ×ÌÅÎÁ, ÔÏ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔÓÑ. ÷ÙÚÙ×ÁÅÔ ÍÁËÒÏÓ AC_SUBST ÄÌÑ VARIABLE.

 -- Macro: AC_CHECK_PROGS (VARIABLE, PROGS-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
     ðÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ × PATH ËÁÖÄÏÊ ÐÒÏÇÒÁÍÍÙ ÉÚ ÓÐÉÓËÁ ÞÅÒÅÚ ÐÒÏÂÅÌ PROGS-TO-CHECK-FOR.  åÓÌÉ ÐÒÏÇÒÁÍÍÁ ÎÁÊÄÅÎÁ, ÔÏ ÐÅÒÅÍÅÎÎÁÑ VARIABLE ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ × ÚÎÁÞÅÎÉÅ, ÒÁ×ÎÏÅ ÉÍÅÎÉ ÎÁÊÄÅÎÎÏÊ ÐÒÏÇÒÁÍÍÙ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÐÒÏÄÏÌÖÁÅÔÓÑ ÐÒÏ×ÅÒËÁ ÎÁÌÉÞÉÑ ÓÌÅÄÕÀÝÅÊ ÐÒÏÇÒÁÍÍÙ. åÓÌÉ ÎÉ ÏÄÎÁ ÉÚ ÐÒÏÇÒÁÍÍ ÎÅ ÎÁÊÄÅÎÁ, ÔÏ ÐÅÒÅÍÅÎÎÁÑ VARIABLE ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ VALUE-IF-NOT-FOUND; ÅÓÌÉ VALUE-IF-NOT-FOUND ÎÅ ÕËÁÚÁÎÏ, ÔÏ ÚÎÁÞÅÎÉÅ VARIABLE ÎÅ ÉÚÍÅÎÑÅÔÓÑ. ÷ÙÚÙ×ÁÅÔ ÍÁËÒÏÓ AC_SUBST ÄÌÑ VARIABLE.

 -- Macro: AC_CHECK_TOOL (VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
     òÁÂÏÔÁÅÔ ÐÏÄÏÂÎÏ AC_CHECK_PROG, ÎÏ ÓÎÁÞÁÌÁ ÐÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ PROG-TO-CHECK-FOR Ó ÐÒÅÆÉËÓÏÍ ÔÉÐÁ ÓÉÓÔÅÍÙ, ËÏÔÏÒÙÊ ÏÐÒÅÄÅÌÑÅÔÓÑ ÍÁËÒÏÓÏÍ AC_CANONICAL_HOST, ÚÁ ËÏÔÏÒÙÍ ÓÌÅÄÕÅÔ ÔÉÒÅ (see ëÁÎÏÎÉÚÁÃÉÑ). îÁÐÒÉÍÅÒ, ÅÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÐÕÓÔÉÔ configure --host=i386-gnu, ÔÏ ÜÔÏÔ ×ÙÚÏ×:

          AC_CHECK_TOOL(RANLIB, ranlib, :)

     ÕÓÔÁÎÏ×ÉÔ ÐÅÒÅÍÅÎÎÕÀ RANLIB × ÚÎÁÞÅÎÉÅ i386-gnu-ranlib, ÅÓÌÉ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÁÈ, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × PATH, ÉÌÉ × ranlib, ÅÓÌÉ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ÎÁÈÏÄÉÔÓÑ × PATH, ÉÌÉ × :, ÅÓÌÉ ÎÉ ÏÄÎÁ ÉÚ ÐÒÏÇÒÁÍÍ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ.

 -- Macro: AC_PATH_PROG (VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
     òÁÂÏÔÁÅÔ ÐÏÄÏÂÎÏ AC_CHECK_PROG, ÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ VARIABLE ÒÁ×ÎÏÊ ÐÏÌÎÏÍÕ ÐÕÔÉ Ë ÎÁÊÄÅÎÎÏÊ ÐÒÏÇÒÁÍÍÅ PROG-TO-CHECK-FOR.

 -- Macro: AC_PATH_PROGS (VARIABLE, PROGS-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
     ðÏÄÏÂÅÎ ÍÁËÒÏÓÕ AC_CHECK_PROGS, ÎÏ ÅÓÌÉ ÎÁÊÄÅÎÁ ÌÀÂÁÑ ÉÚ ÐÒÏÇÒÁÍÍ PROGS-TO-CHECK-FOR, ÔÏ ÐÅÒÅÍÅÎÎÁÑ VARIABLE ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ, ÒÁ×ÎÏÅ ÐÏÌÎÏÍÕ ÐÕÔÉ Ë ÎÁÊÄÅÎÎÏÊ ÐÒÏÇÒÁÍÍÅ.

æÁÊÌÙ ÂÉÂÌÉÏÔÅË
===============

îÉÖÅÏÐÉÓÁÎÎÙÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÎÁÌÉÞÉÅ ÏÐÒÅÄÅÌÅÎÎÙÈ ÂÉÂÌÉÏÔÅË C, C++ ÉÌÉ Fortran 77.

 -- Macro: AC_CHECK_LIB (LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
     ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÅËÕÝÅÇÏ ÑÚÙËÁ (see ÷ÙÂÏÒ ÑÚÙËÁ), ÍÁËÒÏÓ ÐÙÔÁÅÔÓÑ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÆÕÎËÃÉÑ C, C++ ÉÌÉ Fortran 77 Ó ÉÍÅÎÅÍ FUNCTION ÄÏÓÔÕÐÎÁ (ÐÕÔÅÍ ÐÒÏ×ÅÒËÉ, ÞÔÏ ÔÅÓÔÏ×ÁÑ ÐÒÏÇÒÁÍÍÁ ËÏÍÐÏÎÕÅÔÓÑ Ó ÂÉÂÌÉÏÔÅËÏÊ LIBRARY ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÓÔÕÐÁ Ë ÆÕÎËÃÉÉ). LIBRARY Ñ×ÌÑÅÔÓÑ ÂÁÚÏ×ÙÍ ÉÍÅÎÅÍ ÂÉÂÌÉÏÔÅËÉ; ÎÁÐÒÉÍÅÒ, ÄÌÑ -lmp, ÉÓÐÏÌØÚÕÊÔÅ mp × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ LIBRARY.

     ACTION-IF-FOUND Ñ×ÌÑÅÔÓÑ ÓÐÉÓËÏÍ ËÏÍÁÎÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÅ ÚÁÐÕÓËÁÀÔÓÑ × ÓÌÕÞÁÅ, ÅÓÌÉ ÐÒÏÃÅÓÓ ËÏÍÐÏÎÏ×ËÉ ÐÒÏÛÅÌ ÕÄÁÞÎÏ; ACTION-IF-NOT-FOUND Ñ×ÌÑÅÔÓÑ ÓÐÉÓËÏÍ ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ÚÁÐÕÓËÁÀÔÓÑ, ÅÓÌÉ ÐÒÏÃÅÓÓ ËÏÍÐÏÎÏ×ËÉ ÐÏÔÅÒÐÅÌ ÎÅÕÄÁÞÕ.  åÓÌÉ ÁÒÇÕÍÅÎÔ ACTION-IF-FOUND ÎÅ ÕËÁÚÁÎ, ÔÏ ÄÅÊÓÔ×ÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÏÂÁ×ÉÔ -lLIBRARY × ÐÅÒÅÍÅÎÎÕÀ LIBS É ÏÐÒÅÄÅÌÉÔ ÐÅÒÅÍÅÎÎÕÀ HAVE_LIBLIBRARY (×ÓÅ ÂÕË×Ù ÚÁÇÌÁ×ÎÙÅ).

     åÓÌÉ ÐÒÉ ËÏÍÐÏÎÏ×ËÅ Ó LIBRARY ×ÙÄÁÀÔÓÑ ÓÏÏÂÝÅÎÉÑ Ï ÎÅÎÁÊÄÅÎÎÙÈ ÓÉÍ×ÏÌÁÈ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÎÁÊÄÅÎÙ, ËÏÍÐÏÎÕÑ ÐÒÏÇÒÁÍÍÙ Ó ÄÏÐÏÌÎÉÔÅÌØÎÙÍÉ ÂÉÂÌÉÏÔÅËÁÍÉ, ÔÏ ×Ù ÄÏÌÖÎÙ ÐÅÒÅÄÁÔØ ÓÐÉÓÏË ÜÔÉÈ ÂÉÂÌÉÏÔÅË ÞÅÒÅÚ ÐÒÏÂÅÌÙ × ÁÒÇÕÍÅÎÔÅ OTHER-LIBRARIES: -lXt -lX11. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÜÔÏÔ ÍÁËÒÏÓ ÎÅ ÓÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÂÉÂÌÉÏÔÅËÁ LIBRARY ÐÒÉÓÕÔÓÔ×ÕÅÔ, ÐÏÓËÏÌØËÕ ËÏÍÐÏÎÏ×ËÁ ÔÅÓÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÙ ×ÓÅÇÄÁ ÂÕÄÅÔ Á×ÁÒÉÊÎÏ ÚÁ×ÅÒÛÁÔØÓÑ Ó ÓÏÏÂÝÅÎÉÑÍÉ Ï ÎÅÎÁÊÄÅÎÎÙÈ ÓÉÍ×ÏÌÁÈ.

 -- Macro: AC_HAVE_LIBRARY (LIBRARY, [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
     üÔÏÔ ÍÁËÒÏÓ ÁÎÁÌÏÇÉÞÅÎ ×ÙÚÏ×Õ AC_CHECK_LIB Ó ÁÒÇÕÍÅÎÔÏÍ FUNCTION, ÒÁ×ÎÙÍ main.  ÷ÄÏÂÁ×ÏË, LIBRARY ÍÏÖÅÔ ÂÙÔØ ÕËÁÚÁÎÁ ËÁË foo, -lfoo ÉÌÉ libfoo.a. ÷Ï ×ÓÅÈ ÜÔÉÈ ÓÌÕÞÁÑÈ ËÏÍÐÉÌÑÔÏÒÕ ÐÅÒÅÄÁÅÔÓÑ ÓÔÒÏËÁ -lfoo. ïÄÎÁËÏ LIBRARY ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ; ÅÅ ÚÎÁÞÅÎÉÅ ÄÏÌÖÎÏ ÂÙÔØ ÓÉÍ×ÏÌØÎÙÍ ÉÍÅÎÅÍ. üÔÏÔ ÍÁËÒÏÓ ÓÞÉÔÁÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ.

 -- Macro: AC_SEARCH_LIBS (FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
     ðÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÂÉÂÌÉÏÔÅËÉ, ÏÐÒÅÄÅÌÑÀÝÅÊ ÆÕÎËÃÉÀ FUNCTION, ÅÓÌÉ ÏÎÁ ÅÝÅ ÎÅ ÄÏÓÔÕÐÎÁ. üÔÏ ÐÏÄÏÂÎÏ ×ÙÚÏ×Õ ÍÁËÒÏÓÁ AC_TRY_LINK_FUNC ÓÎÁÞÁÌÁ ÂÅÚ ÕËÁÚÁÎÉÑ ÂÉÂÌÉÏÔÅË, Á ÚÁÔÅÍ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÂÉÂÌÉÏÔÅË, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × ÓÐÉÓËÅ SEARCH-LIBS.

     åÓÌÉ ÆÕÎËÃÉÑ ÎÁÊÄÅÎÁ, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÀÔÓÑ ACTION-IF-NOT-FOUND.

     åÓÌÉ ÐÒÉ ËÏÍÐÏÎÏ×ËÅ Ó LIBRARY ×ÙÄÁÀÔÓÑ ÓÏÏÂÝÅÎÉÑ Ï ÎÅÎÁÊÄÅÎÎÙÈ ÓÉÍ×ÏÌÁÈ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÎÁÊÄÅÎÙ, ËÏÍÐÏÎÕÑ ÐÒÏÇÒÁÍÍÙ Ó ÄÏÐÏÌÎÉÔÅÌØÎÙÍÉ ÂÉÂÌÉÏÔÅËÁÍÉ, ÔÏ ×Ù ÄÏÌÖÎÙ ÐÅÒÅÄÁÔØ ÓÐÉÓÏË ÜÔÉÈ ÂÉÂÌÉÏÔÅË ÞÅÒÅÚ ÐÒÏÂÅÌ, ÉÓÐÏÌØÚÕÑ ÁÒÇÕÍÅÎÔ OTHER-LIBRARIES: -lXt -lX11. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÜÔÏÔ ÍÁËÒÏÓ ÎÅ ÓÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÂÉÂÌÉÏÔÅËÁ LIBRARY ÐÒÉÓÕÔÓÔ×ÕÅÔ, ÐÏÓËÏÌØËÕ ËÏÍÐÏÎÏ×ËÁ ÔÅÓÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÙ ×ÓÅÇÄÁ ÂÕÄÅÔ Á×ÁÒÉÊÎÏ ÚÁ×ÅÒÛÁÔØÓÑ Ó ÓÏÏÂÝÅÎÉÑÍÉ Ï ÎÅÎÁÊÄÅÎÎÙÈ ÓÉÍ×ÏÌÁÈ.

 -- Macro: AC_SEARCH_LIBS (FUNCTION, SEARCH-LIBS[, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     üÔÏÔ ÍÁËÒÏÓ ÜË×É×ÁÌÅÎÔÅÎ ×ÙÚÏ×Õ AC_TRY_LINK_FUNC ÄÌÑ ËÁÖÄÏÊ ÉÚ ÂÉÂÌÉÏÔÅË, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × ÓÐÉÓËÅ SEARCH-LIBS. íÁËÒÏÓ ÄÏÂÁ×ÌÑÅÔ -lLIBRARY Ë ÓÏÄÅÒÖÉÍÏÍÕ ÐÅÒÅÍÅÎÎÏÊ LIBS ÄÌÑ ÐÅÒ×ÏÊ ÂÉÂÌÉÏÔÅËÉ, ËÏÔÏÒÁÑ ÓÏÄÅÒÖÉÔ FUNCTION É ×ÙÐÏÌÎÑÅÔ ACTION-IF-FOUND. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÅÔÓÑ ACTION-IF-NOT-FOUND.

âÉÂÌÉÏÔÅÞÎÙÅ ÆÕÎËÃÉÉ
====================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÏÔÄÅÌØÎÙÅ ÆÕÎËÃÉÉ ÂÉÂÌÉÏÔÅËÉ C.  åÓÌÉ ÄÌÑ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ×ÁÍ ÎÕÖÎÁ, ÎÅÔ ÏÔÄÅÌØÎÏÇÏ ÍÁËÒÏÓÁ, É ×ÁÍ ÎÅ ÎÕÖÎÏ ÐÒÏ×ÅÒÑÔØ ÓÐÅÃÉÁÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÜÔÏÊ ÆÕÎËÃÉÉ, ÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÄÉÎ ÉÚ ÏÂÝÉÈ ÍÁËÒÏÓÏ× ÐÒÏ×ÅÒËÉ ÆÕÎËÃÉÊ.

ðÒÏ×ÅÒËÁ ÏÔÄÅÌØÎÙÈ ÆÕÎËÃÉÊ
--------------------------

üÔÉ ÍÁËÒÏÓÙ ×ÙÐÏÌÎÑÀÔ ÐÒÏ×ÅÒËÕ ÏÔÄÅÌØÎÙÈ ÆÕÎËÃÉÊ: ÓÕÝÅÓÔ×ÕÀÔ ÌÉ ÏÎÉ É, × ÏÔÄÅÌØÎÙÈ ÓÌÕÞÁÑÈ, ËÁË ÏÎÉ ÒÁÂÏÔÁÀÔ ÐÒÉ ÚÁÄÁÎÉÉ ÏÐÒÅÄÅÌÅÎÎÙÈ ÁÒÇÕÍÅÎÔÏ×.

 -- Macro: AC_FUNC_ALLOCA
     ðÒÏ×ÅÒÑÅÔ, ËÁË ÐÏÌÕÞÉÔØ alloca.  íÁËÒÏÓ ÐÒÏÂÕÅÔ ÐÏÌÕÞÉÔØ ×ÓÔÒÏÅÎÎÕÀ ×ÅÒÓÉÀ, ÐÒÏ×ÅÒÑÑ ÎÁÌÉÞÉÅ ÆÁÊÌÁ alloca.h ÉÌÉ ÐÒÅÄÏÐÒÅÄÅÌÅÎÎÙÈ ÍÁËÒÏÓÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ C __GNUC__ É _AIX. åÓÌÉ ÜÔÏÔ ÍÁËÒÏÓ ÎÁÈÏÄÉÔ alloca.h, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_ALLOCA_H.

     åÓÌÉ ÜÔÉ ÐÏÐÙÔËÉ ÏËÁÎÞÉ×ÁÀÔÓÑ ÎÅÕÄÁÞÅÊ, ÔÏ ÍÁËÒÏÓ ÂÕÄÅÔ ÉÓËÁÔØ ÆÕÎËÃÉÀ × ÓÔÁÎÄÁÒÔÎÏÊ ÂÉÂÌÉÏÔÅËÅ C. åÓÌÉ ÌÀÂÏÊ ÉÚ ÜÔÉÈ ÍÅÔÏÄÏ× ÚÁËÏÎÞÉÔÓÑ ÕÓÐÅÛÎÏ, ÔÏ ÂÕÄÅÔ ÏÐÒÅÄÅÌÅÎÁ ÐÅÒÅÍÅÎÎÁÑ HAVE_ALLOCA. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ ALLOCA ÐÏÌÕÞÉÔ ÚÎÁÞÅÎÉÅ alloca.o É ÂÕÄÅÔ ÏÐÒÅÄÅÌÅÎÁ ÐÅÒÅÍÅÎÎÁÑ C_ALLOCA (ÔÁË ÞÔÏ ÐÒÏÇÒÁÍÍÙ ÓÍÏÇÕÔ ÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÚÙ×ÁÔØ alloca(0) ÄÌÑ ÓÂÏÒËÉ ÍÕÓÏÒÁ). üÔÁ ÐÅÒÅÍÅÎÎÁÑ ÏÔÄÅÌÅÎÁ ÏÔ LIBOBJS, ÔÁË ÞÔÏ ÎÅÓËÏÌØËÏ ÐÒÏÇÒÁÍÍ ÓÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÄÎÏ É ÔÏ ÖÅ ÚÎÁÞÅÎÉÅ ALLOCA, ÂÅÚ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÓÏÚÄÁÎÉÑ ÎÁÓÔÏÑÝÅÊ ÂÉÂÌÉÏÔÅËÉ, ÅÓÌÉ ÌÉÛØ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ÉÓÐÏÌØÚÕÀÔ ËÏÄ × LIBOBJS.

     üÔÉ ÍÁËÒÏÓÙ ÎÅ ÐÙÔÁÀÔÓÑ ÐÏÌÕÞÉÔØ alloca ÉÚ ÂÉÂÌÉÏÔÅËÉ System V R3 libPW ÉÌÉ ÉÚ ÂÉÂÌÉÏÔÅËÉ System V R4 libucb, ÐÏÓËÏÌØËÕ ÜÔÉ ÂÉÂÌÉÏÔÅËÉ ÓÏÄÅÒÖÁÔ ÎÅËÏÔÏÒÙÅ ÎÅÓÏ×ÍÅÓÔÉÍÙÅ ÆÕÎËÃÉÉ, ÞÔÏ ÍÏÖÅÔ × ÄÁÌØÎÅÊÛÅÍ ×ÙÚ×ÁÔØ ÐÒÏÂÌÅÍÙ. îÅËÏÔÏÒÙÅ ×ÅÒÓÉÉ ÂÉÂÌÉÏÔÅË ÄÁÖÅ ÎÅ ÓÏÄÅÒÖÁÔ alloca ÉÌÉ ÓÏÄÅÒÖÁÔ ×ÅÒÓÉÀ Ó ÏÛÉÂËÁÍÉ. åÓÌÉ ×Ù ×ÓÅ ÔÁËÉ ÈÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ alloca ÉÚ ÜÔÉÈ ÂÉÂÌÉÏÔÅË, ÔÏ ×ÍÅÓÔÏ ËÏÍÐÉÌÑÃÉÉ ÆÁÊÌÁ alloca.c ÉÓÐÏÌØÚÕÊÔÅ ar ÄÌÑ ÉÚ×ÌÅÞÅÎÉÑ ÉÚ ÎÉÈ alloca.o.

     äÌÑ ÐÒÁ×ÉÌØÎÏÇÏ ÏÂßÑ×ÌÅÎÉÑ ÜÔÏÊ ÆÕÎËÃÉÉ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ, ÉÓÐÏÌØÚÕÀÝÉÅ alloca, ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ ÐÒÉÍÅÒÎÏ Ó ÎÉÖÅÉÚÌÏÖÅÎÎÏÇÏ ËÏÄÁ.  ÷ ÎÅËÏÔÏÒÙÈ ×ÅÒÓÉÑÈ AIX, ÏÂßÑ×ÌÅÎÉÅ alloca ÄÏÌÖÎÏ ÐÒÅÄÛÅÓÔ×Ï×ÁÔØ ×ÓÅÍÕ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ËÏÍÍÅÎÔÁÒÉÅ× É ÄÉÒÅËÔÉ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ.  äÉÒÅËÔÉ×Á #pragma ÓÐÅÃÉÁÌØÎÙÍ ÏÂÒÁÚÏÍ ×ÙÒÏ×ÎÅÎÁ (ÐÅÒÅÄ ÎÅÊ ÓÔÏÉÔ ÎÅÓËÏÌØËÏ ÐÒÏÂÅÌÏ×), ÞÔÏÂÙ ÓÔÁÒÙÅ ÎÅ-ANSI ËÏÍÐÉÌÑÔÏÒÙ C ÉÇÎÏÒÉÒÏ×ÁÌÉ ÅÅ, Á ÎÅ ×ÙÄÁ×ÁÌÉ ÏÛÉÂËÕ.

          /* AIX ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÜÔÏ ÂÙÌÏ ÐÅÒ×ÙÍ ËÏÄÏÍ × ÆÁÊÌÅ.  */
          #ifndef __GNUC__
          # if HAVE_ALLOCA_H
          #  include <alloca.h>
          # else
          #  ifdef _AIX
           #pragma alloca
          #  else
          #   ifndef alloca /* ÐÒÅÄÏÐÒÅÄÅÌÅÎÏ × cc +Olibcalls ÆÉÒÍÙ HP */
          char *alloca ();
          #   endif
          #  endif
          # endif
          #endif

 -- Macro: AC_FUNC_CLOSEDIR_VOID
     åÓÌÉ ÚÎÁÞÅÎÉÅ, ×ÏÚ×ÒÁÝÁÅÍÏÅ ÆÕÎËÃÉÅÊ closedir, ÎÅ ÎÅÓÅÔ ÐÏÌÅÚÎÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ CLOSEDIR_VOID. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÔÏÔ, ËÔÏ ×ÙÚÙ×ÁÅÔ ÜÔÕ ÆÕÎËÃÉÀ, ÍÏÖÅÔ ÐÒÏ×ÅÒÉÔØ ×ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ ÎÁ ÎÁÌÉÞÉÅ ÏÛÉÂËÉ.

 -- Macro: AC_FUNC_FNMATCH
     åÓÌÉ ÆÕÎËÃÉÑ fnmatch ÄÏÓÔÕÐÎÁ É ÒÁÂÏÔÁÅÔ (× ÏÔÌÉÞÉÅ ÏÔ ÉÍÅÀÝÅÊÓÑ × SunOS 5.4), ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_FNMATCH.

 -- Macro: AC_FUNC_GETLOADAVG
     ðÒÏ×ÅÒËÁ ÔÏÇÏ, ËÁË ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ Ï ÚÁÇÒÕÚËÅ ÓÉÓÔÅÍÙ. åÓÌÉ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÆÕÎËÃÉÀ getloadavg, ÔÏ ÜÔÏÔ ÍÁËÒÏÓ ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ HAVE_GETLOADAVG, É ÄÏÂÁ×ÌÑÅÔ Ë LIBS ÂÉÂÌÉÏÔÅËÉ, ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÆÕÎËÃÉÉ.

     ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÍÁËÒÏÓ ÄÏÂÁ×ÌÑÅÔ getloadavg.o Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBOBJS É, ×ÏÚÍÏÖÎÏ, ÏÐÒÅÄÅÌÑÅÔ ÄÒÕÇÉÅ ÍÁËÒÏÓÙ ÐÒÅÐÒÏÃÅÓÓÏÒÁ C É ×ÙÈÏÄÎÙÅ ÐÅÒÅÍÅÎÎÙÅ:

      1. ïÎ ÏÐÒÅÄÅÌÑÅÔ SVR4, DGUX, UMAX ÉÌÉ UMAX4_3 ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÓÉÓÔÅÍÁÈ.

      2. åÓÌÉ ÏÎ ÎÁÈÏÄÉÔ nlist.h, ÔÏ ÏÎ ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ NLIST_STRUCT.

      3. åÓÌÉ struct nlist ÉÍÅÅÔ ÐÏÌÅ n_un, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ NLIST_NAME_UNION.

      4. åÓÌÉ ËÏÍÐÉÌÑÃÉÑ getloadavg.c ÏÐÒÅÄÅÌÑÅÔ LDAV_PRIVILEGED, ÔÏ ÐÒÏÇÒÁÍÍÙ ÎÅÏÂÈÏÄÉÍÏ ÓÐÅÃÉÁÌØÎÙÍ ÏÂÒÁÚÏÍ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ÎÁ ÜÔÕ ÓÉÓÔÅÍÕ, ÞÔÏÂÙ getloadavg ÒÁÂÏÔÁÌÁ, É ÜÔÏÔ ÍÁËÒÏÓ ÏÐÒÅÄÅÌÑÅÔ GETLOADAVG_PRIVILEGED.

      5. üÔÏÔ ÍÁËÒÏÓ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ NEED_SETGID. åÅ ÚÎÁÞÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ true, ÅÓÌÉ ÔÒÅÂÕÅÔÓÑ ÓÐÅÃÉÁÌØÎÁÑ ÕÓÔÁÎÏ×ËÁ, É false × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ. åÓÌÉ NEED_SETGID ÒÁ×ÅÎ true, ÔÏ ÜÔÏÔ ÍÁËÒÏÓ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ KMEM_GROUP × ÚÎÁÞÅÎÉÅ, ÒÁ×ÎÏÅ ÎÁÚ×ÁÎÉÀ ÇÒÕÐÐÙ, ËÏÔÏÒÁÑ ÄÏÌÖÎÁ ×ÌÁÄÅÔØ ÕÓÔÁÎÏ×ÌÅÎÎÏÊ ÐÒÏÇÒÁÍÍÏÊ.

 -- Macro: AC_FUNC_GETMNTENT
     ðÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ getmntent × ÂÉÂÌÉÏÔÅËÁÈ sun, seq É gen ÄÌÑ Irix 4, PTX É Unixware, ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ.  úÁÔÅÍ, ÅÓÌÉ ÆÕÎËÃÉÑ getmntent ÄÏÓÔÕÐÎÁ, ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_GETMNTENT.

 -- Macro: AC_FUNC_GETPGRP
     åÓÌÉ getpgrp ÚÁÐÕÓËÁÅÔÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÏ× (×ÅÒÓÉÑ POSIX.1), ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ GETPGRP_VOID.  ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÆÕÎËÃÉÑ Ñ×ÌÑÅÔÓÑ BSD-×ÅÒÓÉÅÊ, ËÏÔÏÒÁÑ ÐÒÉÎÉÍÁÅÔ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ. üÔÏÔ ÍÁËÒÏÓ ÎÅ ×ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÕ ÎÁÌÉÞÉÑ getpgrp; ÅÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÒÁÂÏÔÁÔØ × ÔÁËÏÊ ÓÉÔÕÁÃÉÉ, ÔÏ ÓÎÁÞÁÌÁ ×ÙÚÏ×ÉÔÅ AC_CHECK_FUNC ÄÌÑ getpgrp.

 -- Macro: AC_FUNC_MEMCMP
     åÓÌÉ ÆÕÎËÃÉÑ memcmp ÎÅÄÏÓÔÕÐÎÁ, ÉÌÉ ÎÅ ÒÁÂÏÔÁÅÔ Ó ×ÏÓØÍÉÂÉÔÎÙÍÉ ÄÁÎÎÙÍÉ (ËÁË ÆÕÎËÃÉÑ × SunOS 4.1.3), ÔÏ memcmp.o ÄÏÂÁ×ÌÑÅÔÓÑ Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBOBJS.

 -- Macro: AC_FUNC_MMAP
     åÓÌÉ ÆÕÎËÃÉÑ mmap ÓÕÝÅÓÔ×ÕÅÔ É ÒÁÂÏÔÁÅÔ ÐÒÁ×ÉÌØÎÏ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_MMAP. ðÒÏ×ÅÒÑÅÔÓÑ ÔÏÌØËÏ ÆÉËÓÉÒÏ×ÁÎÎÏÅ ÐÒÉ×ÁÔÎÏÅ ÏÔÏÂÒÁÖÅÎÉÅ ÕÖÅ ÏÔÏÂÒÁÖÅÎÎÏÊ ÐÁÍÑÔÉ.

 -- Macro: AC_FUNC_SELECT_ARGTYPES
     ïÐÒÅÄÅÌÑÅÔ ÐÒÁ×ÉÌØÎÙÊ ÔÉÐ, ÐÅÒÅÄÁ×ÁÅÍÙÊ ËÁÖÄÏÍÕ ÉÚ ÁÒÇÕÍÅÎÔÏ× ÆÕÎËÃÉÉ select, É ÏÐÒÅÄÅÌÑÅÔ ÜÔÉ ÔÉÐÙ × ÐÅÒÅÍÅÎÎÙÈ SELECT_TYPE_ARG1, SELECT_TYPE_ARG234 É SELECT_TYPE_ARG5. úÎÁÞÅÎÉÅÍ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ SELECT_TYPE_ARG1 Ñ×ÌÑÅÔÓÑ int, ÄÌÑ SELECT_TYPE_ARG234 ÔÉÐÏÍ ÐÏ ÕÍÏÌÞÁÎÉÀ Ñ×ÌÑÅÔÓÑ int * É ÄÌÑ SELECT_TYPE_ARG5 ÔÉÐÏÍ ÐÏ ÕÍÏÌÞÁÎÉÀ Ñ×ÌÑÅÔÓÑ struct timeval *.

 -- Macro: AC_FUNC_SETPGRP
     åÓÌÉ setpgrp ÚÁÐÕÓËÁÅÔÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÏ× (×ÅÒÓÉÑ POSIX.1), ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ SETPGRP_VOID. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÆÕÎËÃÉÑ Ñ×ÌÑÅÔÓÑ BSD-×ÅÒÓÉÅÊ, ËÏÔÏÒÁÑ ÐÒÉÎÉÍÁÅÔ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ. üÔÏÔ ÍÁËÒÏÓ ÎÅ ×ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÕ ÎÁÌÉÞÉÑ setpgrp; ÅÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÒÁÂÏÔÁÔØ × ÔÁËÏÊ ÓÉÔÕÁÃÉÉ, ÔÏ ÓÎÁÞÁÌÁ ×ÙÚÏ×ÉÔÅ AC_CHECK_FUNC ÄÌÑ setpgrp.

 -- Macro: AC_FUNC_SETVBUF_REVERSED
     åÓÌÉ setvbuf ÐÒÉÎÉÍÁÅÔ ÔÉÐ ÂÕÆÅÒÉÚÁÃÉÉ ËÁË ×ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ, Á ÕËÁÚÁÔÅÌØ ÎÁ ÂÕÆÅÒ ËÁË ÔÒÅÔÉÊ ÁÒÇÕÍÅÎÔ, Á ÎÅ ÎÁÏÂÏÒÏÔ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ SETVBUF_REVERSED. üÔÏ ÓÐÒÁ×ÅÄÌÉ×Ï ÄÌÑ System V ÄÏ ×ÙÐÕÓËÁ 3.

 -- Macro: AC_FUNC_STRCOLL
     åÓÌÉ ÆÕÎËÃÉÑ strcoll ÓÕÝÅÓÔ×ÕÅÔ É ÒÁÂÏÔÁÅÔ ÐÒÁ×ÉÌØÎÏ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_STRCOLL. üÔÏÔ ÍÁËÒÏÓ ×ÙÐÏÌÎÑÅÔ ÂÏÌØÛÅ ÐÒÏ×ÅÒÏË, ÞÅÍ ÐÒÏÓÔÏ ×ÙÚÏ× AC_CHECK_FUNCS(strcoll), ÐÏÔÏÍÕ ÞÔÏ ÎÅËÏÔÏÒÙÅ ÓÉÓÔÅÍÙ ÉÍÅÀÔ ÎÅÐÒÁ×ÉÌØÎÙÅ ÏÐÒÅÄÅÌÅÎÉÑ strcoll, ËÏÔÏÒÙÍÉ ÎÅ ÓÌÅÄÕÅÔ ÐÏÌØÚÏ×ÁÔØÓÑ.

 -- Macro: AC_FUNC_STRFTIME
     ðÒÏ×ÅÒËÁ ÎÁÌÉÞÉÑ strftime × ÂÉÂÌÉÏÔÅËÅ intl, ÄÌÑ SCO UNIX. úÁÔÅÍ, ÅÓÌÉ strftime ÄÏÓÔÕÐÎÁ, ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_STRFTIME.

 -- Macro: AC_FUNC_UTIME_NULL
     åÓÌÉ ×ÙÚÏ× utime(FILE, NULL) ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÒÅÍÑ ÍÏÄÉÆÉËÁÃÉÉ ÆÁÊÌÁ FILE × ÔÅËÕÝÅÅ ×ÒÅÍÑ, ÔÏ ÏÐÒÅÄÅÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ HAVE_UTIME_NULL.

 -- Macro: AC_FUNC_VFORK
     åÓÌÉ ÎÁÊÄÅÎ ÆÁÊÌ vfork.h, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_VFORK_H. åÓÌÉ ÒÁÂÏÔÁÀÝÁÑ ×ÅÒÓÉÑ vfork ÎÅ ÎÁÊÄÅÎÁ, ÔÏ ÏÐÒÅÄÅÌÉÔØ vfork ËÁË fork. üÔÏÔ ÍÁËÒÏÓ ÐÒÏ×ÅÒÑÅÔ ÎÅÓËÏÌØËÏ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË × ÒÅÁÌÉÚÁÃÉÉ vfork É ÅÓÌÉ ÎÁÊÄÅÎÁ ÏÄÎÁ ÉÚ ÔÁËÉÈ ÒÅÁÌÉÚÁÃÉÊ, ÔÏ ÓÞÉÔÁÅÔÓÑ, ÞÔÏ ÓÉÓÔÅÍÁ ÎÅ ÉÍÅÅÔ ÒÁÂÏÔÁÀÝÅÊ ×ÅÒÓÉÉ vfork. íÁËÒÏÓ ÎÅ ÓÞÉÔÁÅÔ, ÏÛÉÂËÏÊ ÒÅÁÌÉÚÁÃÉÉ, ÅÓÌÉ ÐÒÉ ×ÙÚÏ×Å ÐÏÔÏÍËÏÍ ÆÕÎËÃÉÉ signal ÉÚÍÅÎÑÀÔÓÑ ÏÂÒÁÂÏÔÞÉËÉ ÓÉÇÎÁÌÏ× ÒÏÄÉÔÅÌÑ, ÐÏÓËÏÌØËÕ ÐÏÔÏÍËÉ ÒÅÄËÏ ÉÚÍÅÎÑÀÔ ÏÂÒÁÂÏÔÞÉËÉ ÓÉÇÎÁÌÏ× ÒÏÄÉÔÅÌØÓËÏÇÏ ÐÒÏÃÅÓÓÁ.

 -- Macro: AC_FUNC_VPRINTF
     åÓÌÉ ÎÁÊÄÅÎÁ ÆÕÎËÃÉÑ vprintf, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_VPRINTF. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÎÁÊÄÅÎÁ ÆÕÎËÃÉÑ _doprnt, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_DOPRNT. (åÓÌÉ ÆÕÎËÃÉÑ vprintf ÄÏÓÔÕÐÎÁ, ÔÏ ×Ù ÍÏÖÅÔÅ ÓÞÉÔÁÔØ, ÞÔÏ ÆÕÎËÃÉÉ vfprintf É vsprintf ÔÏÖÅ ÄÏÓÔÕÐÎÙ).

 -- Macro: AC_FUNC_WAIT3
     åÓÌÉ ÆÕÎËÃÉÑ wait3 ÎÁÊÄÅÎÁ, É ÚÁÐÏÌÎÑÅÔ ÓÏÄÅÒÖÉÍÏÅ Ó×ÏÅÇÏ ÔÒÅÔØÅÇÏ ÁÒÇÕÍÅÎÔÁ (struct rusage *), ÞÅÇÏ ÎÅ ÄÅÌÁÅÔ HP-UX, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_WAIT3.

ðÒÏ×ÅÒËÁ ÂÁÚÏ×ÙÈ ÆÕÎËÃÉÊ
------------------------

üÔÉ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÎÁÈÏÖÄÅÎÉÑ ÆÕÎËÃÉÊ, ËÏÔÏÒÙÅ ÎÅ ÉÍÅÀÔ ÓÐÅÃÉÁÌØÎÙÈ ÍÁËÒÏÓÏ× ÐÒÏ×ÅÒËÉ. åÓÌÉ ÆÕÎËÃÉÉ ÍÏÇÕÔ ÎÁÈÏÄÉÔØÓÑ × ÄÒÕÇÉÈ ÂÉÂÌÉÏÔÅËÁÈ, Á ÎÅ × ÓÔÁÎÄÁÒÔÎÏÊ ÂÉÂÌÉÏÔÅËÅ C, ÔÏ ÓÎÁÞÁÌÁ ×ÙÚÏ×ÉÔÅ ÍÁËÒÏÓ AC_CHECK_LIB ÄÌÑ ÐÒÏ×ÅÒËÉ ÎÁÌÉÞÉÑ ÎÕÖÎÙÈ ÂÉÂÌÉÏÔÅË. åÓÌÉ ×ÁÍ ÎÕÖÎÏ ÎÅ ÔÏÌØËÏ ÐÒÏ×ÅÒÉÔØ, ÓÕÝÅÓÔ×ÕÅÔ ÌÉ ÆÕÎËÃÉÑ, ÎÏ É ÕÔÏÞÎÉÔØ ÅÅ ÐÏ×ÅÄÅÎÉÅ, ÔÏ ×ÁÍ ÐÒÉÄÅÔÓÑ ÎÁÐÉÓÁÔØ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ ÔÅÓÔ ÄÌÑ ÜÔÏÊ ÆÕÎËÃÉÉ (see îÁÐÉÓÁÎÉÅ ÔÅÓÔÏ×).

 -- Macro: AC_CHECK_FUNC (FUNCTION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     åÓÌÉ ÆÕÎËÃÉÑ C Ó ÉÍÅÎÅÍ FUNCTION ÄÏÓÔÕÐÎÁ, ÔÏ ÚÁÐÕÓËÁÀÔÓÑ ËÏÍÁÎÄÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÚÁÐÕÓËÁÀÔÓÑ ACTION-IF-NOT-FOUND. åÓÌÉ ×Ù ÐÒÏÓÔÏ ÈÏÔÉÔÅ ÏÐÒÅÄÅÌÉÔØ ÓÉÍ×ÏÌ ÐÒÅÐÒÏÃÅÓÓÏÒÁ, ÅÓÌÉ ÆÕÎËÃÉÑ ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ ×ÍÅÓÔÏ ÜÔÏÇÏ ÍÁËÒÏÓÁ ÐÏÐÒÏÂÕÊÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ AC_CHECK_FUNCS. üÔÏÔ ÍÁËÒÏÓ ÐÒÏ×ÅÒÑÅÔ ËÏÍÐÏÎÏ×ËÕ Ó ÂÉÂÌÉÏÔÅËÏÊ C, ÄÁÖÅ ÅÓÌÉ ÂÙÌ ×ÙÚ×ÁÎ ÍÁËÒÏÓ AC_LANG_CPLUSPLUS, ÐÏÓËÏÌØËÕ C++ Ñ×ÌÑÅÔÓÑ ÂÏÌÅÅ ÓÔÁÎÄÁÒÔÉÚÏ×ÁÎÎÙÍ, ÞÅÍ C. (see ÷ÙÂÏÒ ÑÚÙËÁ, ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÙÂÏÒÅ ÑÚÙËÁ, ÄÌÑ ËÏÔÏÒÏÇÏ ÐÒÏ×ÏÄÑÔÓÑ ÐÒÏ×ÅÒËÉ).

 -- Macro: AC_CHECK_FUNCS (FUNCTION... [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     äÌÑ ËÁÖÄÏÊ ÉÚ ÚÁÄÁÎÎÙÈ FUNCTION × ÓÐÉÓËÅ, ÒÁÚÄÅÌÅÎÎÏÍ ÐÒÏÂÅÌÁÍÉ, × ÓÌÕÞÁÅ ÅÓÌÉ ÏÎÁ ÄÏÓÔÕÐÎÁ, ÏÐÒÅÄÅÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ HAVE_FUNCTION (×ÓÅ ÂÕË×Ù ÚÁÇÌÁ×ÎÙÅ). åÓÌÉ ÚÁÄÁÎ ÁÒÇÕÍÅÎÔ ACTION-IF-FOUND, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÅÓÌÉ ÏÄÎÁ ÉÚ ÆÕÎËÃÉÊ ÎÁÊÄÅÎÁ. ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÚÎÁÞÅÎÉÅ break ÄÌÑ ÐÒÅËÒÁÝÅÎÉÑ ÃÉËÌÁ ÐÒÉ ÎÁÈÏÖÄÅÎÉÉ ÐÅÒ×ÏÊ ÆÕÎËÃÉÉ. åÓÌÉ ÚÁÄÁÎ ÁÒÇÕÍÅÎÔ ACTION-IF-NOT-FOUND, ÔÏ ÜÔÉ ËÏÍÁÎÄÙ ×ÙÐÏÌÎÑÀÔÓÑ, ËÏÇÄÁ ÏÄÎÁ ÉÚ ÆÕÎËÃÉÊ ÎÅ ÎÁÊÄÅÎÁ.

 -- Macro: AC_REPLACE_FUNCS (FUNCTION...)
     üÔÏÔ ÍÁËÒÏÓ ÐÏÄÏÂÅÎ ×ÙÚÏ×Õ ÍÁËÒÏÓÁ AC_CHECK_FUNCS, ÉÓÐÏÌØÚÕÑ ËÏÄ ACTION-IF-NOT-FOUND, ËÏÔÏÒÙÊ ÄÏÂÁ×ÌÑÅÔ FUNCTION.o Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBOBJS. ÷Ù ÍÏÖÅÔÅ ÏÂßÑ×ÉÔØ ÆÕÎËÃÉÀ, ÄÌÑ ËÏÔÏÒÏÊ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ ×ÁÛÁ ÚÁÍÅÎÁ, ÐÏÍÅÓÔÉ× ÅÅ ÐÒÏÔÏÔÉÐ ÍÅÖÄÕ ÄÉÒÅËÔÉ×ÁÍÉ #ifndef HAVE_FUNCTION. åÓÌÉ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÕÖÎÕÀ ÆÕÎËÃÉÀ, ÔÏ ÜÔÁ ÆÕÎËÃÉÑ, ×ÅÒÏÑÔÎÏ, ÂÕÄÅÔ ÏÂßÑ×ÌÅÎÁ × ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ, ËÏÔÏÒÙÊ ×Ù ÄÏÌÖÎÙ ×ËÌÀÞÉÔØ × Ó×ÏÀ ÐÒÏÇÒÁÍÍÕ, ÔÁË ÞÔÏ ×Ù ÎÅ ÄÏÌÖÎÙ ÐÏ×ÔÏÒÎÏ ÏÂßÑ×ÌÑÔØ ÅÅ, ×Ï ÉÚÂÅÖÁÎÉÅ ËÏÎÆÌÉËÔÁ ÏÂßÑ×ÌÅÎÉÊ.

úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ
==================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÎÁÌÉÞÉÅ ÏÐÒÅÄÅÌÅÎÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× ÑÚÙËÁ C.   åÓÌÉ ÄÌÑ ÎÕÖÎÏÇÏ ×ÁÍ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ ÎÅÔ ÓÐÅÃÉÁÌØÎÏÇÏ ÍÁËÒÏÓÁ, É ÐÒÉ ÜÔÏÍ ×ÁÍ ÎÅ ÎÕÖÎÏ ÐÒÏ×ÅÒÑÔØ ÓÐÅÃÉÁÌØÎÙÅ ÏÓÏÂÅÎÎÏÓÔÉ ÜÔÏÇÏ ÆÁÊÌÁ, ÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÄÉÎ ÉÚ ÓÔÁÎÄÁÒÔÎÙÈ ÍÁËÒÏÓÏ× ÐÒÏ×ÅÒËÉ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×.

ðÒÏ×ÅÒËÁ ÏÔÄÅÌØÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×
--------------------------------------

üÔÉ ÍÁËÒÏÓÙ ×ÙÐÏÌÎÑÀÔ ÐÒÏ×ÅÒËÕ ÏÔÄÅÌØÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×--- ÓÕÝÅÓÔ×ÕÀÔ ÌÉ ÏÎÉ É, × ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ, ÏÂßÑ×ÌÅÎÙ ÌÉ × ÎÉÈ ËÁËÉÅ-ÌÉÂÏ ÓÉÍ×ÏÌÙ.

 -- Macro: AC_DECL_SYS_SIGLIST
     ïÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ SYS_SIGLIST_DECLARED, ÅÓÌÉ ÐÅÒÅÍÅÎÎÁÑ sys_siglist ÏÂßÑ×ÌÅÎÁ × ÓÉÓÔÅÍÎÏÍ ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ--- ÌÉÂÏ × signal.h, ÌÉÂÏ × unistd.h.

 -- Macro: AC_DIR_HEADER
     ðÏÄÏÂÅÎ ×ÙÚÏ×Õ ÍÁËÒÏÓÏ× AC_HEADER_DIRENT É AC_FUNC_CLOSEDIR_VOID, ÎÏ ÏÐÒÅÄÅÌÑÅÔ ÎÅÍÎÏÇÏ ÄÒÕÇÏÊ ÎÁÂÏÒ ÍÁËÒÏÓÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ C, ÄÌÑ ÕËÁÚÁÎÉÑ ÔÏÇÏ, ËÁËÏÊ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÎÁÊÄÅÎ. üÔÏÔ ÍÁËÒÏÓ É ÉÍÅÎÁ, ËÏÔÏÒÙÅ ÏÎ ÏÐÒÅÄÅÌÑÅÔ, ÓÞÉÔÁÀÔÓÑ ÕÓÔÁÒÅ×ÛÉÍÉ.  íÁËÒÏÓ ÏÐÒÅÄÅÌÑÅÔ ÓÌÅÄÕÀÝÉÅ ÉÍÅÎÁ:

     dirent.h
          DIRENT

     sys/ndir.h
          SYSNDIR

     sys/dir.h
          SYSDIR

     ndir.h
          NDIR

     ÷ÄÏÂÁ×ÏË, ÅÓÌÉ ÆÕÎËÃÉÑ closedir ÎÅ ×ÏÚ×ÒÁÝÁÅÔ ÉÎÆÏÒÍÁÔÉ×ÎÏÇÏ ÚÎÁÞÅÎÉÑ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ VOID_CLOSEDIR.

 -- Macro: AC_HEADER_DIRENT

     ðÒÏ×ÅÒËÁ ÓÌÅÄÕÀÝÉÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×, É ÄÌÑ ÐÅÒ×ÏÇÏ ÆÁÊÌÁ, ËÏÔÏÒÙÊ ÎÁÊÄÅÎ É ÏÐÒÅÄÅÌÑÅÔ DIR, ÏÐÒÅÄÅÌÉÔØ ÎÉÖÅÓÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÅÐÒÏÃÅÓÓÏÒÁ C:

     dirent.h
          HAVE_DIRENT_H

     sys/ndir.h
          HAVE_SYS_NDIR_H

     sys/dir.h
          HAVE_SYS_DIR_H

     ndir.h
          HAVE_NDIR_H

     ÷ ÉÓÈÏÄÎÏÍ ÔÅËÓÔÅ ÏÂßÑ×ÌÅÎÉÑ ÂÉÂÌÉÏÔÅËÉ ËÁÔÁÌÏÇÏ× ÄÏÌÖÎÙ ×ÙÇÌÑÄÅÔØ ÐÒÉÍÅÒÎÏ ÔÁË:

          #if HAVE_DIRENT_H
          # include <dirent.h>
          # define NAMLEN(dirent) strlen((dirent)->d_name)
          #else
          # define dirent direct
          # define NAMLEN(dirent) (dirent)->d_namlen
          # if HAVE_SYS_NDIR_H
          #  include <sys/ndir.h>
          # endif
          # if HAVE_SYS_DIR_H
          #  include <sys/dir.h>
          # endif
          # if HAVE_NDIR_H
          #  include <ndir.h>
          # endif
          #endif

     éÓÐÏÌØÚÕÑ ÎÉÖÅÓÌÅÄÕÀÝÉÅ ÏÂßÑ×ÌÅÎÉÑ, ÐÒÏÇÒÁÍÍÁ ÄÏÌÖÎÁ ÏÂßÑ×ÉÔØ ÐÅÒÅÍÅÎÎÙÅ Ó ÔÉÐÏÍ struct dirent, Á ÎÅ struct direct, Á ÄÏÓÔÕÐ Ë ÐÏÌÀ ÄÌÉÎÙ ÉÍÅÎÉ ËÁÔÁÌÏÇÁ ÏÎÁ ÄÏÌÖÎÁ ÐÏÌÕÞÁÔØ ÐÕÔÅÍ ÐÅÒÅÄÁÞÉ ÕËÁÚÁÔÅÌÑ ÎÁ struct dirent ÍÁËÒÏÓÕ NAMLEN.

     üÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ÐÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ ÂÉÂÌÉÏÔÅË dir É x × SCO Xenix.

 -- Macro: AC_HEADER_MAJOR
     åÓÌÉ sys/types.h ÎÅ ÏÐÒÅÄÅÌÑÅÔ major, minor É makedev, ÎÏ ÜÔÏ ÄÅÌÁÅÔÓÑ × sys/mkdev.h, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ MAJOR_IN_MKDEV; × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÜÔÉ ÆÕÎËÃÉÉ ÏÐÒÅÄÅÌÑÀÔÓÑ × sys/sysmacros.h, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ MAJOR_IN_SYSMACROS.

 -- Macro: AC_HEADER_STDC
     ïÐÒÅÄÅÌÑÅÔ STDC_HEADERS, ÅÓÌÉ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ANSI C.  üÔÏ ÍÁËÒÏÓ ÐÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ stdlib.h, stdarg.h, string.h É float.h; ÅÓÌÉ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÜÔÉ ÆÁÊÌÙ, ÔÏ, ÓËÏÒÅÅ ×ÓÅÇÏ, ÉÍÅÀÔÓÑ É ÏÓÔÁÌØÎÙÅ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ANSI C. üÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ÐÒÏ×ÅÒÑÅÔ, ÞÔÏ string.h ÏÂßÑ×ÌÑÅÔ memchr (É ÐÏÜÔÏÍÕ, ÓËÏÒÅÅ ×ÓÅÇÏ, ÅÝÅ É ÄÒÕÇÉÅ ÆÕÎËÃÉÉ mem), ÏÂßÑ×ÌÑÅÔÓÑ ÌÉ × stdlib.h ÆÕÎËÃÉÑ free (É, ÐÏ ×ÉÄÉÍÏÍÕ, malloc É ÄÒÕÇÉÅ ÏÔÎÏÓÑÝÉÅÓÑ Ë ÎÉÍ ÆÕÎËÃÉÉ), É ÂÕÄÕÔ ÌÉ ÍÁËÒÏÓÙ ÉÚ ctype.h ÒÁÂÏÔÁÔØ Ó ÓÉÍ×ÏÌÁÍÉ Ó ÕÓÔÁÎÏ×ÌÅÎÎÙÍ ÓÔÁÒÛÉÍ ÂÉÔÏÍ, ËÁË ÜÔÏÇÏ ÔÒÅÂÕÅÔ ANSI C.

     éÓÐÏÌØÚÕÊÔÅ STDC_HEADERS ×ÍÅÓÔÏ of __STDC__ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ, ÉÍÅÀÔÓÑ ÌÉ × ÓÉÓÔÅÍÅ ÓÏ×ÍÅÓÔÉÍÙÅ Ó ANSI ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ (É, ×ÅÒÏÑÔÎÏ, ÆÕÎËÃÉÉ ÂÉÂÌÉÏÔÅËÉ C), ÐÏÓËÏÌØËÕ ÍÎÏÇÉÅ ÓÉÓÔÅÍÙ, ÉÍÅÀÝÉÅ GCC, ÎÅ ÉÍÅÀÔ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ANSI C.

     îÁ ÓÉÓÔÅÍÁÈ ÂÅÚ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× ANSI C ÓÕÝÅÓÔ×ÕÅÔ ÔÁË ÍÎÏÇÏ ×ÁÒÉÁÎÔÏ×, ÞÔÏ, ×ÅÒÏÑÔÎÏ, ÌÅÇÞÅ ÏÂßÑ×ÉÔØ ÉÓÐÏÌØÚÕÅÍÙÅ ×ÁÍÉ ÆÕÎËÃÉÉ, ÞÅÍ ÔÏÞÎÏ ÏÐÒÅÄÅÌÑÔØ, ËÁËÏÊ ÉÚ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÏ× ÏÐÒÅÄÅÌÑÅÔ ÜÔÉ ÆÕÎËÃÉÉ. îÅËÏÔÏÒÙÅ ÓÉÓÔÅÍÙ ÓÏÄÅÒÖÁÔ ÓÍÅÓØ ÆÕÎËÃÉÊ ANSI É BSD; ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ÐÏ ÂÏÌØÛÅÊ ÞÁÓÔÉ ÓÏ×ÍÅÓÔÉÍÙ Ó ANSI, ÎÏ ÎÅ ÉÍÅÀÔ memmove; ÎÅËÏÔÏÒÏÅ ÏÐÒÅÄÅÌÑÀÔ ÆÕÎËÃÉÉ BSD ËÁË ÍÁËÒÏÓÙ × ÆÁÊÌÁÈ string.h ÉÌÉ strings.h; ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ÉÍÅÀÔ ÔÏÌØËÏ ÆÕÎËÃÉÉ BSD, ÎÏ Ó string.h; ÎÅËÏÔÏÒÙÅ ÏÂßÑ×ÌÑÀÔ ÆÕÎËÃÉÉ ÒÁÂÏÔÙ Ó ÐÁÍÑÔØÀ × memory.h, ÎÅËÏÔÏÒÙÅ × string.h; É Ô. Ð. óËÏÒÅÅ ×ÓÅÇÏ, ÄÏÓÔÁÔÏÞÎÏ ÐÒÏ×ÅÒÉÔØ ÎÁÌÉÞÉÅ ÏÄÎÏÊ ÆÕÎËÃÉÉ ÒÁÂÏÔÙ ÓÏ ÓÔÒÏËÁÍÉ É ÏÄÎÏÊ ÆÕÎËÃÉÉ ÒÁÂÏÔÙ Ó ÐÁÍÑÔØÀ; ÅÓÌÉ ÂÉÂÌÉÏÔÅËÁ ÉÍÅÅÔ ANSI-×ÅÒÓÉÉ ÜÔÉÈ ÆÕÎËÃÉÊ, ÔÏ, ÓËÏÒÅÅ ×ÓÅÇÏ, ÏÎÁ ÉÍÅÅÔ É ÂÏÌØÛÉÎÓÔ×Ï ÄÒÕÇÉÈ ÆÕÎËÃÉÊ. ÷Ù ÄÏÌÖÎÙ ÐÏÍÅÓÔÉÔØ ÓÌÅÄÕÀÝÉÊ ËÏÄ × configure.in:

          AC_HEADER_STDC
          AC_CHECK_FUNCS(strchr memcpy)

     Á ÚÁÔÅÍ, × ×ÁÛÅÍ ËÏÄÅ ×Ù ÍÏÖÅÔÅ ÐÏÍÅÓÔÉÔØ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ:

          #if STDC_HEADERS
          # include <string.h>
          #else
          # ifndef HAVE_STRCHR
          #  define strchr index
          #  define strrchr rindex
          # endif
          char *strchr (), *strrchr ();
          # ifndef HAVE_MEMCPY
          #  define memcpy(d, s, n) bcopy ((s), (d), (n))
          #  define memmove(d, s, n) bcopy ((s), (d), (n))
          # endif
          #endif

     åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ ÎÅ ÉÍÅÀÔ ÜË×É×ÁÌÅÎÔÏ× × BSD, ÔÁËÉÅ ËÁË memchr, memset strtok ÉÌÉ strspn, ÔÏ ÐÒÏÓÔÏ ÍÁËÒÏÓÏ× ÂÕÄÅÔ ÎÅÄÏÓÔÁÔÏÞÎÏ; ×Ù ÄÏÌÖÎÙ ÐÒÅÄÏÓÔÁ×ÉÔØ ÒÅÁÌÉÚÁÃÉÀ ËÁÖÄÏÊ ÉÚ ÆÕÎËÃÉÊ.  ðÒÏÓÔÏÊ ÓÐÏÓÏÂ ÐÏÄËÌÀÞÉÔØ ×ÁÛÉ ÒÅÁÌÉÚÁÃÉÉ ÔÏÌØËÏ ÅÓÌÉ ÏÎÉ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÕÖÎÙ (ÐÏÔÏÍÕ ÞÔÏ ÆÕÎËÃÉÉ ÉÚ ÓÉÓÔÅÍÎÏÊ ÂÉÂÌÉÏÔÅËÉ ÍÏÇÕÔ ÂÙÔØ ×ÒÕÞÎÕÀ ÏÐÔÉÍÉÚÉÒÏ×ÁÎÙ) --- ÜÔÏ, ÎÁÐÒÉÍÅÒ, ÐÏÍÅÓÔÉÔØ ÆÕÎËÃÉÀ memchr × ÆÁÊÌ memchr.c, É ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ AC_REPLACE_FUNCS(memchr).

 -- Macro: AC_HEADER_SYS_WAIT
     åÓÌÉ sys/wait.h ÓÕÝÅÓÔ×ÕÅÔ É ÓÏ×ÍÅÓÔÉÍ Ó POSIX.1, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_SYS_WAIT_H. îÅÓÏ×ÍÅÓÔÉÍÏÓÔØ ÍÏÖÅÔ ×ÏÚÎÉËÎÕÔØ, ÅÓÌÉ ÆÁÊÌÁ sys/wait.h ÎÅ ÓÕÝÅÓÔ×ÕÅÔ, ÉÌÉ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÑ ÓÔÁÔÕÓÁ ÏÎ ÉÓÐÏÌØÚÕÅÔ ÓÔÁÒÕÀ BSD-×ÅÒÓÉÀ union wait ×ÍÅÓÔÏ int. åÓÌÉ sys/wait.h ÎÅ Ñ×ÌÑÅÔÓÑ ÓÏ×ÍÅÓÔÉÍÙÍ Ó POSIX.1, ÔÏ ×ÍÅÓÔÏ ÅÇÏ ×ËÌÀÞÅÎÉÑ ÏÐÒÅÄÅÌÑÅÔÓÑ ÍÁËÒÏÓ POSIX.1 Ó ÅÇÏ ÏÂÙÞÎÏÊ ÒÅÁÌÉÚÁÃÉÅÊ. ÷ÏÔ ÐÒÉÍÅÒ:

          #include <sys/types.h>
          #if HAVE_SYS_WAIT_H
          # include <sys/wait.h>
          #endif
          #ifndef WEXITSTATUS
          # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
          #endif
          #ifndef WIFEXITED
          # define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
          #endif

 -- Macro: AC_MEMORY_H
     ïÐÒÅÄÅÌÑÅÔ NEED_MEMORY_H, ÅÓÌÉ memcpy, memcmp, É Ô. Ð. ÎÅ ÏÂßÑ×ÌÅÎÙ × ÆÁÊÌÅ string.h É ÓÕÝÅÓÔ×ÕÅÔ ÆÁÊÌ memory.h. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ×ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ ×ÙÚÏ× AC_CHECK_HEADERS(memory.h). óÍÏÔÒÉÔÅ ÐÒÉÍÅÒ ÄÌÑ AC_HEADER_STDC.

 -- Macro: AC_UNISTD_H
     ïÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ HAVE_UNISTD_H, ÅÓÌÉ × ÓÉÓÔÅÍÅ ÉÍÅÅÔÓÑ ÆÁÊÌ unistd.h. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ×ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ ×ÙÚÏ× AC_CHECK_HEADERS(unistd.h).

     äÌÑ ÐÒÏ×ÅÒËÉ ÔÏÇÏ, ÞÔÏ ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÅÔ POSIX.1, ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÌÅÄÕÀÝÉÊ ËÏÄ:

          #if HAVE_UNISTD_H
          # include <sys/types.h>
          # include <unistd.h>
          #endif

          #ifdef _POSIX_VERSION
          /* ëÏÄ ÄÌÑ ÓÉÓÔÅÍ POSIX.1 */
          #endif

     _POSIX_VERSION ÏÐÒÅÄÅÌÑÅÔÓÑ, ËÏÇÄÁ unistd.h ÐÏÄËÌÀÞÅÎ × ÓÉÓÔÅÍÁÈ, ÓÏ×ÍÅÓÔÉÍÙÈ Ó POSIX.1.  åÓÌÉ ÆÁÊÌÁ unistd.h ÎÅ ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ, ÓËÏÒÅÅ ×ÓÅÇÏ, ÜÔÁ ÓÉÓÔÅÍÁ ÎÅ ÏÔÎÏÓÉÔÓÑ Ë POSIX.1.  ïÄÎÁËÏ ÎÅËÏÔÏÒÙÅ ÎÅ-POSIX.1 ÓÉÓÔÅÍÙ ÉÍÅÀÔ ÆÁÊÌ unistd.h.

 -- Macro: AC_USG

     ïÐÒÅÄÅÌÑÅÔ USG, ÅÓÌÉ ÓÉÓÔÅÍÁ ÎÅ ÉÍÅÅÔ ÆÁÊÌÁ strings.h, rindex, bzero É Ô. Ð. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÓÉÓÔÅÍÁ ÉÍÅÅÔ string.h, strrchr, memset É Ô. Ð.

     óÉÍ×ÏÌ USG Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ.  ÷ÍÅÓÔÏ ÜÔÏÇÏ ÍÁËÒÏÓÁ ÓÍÏÔÒÉÔÅ ÐÒÉÍÅÒ ÄÌÑ AC_HEADER_STDC.

âÁÚÏ×ÙÅ ÐÒÏ×ÅÒËÉ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×
------------------------------------

üÔÉ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÎÁÈÏÖÄÅÎÉÑ ÓÉÓÔÅÍÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×, ÄÌÑ ËÏÔÏÒÙÈ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÏÔÄÅÌØÎÏÇÏ ÔÅÓÔÁ.  åÓÌÉ ×ÁÍ ÎÁÄÏ ÐÒÏ×ÅÒÉÔØ ÎÅ ÔÏÌØËÏ ÎÁÌÉÞÉÅ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ, ÎÏ É ÅÇÏ ÓÏÄÅÒÖÉÍÏÅ, ÔÏ ÐÒÉÄÅÔÓÑ ÎÁÐÉÓÁÔØ ÄÌÑ ÜÔÏÇÏ ÓÏÂÓÔ×ÅÎÎÙÊ ÔÅÓÔ (see îÁÐÉÓÁÎÉÅ ÔÅÓÔÏ×).

 -- Macro: AC_CHECK_HEADER (HEADER-FILE, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     åÓÌÉ ÓÉÓÔÅÍÎÙÊ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ HEADER-FILE ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ ÉÓÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÀÔÓÑ ACTION-IF-NOT-FOUND. åÓÌÉ ×Ù ÐÒÏÓÔÏ ÈÏÔÉÔÅ ÏÐÒÅÄÅÌÉÔØ ÓÉÍ×ÏÌ, ÅÓÌÉ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÄÏÓÔÕÐÅÎ, ÔÏ ÌÕÞÛÅ ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_CHECK_HEADERS.

 -- Macro: AC_CHECK_HEADERS (HEADER-FILE... [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     äÌÑ ËÁÖÄÏÇÏ ÓÉÓÔÅÍÎÏÇÏ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ HEADER-FILE, ÚÁÄÁÎÎÏÇÏ × ÓÐÉÓËÅ ÞÅÒÅÚ ÐÒÏÂÅÌ, × ÓÌÕÞÁÅ ÅÇÏ ÓÕÝÅÓÔ×Ï×ÁÎÉÑ ÏÐÒÅÄÅÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ HAVE_HEADER-FILE (×ÓÅ ÂÕË×Ù ÚÁÇÌÁ×ÎÙÅ). åÓÌÉ ÚÁÄÁÎ ÁÒÇÕÍÅÎÔ ACTION-IF-FOUND, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ × ÓÌÕÞÁÅ, ËÏÇÄÁ ÆÁÊÌ ÎÁÊÄÅÎ. ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÁÒÇÕÍÅÎÔ break ÄÌÑ ÐÒÅËÒÁÝÅÎÉÑ ÉÔÅÒÁÃÉÊ, ËÏÇÄÁ ÎÁÊÄÅÎ ÐÅÒ×ÙÊ ÆÁÊÌ.  åÓÌÉ ÚÁÄÁÎ ÁÒÇÕÍÅÎÔ ACTION-IF-NOT-FOUND, ÔÏ ÏÎ ×ÙÐÏÌÎÑÅÔÓÑ, ËÏÇÄÁ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÎÅ ÎÁÊÄÅÎ.

óÔÒÕËÔÕÒÙ
=========

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÎÁÌÉÞÉÅ ÏÐÒÅÄÅÌÅÎÎÙÈ ÓÔÒÕËÔÕÒ ÉÌÉ ÐÏÌÅÊ ÓÔÒÕËÔÕÒ.  äÌÑ ÐÒÏ×ÅÒËÉ ÓÔÒÕËÔÕÒ, ÎÅ ÐÅÒÅÞÉÓÌÅÎÎÙÈ × ÜÔÏÍ ÒÁÚÄÅÌÅ, ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_EGREP_CPP (see éÓÓÌÅÄÏ×ÁÎÉÅ ÏÂßÑ×ÌÅÎÉÊ) ÉÌÉ AC_TRY_COMPILE (see ðÒÏ×ÅÒËÁ ÓÉÎÔÁËÓÉÓÁ).

 -- Macro: AC_HEADER_STAT
     åÓÌÉ ÍÁËÒÏÓÙ S_ISDIR, S_ISREG É Ô. Ð., ÏÐÒÅÄÅÌÅÎÎÙÅ × sys/stat.h, ÒÁÂÏÔÁÀÔ ÎÅÐÒÁ×ÉÌØÎÏ (×ÏÚ×ÒÁÝÁÑ ÎÅ×ÅÒÎÙÅ ÐÏÌÏÖÉÔÅÌØÎÙÅ ÒÅÚÕÌØÔÁÔÙ), ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ STAT_MACROS_BROKEN. üÔÏ ÐÒÏÉÓÈÏÄÉÔ ÎÁ ÓÉÓÔÅÍÁÈ Tektronix UTekV, Amdahl UTS É Motorola System V/88.

 -- Macro: AC_HEADER_TIME
     åÓÌÉ ÐÒÏÇÒÁÍÍÁ ÍÏÖÅÔ ÐÏÄËÌÀÞÁÔØ ËÁË time.h, ÔÁË É sys/time.h, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ TIME_WITH_SYS_TIME. ÷ ÎÅËÏÔÏÒÙÈ ÓÔÁÒÙÈ ÓÉÓÔÅÍÁÈ sys/time.h ÐÏÄËÌÀÞÁÅÔ time.h, ÎÏ time.h ÎÅ ÚÁÝÉÝÅÎ ÏÔ ÍÎÏÇÏËÒÁÔÎÏÇÏ ÐÏÄËÌÀÞÅÎÉÑ, ÔÁË ÞÔÏ ÐÒÏÇÒÁÍÍÙ ÎÅ ÄÏÌÖÎÙ Ñ×ÎÏ ÐÏÄËÌÀÞÁÔØ ÏÂÁ ÆÁÊÌÁ. üÔÏÔ ÍÁËÒÏÓ ÐÏÌÅÚÅÎ ÄÌÑ ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÅ, ÎÁÐÒÉÍÅÒ, ÉÓÐÏÌØÚÕÀÔ ÓÔÒÕËÔÕÒÙ struct timeval ÉÌÉ struct timezone, ×ÍÅÓÔÅ Ó struct tm.  üÔÏÔ ÍÁËÒÏÓ ÌÕÞÛÅ ×ÓÅÇÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÍÅÓÔÅ Ó HAVE_SYS_TIME_H, ËÏÔÏÒÙÊ ÍÏÖÅÔ ÂÙÔØ ÐÒÏ×ÅÒÅÎ Ó ÐÏÍÏÝØÀ AC_CHECK_HEADERS(sys/time.h).

          #if TIME_WITH_SYS_TIME
          # include <sys/time.h>
          # include <time.h>
          #else
          # if HAVE_SYS_TIME_H
          #  include <sys/time.h>
          # else
          #  include <time.h>
          # endif
          #endif

 -- Macro: AC_STRUCT_ST_BLKSIZE
     åÓÌÉ struct stat ÓÏÄÅÒÖÉÔ ÐÏÌÅ st_blksize, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_ST_BLKSIZE.

 -- Macro: AC_STRUCT_ST_BLOCKS
     åÓÌÉ struct stat ÓÏÄÅÒÖÉÔ ÐÏÌÅ st_blocks, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_ST_BLOCKS. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, fileblocks.o ÄÏÂÁ×ÌÑÅÔÓÑ Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBOBJS.

 -- Macro: AC_STRUCT_ST_RDEV
     åÓÌÉ struct stat ÓÏÄÅÒÖÉÔ ÐÏÌÅ st_rdev, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_ST_RDEV.

 -- Macro: AC_STRUCT_TM
     åÓÌÉ time.h ÎÅ ÏÐÒÅÄÅÌÑÅÔ struct tm, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÓÉÍ×ÏÌ TM_IN_SYS_TIME, ÞÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ sys/time.h ÓÌÅÄÏ×ÁÌÏ ÂÙ ÏÐÒÅÄÅÌÉÔØ struct tm.

 -- Macro: AC_STRUCT_TIMEZONE
     ïÐÒÅÄÅÌÑÅÔ, ËÁË ÐÏÌÕÞÉÔØ ÔÅËÕÝÕÀ ×ÒÅÍÅÎÎÕÀ ÚÏÎÕ.  åÓÌÉ struct tm ÉÍÅÅÔ ÐÏÌÅ tm_zone, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_TM_ZONE. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÎÁÊÄÅÎ ×ÎÅÛÎÉÊ ÍÁÓÓÉ× tzname, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_TZNAME.

ïÂßÑ×ÌÅÎÉÑ ÔÉÐÏ×
================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÏÐÒÅÄÅÌÅÎÉÑ ÔÉÐÏ× (typedef) ÑÚÙËÁ C.  åÓÌÉ ÄÌÑ ÎÕÖÎÏÇÏ ×ÁÍ ÏÐÒÅÄÅÌÅÎÉÑ ÔÉÐÁ ÎÅÔ ÓÐÅÃÉÁÌØÎÏÇÏ ÍÁËÒÏÓÁ, É ×ÁÍ ÎÅ ÎÕÖÎÏ ×ÙÐÏÌÎÑÔØ ÐÒÏ×ÅÒËÕ ÓÐÅÃÉÁÌØÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ, ÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒËÉ ÏÂßÑ×ÌÅÎÉÊ ÔÉÐÏ×.

ðÒÏ×ÅÒËÁ ÏÔÄÅÌØÎÙÈ ÏÂßÑ×ÌÅÎÉÊ ÔÉÐÏ×
-----------------------------------

üÔÉ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ËÏÎËÒÅÔÎÙÅ ÏÂßÑ×ÌÅÎÉÑ ÔÉÐÏ× C × ÆÁÊÌÁÈ sys/types.h É stdlib.h (ÅÓÌÉ ÏÎ ÓÕÝÅÓÔ×ÕÅÔ).

 -- Macro: AC_TYPE_GETGROUPS
     ïÐÒÅÄÅÌÑÅÔ GETGROUPS_T ÒÁ×ÎÙÍ gid_t ÉÌÉ int, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ÞÔÏ ÉÍÅÎÎÏ Ñ×ÌÑÅÔÓÑ ÂÁÚÏ×ÙÍ ÔÉÐÏÍ ÍÁÓÓÉ×Á-ÁÒÇÕÍÅÎÔÁ ÆÕÎËÃÉÉ getgroups.

 -- Macro: AC_TYPE_MODE_T
     åÓÌÉ mode_t ÎÅ ÏÐÒÅÄÅÌÅÎ, ÔÏ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ mode_t ÒÁ×ÎÙÍ int.

 -- Macro: AC_TYPE_OFF_T
     åÓÌÉ off_t ÎÅ ÏÐÒÅÄÅÌÅÎ, ÔÏ ÏÐÒÅÄÅÌÉÔØ off_t ÒÁ×ÎÙÍ long.

 -- Macro: AC_TYPE_PID_T
     åÓÌÉ pid_t ÎÅ ÏÐÒÅÄÅÌÅÎ, ÔÏ ÏÐÒÅÄÅÌÉÔØ pid_t ÒÁ×ÎÙÍ int.

 -- Macro: AC_TYPE_SIGNAL
     åÓÌÉ signal.h ÏÐÒÅÄÅÌÑÅÔ signal ËÁË ×ÏÚ×ÒÁÝÁÀÝÉÊ ÕËÁÚÁÔÅÌØ ÎÁ ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ void, ÔÏ ÐÅÒÅÍÅÎÎÁÑ RETSIGTYPE ÓÔÁÎÏ×ÉÔÓÑ ÒÁ×ÎÏÊ void; × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎÁ ÏÐÒÅÄÅÌÑÅÔÓÑ Ó ÔÉÐÏÍ int.

     ïÐÒÅÄÅÌÉÔØ ÏÂÒÁÂÏÔÞÉËÉ ÓÉÇÎÁÌÏ× ËÁË ×ÏÚ×ÒÁÝÁÀÝÉÅ ÔÉÐ RETSIGTYPE:

          RETSIGTYPE
          hup_handler ()
          {
          ...
          }

 -- Macro: AC_TYPE_SIZE_T
     åÓÌÉ size_t ÎÅ ÏÐÒÅÄÅÌÅÎ, ÔÏ ÏÐÒÅÄÅÌÉÔØ size_t ËÁË unsigned.

 -- Macro: AC_TYPE_UID_T
     åÓÌÉ uid_t ÎÅ ÏÐÒÅÄÅÌÅÎ, ÔÏ ÏÐÒÅÄÅÌÉÔØ uid_t ÒÁ×ÎÙÍ int É gid_t ÒÁ×ÎÙÍ int.

âÁÚÏ×ÙÅ ÐÒÏ×ÅÒËÉ ÏÂßÑ×ÌÅÎÉÊ ÔÉÐÏ×
---------------------------------

üÔÉ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÐÒÏ×ÅÒËÉ ÏÐÒÅÄÅÌÅÎÉÊ ÔÉÐÏ× (typedef), ËÏÔÏÒÙÅ ÎÅ ÂÙÌÉ ÏÐÉÓÁÎÙ × ÒÁÚÄÅÌÅ ËÏÎËÒÅÔÎÙÈ ÍÁËÒÏÓÏ× ÐÒÏ×ÅÒÏË.

 -- Macro: AC_CHECK_TYPE (TYPE, DEFAULT)
     åÓÌÉ ÔÉÐ TYPE ÎÅ ÏÐÒÅÄÅÌÅÎ × sys/types.h, ÉÌÉ × stdlib.h, ÉÌÉ × stddef.h (ÅÓÌÉ ÏÎÉ ÓÕÝÅÓÔ×ÕÀÔ), ÔÏ ÏÐÒÅÄÅÌÉÔØ ÜÔÏÔ ÔÉÐ ÒÁ×ÎÙÍ ×ÓÔÒÏÅÎÎÏÍÕ ÔÉÐÕ C (ÉÌÉ C++) DEFAULT; ÎÁÐÒÉÍÅÒ, short ÉÌÉ unsigned.

èÁÒÁËÔÅÒÉÓÔÉËÉ ËÏÍÐÉÌÑÔÏÒÁ C
============================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ×ÙÐÏÌÎÑÀÔ ÐÒÏ×ÅÒËÕ Ó×ÏÊÓÔ× ËÏÍÐÉÌÑÔÏÒÁ C ÉÌÉ ÁÒÈÉÔÅËÔÕÒÙ ÍÁÛÉÎÙ. äÌÑ ÐÒÏ×ÅÒËÉ ÈÁÒÁËÔÅÒÉÓÔÉË, ÎÅ ÐÅÒÅÞÉÓÌÅÎÎÙÈ × ÜÔÏÍ ÒÁÚÄÅÌÅ, ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓÙ AC_TRY_COMPILE (see ðÒÏ×ÅÒËÁ ÓÉÎÔÁËÓÉÓÁ) ÉÌÉ AC_TRY_RUN (see ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ).

 -- Macro: AC_C_BIGENDIAN
     åÓÌÉ ÓÌÏ×Á ÈÒÁÎÑÔÓÑ × ÐÏÒÑÄËÅ, ËÏÇÄÁ ÓÁÍÙÊ ÚÎÁÞÉÍÙÊ ÂÁÊÔ ÈÒÁÎÉÔÓÑ ÐÅÒ×ÙÍ (ÐÏÄÏÂÎÏ ÐÒÏÃÅÓÓÏÒÁÍ Motorola É SPARC, ÎÏ ÎÅ Intel É VAX), ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ WORDS_BIGENDIAN.

 -- Macro: AC_C_CONST
     åÓÌÉ ËÏÍÐÉÌÑÔÏÒ C ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÏÌÎÏÓÔØÀ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï const, ÔÏ ÍÁËÒÏÓÕ const ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ. îÅËÏÔÏÒÙÅ ËÏÍÐÉÌÑÔÏÒÙ C ÎÅ ÏÐÒÅÄÅÌÑÀÔ ËÏÎÓÔÁÎÔÕ __STDC__, ÎÏ ÐÏÄÄÅÒÖÉ×ÁÀÔ const; ÎÅËÏÔÏÒÙÅ ËÏÍÐÉÌÑÔÏÒÙ, ÏÐÒÅÄÅÌÑÀÝÉÅ __STDC__, ÎÅ ÐÏÌÎÏÓÔØÀ ÐÏÄÄÅÒÖÉ×ÁÀÔ const.  ðÒÏÇÒÁÍÍÙ ÍÏÇÕÔ ÐÒÏÓÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ const, ËÁË ÂÕÄÔÏ ÌÀÂÏÊ ËÏÍÐÉÌÑÔÏÒ C ÐÏÄÄÅÒÖÉ×ÁÅÔ ÅÇÏ; ÄÌÑ ÔÅÈ ËÏÍÐÉÌÑÔÏÒÏ×, ËÏÔÏÒÙÅ ÎÅ ÉÍÅÀÔ ÔÁËÏÊ ÐÏÄÄÅÒÖËÉ, Makefile ÉÌÉ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÎÁÓÔÒÏÊËÉ ÏÐÒÅÄÅÌÑÔ ÜÔÏ ÓÌÏ×Ï ËÁË ÉÍÅÀÝÅÅ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.

 -- Macro: AC_C_INLINE
     åÓÌÉ ËÏÍÐÉÌÑÔÏÒ C ÐÏÄÄÅÒÖÉ×ÁÅÔ inline, ÔÏ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔÓÑ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, inline ÏÐÒÅÄÅÌÑÅÔÓÑ ÒÁ×ÎÙÍ __inline__ ÉÌÉ __inline, ÅÓÌÉ ËÏÍÐÉÌÑÔÏÒ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÏÄÉÎ ÉÚ ÜÔÉÈ ×ÁÒÉÁÎÔÏ×, ÉÎÁÞÅ inline ÏÐÒÅÄÅÌÑÅÔÓÑ ÒÁ×ÎÙÍ ÐÕÓÔÏÍÕ ÚÎÁÞÅÎÉÀ.

 -- Macro: AC_C_CHAR_UNSIGNED
     åÓÌÉ ÔÉÐ C char Ñ×ÌÑÅÔÓÑ ÂÅÚÚÎÁËÏ×ÙÍ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ __CHAR_UNSIGNED__ (ÅÓÌÉ ËÏÍÐÉÌÑÔÏÒ C ÅÝÅ ÎÅ ÏÐÒÅÄÅÌÉÌ ÅÅ).

 -- Macro: AC_C_LONG_DOUBLE
     åÓÌÉ ËÏÍÐÉÌÑÔÏÒ C ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉÐ long double, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_LONG_DOUBLE. îÅËÏÔÏÒÙÅ ËÏÍÐÉÌÑÔÏÒÙ C, ËÏÔÏÒÙÅ ÎÅ ÏÐÒÅÄÅÌÑÀÔ __STDC__, ÐÏÄÄÅÒÖÉ×ÁÀÔ long double; Á ÎÅËÏÔÏÒÙÅ ËÏÍÐÉÌÑÔÏÒÙ, ÏÐÒÅÄÅÌÑÀÝÉÅ __STDC__, ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÔÉÐ long double.

 -- Macro: AC_C_STRINGIZE
     åÓÌÉ ÐÒÅÐÒÏÃÅÓÓÏÒ C ÐÏÄÄÅÒÖÉ×ÁÅÔ ÓÔÒÏËÏ×ÙÊ (stringizing) ÏÐÅÒÁÔÏÒ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_STRINGIZE. óÔÒÏËÏ×ÙÍ (stringinzing)ÏÐÅÒÁÔÏÒÏÍ Ñ×ÌÑÅÔÓÑ # É ÏÎ ÉÓÐÏÌØÚÕÅÔÓÑ × ÍÁËÒÏÓÁÈ, ÎÁÐÒÉÍÅÒ:

          #define x(y) #y

 -- Macro: AC_CHECK_SIZEOF (TYPE [, CROSS-SIZE])
     ïÐÒÅÄÅÌÉÔØ SIZEOF_UCTYPE ÒÁ×ÎÙÍ ÞÉÓÌÕ ÂÁÊÔÏ× ×Ï ×ÓÔÒÏÅÎÎÏÍ ÔÉÐÅ C (ÉÌÉ C++) TYPE, ÎÁÐÒÉÍÅÒ, int ÉÌÉ char *. åÓÌÉ type ÎÅÉÚ×ÅÓÔÅÎ ËÏÍÐÉÌÑÔÏÒÕ, ÔÏ ÐÅÒÅÍÅÎÎÁÑ ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ 0. UCTYPE Ñ×ÌÑÅÔÓÑ TYPE, ÓÏ ÓÔÒÏÞÎÙÍÉ ÂÕË×ÁÍÉ, ÐÒÅÏÂÒÁÚÏ×ÁÎÎÙÍÉ × ÐÒÏÐÉÓÎÙÅ, ÐÒÏÂÅÌÙ ÐÒÅÏÂÒÁÚÕÀÔÓÑ × ÚÎÁËÉ ÐÏÄÞÅÒËÉ×ÁÎÉÑ, É ÚÎÁËÉ Ú×ÅÚÄÏÞËÁ (*) ÚÁÍÅÎÑÀÔÓÑ ÎÁ P. åÓÌÉ ÐÒÏÉÚ×ÏÄÉÔÓÑ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÑ, ÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ ÚÎÁÞÅÎÉÅ CROSS-SIZE (ÅÓÌÉ ÏÎÏ ÚÁÄÁÎÏ), × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ configure ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ Ó ×ÙÄÁÞÅÊ ÓÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÅ.

     îÁÐÒÉÍÅÒ, ×ÙÚÏ×

          AC_CHECK_SIZEOF(int *)

     ÏÐÒÅÄÅÌÑÅÔ SIZEOF_INT_P ÒÁ×ÎÙÍ 8 ÎÁ ÓÉÓÔÅÍÁÈ DEC Alpha AXP.

 -- Macro: AC_INT_16_BITS
     åÓÌÉ ÔÉÐ int ÉÍÅÅÔ ÒÁÚÍÅÒ 16 ÂÉÔ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ INT_16_BITS. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ×ÍÅÓÔÏ ÎÅÇÏ ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÝÉÊ ÍÁËÒÏÓ AC_CHECK_SIZEOF(int).

 -- Macro: AC_LONG_64_BITS
     åÓÌÉ ÔÉÐ long int ÉÍÅÅÔ ÒÁÚÍÅÒ 64 ÂÉÔÁ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ LONG_64_BITS. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ×ÍÅÓÔÏ ÎÅÇÏ ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÙÚÏ× AC_CHECK_SIZEOF(long).

èÁÒÁËÔÅÒÉÓÔÉËÉ ËÏÍÐÉÌÑÔÏÒÁ Fortran 77
=====================================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÐÒÏ×ÅÒËÉ ÈÁÒÁËÔÅÒÉÓÔÉË ËÏÍÐÉÌÑÔÏÒÁ Fortran 77.  äÌÑ ÐÒÏ×ÅÒËÉ ÈÁÒÁËÔÅÒÉÓÔÉË, ÎÅ ÐÅÒÅÞÉÓÌÅÎÎÙÈ × ÜÔÏÍ ÒÁÚÄÅÌÅ, ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓÙ AC_TRY_COMPILE (see ðÒÏ×ÅÒËÁ ÓÉÎÔÁËÓÉÓÁ) ÉÌÉ AC_TRY_RUN (see ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ), ÕÂÅÄÉ×ÛÉÓØ, ÞÔÏ ÐÅÒÅÄ ÜÔÉÍ ×Ù ÕÓÔÁÎÏ×ÉÌÉ Fortran 77 ÔÅËÕÝÉÍ ÑÚÙËÏÍ. AC_LANG_FORTRAN77 (see ÷ÙÂÏÒ ÑÚÙËÁ).

 -- Macro: AC_F77_LIBRARY_LDFLAGS
     ïÐÒÅÄÅÌÑÅÔ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ËÏÍÐÏÎÏ×ÝÉËÁ (ÎÁÐÒÉÍÅÒ, -L É -l) ÄÌÑ ×ÎÕÔÒÅÎÎÉÈ ÂÉÂÌÉÏÔÅË Fortran 77 É ÂÉÂÌÉÏÔÅË ×ÒÅÍÅÎÉ ÉÓÐÏÌÎÅÎÉÑ, ËÏÔÏÒÙÅ ÔÒÅÂÕÀÔÓÑ ÄÌÑ ÐÒÁ×ÉÌØÎÏÊ ËÏÍÐÏÎÏ×ËÉ ÐÒÏÇÒÁÍÍ ÎÁ Fortran 77 ÉÌÉ ÒÁÚÄÅÌÑÅÍÙÈ ÂÉÂÌÉÏÔÅË.  ÷ÙÈÏÄÎÁÑ ÐÅÒÅÍÅÎÎÁÑ FLIBS ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÒÁ×ÎÏÊ ÜÔÉÍ ÆÌÁÇÁÍ.

     üÔÏÔ ÍÁËÒÏÓ ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ÓÉÔÕÁÃÉÑÈ, ËÏÇÄÁ ÎÅÏÂÈÏÄÉÍÏ ÓÍÅÛÁÔØ ÉÓÈÏÄÎÙÊ ËÏÄ, ÎÁÐÒÉÍÅÒ ÎÁ C++ É Fortran 77, × ÏÄÎÕ ÐÒÏÇÒÁÍÍÕ ÉÌÉ ÒÁÚÄÅÌÑÅÍÕÀ ÂÉÂÌÉÏÔÅËÕ (see óÍÅÛÉ×ÁÎÉÅ ËÏÄÁ Fortran 77 Ó ËÏÄÏÍ ÎÁ C É C++ (GNU Automake)).

     îÁÐÒÉÍÅÒ, ÅÓÌÉ ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ ÏÔ ËÏÍÐÉÌÑÔÏÒÏ× C++ É Fortran 77 ÄÏÌÖÎÙ ÂÙÔØ ÓËÏÍÐÏÎÏ×ÁÎÙ ×ÍÅÓÔÅ, ÔÏ ÄÌÑ ËÏÍÐÏÎÏ×ËÉ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ËÏÍÐÉÌÑÔÏÒ/ËÏÍÐÏÎÏ×ÝÉË C++, ÐÏÓËÏÌØËÕ ÓÐÅÃÉÆÉÞÅÓËÉÅ ÄÌÑ C++ ×ÅÝÉ, ÔÁËÉÅ ËÁË ×ÙÚÏ×Ù ÇÌÏÂÁÌØÎÙÈ ËÏÎÓÔÒÕËÔÏÒÏ×, ÐÏÄÓÔÁÎÏ×ËÅ ÛÁÂÌÏÎÏ×, ÒÁÚÒÅÛÅÎÉÉ ÏÂÒÁÂÏÔËÉ ÉÓËÌÀÞÅÎÉÊ, É Ô. Ð., ÎÕÖÄÁÀÔÓÑ × ÓÐÅÃÉÁÌØÎÙÈ ÄÅÊÓÔ×ÉÑÈ ×Ï ×ÒÅÍÑ ËÏÍÐÏÎÏ×ËÉ.

     ïÄÎÁËÏ × ÜÔÉÈ ÓÌÕÞÁÑÈ ÄÏÌÖÎÙ ÂÙÔØ ÐÏÄËÌÀÞÅÎÙ É ×ÎÕÔÒÅÎÎÉÅ ÂÉÂÌÉÏÔÅËÉ Fortran 77, Á ÔÁËÖÅ ÂÉÂÌÉÏÔÅËÉ ×ÒÅÍÅÎÉ ÉÓÐÏÌÎÅÎÉÑ, Á ËÏÍÐÉÌÑÔÏÒ/ËÏÍÐÏÎÏ×ÝÉË C++ ÐÒÏÓÔÏ ÎÅ ÚÎÁÅÔ, ËÁËÉÅ ÂÉÂÌÉÏÔÅËÉ Fortran 77 ÄÏÌÖÎÙ ÂÙÔØ ÄÏÂÁ×ÌÅÎÙ. äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÂÉÂÌÉÏÔÅË Fortran 77 É ÂÙÌ ÓÏÚÄÁÎ ÍÁËÒÏÓ AC_F77_LIBRARY_LDFLAGS.

óÉÓÔÅÍÎÙÅ ÓÅÒ×ÉÓÙ
=================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÎÁÌÉÞÉÅ ÓÅÒ×ÉÓÏ× ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÙ ÉÌÉ ÅÅ ×ÏÚÍÏÖÎÏÓÔÉ.

 -- Macro: AC_CYGWIN
     ðÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ ÓÒÅÄÙ Cygwin. åÓÌÉ ÏÎÁ ÐÒÉÓÕÔÓÔ×ÕÅÔ, ÔÏ ÐÅÒÅÍÅÎÎÁÑ ÓÒÅÄÙ CYGWIN ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ yes.  ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÐÅÒÅÍÅÎÎÁÑ CYGWIN ÐÏÌÕÞÁÅÔ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.

 -- Macro: AC_EXEEXT
     ïÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ ÐÏÄÓÔÁÎÏ×ËÉ EXEEXT, ÏÓÎÏ×ÁÎÎÕÀ ÎÁ ÒÁÓÛÉÒÅÎÉÉ ÆÁÊÌÁ, ×ÙÄÁ×ÁÅÍÏÇÏ ËÏÍÐÉÌÑÔÏÒÏÍ, ÐÏÓÌÅ ÉÓËÌÀÞÅÎÉÑ ÆÁÊÌÏ× Ó ÒÁÓÛÉÒÅÎÉÑÍÉ .c, .o É .obj.  äÌÑ Unix ÏÂÙÞÎÙÍ ÚÎÁÞÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ ÐÕÓÔÁÑ ÓÔÒÏËÁ, Á ÄÌÑ Win32 --- .exe É .EXE.

 -- Macro: AC_OBJEXT
     ïÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ ÐÏÄÓÔÁÎÏ×ËÉ OBJEXT, ÏÓÎÏ×ÁÎÎÕÀ ÎÁ ×Ù×ÏÄÅ ËÏÍÐÉÌÑÔÏÒÁ, ÐÏÓÌÅ ÉÓËÌÀÞÅÎÉÑ ÆÁÊÌÏ× Ó ÒÁÓÛÉÒÅÎÉÅÍ .c. ïÂÙÞÎÏ ÉÍÅÅÔ ÚÎÁÞÅÎÉÅ .o × Unix, É .obj ÎÁ ÓÉÓÔÅÍÁÈ Win32.

 -- Macro: AC_MINGW32
     ðÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ ÓÒÅÄÙ ËÏÍÐÉÌÑÔÏÒÁ MingW32. åÓÌÉ ÏÎÁ ÐÒÉÓÕÔÓÔ×ÕÅÔ, ÔÏ ÐÅÒÅÍÅÎÎÁÑ MINGW32 ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ yes.  ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÐÅÒÅÍÅÎÎÁÑ MINGW32 ÐÏÌÕÞÁÅÔ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.

 -- Macro: AC_PATH_X
     üÔÏÔ ÍÁËÒÏÓ ÐÒÏÂÕÅÔ ÏÐÒÅÄÅÌÉÔØ ÒÁÓÐÏÌÏÖÅÎÉÅ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× É ÂÉÂÌÉÏÔÅË X Window System. åÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÄÁÌ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --x-includes=DIR É --x-libraries=DIR, ÔÏ ÉÓÐÏÌØÚÕÀÔÓÑ ÚÁÄÁÎÎÙÅ ËÁÔÁÌÏÇÉ. åÓÌÉ ÏÄÉÎ ÉÚ ËÌÀÞÅÊ ÉÌÉ ÏÂÁ ÎÅ ÚÁÄÁÎÙ, ÔÏ ÐÒÏÐÕÝÅÎÎÙÅ ÚÎÁÞÅÎÉÑ ÐÏÌÕÞÁÀÔ ÚÁÐÕÓËÏÍ xmkmf ÄÌÑ ÐÒÏÓÔÏÇÏ Imakefile É ÒÁÚÂÏÒÁ ÐÏÌÕÞÅÎÎÏÇÏ ÆÁÊÌÁ Makefile. åÓÌÉ ÐÒÏÉÚÏÛÅÌ ÓÂÏÊ (ÎÁÐÒÉÍÅÒ, ÅÓÌÉ xmkmf ÏÔÓÕÔÓÔ×ÕÅÔ), ÔÏ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÐÏÉÓË × ÎÅÓËÏÌØËÉÈ ËÁÔÁÌÏÇÁÈ, ÇÄÅ ÞÁÓÔÏ ÒÁÓÐÏÌÁÇÁÀÔÓÑ ÜÔÉ ÆÁÊÌÙ. åÓÌÉ ÏÄÉÎ ÉÚ ÜÔÉÈ ÓÐÏÓÏÂÏ× ÂÙÌ ÕÄÁÞÅÎ, ÔÏ ÐÅÒÅÍÅÎÎÙÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ x_includes É x_libraries ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÒÁ×ÎÙÍÉ ÎÁÊÄÅÎÎÙÍ ËÁÔÁÌÏÇÁÍ (× ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÜÔÉ ËÁÔÁÌÏÇÉ ÎÅ ×ÈÏÄÑÔ × ÐÕÔÉ, × ËÏÔÏÒÙÈ ËÏÍÐÉÌÑÔÏÒ ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË).

     åÓÌÉ ÏÂÁ ÜÔÉÈ ÍÅÔÏÄÁ ÄÁÀÔ ÓÂÏÊ, ÉÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÄÁÌ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --without-x, ÔÏ ÐÅÒÅÍÅÎÎÁÑ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ no_x ÐÏÌÕÞÁÅÔ ÚÎÁÞÅÎÉÅ yes; × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎÁ ÐÏÌÕÞÁÅÔ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.

 -- Macro: AC_PATH_XTRA
     òÁÓÛÉÒÅÎÎÁÑ ×ÅÒÓÉÑ AC_PATH_X. ïÎÁ ÄÏÂÁ×ÌÑÅÔ Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ X_CFLAGS ËÌÀÞÉ ËÏÍÐÉÌÑÔÏÒÁ C, ËÏÔÏÒÙÅ ÎÅÏÂÈÏÄÉÍÙ X, Á ÔÁËÖÅ ÆÌÁÇÉ X ÄÌÑ ËÏÍÐÏÎÏ×ÝÉËÁ Ë ÐÅÒÅÍÅÎÎÏÊ X_LIBS. åÓÌÉ X ÎÅ ÄÏÓÔÕÐÎÁ, ÔÏ ÄÏÂÁ×ÌÑÅÔÓÑ -DX_DISPLAY_MISSING Ë X_CFLAGS.

     üÔÏÔ ÍÁËÒÏÓ ÔÁËÖÅ ×ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÉ ÓÐÅÃÉÁÌØÎÙÈ ÂÉÂÌÉÏÔÅË, × ËÏÔÏÒÙÈ ÎÕÖÄÁÀÔÓÑ ÎÅËÏÔÏÒÙÅ ÓÉÓÔÅÍÙ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÐÒÏÇÒÁÍÍÕ ÄÌÑ X. ïÎ ÄÏÂÁ×ÌÑÅÔ ×ÓÅ, ÞÔÏ ÎÅÏÂÈÏÄÉÍÏ ÄÌÑ ÔÁËÉÈ ÓÉÓÔÅÍ, Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ X_EXTRA_LIBS. ïÎ ÔÁËÖÅ ÐÒÏ×ÅÒÑÅÔ ÎÁÌÉÞÉÅ ÓÐÅÃÉÁÌØÎÙÈ ÂÉÂÌÉÏÔÅË X11R6, ËÏÔÏÒÙÅ ÎÅÏÂÈÏÄÉÍÏ ÓËÏÍÐÏÎÏ×ÁÔØ ÄÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ -lX11, É ÄÏÂÁ×ÌÑÅÔ ÎÁÊÄÅÎÎÙÅ ÂÉÂÌÉÏÔÅËÉ Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ X_PRE_LIBS.

 -- Macro: AC_SYS_INTERPRETER
     ðÒÏ×ÅÒÑÅÔ, ÐÏÄÄÅÒÖÉ×ÁÅÔ ÌÉ ÓÉÓÔÅÍÁ ÎÁÞÁÌÏ ÓËÒÉÐÔÏ× ÓÏ ÓÔÒÏËÉ × ÆÏÒÍÅ #! /bin/csh ÄÌÑ ×ÙÂÏÒÁ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÄÌÑ ÄÁÎÎÏÇÏ ÓËÒÉÐÔÁ. ðÏÓÌÅ ÚÁÐÕÓËÁ ÜÔÏÇÏ ÍÁËÒÏÓÁ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ × configure.in ÍÏÖÅÔ ÐÒÏ×ÅÒÉÔØ ÐÅÒÅÍÅÎÎÕÀ interpval; ÏÎÁ ÂÕÄÅÔ ÒÁ×ÎÁ yes, ÅÓÌÉ ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÅÔ #!, É no × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ.

 -- Macro: AC_SYS_LONG_FILE_NAMES
     åÓÌÉ ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÉÍÅÎÁ ÆÁÊÌÏ× ÄÌÉÎÎÅÅ 14 ÓÉÍ×ÏÌÏ×, ÔÏ ÂÕÄÅÔ ÏÐÒÅÄÅÌÅÎÁ ÐÅÒÅÍÅÎÎÁÑ HAVE_LONG_FILE_NAMES.

 -- Macro: AC_SYS_RESTARTABLE_SYSCALLS
     åÓÌÉ ÓÉÓÔÅÍÁ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÅÒÅÚÁÐÕÓËÁÅÔ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ×, ËÏÔÏÒÙÊ ÂÙÌ ÐÒÅÒ×ÁÎ ÓÉÇÎÁÌÏÍ, ÔÏ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÁÑ HAVE_RESTARTABLE_SYSCALLS.

÷ÁÒÉÁÎÔÙ UNIX
=============

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ÎÁÌÉÞÉÅ ËÏÎËÒÅÔÎÙÈ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍ, ÞÔÏ ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÏÊ ÏÂÒÁÂÏÔËÉ × ÐÒÏÇÒÁÍÍÁÈ ÉÚ-ÚÁ ÉÓËÌÀÞÉÔÅÌØÎÙÈ ÓÔÒÁÎÎÏÓÔÅÊ × ÉÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÁÈ ÉÌÉ ÂÉÂÌÉÏÔÅËÁÈ. üÔÉ ÍÁËÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÂÏÒÏÄÁ×ËÁÍÉ (ÎÁÒÏÓÔÁÍÉ); ÏÎÉ ÂÕÄÕÔ ÚÁÍÅÎÅÎÙ ÎÁ ÂÏÌÅÅ ÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÙÅ, ÒÁÚÂÉÔÙÅ ÎÁ ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÅ ÉÍÉ ÆÕÎËÃÉÉ ÉÌÉ ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÙÅ ÉÍÉ ÐÁÒÁÍÅÔÒÙ ÓÒÅÄÙ.

 -- Macro: AC_AIX
     îÁ AIX ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ _ALL_SOURCE.  ðÏÚ×ÏÌÑÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÅËÏÔÏÒÙÅ ÆÕÎËÃÉÉ BSD. äÏÌÖÅÎ ×ÙÚÙ×ÁÔØÓÑ ÄÏ ÍÁËÒÏÓÏ×, ÚÁÐÕÓËÁÀÝÉÈ ËÏÍÐÉÌÑÔÏÒ C.

 -- Macro: AC_DYNIX_SEQ
     îÁ Dynix/PTX (Sequent UNIX) ÄÏÂÁ×ÌÑÅÔ -lseq Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBS. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ÉÓÐÏÌØÚÕÊÔÅ ×ÍÅÓÔÏ ÎÅÇÏ AC_FUNC_GETMNTENT.

 -- Macro: AC_IRIX_SUN
     îÁ IRIX (Silicon Graphics UNIX) ÄÏÂÁ×ÌÑÅÔ -lsun Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBS. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÅÇÏ ÄÌÑ ÐÒÏ×ÅÒËÉ ÎÁÌÉÞÉÑ getmntent, ÔÏ ×ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_FUNC_GETMNTENT. åÓÌÉ ×Ù ÉÓÐÏÌØÚÏ×ÁÌÉ ÅÇÏ ÄÌÑ NIS-×ÅÒÓÉÊ ÆÕÎËÃÉÊ ÒÁÂÏÔÙ Ó ÐÁÒÏÌÑÍÉ É ÇÒÕÐÐÁÍÉ, ÔÏ ×ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ AC_CHECK_LIB(sun, getpwnam).

 -- Macro: AC_ISC_POSIX
     îÁ POSIX-×ÅÒÓÉÉ ISC UNIX ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ _POSIX_SOURCE É ÄÏÂÁ×ÌÑÅÔ -posix (ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ GNU C) ÉÌÉ -Xp (ÄÌÑ ÄÒÕÇÉÈ ËÏÍÐÉÌÑÔÏÒÏ× C) Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ CC. üÔÏ ÐÏÚ×ÏÌÑÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÏÚÍÏÖÎÏÓÔÉ POSIX. íÁËÒÏÓ ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚ×ÁÎ ÐÏÓÌÅ ×ÙÚÏ×Á AC_PROG_CC É ÄÏ ×ÙÚÏ×Á ÌÀÂÙÈ ÄÒÕÇÉÈ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÚÁÐÕÓËÁÀÔ ËÏÍÐÉÌÑÔÏÒ C.

 -- Macro: AC_MINIX
     îÁ Minix ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÙÅ _MINIX É _POSIX_SOURCE É ÏÐÒÅÄÅÌÑÅÔ _POSIX_1_SOURCE ÓÏ ÚÎÁÞÅÎÉÅÍ 2. üÔÏ ÐÏÚ×ÏÌÑÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÏÚÍÏÖÎÏÓÔÉ POSIX. äÏÌÖÅÎ ×ÙÚÙ×ÁÔØÓÑ ÄÏ ×ÙÚÏ×Á ÄÒÕÇÉÈ ÍÁËÒÏÓÏ×, ÚÁÐÕÓËÁÀÝÉÈ ËÏÍÐÉÌÑÔÏÒ C.

 -- Macro: AC_SCO_INTL
     îÁ SCO UNIX ÄÏÂÁ×ÌÑÅÔ -lintl Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBS. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ×ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_FUNC_STRFTIME.

 -- Macro: AC_XENIX_DIR
     îÁ Xenix ÄÏÂÁ×ÌÑÅÔ -lx Ë ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ LIBS. ôÁËÖÅ, ÅÓÌÉ ÉÓÐÏÌØÚÕÅÔÓÑ dirent.h, ÔÏ Ë ÐÅÒÅÍÅÎÎÏÊ LIBS ÄÏÂÁ×ÌÑÅÔÓÑ -ldir. üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ×ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ AC_HEADER_DIRENT.

îÁÐÉÓÁÎÉÅ ÔÅÓÔÏ×
****************

åÓÌÉ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÔÅÓÔÙ ÄÅÌÁÀÔ ÎÅ ÔÏ, ÞÔÏ ×ÁÍ ÎÁÄÏ, ÔÏ ×Ù ÍÏÖÅÔÅ ÎÁÐÉÓÁÔØ ÓÏÂÓÔ×ÅÎÎÙÅ ÔÅÓÔÙ. üÔÉ ÍÁËÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÓÔÒÏÉÔÅÌØÎÙÍÉ ÂÌÏËÁÍÉ ÄÌÑ ÜÔÉÈ ÔÅÓÔÏ×. ïÎÉ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ ÄÒÕÇÉÍ ÍÁËÒÏÓÁÍ ×ÏÚÍÏÖÎÏÓÔØ ÐÒÏ×ÅÒÉÔØ ÄÏÓÔÕÐÎÏÓÔØ ÒÁÚÌÉÞÎÙÈ Ó×ÏÊÓÔ× É ÓÏÏÂÝÉÔØ Ï ÒÅÚÕÌØÔÁÔÁÈ.

üÔÁ ÇÌÁ×Á ÓÏÄÅÒÖÉÔ ÎÅËÏÔÏÒÙÅ ÐÏÖÅÌÁÎÉÑ É ÏÐÉÓÁÎÉÅ ÔÏÇÏ, ÐÏÞÅÍÕ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÔÅÓÔÙ ÎÁÐÉÓÁÎÙ ÔÁË, Á ÎÅ ÉÎÁÞÅ.  ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÎÁÕÞÉÔØÓÑ ÔÏÍÕ, ËÁË ÐÉÓÁÔØ ÔÅÓÔÙ Autoconf, ÒÁÚÇÌÑÄÙ×ÁÑ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÔÅÓÔÙ.  åÓÌÉ × ÏÄÎÏÍ ÉÌÉ ÎÅÓËÏÌØËÉÈ ÔÅÓÔÁÈ Autoconf ÞÔÏ-ÎÉÂÕÄØ ÐÏÊÄÅÔ ÎÅ ÔÁË, ÔÏ ÜÔÁ ÉÎÆÏÒÍÁÃÉÑ ÍÏÖÅÔ ÐÏÍÏÞØ ×ÁÍ ÐÏÎÑÔØ ÐÒÅÄÐÏÌÏÖÅÎÉÑ, ËÏÔÏÒÙÅ ÓÔÏÑÔ ÚÁ ÎÉÍÉ, ÞÔÏ, × Ó×ÏÀ ÏÞÅÒÅÄØ, ÍÏÖÅÔ ÐÏÍÏÞØ ×ÁÍ ÏÐÒÅÄÅÌÉÔØ ÎÁÉÌÕÞÛÉÊ ÓÐÏÓÏÂ ÒÅÛÅÎÉÑ ÐÒÏÂÌÅÍÙ.

üÔÉ ÍÁËÒÏÓÙ ÐÒÏ×ÅÒÑÀÔ ×Ù×ÏÄ ÓÉÓÔÅÍÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ C. ïÎÉ ÎÅ ËÜÛÉÒÕÀÔ ÒÅÚÕÌØÔÁÔÙ ÔÅÓÔÏ× ÄÌÑ ÐÏÓÌÅÄÕÀÝÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ (see ëÜÛÉÒÏ×ÁÎÉÅ ÒÅÚÕÌØÔÁÔÏ×), ÐÏÓËÏÌØËÕ ÄÌÑ ÇÅÎÅÒÁÃÉÉ ÉÍÅÎÉ ÐÅÒÅÍÅÎÎÏÊ ËÜÛÁ ÏÎÉ ÎÅ ÉÍÅÀÔ ÄÏÓÔÁÔÏÞÎÏ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ÞÔÏ ÏÎÉ ÐÒÏ×ÅÒÑÀÔ. ôÁËÖÅ ÐÏ ÎÅËÏÔÏÒÙÍ ÐÒÉÞÉÎÁÍ ÏÎÉ ÎÅ ÐÅÞÁÔÁÀÔ ÎÉËÁËÉÈ ÓÏÏÂÝÅÎÉÊ. ðÒÏ×ÅÒËÉ ÏÔÄÅÌØÎÙÈ Ó×ÏÊÓÔ× ËÏÍÐÉÌÑÔÏÒÁ ó ×ÙÚÙ×ÁÀÔ ÜÔÉ ÍÁËÒÏÓÙ É ËÜÛÉÒÕÀÔ Ó×ÏÉ ÒÅÚÕÌØÔÁÔÙ, Á ÔÁËÖÅ ×Ù×ÏÄÑÔ ÓÏÏÂÝÅÎÉÑ Ï ÔÏÍ, ÞÔÏ ÏÎÉ ÐÒÏ×ÅÒÑÀÔ.

ëÏÇÄÁ ×Ù ÐÉÛÅÔÅ ÔÅÓÔ Ó×ÏÊÓÔ×Á, ËÏÔÏÒÙÊ ÍÏÖÅÔ ÂÙÔØ ÐÒÉÍÅÎÉÍ ÄÌÑ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏÇÏ ÐÁËÅÔÁ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ÔÏ ÌÕÞÛÅ ×ÓÅÇÏ ÂÕÄÅÔ ÏÐÉÓÁÔØ ÅÇÏ ËÁË ÎÏ×ÙÊ ÍÁËÒÏÓ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÚÎÁÔØ, ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ see óÏÚÄÁÎÉÅ ÍÁËÒÏÓÏ×.

éÓÓÌÅÄÏ×ÁÎÉÅ ÄÅËÌÁÒÁÃÉÊ
=======================

íÁËÒÏÓ AC_TRY_CPP ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÐÒÏ×ÅÒËÉ ÓÕÝÅÓÔ×Ï×ÁÎÉÑ ËÏÎËÒÅÔÎÙÈ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ×.  You can check for one at a time, or more than one if you need several header files to all exist for some purpose.

 -- Macro: AC_TRY_CPP (INCLUDES, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
     INCLUDES ÓÏÄÅÒÖÉÔ ÄÉÒÅËÔÉ×Ù #include ÑÚÙËÏ× C ÉÌÉ C++, Á ÔÁËÖÅ ÏÂßÑ×ÌÅÎÉÑ, ÎÁÄ ËÏÔÏÒÙÍÉ ×ÙÐÏÌÎÑÀÔÓÑ ÐÏÄÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÙÈ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÏÂÒÁÔÎÙÈ ËÁ×ÙÞÅË É ÏÂÒÁÔÎÙÈ ÓÌÜÛÅÊ.  (÷ ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ, INCLUDES ÍÏÖÅÔ ÂÙÔØ ÌÀÂÏÊ ÐÒÏÇÒÁÍÍÏÊ ÎÁ C, ÎÏ ÄÒÕÇÉÅ ×ÙÒÁÖÅÎÉÑ, ×ÅÒÏÑÔÎÏ, ÂÅÓÐÏÌÅÚÎÙ). åÓÌÉ ÐÒÅÐÒÏÃÅÓÓÏÒ ÎÅ ×ÙÄÁÅÔ ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ × ÔÅÞÅÎÉÉ ÏÂÒÁÂÏÔËÉ ÄÉÒÅËÔÉ×Ù, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-TRUE. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÄ ACTION-IF-FALSE.

     üÔÏÔ ÍÁËÒÏÓ ÉÓÐÏÌØÚÕÅÔ ÐÅÒÅÍÅÎÎÕÀ CPPFLAGS, Á ÎÅ CFLAGS, ÐÏÓËÏÌØËÕ -g, -O É Ô. Ð. ÎÅ Ñ×ÌÑÀÔÓÑ ÐÒÁ×ÉÌØÎÙÍÉ ËÌÀÞÁÍÉ ÄÌÑ ÍÎÏÇÉÈ ÐÒÅÐÒÏÃÅÓÓÏÒÏ× C.

÷ÏÔ ËÁË ÕÚÎÁÔØ, ÓÏÄÅÒÖÉÔ ÌÉ ËÏÎËÒÅÔÎÙÊ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÏÐÒÅÄÅÌÅÎÎÏÅ ÏÂßÑ×ÌÅÎÉÅ, ÎÁÐÒÉÍÅÒ, ÏÂßÑ×ÌÅÎÉÅ ÔÉÐÁ, ÓÔÒÕËÔÕÒÙ, ÞÌÅÎÁ ÓÔÒÕËÔÕÒÙ ÉÌÉ ÆÕÎËÃÉÉ. éÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_EGREP_HEADER ×ÍÅÓÔÏ ÐÒÑÍÏÇÏ ÚÁÐÕÓËÁ ËÏÍÁÎÄÙ grep ÄÌÑ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ; × ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ ÓÉÍ×ÏÌ ÍÏÖÅÔ ÂÙÔØ ÏÂßÑ×ÌÅÎ × ÄÒÕÇÏÍ ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ, Á ÎÅ × ÔÏÍ, ËÏÔÏÒÙÊ ×Ù ÐÒÏ×ÅÒÑÅÔÅ × #include.

 -- Macro: AC_EGREP_HEADER (PATTERN, HEADER-FILE, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
     åÓÌÉ ×Ù×ÏÄ ÐÒÅÐÒÏÃÅÓÓÏÒÁ, ÚÁÐÕÝÅÎÎÏÇÏ ÄÌÑ ÓÉÓÔÅÍÎÏÇÏ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ HEADER-FILE ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ egrep PATTERN, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-NOT-FOUND.

äÌÑ ÐÒÏ×ÅÒËÉ ÓÉÍ×ÏÌÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ C, ÏÐÒÅÄÅÌÅÎÎÙÈ × ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ, ÌÉÂÏ ÐÒÅÄÏÐÒÅÄÅÌÅÎÎÙÈ ÐÒÅÐÒÏÃÅÓÓÏÒÏÍ C, ÉÓÐÏÌØÚÕÊÔÅ ÍÁËÒÏÓ AC_EGREP_CPP. ÷ÏÔ ÐÒÉÍÅÒ ÐÏÓÌÅÄÎÅÇÏ:

     AC_EGREP_CPP(yes,
     [#ifdef _AIX
       yes
     #endif
     ], is_aix=yes, is_aix=no)

 -- Macro: AC_EGREP_CPP (PATTERN, PROGRAM, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     PROGRAM Ñ×ÌÑÅÔÓÑ ÔÅËÓÔÏÍ ÐÒÏÇÒÁÍÍÙ ÎÁ C ÉÌÉ C++, ÄÌÑ ËÏÔÏÒÏÊ ×ÙÐÏÌÎÑÀÔÓÑ ÐÏÄÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÙÈ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÏÂÒÁÔÎÙÈ ËÁ×ÙÞÅË É ÏÂÒÁÔÎÙÈ ÓÌÜÛÅÊ. åÓÌÉ ×Ù×ÏÄ ÐÒÅÐÒÏÃÅÓÓÏÒÁ, ÏÂÒÁÂÁÔÙ×Á×ÛÅÇÏ PROGRAM, ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ ËÏÍÁÎÄÙ egrep PATTERN, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-FOUND, ÉÎÁÞÅ ×ÙÐÏÌÎÑÅÔÓÑ ACTION-IF-NOT-FOUND.

     üÔÏÔ ÍÁËÒÏÓ ×ÙÚÙ×ÁÅÔ AC_PROG_CPP ÉÌÉ AC_PROG_CXXCPP (× ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ËÁËÏÊ ÉÚ ÑÚÙËÏ× Ñ×ÌÑÅÔÓÑ ÔÅËÕÝÉÍ, see ÷ÙÂÏÒ ÑÚÙËÁ), ÅÓÌÉ ÜÔÉ ÍÁËÒÏÓÙ ÅÝÅ ÎÅ ×ÙÚÙ×ÁÌÉÓØ.

ðÒÏ×ÅÒËÁ ÓÉÎÔÁËÓÉÓÁ
===================

äÌÑ ÐÒÏ×ÅÒËÉ ÓÉÎÔÁËÓÉÞÅÓËÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÏÍÐÉÌÑÔÏÒÏ× C, C++ ÉÌÉ Fortran 77, ÎÁÐÒÉÍÅÒ, ÒÁÓÐÏÚÎÁ×ÁÎÉÑ ÏÐÒÅÄÅÌÅÎÎÙÈ ËÌÀÞÅ×ÙÈ ÓÌÏ×, ÉÓÐÏÌØÚÕÅÔÓÑ ÍÁËÒÏÓ AC_TRY_COMPILE, ËÏÔÏÒÙÊ ÐÒÏÂÕÅÔ ÏÔËÏÍÐÉÌÉÒÏ×ÁÔØ ÍÁÌÅÎØËÕÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ ÉÓÐÏÌØÚÕÅÔ ÚÁÄÁÎÎÕÀ ×ÏÚÍÏÖÎÏÓÔØ.  ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏÔ ÍÁËÒÏÓ ÄÌÑ ÐÒÏ×ÅÒËÉ ÓÔÒÕËÔÕÒ É ÐÏÌÅÊ ÓÔÒÕËÔÕÒ, ËÏÔÏÒÙÅ ÐÒÉÓÕÔÓÔ×ÕÀÔ ÎÅ ×Ï ×ÓÅÈ ÓÉÓÔÅÍÁÈ.

 -- Macro: AC_TRY_COMPILE (INCLUDES, FUNCTION-BODY, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     óÏÚÄÁÅÔ ÔÅÓÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ ÎÁ C, C++ ÉÌÉ Fortran 77 (× ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ËÁËÏÊ ÑÚÙË Ñ×ÌÑÅÔÓÑ ÔÅËÕÝÉÍ, see ÷ÙÂÏÒ ÑÚÙËÁ), ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÆÕÎËÃÉÑ, ÞØÅ ÔÅÌÏ ÓÏÓÔÏÉÔ ÉÚ FUNCTION-BODY ÍÏÖÅÔ ÂÙÔØ ÓËÏÍÐÉÌÉÒÏ×ÁÎÁ.

     äÌÑ C É C++, INCLUDES Ñ×ÌÑÅÔÓÑ ÌÀÂÙÍÉ ÄÉÒÅËÔÉ×ÁÍÉ #include, × ËÏÔÏÒÙÈ ÎÕÖÄÁÅÔÓÑ ËÏÄ × FUNCTION-BODY (ÐÁÒÁÍÅÔÒ INCLUDES ÂÕÄÅÔ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ, ÅÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ Fortran 77). üÔÏÔ ÍÁËÒÏÓ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ ÐÏÍÉÍÏ ÐÅÒÅÍÅÎÎÏÊ CPPFLAGS ÔÁËÖÅ ÉÓÐÏÌØÚÕÅÔ ÐÅÒÅÍÅÎÎÙÅ CFLAGS ÉÌÉ CXXFLAGS, ÅÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ C ÉÌÉ C++.  ðÅÒÅÍÅÎÎÁÑ FFLAGS ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ, ÅÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ Fortran 77.

     åÓÌÉ ÆÁÊÌ ËÏÍÐÉÌÉÒÕÅÔÓÑ ÎÏÒÍÁÌØÎÏ, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-FOUND, ÉÎÁÞÅ ×ÙÐÏÌÎÑÅÔÓÑ ACTION-IF-NOT-FOUND.

     üÔÏÔ ÍÁËÒÏÓ ÎÅ ÐÙÔÁÅÔÓÑ ×ÙÐÏÌÎÉÔØ ËÏÍÐÏÎÏ×ËÕ ÐÒÏÇÒÁÍÍÙ -- ÄÌÑ ÜÔÏÇÏ ×ÁÍ ÐÒÉÄÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ AC_TRY_LINK (see ðÒÏ×ÅÒËÁ ÂÉÂÌÉÏÔÅË).

ðÒÏ×ÅÒËÁ ÂÉÂÌÉÏÔÅË
==================

äÌÑ ÐÒÏ×ÅÒËÉ ÂÉÂÌÉÏÔÅËÉ, ÆÕÎËÃÉÉ ÉÌÉ ÇÌÏÂÁÌØÎÏÊ ÐÅÒÅÍÅÎÎÏÊ ÓËÒÉÐÔ configure ÐÏÐÙÔÁÅÔÓÑ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ É ÓËÏÍÐÏÎÏ×ÁÔØ ÎÅÂÏÌØÛÕÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ ÉÓÐÏÌØÚÕÅÔ ÔÅÓÔÉÒÕÅÍÙÅ ×ÏÚÍÏÖÎÏÓÔÉ.  üÔÉÍ Autoconf ÏÔÌÉÞÁÅÔÓÑ ÏÔ Metaconfig, ËÏÔÏÒÙÊ ÏÂÒÁÂÁÔÙ×ÁÅÔ ÆÁÊÌÙ ÂÉÂÌÉÏÔÅËÉ C, ÉÓÐÏÌØÚÕÑ nm ÉÌÉ ar, ÞÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ, ËÁËÉÅ ÆÕÎËÃÉÉ ÄÏÓÔÕÐÎÙ.  ðÏÐÙÔËÁ ÓËÏÍÐÏÎÏ×ÁÔØ ÐÒÏÇÒÁÍÍÕ Ó ÆÕÎËÃÉÅÊ -- ÂÏÌÅÅ ÎÁÄÅÖÎÙÊ ×ÁÒÉÁÎÔ, ÐÏÓËÏÌØËÕ ÏÎ ÉÚÂÁ×ÌÑÅÔ ÏÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÏÂÒÁÂÁÔÙ×ÁÔØ ÒÁÚÌÉÞÎÙÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÆÏÒÍÁÔÙ ×ÙÄÁÞÉ ÒÅÚÕÌØÔÁÔÏ× ÐÒÏÇÒÁÍÍ nm É ar, Á ÔÁËÖÅ ×ÙÑÓÎÑÔØ ÒÁÓÐÏÌÏÖÅÎÉÅ ÓÔÁÎÄÁÒÔÎÙÈ ÂÉÂÌÉÏÔÅË. üÔÏÔ ÐÏÄÈÏÄ ÔÁËÖÅ ÐÏÚ×ÏÌÑÅÔ ËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÀ, Á ÔÁËÖÅ ÐÒÏ×ÅÒÑÔØ ÐÏ×ÅÄÅÎÉÅ ÆÕÎËÃÉÉ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ.  ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÜÔÏÔ ÐÏÄÈÏÄ ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ ÚÎÁÞÉÔÅÌØÎÏ ÂÏÌÅÅ ÍÅÄÌÅÎÎÙÍ, ÞÅÍ ÏÄÎÏËÒÁÔÎÏÅ ÓËÁÎÉÒÏ×ÁÎÉÅ ÂÉÂÌÉÏÔÅË.

ëÏÍÐÏÎÏ×ÝÉËÉ × ÎÅÓËÏÌØËÉÈ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÓÉÓÔÅÍÁÈ ÎÅ ×ÏÚ×ÒÁÝÁÀÔ ÓÔÁÔÕÓ ÏÛÉÂËÉ, ÅÓÌÉ ÎÅ ÍÏÇÕÔ ÎÁÊÔÉ ËÁËÉÅ-ÌÉÂÏ ÓÉÍ×ÏÌÙ ÐÒÉ ËÏÍÐÏÎÏ×ËÅ.  üÔÁ ÏÛÉÂËÁ ÄÅÌÁÅÔ ÎÅ×ÏÚÍÏÖÎÙÍ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÁ ÔÁËÉÈ ÓÉÓÔÅÍÁÈ ÓËÒÉÐÔÏ× ÎÁÓÔÒÏÊËÉ, ÓÏÚÄÁÎÎÙÈ Autoconf.  ïÄÎÁËÏ, ÎÅËÏÔÏÒÙÍ ÉÚ ÎÉÈ ÍÏÇÕÔ ÂÙÔØ ÚÁÄÁÎÙ ËÌÀÞÉ, ËÏÔÏÒÙÅ ÐÏÚ×ÏÌÑÀÔ ÐÏÌÕÞÉÔØ ÐÒÁ×ÉÌØÎÙÊ ÓÔÁÔÕÓ ÚÁ×ÅÒÛÅÎÉÑ ÒÁÂÏÔÙ. üÔÕ ÐÒÏÂÌÅÍÕ × ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ Autoconf ÎÅ ÍÏÖÅÔ ÏÂÒÁÂÏÔÁÔØ Á×ÔÏÍÁÔÉÞÅÓËÉ. åÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÓÔÏÌËÎÅÔÓÑ Ó ÔÁËÉÍ, ÔÏ ÏÎ ÍÏÖÅÔ ÒÅÛÉÔØ ÜÔÕ ÐÒÏÂÌÅÍÕ ÕÓÔÁÎÏ×ËÏÊ ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ LDFLAGS, ÐÅÒÅÄÁ×ÁÑ ËÏÍÐÏÎÏ×ÝÉËÕ ÎÅÏÂÈÏÄÉÍÙÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ (ÎÁÐÒÉÍÅÒ, -Wl,-dn ÎÁ MIPS RISC/OS).

íÁËÒÏÓ AC_TRY_LINK ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ËÏÍÐÉÌÑÃÉÉ ÔÅÓÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÙ ÄÌÑ ÐÒÏ×ÅÒËÉ ÆÕÎËÃÉÊ É ÇÌÏÂÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. ïÎ ÔÁËÖÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÍÁËÒÏÓÏÍ AC_CHECK_LIB ÄÌÑ ÐÒÏ×ÅÒËÉ ÂÉÂÌÉÏÔÅË (see âÉÂÌÉÏÔÅËÉ), ×ÒÅÍÅÎÎÏ ÄÏÂÁ×ÌÑÑ ÐÒÏ×ÅÒÑÅÍÕÀ ÂÉÂÌÉÏÔÅËÕ × ÐÅÒÅÍÅÎÎÕÀ LIBS É ÐÙÔÁÑÓØ ÓËÏÍÐÏÎÏ×ÁÔØ ÍÁÌÅÎØËÕÀ ÐÒÏÇÒÁÍÍÕ.

 -- Macro: AC_TRY_LINK (INCLUDES, FUNCTION-BODY, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÅËÕÝÅÇÏ ÑÚÙËÁ (see ÷ÙÂÏÒ ÑÚÙËÁ), ÓÏÚÄÁÅÔÓÑ ÔÅÓÔÏ×ÁÑ ÐÒÏÇÒÁÍÍÁ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ×ÙÑÓÎÉÔØ, ÍÏÖÅÔ ÌÉ ÂÙÔØ ÓËÏÍÐÉÌÉÒÏ×ÁÎÁ É ÓËÏÍÐÏÎÏ×ÁÎÁ ÆÕÎËÃÉÑ, ÞØÅ ÔÅÌÏ ÓÏÓÔÏÉÔ ÉÚ ÁÒÇÕÍÅÎÔÁ FUNCTION-BODY.

     äÌÑ C É C++, INCLUDES Ñ×ÌÑÅÔÓÑ ÌÀÂÙÍÉ ÄÉÒÅËÔÉ×ÁÍÉ #include, × ËÏÔÏÒÙÈ ÎÕÖÄÁÅÔÓÑ ËÏÄ × FUNCTION-BODY (ÐÁÒÁÍÅÔÒ INCLUDES ÂÕÄÅÔ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ, ÅÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ Fortran 77). üÔÏÔ ÍÁËÒÏÓ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ ÐÏÍÉÍÏ ÐÅÒÅÍÅÎÎÏÊ CPPFLAGS ÔÁËÖÅ ÉÓÐÏÌØÚÕÅÔ ÐÅÒÅÍÅÎÎÙÅ CFLAGS ÉÌÉ CXXFLAGS, ÅÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ C ÉÌÉ C++.  ðÅÒÅÍÅÎÎÁÑ FFLAGS ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ, ÅÓÌÉ ÔÅËÕÝÉÍ ÑÚÙËÏÍ Ñ×ÌÑÅÔÓÑ Fortran 77. ïÄÎÁËÏ × ÌÀÂÏÍ ÓÌÕÞÁÅ ÐÒÉ ËÏÍÐÏÎÏ×ËÅ ÂÕÄÕÔ ÉÓÐÏÌØÚÏ×ÁÎÙ ÐÅÒÅÍÅÎÎÙÅ LDFLAGS É LIBS.

     åÓÌÉ ÆÁÊÌ ËÏÍÐÉÌÉÒÕÅÔÓÑ É ËÏÍÐÏÎÕÅÔÓÑ, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ --- ACTION-IF-NOT-FOUND.

 -- Macro: AC_TRY_LINK_FUNC (FUNCTION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÅËÕÝÅÇÏ ÑÚÙËÁ see ÷ÙÂÏÒ ÑÚÙËÁ), ÓÏÚÄÁÅÔÓÑ ÔÅÓÔÏ×ÁÑ ÐÒÏÇÒÁÍÍÁ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÐÒÏÇÒÁÍÍÁ, ÞØÅ ÔÅÌÏ ÓÏÓÔÏÉÔ ÉÈ ÐÒÏÔÏÔÉÐÁ É ×ÙÚÏ×Á FUNCTION, ÍÏÖÅÔ ÂÙÔØ ÓËÏÍÐÉÌÉÒÏ×ÁÎÁ É ÓËÏÍÐÏÎÏ×ÁÎÁ.

     åÓÌÉ ÆÁÊÌ ËÏÍÐÉÌÉÒÕÅÔÓÑ É ËÏÍÐÏÎÕÅÔÓÑ ÂÅÚ ÏÛÉÂÏË, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÄ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÅÔÓÑ ACTION-IF-NOT-FOUND.

 -- Macro: AC_TRY_LINK_FUNC (FUNCTION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
     üÔÏÔ ÍÁËÒÏÓ ÐÒÏÂÕÅÔ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ É ÓËÏÍÐÏÎÏ×ÁÔØ ÍÁÌÅÎØËÕÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ ËÏÍÐÏÎÕÅÔÓÑ Ó FUNCTION. åÓÌÉ ÆÁÊÌ ËÏÍÐÉÌÉÒÕÅÔÓÑ É ËÏÍÐÏÎÕÅÔÓÑ ÂÅÚ ÏÛÉÂÏË, ÔÏ ÚÁÐÕÓËÁÅÔÓÑ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-FOUND, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÅÔÓÑ ACTION-IF-NOT-FOUND.

 -- Macro: AC_COMPILE_CHECK (ECHO-TEXT, INCLUDES, FUNCTION-BODY, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
     üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÅÊ ×ÅÒÓÉÅÊ AC_TRY_LINK.  ïÎ ÏÔÌÉÞÁÅÔÓÑ ÔÅÍ, ÞÔÏ ×ÙÄÁÅÔ ÓÏÏÂÝÅÎÉÅ checking for ECHO-TEXT × ÐÏÔÏË ÓÔÁÎÄÁÒÔÎÏÇÏ ×Ù×ÏÄÁ, × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÁÒÇÕÍÅÎÔ ECHO-TEXT ÎÅ Ñ×ÌÑÅÔÓÑ ÐÕÓÔÙÍ.  ÷ÍÅÓÔÏ ÜÔÏÇÏ ÍÁËÒÏÓÁ ÄÌÑ ×ÙÄÁÞÉ ÓÏÏÂÝÅÎÉÊ ÉÓÐÏÌØÚÕÊÔÅ AC_MSG_CHECKING É AC_MSG_RESULT (see ÷ÙÄÁÞÁ ÓÏÏÂÝÅÎÉÊ).

ðÒÏ×ÅÒËÁ ÐÏ×ÅÄÅÎÉÑ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ
======================================

éÎÏÇÄÁ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÏÐÒÅÄÅÌÉÔØ, ËÁË ÓÉÓÔÅÍÁ ÒÁÂÏÔÁÅÔ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ ÐÒÏÇÒÁÍÍÙ, ÎÁÐÒÉÍÅÒ, ÉÍÅÅÔ ÌÉ ÚÁÄÁÎÎÁÑ ÆÕÎËÃÉÑ ÏÐÒÅÄÅÌÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÉÌÉ ÏÛÉÂËÉ.  óÔÁÒÁÊÔÅÓØ ×ÙÐÏÌÎÑÔØ ÔÁËÉÅ ÐÒÏ×ÅÒËÉ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ ÐÒÏÇÒÁÍÍÙ, Á ÎÅ ×Ï ×ÒÅÍÑ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ.   ôÁËÉÅ ×ÅÝÉ, ËÁË ÒÁÓÐÏÌÏÖÅÎÉÅ ÂÁÊÔÏ× × ÐÁÍÑÔÉ ÍÁÛÉÎÙ ÔÁËÖÅ ÓÌÅÄÕÅÔ ÐÒÏ×ÅÒÑÔØ ÐÒÉ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÐÒÏÇÒÁÍÍÙ.

åÓÌÉ ×ÁÍ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÅÏÂÈÏÄÉÍÏ ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ÐÏ×ÅÄÅÎÉÅ ÐÒÏÇÒÁÍÍÙ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ ÐÒÉ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ, ÔÏ ×Ù ÍÏÖÅÔÅ ÎÁÐÉÓÁÔØ ÔÅÓÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÒÅÚÕÌØÔÁÔÏ×, ÏÔËÏÍÐÉÌÉÒÏ×ÁÔØ É ÚÁÐÕÓÔÉÔØ ÅÅ Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÁ AC_TRY_RUN.  åÓÌÉ ×ÏÚÍÏÖÎÏ, ÉÚÂÅÇÁÊÔÅ ÚÁÐÕÓËÁ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ, ÐÏÓËÏÌØËÕ ÉÈ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÍÅÛÁÅÔ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÎÁÓÔÒÁÉ×ÁÔØ ×ÁÛ ÐÁËÅÔ ÄÌÑ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ.

úÁÐÕÓË ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ
------------------------

éÓÐÏÌØÚÕÊÔÅ ÎÉÖÅÏÐÉÓÁÎÎÙÊ ÍÁËÒÏÓ, ÅÓÌÉ ×ÁÍ ÎÕÖÎÏ ÐÒÉ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ÐÏ×ÅÄÅÎÉÅ ÓÉÓÔÅÍÙ ×Ï ×ÒÅÍÑ ÉÓÐÏÌÎÅÎÉÑ.

 -- Macro: AC_TRY_RUN (PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE [, ACTION-IF-CROSS-COMPILING]]])
     áÒÇÕÍÅÎÔ PROGRAM Ñ×ÌÑÅÔÓÑ ÔÅËÓÔÏÍ ÐÒÏÇÒÁÍÍÙ ÎÁ ÑÚÙËÅ C, ÄÌÑ ËÏÔÏÒÏÊ ×ÙÐÏÌÎÑÀÔÓÑ ÐÏÄÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÙÈ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, Á ÔÁËÖÅ ÏÂÒÁÔÎÙÈ ËÁ×ÙÞÅË É ÏÂÒÁÔÎÙÈ ÓÌÜÛÅÊ. åÓÌÉ ÏÎÁ ËÏÍÐÉÌÉÒÕÅÔÓÑ É ËÏÍÐÏÎÕÅÔÓÑ, É ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ×ÏÚ×ÒÁÝÁÅÔ ËÏÄ ÚÁ×ÅÒÛÅÎÉÑ 0, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-TRUE. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-FALSE; ËÏÄ ÚÁ×ÅÒÛÅÎÉÑ ÔÅÓÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÙ ÄÏÓÔÕÐÅÎ × ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ $?. ðÒÉ ËÏÍÐÉÌÑÃÉÉ ÜÔÏÔ ÍÁËÒÏÓ ÉÓÐÏÌØÚÕÅÔ ÐÅÒÅÍÅÎÎÙÅ CFLAGS ÉÌÉ CXXFLAGS, CPPFLAGS, LDFLAGS É LIBS.

     åÓÌÉ ÉÓÐÏÌØÚÕÅÍÙÊ ËÏÍÐÉÌÑÔÏÒ C ÎÅ ÓÏÚÄÁÅÔ ÉÓÐÏÌÎÑÅÍÙÈ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÚÁÐÕÓËÁÀÔÓÑ ÎÁ ÔÏÊ ÖÅ ÓÉÓÔÅÍÅ, ÇÄÅ ×ÙÐÏÌÎÑÅÔÓÑ ÓËÒÉÐÔ configure, ÔÏ ÔÅÓÔÏ×ÁÑ ÐÒÏÇÒÁÍÍÁ ÎÅ ÚÁÐÕÓËÁÅÔÓÑ. åÓÌÉ ÚÁÄÁÎ ÁÒÇÕÍÅÎÔ ACTION-IF-CROSS-COMPILING, ÔÏ ×ÍÅÓÔÏ ÐÒÏÇÒÁÍÍÙ ÚÁÐÕÓËÁÅÔÓÑ ËÏÄ, ÚÁÄÁÎÎÙÊ × ÜÔÏÍ ÁÒÇÕÍÅÎÔÅ.  ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ configure ×ÙÄÁÅÔ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

ðÏÓÔÁÒÁÊÔÅÓØ ÓÄÅÌÁÔØ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÅÓÓÉÍÉÓÔÉÞÅÓËÉÍÉ, ÅÓÌÉ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÑ ÎÅ ÐÏÚ×ÏÌÑÅÔ ÐÒÏ×ÅÒÉÔØ ÐÏ×ÅÄÅÎÉÅ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ. üÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ, ÐÅÒÅÄÁ× ÍÁËÒÏÓÕ AC_TRY_RUN ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÐÏÓÌÅÄÎÉÊ ÁÒÇÕÍÅÎÔ.  autoconf ×ÙÄÁÅÔ ÐÒÅÄÕÐÒÅÖÄÁÀÝÅÅ ÓÏÏÂÝÅÎÉÅ ÐÒÉ ÓÏÚÄÁÎÉÉ configure ËÁÖÄÙÊ ÒÁÚ, ËÏÇÄÁ ×ÓÔÒÅÞÁÅÔÓÑ ×ÙÚÏ× ÍÁËÒÏÓÁ AC_TRY_RUN Ó ÎÅÚÁÄÁÎÎÙÍ ÁÒÇÕÍÅÎÔÏÍ ACTION-IF-CROSS-COMPILING. ÷Ù ÍÏÖÅÔÅ ÉÇÎÏÒÉÒÏ×ÁÔØ ÜÔÏ ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ, ÈÏÔÑ ÐÏÌØÚÏ×ÁÔÅÌÉ ÎÅ ÓÍÏÇÕÔ ÎÁÓÔÒÏÉÔØ ×ÁÛ ÐÁËÅÔ ÄÌÑ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ. îÅÓËÏÌØËÏ ÍÁËÒÏÓÏ×, ÐÏÓÔÁ×ÌÑÅÍÙÈ × ÓÏÓÔÁ×Å Autoconf, ×ÙÄÁÀÔ ÜÔÏ ÐÒÅÄÕÐÒÅÖÄÁÀÝÅÅ ÓÏÏÂÝÅÎÉÅ.

äÌÑ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ ÄÌÑ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ ×Ù ÔÁËÖÅ ÍÏÖÅÔÅ ×ÙÂÒÁÔØ ÚÎÁÞÅÎÉÑ ÐÁÒÁÍÅÔÒÏ×, ÏÓÎÏ×Ù×ÁÑÓØ ÎÁ ËÁÎÏÎÉÞÅÓËÏÍ ÉÍÅÎÉ ÓÉÓÔÅÍÙ (see òÕÞÎÁÑ ÎÁÓÔÒÏÊËÁ). ÷ ËÁÞÅÓÔ×Å ÁÌØÔÅÒÎÁÔÉ×Ù, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÐÒÁ×ÉÌØÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ÃÅÌÅ×ÏÊ ÓÉÓÔÅÍÙ × ËÜÛ-ÆÁÊÌÅ Ó ÒÅÚÕÌØÔÁÔÁÍÉ ÔÅÓÔÏ× (see ëÜÛÉÒÏ×ÁÎÉÅ ÒÅÚÕÌØÔÁÔÏ×).

äÌÑ ÚÁÄÁÎÉÑ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ×ÙÚÏ×Ï× ÍÁËÒÏÓÁ AC_TRY_RUN, ËÏÔÏÒÙÅ ×ËÌÀÞÅÎÙ × ÄÒÕÇÉÅ ÍÁËÒÏÓÙ (×ËÌÀÞÁÑ ÔÅ, ËÏÔÏÒÙÅ ÐÏÓÔÁ×ÌÑÀÔÓÑ Ó Autoconf), ×Ù ÍÏÖÅÔÅ ×ÙÚ×ÁÔØ ÍÁËÒÏÓ AC_PROG_CC ÄÏ ÉÈ ×ÙÚÏ×Á. úÁÔÅÍ, ÅÓÌÉ ÐÅÒÅÍÅÎÎÁÑ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ cross_compiling ÉÍÅÅÔ ÚÎÁÞÅÎÉÅ yes, ÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ ÁÌØÔÅÒÎÁÔÉ×ÎÙÊ ÍÅÔÏÄ ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÒÅÚÕÌØÔÁÔÏ×, ×ÍÅÓÔÏ ×ÙÚÏ×Á ÍÁËÒÏÓÏ×.

 -- Macro: AC_C_CROSS
     üÔÏÔ ÍÁËÒÏÓ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ; ÏÎ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ.

òÅËÏÍÅÎÄÁÃÉÉ ÐÏ ÎÁÐÉÓÁÎÉÀ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ
-------------------------------------------

ôÅÓÔÏ×ÙÅ ÐÒÏÇÒÁÍÍÙ ÎÅ ÄÏÌÖÎÙ ×ÙÄÁ×ÁÔØ ÎÉËÁËÉÈ ÓÏÏÂÝÅÎÉÊ ÎÁ  ÐÏÔÏË ÓÔÁÎÄÁÒÔÎÏÇÏ ×Ù×ÏÄÁ.  ïÎÉ ÄÏÌÖÎÙ ×ÏÚ×ÒÁÝÁÔØ ÚÎÁÞÅÎÉÅ 0 × ÓÌÕÞÁÅ ÕÄÁÞÉ É ÎÅÎÕÌÅ×ÏÅ ÚÎÁÞÅÎÉÅ --- × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÔÁË ÞÔÏ ÕÄÁÞÎÏÅ ×ÙÐÏÌÎÅÎÉÅ ÍÏÖÎÏ ÌÅÇËÏ ÏÔÌÉÞÉÔØ ÏÔ ×ÙÄÁÞÉ ÄÁÍÐÁ ÐÒÉ ËÒÁÈÅ ÐÒÏÇÒÁÍÍÙ ÉÌÉ ÄÒÕÇÏÇÏ ÎÅÕÄÁÞÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ; ÎÁÒÕÛÅÎÉÅ ÄÏÓÔÕÐÁ Ë ÐÁÍÑÔÉ É ÄÒÕÇÉÅ ÓÂÏÉ ×ÏÚ×ÒÁÝÁÀÔ ÎÅÎÕÌÅ×ÏÊ ÓÔÁÔÕÓ ÚÁ×ÅÒÛÅÎÉÑ. ôÅÓÔÏ×ÙÅ ÐÒÏÇÒÁÍÍÙ ÄÏÌÖÎÙ ÚÁ×ÅÒÛÁÔØ ÒÁÂÏÔÕ Ó ÐÏÍÏÝØÀ ×ÙÚÏ×Á ÆÕÎËÃÉÉ exit, Á ÎÅ Ó ÐÏÍÏÝØÀ ÏÐÅÒÁÔÏÒÁ return ÉÚ ÐÏÄÐÒÏÇÒÁÍÍÙ main, ÐÏÓËÏÌØËÕ ÎÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ, ÎÁ ÓÔÁÒÙÈ ÍÁÛÉÎÁÈ Sun) × ÐÏÄÐÒÏÇÒÁÍÍÅ main ÉÇÎÏÒÉÒÕÅÔÓÑ ÁÒÇÕÍÅÎÔ ÏÐÅÒÁÔÏÒÁ return.

ôÅÓÔÏ×ÙÅ ÐÒÏÇÒÁÍÍÙ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÉÒÅËÔÉ×Ù #if ÉÌÉ #ifdef ÄÌÑ ÐÒÏ×ÅÒËÉ ÚÎÁÞÅÎÉÊ ÍÁËÒÏÓÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ, ÏÐÒÅÄÅÌÅÎÎÙÈ ÕÖÅ ÐÒÏ×ÅÄÅÎÎÙÍÉ ÔÅÓÔÁÍÉ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ×Ù ×ÙÚÏ×ÅÔÅ AC_HEADER_STDC, ÔÏ ÄÁÌÅÅ × configure.in ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÅÓÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÕÓÌÏ×ÉÑ ×ËÌÀÞÁÅÔ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ANSI C:

     #if STDC_HEADERS
     # include <stdlib.h>
     #endif

åÓÌÉ ÔÅÓÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÅ ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÌÉ ÓÏÚÄÁÔØ ÆÁÊÌ ÄÁÎÎÙÈ, ÔÏ ÚÁÄÁ×ÁÊÔÅ ÜÔÏÍÕ ÆÁÊÌÕ ÉÍÑ, ËÏÔÏÒÏÅ ÎÁÞÉÎÁÀÔÓÑ Ó conftest, ÎÁÐÒÉÍÅÒ, conftestdata.  óËÒÉÐÔ configure ÐÏÓÌÅ ×ÙÐÏÌÎÅÎÉÑ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ Á ÔÁËÖÅ × ÓÌÕÞÁÅ ÐÒÅÒÙ×ÁÎÉÑ ÒÁÂÏÔÙ ÓËÒÉÐÔÁ ÕÄÁÌÑÅÔ ÜÔÉ ÆÁÊÌÙ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ rm -rf conftest*.

ôÅÓÔÏ×ÙÅ ÆÕÎËÃÉÉ
----------------

ïÂßÑ×ÌÅÎÉÑ ÆÕÎËÃÉÊ × ÔÅÓÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÅ ÄÏÌÖÎÙ ÂÙÔØ Ó ÐÏÍÏÝØÀ ÕÓÌÏ×ÎÏÊ ËÏÍÐÉÌÑÃÉÉ ÏÂßÑ×ÌÅÎÙ ËÁË ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ C++, ÔÁË É ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ C. îÁ ÐÒÁËÔÉËÅ, ÏÄÎÁËÏ, ÔÅÓÔÏ×ÙÅ ÐÒÏÇÒÁÍÍÙ ÒÅÄËÏ ÎÕÖÄÁÀÔÓÑ × ÆÕÎËÃÉÑÈ, ËÏÔÏÒÙÍ ÐÅÒÅÄÁÀÔÓÑ ÁÒÇÕÍÅÎÔÙ.

     #ifdef __cplusplus
     foo(int i)
     #else
     foo(i) int i;
     #endif

æÕÎËÃÉÉ, ËÏÔÏÒÙÅ ÏÂßÑ×ÌÑÀÔÓÑ × ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍÁÈ, ÄÏÌÖÎÙ ÂÙÔØ ÔÁËÖÅ ÏÂßÑ×ÌÅÎÙ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÐÒÏÔÏÔÉÐÏ× extern "C", ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ó ËÏÍÐÉÌÑÔÏÒÁÍÉ C++.  õÂÅÄÉÔÅÓØ, ÞÔÏ ×Ù ÎÅ ×ËÌÀÞÁÅÔÅ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ, ÓÏÄÅÒÖÁÝÉÅ ËÏÎÆÌÉËÔÕÀÝÉÅ ÐÒÏÔÏÔÉÐÙ.

     #ifdef __cplusplus
     extern "C" void *malloc(size_t);
     #else
     char *malloc();
     #endif

åÓÌÉ ÔÅÓÔÏ×ÁÑ ÐÒÏÇÒÁÍÍÁ ×ÙÚÙ×ÁÅÔ ÆÕÎËÃÉÀ Ó ÎÅÐÒÁ×ÉÌØÎÙÍÉ ÐÁÒÁÍÅÔÒÁÍÉ (ÐÒÏÓÔÏ ÞÔÏÂÙ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÔÁËÁÑ ÓÕÝÅÓÔ×ÕÅÔ), ÔÏ ÏÒÇÁÎÉÚÕÊÔÅ ÐÒÏÇÒÁÍÍÕ ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏÂÙ ÜÔÁ ÆÕÎËÃÉÑ ÎÉËÏÇÄÁ ÎÅ ÂÙÌÁ ×ÙÚ×ÁÎÁ.  üÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÐÕÔÅÍ ×ÙÚÏ×Á ÅÅ × ÄÒÕÇÏÊ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ÎÉËÏÇÄÁ ÎÅ ×ÙÚÙ×ÁÅÔÓÑ.  ÷Ù ÎÅ ÍÏÖÅÔÅ ÓÄÅÌÁÔØ ÜÔÏ, ÐÏÍÅÓÔÉ× ×ÙÚÏ× ÆÕÎËÃÉÉ ÐÏÓÌÅ ×ÙÚÏ×Á ÆÕÎËÃÉÉ exit, ÐÏÓËÏÌØËÕ GCC ×ÅÒÓÉÉ 2 ÚÎÁÅÔ Ï ÔÏÍ, ÞÔÏ ÆÕÎËÃÉÑ exit ÎÉËÏÇÄÁ ÎÅ ×ÏÚ×ÒÁÝÁÅÔÓÑ × ÔÏÞËÕ ×ÙÚÏ×Á, É ÏÐÔÉÍÉÚÉÒÕÅÔ ÌÀÂÏÊ ËÏÄ, ËÏÔÏÒÙÊ ÓÌÅÄÕÅÔ ÚÁ ÎÅÊ × ÔÏÍ ÖÅ ÂÌÏËÅ.

åÓÌÉ ×Ù ×ËÌÀÞÁÅÔÅ ËÁËÏÊ-ÌÉÂÏ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ, ÔÏ ÕÂÅÄÉÔÅÓØ, ÞÔÏ ÆÕÎËÃÉÉ, ÎÁÈÏÄÑÝÉÅÓÑ × ÜÔÉÈ ÆÁÊÌÁÈ, ×ÙÚÙ×ÁÀÔÓÑ Ó ÐÒÁ×ÉÌØÎÙÍ ÞÉÓÌÏÍ ÐÁÒÁÍÅÔÒÏ×, ÄÁÖÅ ÅÓÌÉ ×ÓÅ ÜÔÉ ÐÁÒÁÍÅÔÒÙ ÒÁ×ÎÙ ÎÕÌÀ.  üÔÏ ÎÕÖÎÏ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÏÛÉÂÏË ËÏÍÐÉÌÑÃÉÉ ÉÚ-ÚÁ ÎÅÓÏÏÔ×ÅÔÓÔ×ÉÑ ÐÒÏÔÏÔÉÐÏ×. GCC ×ÅÒÓÉÉ 2 ÉÍÅÅÔ ×ÎÕÔÒÅÎÎÉÅ ÐÒÏÔÏÔÉÐÙ ÎÅÓËÏÌØËÉÈ ÆÕÎËÃÉÊ, ËÏÔÏÒÙÅ ÏÎ ×ÓÔÒÁÉ×ÁÅÔ × ËÏÄ Á×ÔÏÍÁÔÉÞÅÓËÉ; ÎÁÐÒÉÍÅÒ, Ë ÔÁËÉÍ ÏÔÎÏÓÉÔÓÑ memcpy. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÏÛÉÂÏË ÐÒÉ ÉÈ ÐÒÏ×ÅÒËÅ, ÌÉÂÏ ÐÅÒÅÄÁ×ÁÊÔÅ ÜÔÉÍ ÆÕÎËÃÉÑÍ ÐÒÁ×ÉÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ×, ÌÉÂÏ ÐÏ×ÔÏÒÎÏ ÏÂßÑ×ÉÔÅ ÜÔÉ ÆÕÎËÃÉÉ Ó ÄÒÕÇÉÍ ÔÉÐÏÍ ×ÏÚ×ÒÁÝÁÅÍÏÇÏ ÚÎÁÞÅÎÉÑ (ÎÁÐÒÉÍÅÒ, ËÁË char).

ðÅÒÅÎÏÓÉÍÏÅ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ÎÁ ÑÚÙËÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ
===========================================================

åÓÔØ ÏÐÒÅÄÅÌÅÎÎÙÅ ÔÅÈÎÉËÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÓËÒÉÐÔÏ× ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÈ ×ÁÍ ÓÌÅÄÕÅÔ ÉÚÂÅÇÁÔØ, ÞÔÏÂÙ ×ÁÛ ËÏÄ ÂÙÌ ÐÅÒÅÎÏÓÉÍ. Bourne shell É ÓÏ×ÍÅÓÔÉÍÙÅ Ó ÎÉÍ ÐÒÏÃÅÓÓÏÒÁ, ÔÁËÉÅ ËÁË Bash É Korn, ÒÁÚ×É×ÁÌÉÓØ × ÔÅÞÅÎÉÉ ÍÎÏÇÉÈ ÌÅÔ, ÎÏ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÔÒÕÄÎÏÓÔÅÊ, ÎÅ ÉÓÐÏÌØÚÕÊÔÅ ×ÏÚÍÏÖÎÏÓÔÅÊ, ËÏÔÏÒÙÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ ÐÏÓÌÅ ×ÙÐÕÓËÁ UNIX ×ÅÒÓÉÉ 7, ÐÒÉÍÅÒÎÏ × 1977 ÇÏÄÕ.  ÷Ù ÎÅ ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÐÓÅ×ÄÏÎÉÍÙ (aliases), ÏÔÒÉÃÁÔÅÌØÎÙÅ ËÌÁÓÓÙ ÓÉÍ×ÏÌÏ× É ÄÒÕÇÉÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÅ ÐÒÉÓÕÔÓÔ×ÕÀÔ ÎÅ ×Ï ×ÓÅÈ ×ÅÒÓÉÑÈ ËÏÍÁÎÄÎÙÈ ÐÒÏÃÅÓÓÏÒÏ×, ÓÏ×ÍÅÓÔÉÍÙÈ Ó ÐÒÏÃÅÓÓÏÒÏÍ Bourne; ÏÇÒÁÎÉÞØÔÅ ÓÅÂÑ ÏÂÝÉÍ ÚÎÁÍÅÎÁÔÅÌÅÍ. äÁÖÅ unset ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ×ÓÅÍÉ ËÏÍÁÎÄÎÙÍÉ ÐÒÏÃÅÓÓÏÒÁÍÉ! ðÒÉ ÕËÁÚÁÎÉÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÓÔÁ×ØÔÅ ÐÒÏÂÅÌ ÐÏÓÌÅ ÓÉÍ×ÏÌÏ× #!, ÎÁÐÒÉÍÅÒ,

     #! /usr/bin/perl

åÓÌÉ ×Ù ÕÂÅÒÅÔÅ ÐÒÏÂÅÌ ÐÅÒÅÄ ÐÕÔÅ×ÙÍ ÉÍÅÎÅÍ, ÔÏ ÓÉÓÔÅÍÙ ÔÉÐÁ 4.2BSD, ÔÁËÉÅ ËÁË Sequent DYNIX, ÂÕÄÕÔ ÐÒÏÓÔÏ ÉÇÎÏÒÉÒÏ×ÁÔØ ÜÔÕ ÓÔÒÏËÕ, ÐÏÓËÏÌØËÕ ÏÎÉ ÉÎÔÅÒÐÒÅÔÉÒÕÀÔ #! / ËÁË 4-È ÂÁÊÔÏ×ÏÅ ÍÁÇÉÞÅÓËÏÅ ÞÉÓÌÏ.

îÁÂÏÒ ×ÎÅÛÎÉÈ ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÅ ÍÏÖÎÏ ÚÁÐÕÓËÁÔØ ÉÚ ÓËÒÉÐÔÁ configure, ÄÏ×ÏÌØÎÏ ÍÁÌ.  See Utilities in Makefiles (GNU Coding Standards), ÎÉÖÅ ÐÒÉ×ÅÄÅÎ ÓÐÉÓÏË ÜÔÉÈ ÐÒÏÇÒÁÍÍ. üÔÏ ÏÇÒÁÎÉÞÅÎÉÅ ÐÏÚ×ÏÌÑÅÔ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÎÁÞÁÔØ Ó ÎÅÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÐÒÏÇÒÁÍÍ, ÐÏÓÔÅÐÅÎÎÏ ËÏÍÐÉÌÉÒÕÑ ÏÓÔÁÌØÎÙÅ, É ÉÚÂÅÖÁÔØ ÓÌÉÛËÏÍ ÂÏÌØÛÏÇÏ ÞÉÓÌÁ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÍÅÖÄÕ ÐÁËÅÔÁÍÉ.

íÎÏÇÉÅ ÔÁËÉÅ ×ÎÅÛÎÉÅ ÕÔÉÌÉÔÙ ÏÂÌÁÄÁÀÔ ÏÂÝÉÍ ÐÏÄÍÎÏÖÅÓÔ×ÏÍ ÐÅÒÅÎÏÓÉÍÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ; ÎÁÐÒÉÍÅÒ, ÎÅ ÐÏÌÁÇÁÊÔÅÓØ ÎÁ ÔÏ, ÞÔÏ ËÏÍÁÎÄÁ ln ÉÍÅÅÔ ËÌÀÞ -f, Á cat ×ÏÏÂÝÅ ÉÍÅÅÔ ËÁËÉÅ-ÌÉÂÏ ËÌÀÞÉ.  óËÒÉÐÔÙ sed ÎÅ ÄÏÌÖÎÙ ÓÏÄÅÒÖÁÔØ ËÏÍÍÅÎÔÁÒÉÅ× ÉÌÉ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÅÔËÉ ÄÌÉÎÎÅÅ 8 ÓÉÍ×ÏÌÏ×. îÅ ÉÓÐÏÌØÚÕÊÔÅ grep -s ÄÌÑ ÚÁÐÒÅÝÅÎÉÑ ×Ù×ÏÄÁ, ÐÏÓËÏÌØËÕ grep -s ÎÁ System V ÎÅ ÚÁÐÒÅÝÁÅÔ ×Ù×ÏÄ, Á ÚÁÐÒÅÝÁÅÔ ÔÏÌØËÏ ÓÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ. ÷ÍÅÓÔÏ ÜÔÏÇÏ ËÌÀÞÁ ÌÕÞÛÅ ÐÅÒÅÎÁÐÒÁ×ØÔÅ ÓÔÁÎÄÁÒÔÎÙÅ ÐÏÔÏËÉ ×Ù×ÏÄÁ É ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ (ÓÏÏÂÝÅÎÉÑ Ï ÎÅÓÕÝÅÓÔ×ÕÀÝÉÈ ÆÁÊÌÁÈ) ÐÒÏÇÒÁÍÍÙ grep ÎÁ ÕÓÔÒÏÊÓÔ×Ï /dev/null. ðÒÏ×ÅÒÑÊÔÅ ËÏÄ ×ÏÚ×ÒÁÔÁ grep, ÞÔÏÂÙ ÕÚÎÁÔØ, ÐÒÏÉÚÏÛÌÏ ÌÉ ÓÏ×ÐÁÄÅÎÉÅ.

ôÅÓÔÉÒÏ×ÁÎÉÅ ÚÎÁÞÅÎÉÊ É ÆÁÊÌÏ×
==============================

óËÒÉÐÔÙ configure ÄÏÌÖÎÙ ÐÒÏ×ÅÒÑÔØ ÒÁÚÌÉÞÎÙÅ Ó×ÏÊÓÔ×Á ÒÁÚÎÙÈ ÆÁÊÌÏ× É ÓÔÒÏË.  ÷ÏÔ ÎÅÂÏÌØÛÏÊ ÓÐÉÓÏË ÐÒÏÂÌÅÍ Ó ÐÅÒÅÎÏÓÉÍÏÓÔØÀ, ËÏÔÏÒÙÈ ÎÕÖÎÏ ÉÚÂÅÇÁÔØ ÐÒÉ ÎÁÐÉÓÁÎÉÉ ÐÒÏ×ÅÒÏË.

ðÒÏÇÒÁÍÍÁ test ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÍÎÏÇÉÈ ÐÒÏ×ÅÒÏË ÆÁÊÌÏ× É ÓÔÒÏË. ïÎÁ ÞÁÓÔÏ ÚÁÐÕÓËÁÅÔÓÑ ÁÌØÔÅÒÎÁÔÉ×ÎÙÍ ÓÐÏÓÏÂÏÍ, ÞÅÒÅÚ ÉÍÑ [, ÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÉÍÅÎÉ × ËÏÄÅ Autoconf ÐÒÉ×ÅÄÅÔ Ë ÏÛÉÂËÁÍ, ÐÏÔÏÍÕ ÞÔÏ ÜÔÏÔ ÓÉÍ×ÏÌ Ñ×ÌÑÅÔÓÑ ÓÉÍ×ÏÌÏÍ ËÁ×ÙÞÅË × m4.

åÓÌÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ×ÙÐÏÌÎÉÔØ ÎÅÓËÏÌØËÏ ÐÒÏ×ÅÒÏË, ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ test, ÔÏ ÏÂßÅÄÉÎÑÊÔÅ ÉÈ Ó ÐÏÍÏÝØÀ ÏÐÅÒÁÔÏÒÏ× ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ && É ||, Á ÎÅ ÉÓÐÏÌØÚÕÊÔÅ ÏÐÅÒÁÔÏÒÙ ÐÒÏÇÒÁÍÍÙ test -a É -o. îÁ System V ÐÒÉÏÒÉÔÅÔÙ ÏÐÅÒÁÔÏÒÏ× -a É -o ÎÅÐÒÁ×ÉÌØÎÏ ÓÏÏÔÎÏÓÑÔÓÑ Ó ÐÒÉÏÒÉÔÅÔÁÍÉ ÕÎÁÒÎÙÈ ÏÐÅÒÁÔÏÒÏ×; ÉÚ-ÚÁ ÜÔÏÇÏ POSIX ÎÅ ÏÐÒÅÄÅÌÑÅÔ ÜÔÉ ÏÐÅÒÁÔÏÒÙ, ÔÁË ÞÔÏ ÉÈ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÉ×ÏÄÉÔ Ë ÎÅÐÅÒÅÎÏÓÉÍÏÍÕ ËÏÄÕ.  åÓÌÉ ×Ù × ÏÄÎÏÍ ×ÙÒÁÖÅÎÉÉ ÉÓÐÏÌØÚÕÅÔÅ ËÁË &&, ÔÁË É ||, ÔÏ ÐÏÍÎÉÔÅ, ÞÔÏ ÏÎÉ ÉÍÅÀÔ ÏÄÉÎÁËÏ×ÙÊ ÐÒÉÏÒÉÔÅÔ.

óËÒÉÐÔÙ configure, ÐÏÄÄÅÒÖÉ×ÁÀÝÉÅ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÀ, ÎÅ ÄÏÌÖÎÙ ÎÅ ÄÅÌÁÔØ ÎÉÞÅÇÏ, ÞÔÏ ÔÅÓÔÉÒÕÅÔ Ó×ÏÊÓÔ×Á ÓÉÓÔÅÍÙ, ÎÁ ËÏÔÏÒÏÊ ×ÙÐÏÌÎÑÅÔÓÑ ÓËÒÉÐÔ.  îÏ ÉÎÏÇÄÁ ×ÁÍ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ ÐÒÏ×ÅÒÉÔØ, ÓÕÝÅÓÔ×ÕÅÔ ÌÉ ÏÐÒÅÄÅÌÅÎÎÙÊ ÆÁÊÌ. þÔÏÂÙ ÓÄÅÌÁÔØ ÜÔÏ ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÙ test -f ÉÌÉ test -r. îÅ ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ test -x, ÐÏÓËÏÌØËÕ 4.3BSD ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÅÅ.

äÒÕÇÏÊ ÎÅÐÅÒÅÎÏÓÉÍÏÊ ËÏÎÓÔÒÕËÃÉÅÊ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ Ñ×ÌÑÅÔÓÑ

     VAR=${VAR:-VALUE}

ïÎÁ ÐÒÅÄÎÁÚÎÁÞÅÎÁ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÚÎÁÞÅÎÉÑ ÐÅÒÅÍÅÎÎÏÊ VAR ÒÁ×ÎÙÍ VALUE, ÎÏ ÔÏÌØËÏ × ÔÅÈ ÓÌÕÞÁÑÈ, ËÏÇÄÁ ÐÅÒÅÍÅÎÎÁÑ ÅÝÅ ÎÅ ÉÍÅÅÔ ÚÎÁÞÅÎÉÑ.  åÓÌÉ VAR ÕÖÅ ÂÙÌÏ ÐÒÉÓ×ÏÅÎÏ ÚÎÁÞÅÎÉÅ, ÄÁÖÅ ÒÁ×ÎÏÅ ÐÕÓÔÏÊ ÓÔÒÏËÅ, ÔÏ ÏÎÏ ÏÓÔÁÅÔÓÑ ÎÅÉÚÍÅÎÎÙÍ.  óÔÁÒÙÅ ËÏÍÁÎÄÎÙÅ ÐÒÏÃÅÓÓÏÒÙ BSD, ×ËÌÀÞÁÑ Ultrix-×ÅÒÓÉÀ sh, ÎÅ ×ÏÓÐÒÉÎÉÍÁÀÔ ÓÉÍ×ÏÌ Ä×ÏÅÔÏÞÉÑ, ×ÙÄÁÀÔ ÏÛÉÂËÕ É ÐÒÅËÒÁÝÁÀÔ ÒÁÂÏÔÕ. ðÅÒÅÎÏÓÉÍÙÍ ÜË×É×ÁÌÅÎÔÏÍ ÄÁÎÎÏÊ ËÏÎÓÔÒÕËÃÉÉ Ñ×ÌÑÅÔÓÑ

     : ${VAR=VALUE}

íÎÏÖÅÓÔ×Ï ×ÁÒÉÁÎÔÏ×
===================

îÅËÏÔÏÒÙÅ ÏÐÅÒÁÃÉÉ ×ÙÐÏÌÎÑÀÔÓÑ ÎÅÓËÏÌØËÉÍÉ ÒÁÚÎÙÍÉ ÓÐÏÓÏÂÁÍÉ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÉÓÐÏÌØÚÕÅÍÏÇÏ ×ÁÒÉÁÎÔÁ UNIX.  éÈ ÐÒÏ×ÅÒËÁ ÔÒÅÂÕÅÔ ``ÏÐÅÒÁÔÏÒÁ ×ÙÂÏÒÁ''. Autoconf ÎÁÐÒÑÍÕÀ ÎÅ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÔÁËÏÊ ÏÐÅÒÁÔÏÒ, ÏÄÎÁËÏ ÄÏÓÔÁÔÏÞÎÏ ÌÅÇËÏ ÜÍÕÌÉÒÏ×ÁÔØ ÅÇÏ, ÉÓÐÏÌØÚÕÑ ÐÅÒÅÍÅÎÎÕÀ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ÄÌÑ ÚÁÐÏÍÉÎÁÎÉÑ, ÎÁÊÄÅÎ ÌÉ ÕÖÅ ÐÒÉÇÏÄÎÙÊ ÓÐÏÓÏÂ.

÷ÏÔ ÐÒÉÍÅÒ, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔ ÐÅÒÅÍÅÎÎÕÀ fstype ÄÌÑ ÏÔÓÌÅÖÉ×ÁÎÉÑ ÔÏÇÏ, ÏÓÔÁÌÉÓØ ÌÉ ×ÁÒÉÁÎÔÙ, ËÏÔÏÒÙÅ ÎÅÏÂÈÏÄÉÍÏ ÐÒÏ×ÅÒÉÔØ.

     AC_MSG_CHECKING(ËÁË ÐÏÌÕÞÉÔØ ÔÉÐ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ)
     fstype=no
     # ðÏÒÑÄÏË ÜÔÉÈ ÄÅÊÓÔ×ÉÊ Ñ×ÌÑÅÔÓÑ ×ÁÖÎÙÍ.
     AC_TRY_CPP([#include <sys/statvfs.h>
     #include <sys/fstyp.h>], AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4)
     if test $fstype = no; then
     AC_TRY_CPP([#include <sys/statfs.h>
     #include <sys/fstyp.h>], AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3)
     fi
     if test $fstype = no; then
     AC_TRY_CPP([#include <sys/statfs.h>
     #include <sys/vmount.h>], AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX)
     fi
     # (ÏÓÔÁÌØÎÙÅ ×ÁÒÉÁÎÔÙ ÐÒÏÐÕÝÅÎÙ × ÜÔÏÍ ÐÒÉÍÅÒÅ)
     AC_MSG_RESULT($fstype)

÷ÙÂÏÒ ÑÚÙËÁ
===========

ðÁËÅÔÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÏÄÎÏ×ÒÅÍÅÎÎÏ É C, É C++, ÎÕÖÄÁÀÔÓÑ × ÐÒÏ×ÅÒËÅ ×ÏÚÍÏÖÎÏÓÔÅÊ ÏÂÏÉÈ ËÏÍÐÉÌÑÔÏÒÏ×. óÏÚÄÁÎÎÙÅ Autoconf ÓËÒÉÐÔÙ configure ÐÏ ÕÍÏÌÞÁÎÉÀ ×ÙÐÏÌÎÑÀÔ ÐÒÏ×ÅÒËÕ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÏÍÐÉÌÑÔÏÒÁ C.  îÉÖÅÏÐÉÓÁÎÎÙÅ ÍÁËÒÏÓÙ ÏÐÒÅÄÅÌÑÀÔ, ËÏÍÐÉÌÑÔÏÒ ËÁËÏÇÏ ÑÚÙËÁ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ × ÔÅÓÔÁÈ, ËÏÔÏÒÙÅ ÐÏÓÌÅÄÕÀÔ ÚÁ ×ÙÚÏ×ÏÍ ÜÔÏÇÏ ÍÁËÒÏÓÁ × configure.in.

 -- Macro: AC_LANG_C
     ÷ÙÐÏÌÎÑÅÔ ÔÅÓÔÙ ËÏÍÐÉÌÑÃÉÉ, ÉÓÐÏÌØÚÕÑ ÐÅÒÅÍÅÎÎÙÅ CC É CPP, Á ÔÁËÖÅ ÉÓÐÏÌØÚÕÑ ÒÁÓÛÉÒÅÎÉÅ .c ÄÌÑ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ.  õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ cross_compiling × ÚÎÁÞÅÎÉÅ, ×ÙÞÉÓÌÅÎÎÏÅ ÍÁËÒÏÓÏÍ AC_PROG_CC, ÅÓÌÉ ÏÎ ÂÙÌ ÚÁÐÕÝÅÎ, É × ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ.

 -- Macro: AC_LANG_CPLUSPLUS
     ÷ÙÐÏÌÎÑÅÔ ÔÅÓÔÙ ËÏÍÐÉÌÑÃÉÉ, ÉÓÐÏÌØÚÕÑ ÐÅÒÅÍÅÎÎÙÅ CXX É CXXPP, Á ÔÁËÖÅ ÉÓÐÏÌØÚÕÑ ÒÁÓÛÉÒÅÎÉÅ .C ÄÌÑ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ. õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ cross_compiling × ÚÎÁÞÅÎÉÅ, ×ÙÞÉÓÌÅÎÎÏÅ ÍÁËÒÏÓÏÍ AC_PROG_CXX, ÅÓÌÉ ÏÎ ÂÙÌ ÚÁÐÕÝÅÎ, É × ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ.

 -- Macro: AC_LANG_FORTRAN77
     ÷ÙÐÏÌÎÑÅÔ ÔÅÓÔÙ ËÏÍÐÉÌÑÃÉÉ, ÉÓÐÏÌØÚÕÑ ÐÅÒÅÍÅÎÎÕÀ F77, Á ÔÁËÖÅ ÉÓÐÏÌØÚÕÑ ÒÁÓÛÉÒÅÎÉÅ .f ÄÌÑ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ. õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ cross_compiling × ÚÎÁÞÅÎÉÅ, ×ÙÞÉÓÌÅÎÎÏÅ ÍÁËÒÏÓÏÍ AC_PROG_F77, ÅÓÌÉ ÏÎ ÂÙÌ ÚÁÐÕÝÅÎ, É × ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ.

 -- Macro: AC_LANG_SAVE
     úÁÐÏÍÉÎÁÅÔ × ÓÔÅËÅ ÚÎÁÞÅÎÉÅ ÔÅËÕÝÅÇÏ ÑÚÙËÁ (ÕÓÔÁÎÏ×ÌÅÎÎÏÅ ÍÁËÒÏÓÁÍÉ AC_LANG_C, AC_LANG_CPLUSPLUS ÉÌÉ AC_LANG_FORTRAN77).  îÅ ÉÚÍÅÎÑÅÔ ÚÎÁÞÅÎÉÅ ÔÅËÕÝÅÇÏ ÑÚÙËÁ. éÓÐÏÌØÚÕÊÔÅ ÜÔÏÔ ÍÁËÒÏÓ É AC_LANG_RESTORE × ÍÁËÒÏÓÁÈ, ËÏÔÏÒÙÍ ÎÅÏÂÈÏÄÉÍÏ ×ÒÅÍÅÎÎÏ ÐÅÒÅËÌÀÞÉÔØÓÑ ÎÁ ËÏÎËÒÅÔÎÙÊ ÑÚÙË.

 -- Macro: AC_LANG_RESTORE
     ÷ÙÂÉÒÁÅÔ ÑÚÙË, ËÏÔÏÒÙÊ ÂÙÌ ÓÏÈÒÁÎÅÎ ÎÁ ×ÅÒÛÉÎÅ ÓÔÅËÁ, ÇÄÅ ÏÎ ÂÙÌ ÓÏÈÒÁÎÅÎ ÍÁËÒÏÓÏÍ AC_LANG_SAVE, É ÕÄÁÌÑÅÔ ÅÇÏ ÓÏ ÓÔÅËÁ. üÔÏÔ ÍÁËÒÏÓ ÜË×É×ÁÌÅÎÔÅÎ ×ÙÚÏ×Õ AC_LANG_C, AC_LANG_CPLUSPLUS ÉÌÉ AC_LANG_FORTRAN77, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ËÏÔÏÒÙÊ ÉÚ ÎÉÈ ÄÅÊÓÔ×Ï×ÁÌ ×Ï ×ÒÅÍÑ ÐÏÓÌÅÄÎÅÇÏ ×ÙÚÏ×Á ÍÁËÒÏÓÁ AC_LANG_SAVE.

     îÅ ×ÙÚÙ×ÁÊÔÅ ÜÔÏÔ ÍÁËÒÏÓ ÂÏÌØÛÅ ÒÁÚ, ÞÅÍ ÂÙÌÏ ×ÙÚÏ×Ï× AC_LANG_SAVE.

 -- Macro: AC_REQUIRE_CPP
     õÂÅÖÄÁÅÔÓÑ, ÞÔÏ ÐÒÅÐÒÏÃÅÓÓÏÒ, ËÏÔÏÒÙÊ ÄÏÌÖÅÎ ÓÅÊÞÁÓ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÂÙÌ ÎÁÊÄÅÎ. ÷ÙÚÙ×ÁÅÔ ÍÁËÒÏÓ AC_REQUIRE (see ôÒÅÂÕÅÍÙÅ ÍÁËÒÏÓÙ) Ó ÁÒÇÕÍÅÎÔÏÍ, ÒÁ×ÎÙÍ ÌÉÂÏ AC_PROG_CPP, ÌÉÂÏ AC_PROG_CXXCPP, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ËÁËÏÊ ÑÚÙË ÂÙÌ ×ÙÂÒÁÎ.

òÅÚÕÌØÔÁÔÙ ÔÅÓÔÏ×
*****************

ðÏÓÌÅ ÔÏÇÏ, ËÁË ÓËÒÉÐÔ configure ×ÙÑÓÎÉÌ ÓÕÝÅÓÔ×Ï×ÁÎÉÅ ËÁËÏÊ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÉ, ÞÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÚÁÐÉÓÁÔØ ÜÔÕ ÉÎÆÏÒÍÁÃÉÀ?  åÓÔØ ÞÅÔÙÒÅ ×ÁÒÉÁÎÔÁ: ÏÐÒÅÄÅÌÉÔØ ÓÉÍ×ÏÌ ÐÒÅÐÒÏÃÅÓÓÏÒÁ ó, ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ × ×ÙÈÏÄÎÏÍ ÆÁÊÌÅ, ÓÏÈÒÁÎÉÔØ ÒÅÚÕÌØÔÁÔ × ËÜÛ-ÆÁÊÌÅ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÐÒÉ ÐÏÓÌÅÄÕÀÝÉÈ ÚÁÐÕÓËÁÈ configure É ×ÙÄÁÔØ ÓÏÏÂÝÅÎÉÅ, ÐÏÚ×ÏÌÑÀÝÅÅ ÐÏÌØÚÏ×ÁÔÅÌÀ ÕÚÎÁÔØ ÒÅÚÕÌØÔÁÔ ÔÅÓÔÁ.

ïÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ ó
====================================

ïÂÙÞÎÏ ÐÏÓÌÅ ÐÒÏ×ÅÒËÉ ËÁËÏÊ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÉ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÉÍ×ÏÌ ÐÒÅÐÒÏÃÅÓÓÏÒÁ, ÏÔÒÁÖÁÀÝÉÊ ÒÅÚÕÌØÔÁÔ ÐÒÏ×ÅÒËÉ.  üÔÏ ÐÒÏÉÓÈÏÄÉÔ ÐÒÉ ×ÙÚÏ×Å ÍÁËÒÏÓÁ AC_DEFINE ÉÌÉ AC_DEFINE_UNQUOTED.

ðÏ ÕÍÏÌÞÁÎÉÀ ÍÁËÒÏÓ AC_OUTPUT ÐÏÍÅÝÁÅÔ ÓÉÍ×ÏÌÙ, ÏÐÒÅÄÅÌÅÎÎÙÅ ÜÔÉÍÉ ÍÁËÒÏÓÁÍÉ × ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ DEFS, ËÏÔÏÒÁÑ ÐÏ ÏÄÎÏÍÕ ËÌÀÞÕ -DSYMBOL=VALUE ÎÁ ËÁÖÄÙÊ ÓÉÍ×ÏÌ. ÷ ÏÔÌÉÞÉÉ ÏÔ Autoconf ×ÅÒÓÉÉ 1, ÐÅÒÅÍÅÎÎÁÑ DEFS ÎÅ ÏÐÒÅÄÅÌÅÎÁ × ÔÅÞÅÎÉÉ ÒÁÂÏÔÙ configure. äÌÑ ÐÒÏ×ÅÒËÉ ÔÏÇÏ, ÏÐÒÅÄÅÌÅÎ ÌÉ ÕÖÅ ËÁËÏÊ-ÌÉÂÏ ÓÉÍ×ÏÌ ÐÒÅÐÒÏÃÅÓÓÏÒÁ C, ÐÒÏ×ÅÒØÔÅ ÚÎÁÞÅÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÐÅÒÅÍÅÎÎÏÊ ËÜÛÁ, ËÁË ÐÏËÁÚÁÎÏ × ÜÔÏÍ ÐÒÉÍÅÒÅ:

     AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
     if test "$ac_cv_func_vprintf" != yes; then
     AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
     fi

åÓÌÉ ÂÙÌ ×ÙÚ×ÁÎ ÍÁËÒÏÓ AC_CONFIG_HEADER, ÔÏ AC_OUTPUT ×ÍÅÓÔÏ ÏÐÒÅÄÅÌÅÎÉÑ ÐÅÒÅÍÅÎÎÏÊ DEFS ÓÏÚÄÁÅÔ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ ÐÕÔÅÍ ÐÏÄÓÔÁÎÏ×ËÉ ÐÒÁ×ÉÌØÎÙÈ ÚÎÁÞÅÎÉÊ × ÄÉÒÅËÔÉ×Ù #define, ÚÁÄÁÎÎÙÅ × ÆÁÊÌÅ-ÛÁÂÌÏÎÅ. See úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ ËÏÎÆÉÇÕÒÁÃÉÉ, ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÏÂ ÜÔÏÍ ÓÐÏÓÏÂÅ ×Ù×ÏÄÁ ÒÅÚÕÌØÔÁÔÏ×.

 -- Macro: AC_DEFINE (VARIABLE [, VALUE [, DESCRIPTION]])
     ïÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ ÐÒÅÐÒÏÃÅÓÓÏÒÁ C VARIABLE.  åÓÌÉ ÁÒÇÕÍÅÎÔ VALUE ÚÁÄÁÎ, ÔÏ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ VARIABLE × ÜÔÏ ÚÎÁÞÅÎÉÅ (ÂÅÚ ÉÚÍÅÎÅÎÉÊ), × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÅÅ ÒÁ×ÎÏÊ 1. VALUE ÎÅ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÓÉÍ×ÏÌÏ× ÐÅÒÅ×ÏÄÁ ÓÔÒÏËÉ, Á ÅÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ AC_CONFIG_HEADER, ÔÏ ÏÎ ÎÅ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÓÉÍ×ÏÌÙ #, ÐÏÓËÏÌØËÕ make ÉÍÅÅÔ ÓËÌÏÎÅÎ ÐÒÏÇÌÁÔÙ×ÁÔØ ÉÈ.  äÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ (ËÏÔÏÒÁÑ ÎÅÏÂÈÏÄÉÍÁ, ÅÓÌÉ ÎÕÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÚÎÁÞÅÎÉÅ, ÓÏÄÅÒÖÁÝÅÅ ÓÉÍ×ÏÌ, Ñ×ÌÑÀÝÉÊÓÑ ËÁ×ÙÞËÏÊ × m4 [ ÉÌÉ ]) ×ÁÍ ÓÌÅÄÕÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ AC_DEFINE_UNQUOTED.  áÒÇÕÍÅÎÔ DESCRIPTION ÐÏÌÅÚÅÎ ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÍÁËÒÏÓ AC_CONFIG_HEADER. ÷ ÜÔÏÍ ÓÌÕÞÁÅ DESCRIPTION ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÓÏÚÄÁÎÎÙÊ ÆÁÊÌ config.h.in × ËÁÞÅÓÔ×Á ËÏÍÍÅÎÔÁÒÉÑ Ë ÏÐÒÅÄÅÌÅÎÉÀ ÓÉÍ×ÏÌÁ; ÍÁËÒÏÓÕ ÎÅ ÎÕÖÎÏ ÂÙÔØ ÕÐÏÍÑÎÕÔÙÍ × acconfig.h. óÌÅÄÕÀÝÉÊ ÐÒÉÍÅÒ ÏÐÒÅÄÅÌÑÅÔ ÐÅÒÅÍÅÎÎÕÀ ÐÒÅÐÒÏÃÅÓÓÏÒÁ C EQUATION ÓÏ ÚÎÁÞÅÎÉÅÍ, ÒÁ×ÎÙÍ ÓÔÒÏËÏ×ÏÊ ËÏÎÓÔÁÎÔÅ "$a > $b":

          AC_DEFINE(EQUATION, "$a > $b")

 -- Macro: AC_DEFINE_UNQUOTED (VARIABLE [, VALUE [, DESCRIPTION]])
     ðÏÄÏÂÎÏ AC_DEFINE, ÎÏ ÎÁÄ ÐÅÒÅÍÅÎÎÙÍÉ VARIABLE É VALUE ×ÙÐÏÌÎÑÅÔÓÑ ÒÑÄ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ: ÐÏÄÓÔÁÎÏ×ËÁ ÐÅÒÅÍÅÎÎÙÈ ($), ÐÏÄÓÔÁÎÏ×ËÁ ÒÅÚÕÌØÔÁÔÏ× ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄ (`) É ÜËÒÁÎÉÒÏ×ÁÎÉÅ ÓÉÍ×ÏÌÏ× ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ (\). óÉÍ×ÏÌÙ ÏÄÉÎÏÞÎÙÈ É Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË × VALUE ÎÅ ÉÍÅÀÔ ÓÐÅÃÉÁÌØÎÏÇÏ ÓÍÙÓÌÁ.  éÓÐÏÌØÚÕÊÔÅ ÜÔÏÔ ÍÁËÒÏÓ ×ÍÅÓÔÏ AC_DEFINE, ËÏÇÄÁ VARIABLE ÉÌÉ VALUE Ñ×ÌÑÀÔÓÑ ÐÅÒÅÍÅÎÎÙÍÉ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. ðÒÉÍÅÒÙ:

          AC_DEFINE_UNQUOTED(config_machfile, "${machfile}")
          AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_type_getgroups)
          AC_DEFINE_UNQUOTED(${ac_tr_hdr})

éÚ-ÚÁ ÓÉÎÔÁËÓÉÞÅÓËÉÈ ÓÔÒÁÎÎÏÓÔÅÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ Bourne ÎÅ ÓÌÅÄÕÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÞËÕ Ó ÚÁÐÑÔÏÊ ÄÌÑ ÒÁÚÄÅÌÅÎÉÑ ×ÙÚÏ×Ï× ÍÁËÒÏÓÏ× AC_DEFINE ÉÌÉ AC_DEFINE_UNQUOTED ÏÔ ×ÙÚÏ×Á ÄÒÕÇÉÈ ÍÁËÒÏÓÏ× ÉÌÉ ËÏÄÁ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ; ÜÔÏ ÍÏÖÅÔ ÐÒÉ×ÅÓÔÉ Ë ÓÉÎÔÁËÓÉÞÅÓËÉÍ ÏÛÉÂËÁÍ × ÒÅÚÕÌØÔÉÒÕÀÝÅÍ ÓËÒÉÐÔÅ configure. ÷ÍÅÓÔÏ ÜÔÏÇÏ ÉÓÐÏÌØÚÕÊÔÅ ÐÒÏÂÅÌÙ ÉÌÉ ÐÅÒÅ×ÏÄÙ ÓÔÒÏË.  ôÏ ÅÓÔØ, ÓÌÅÄÕÅÔ ÐÉÓÁÔØ ÔÁË:

     AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) LIBS="$LIBS -lelf")

ÌÉÂÏ ÔÁË:

     AC_CHECK_HEADER(elf.h,
       AC_DEFINE(SVR4)
       LIBS="$LIBS -lelf")

ÎÏ ÎÅ ÔÁË:

     AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4); LIBS="$LIBS -lelf")

õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ
=============================

ïÄÎÉÍ ÉÚ ÓÐÏÓÏÂÏ× ÚÁÐÉÓÉ ÒÅÚÕÌØÔÁÔÏ× ÔÅÓÔÏ× Ñ×ÌÑÅÔÓÑ ÕÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ, ÔÏ ÅÓÔØ ÐÅÒÅÍÅÎÎÙÈ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÞØÉ ÚÎÁÞÅÎÉÑ ÐÏÄÓÔÁ×ÌÑÀÔÓÑ × ÆÁÊÌÙ, ×Ù×ÏÄÉÍÙÅ configure. îÉÖÅÐÒÉ×ÅÄÅÎÎÙÅ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ÎÏ×ÙÈ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.  See õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ, ÇÄÅ ÐÒÉ×ÅÄÅÎ ÓÐÉÓÏË ×ÓÅÇÄÁ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÈ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.

 -- Macro: AC_SUBST (VARIABLE)
     óÏÚÄÁÅÔ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ ÉÚ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. úÁÓÔÁ×ÌÑÅÔ AC_OUTPUT ÐÏÄÓÔÁ×ÌÑÔØ ÐÅÒÅÍÅÎÎÕÀ VARIABLE × ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ (ÏÂÙÞÎÏ ÜÔÏ ÏÄÉÎ ÉÌÉ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× Makefile). üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ AC_OUTPUT ÂÕÄÅÔ ÚÁÍÅÎÑÔØ ×ÈÏÖÄÅÎÉÑ @VARIABLE@ ×Ï ×ÈÏÄÎÙÈ ÆÁÊÌÁÈ ÎÁ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ VARIABLE, ËÏÔÏÒÏÅ ÏÎÁ ÉÍÅÌÁ ÐÒÉ ×ÙÚÏ×Å ÍÁËÒÏÓÁ AC_OUTPUT.  úÎÁÞÅÎÉÅ VARIABLE ÎÅ ÄÏÌÖÎÏ ÓÏÄÅÒÖÁÔØ ÓÉÍ×ÏÌÙ ÎÏ×ÏÊ ÓÔÒÏËÉ.

 -- Macro: AC_SUBST_FILE (VARIABLE)
     äÒÕÇÏÊ ÓÐÏÓÏÂ ÓÏÚÄÁÎÉÑ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ ÉÚ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. úÁÓÔÁ×ÌÑÅÔ AC_OUTPUT ×ÓÔÁ×ÉÔØ (ÂÅÚ ÐÏÄÓÔÁÎÏ×ÏË) × ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ ÓÏÄÅÒÖÉÍÏÅ ÆÁÊÌÁ, ÕËÁÚÁÎÎÏÇÏ × ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ VARIABLE. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ AC_OUTPUT ÂÕÄÅÔ ÚÁÍÅÎÑÔØ ×ÈÏÖÄÅÎÉÑ @VARIABLE@ × ×ÙÈÏÄÎÙÈ ÆÁÊÌÁÈ (ÔÁËÉÈ ËÁË Makefile.in) ÎÁ ÓÏÄÅÒÖÉÍÏÅ ÆÁÊÌÁ, ÉÍÑ ËÏÔÏÒÏÇÏ ÓÏÄÅÒÖÁÌÏÓØ × ÐÅÒÅÍÅÎÎÏÊ VARIABLE × ÍÏÍÅÎÔ ×ÙÚÏ×Á ÍÁËÒÏÓÁ AC_OUTPUT.  õÓÔÁÎÏ×ÉÔÅ ÚÎÁÞÅÎÉÅ ÜÔÏÊ ÐÅÒÅÍÅÎÎÏÊ × /dev/null ÄÌÑ ÓÌÕÞÁÅ×, ËÏÇÄÁ ×ÓÔÁ×ÌÑÅÍÙÊ ÆÁÊÌ ÏÔÓÕÔÓÔ×ÕÅÔ.

     üÔÏÔ ÍÁËÒÏÓ ÐÏÌÅÚÅÎ ÄÌÑ ×ÓÔÁ×ËÉ ÆÒÁÇÍÅÎÔÏ× Makefile, ÓÏÄÅÒÖÁÝÉÈ ÓÐÅÃÉÁÌØÎÙÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÉÌÉ ÄÒÕÇÉÅ ÄÉÒÅËÔÉ×Ù make ÄÌÑ ÏÔÄÅÌØÎÙÈ ÔÉÐÏ× ÍÁÛÉÎ É ÃÅÌÅÊ × ÒÅÚÕÌØÔÉÒÕÀÝÉÅ ÆÁÊÌÙ Makefile. îÁÐÒÉÍÅÒ, ÆÁÊÌ configure.in ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ:

          AC_SUBST_FILE(host_frag)dnl
          host_frag=$srcdir/conf/sun4.mh

     É ÆÁÊÌ Makefile.in ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ:

          @host_frag@

ëÜÛÉÒÏ×ÁÎÉÅ ÒÅÚÕÌØÔÁÔÏ×
=======================

þÔÏÂÙ ÉÚÂÅÖÁÔØ ÐÏ×ÔÏÒÑÀÝÉÈÓÑ ÐÒÏ×ÅÒÏË ÏÄÎÉÈ É ÔÅÈ ÖÅ ×ÏÚÍÏÖÎÏÓÔÅÊ × ÒÁÚÌÉÞÎÙÈ ÓËÒÉÐÔÁÈ configure (ÉÌÉ ÐÒÉ ÐÏ×ÔÏÒÎÙÈ ×ÙÚÏ×ÁÈ ÏÄÎÏÇÏ ÓËÒÉÐÔÁ), configure ÓÏÈÒÁÎÑÅÔ ÒÅÚÕÌØÔÁÔÙ ÍÎÏÇÉÈ ÐÒÏ×ÅÒÏË × ËÜÛ-ÆÁÊÌÅ. åÓÌÉ ÐÒÉ ÚÁÐÕÓËÅ ÓËÒÉÐÔÁ configure ÔÏÔ ÎÁÈÏÄÉÔ ËÜÛ-ÆÁÊÌ, ÔÏ ÓÞÉÔÙ×ÁÅÔ ÒÅÚÕÌØÔÁÔÙ, ÐÏÌÕÞÅÎÎÙÅ ÐÒÉ ÐÒÅÄÙÄÕÝÉÈ ÚÁÐÕÓËÁÈ, É ÎÅ ×ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÉ, ÒÅÚÕÌØÔÁÔ ËÏÔÏÒÙÈ ÕÖÅ ÐÏÌÕÞÅÎ.  âÌÁÇÏÄÁÒÑ ÜÔÏÍÕ configure ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁÍÎÏÇÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÅÓÌÉ ÂÙ ÐÒÉ ËÁÖÄÏÍ ÚÁÐÕÓËÅ ÐÒÉÈÏÄÉÌÏÓØ ÚÁÎÏ×Ï ×ÙÐÏÌÎÑÔØ ×ÓÅ ÐÒÏ×ÅÒËÉ.

 -- Macro: AC_CACHE_VAL (CACHE-ID, COMMANDS-TO-SET-IT)
     ðÒÏ×ÅÒÑÅÔ, ÞÔÏ ÄÏÓÔÕÐÎÙ ÒÅÚÕÌØÔÁÔÙ ÐÒÏ×ÅÒËÉ, ÎÁ ËÏÔÏÒÙÅ ÕËÁÚÙ×ÁÅÔ CACHE-ID. åÓÌÉ ÒÅÚÕÌØÔÁÔÙ ÐÒÏ×ÅÒËÉ ÎÁÈÏÄÑÔÓÑ × ËÜÛÅ, É ÓËÒÉÐÔÕ configure ÎÅ ÂÙÌ ÚÁÄÁÎ ËÌÀÞ --quiet ÉÌÉ --silent, ÔÏ ×ÙÄÁÔØ ÓÏÏÂÝÅÎÉÅ Ï ÔÏÍ, ÞÔÏ ÒÅÚÕÌØÔÁÔÙ ÂÙÌÉ ×ÚÑÔÙ ÉÚ ËÜÛÁ; × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÚÁÐÕÓÔÉÔØ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ COMMANDS-TO-SET-IT.  üÔÉ ËÏÍÁÎÄÙ ÎÅ ÄÏÌÖÎÙ ÉÍÅÔØ ÐÏÂÏÞÎÙÈ ÜÆÆÅËÔÏ×, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÕÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÏÊ CACHE-ID. ÷ ÞÁÓÔÎÏÓÔÉ, ÏÎÉ ÎÅ ÄÏÌÖÎÙ ×ÙÚÙ×ÁÔØ ÍÁËÒÏÓ AC_DEFINE; ÜÔÏ ÄÏÌÖÅÎ ÄÅÌÁÔØ ËÏÄ, ÓÌÅÄÕÀÝÉÊ ÚÁ ×ÙÚÏ×ÏÍ AC_CACHE_VAL, ÏÓÎÏ×Ù×ÁÑÓØ ÎÁ ËÜÛÉÒÏ×ÁÎÎÏÍ ÚÎÁÞÅÎÉÉ. ïÎÉ ÔÁËÖÅ ÎÅ ÄÏÌÖÎÙ ×ÙÄÁ×ÁÔØ ÎÉËÁËÉÈ ÓÏÏÂÝÅÎÉÊ, ÎÁÐÒÉÍÅÒ, Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÁ AC_MSG_CHECKING; ÜÔÏ ÎÁÄÏ ×ÙÐÏÌÎÑÔØ ÄÏ ×ÙÚÏ×Á AC_CACHE_VAL, ÔÁË ÞÔÏ ÓÏÏÂÝÅÎÉÑ ÂÕÄÕÔ ÐÅÞÁÔÁÔØÓÑ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ÂÕÄÕÔ ÌÉ ÒÅÚÕÌØÔÁÔÙ ×ÚÑÔÙ ÉÚ ËÜÛÁ ÉÌÉ ÂÕÄÕÔ ÏÐÒÅÄÅÌÅÎÙ Ó ÐÏÍÏÝØÀ ×ÙÐÏÌÎÅÎÉÑ ËÏÄÁ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. åÓÌÉ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÚÎÁÞÅÎÉÑ ÂÕÄÅÔ ÚÁÐÕÝÅÎ ËÏÄ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÔÏ ÐÏÌÕÞÅÎÎÏÅ ÚÎÁÞÅÎÉÅ ÂÕÄÅÔ ÓÏÈÒÁÎÅÎÏ × ËÜÛ-ÆÁÊÌÅ ÐÅÒÅÄ ÔÅÍ, ËÁË configure ÂÕÄÅÔ ÓÏÚÄÁ×ÁÔØ ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ. See éÍÅÎÁ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÕÚÎÁÔØ, ËÁË ×ÙÂÒÁÔØ ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ CACHE-ID.

 -- Macro: AC_CACHE_CHECK (MESSAGE, CACHE-ID, COMMANDS)
     ïÂÅÒÔËÁ ÄÌÑ ÍÁËÒÏÓÁ AC_CACHE_VAL, ËÏÔÏÒÁÑ ÂÅÒÅÔ ÎÁ ÓÅÂÑ ÚÁÂÏÔÕ Ï ×ÙÄÁÞÅ ÓÏÏÂÝÅÎÉÊ. üÔÏÔ ÍÁËÒÏÓ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÕÄÏÂÎÕÀ É ËÏÒÏÔËÕÀ ÆÏÒÍÕ ÚÁÐÉÓÉ ÎÁÉÂÏÌÅÅ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÈ ÓÐÏÓÏÂÏ× ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÔÉÈ ÍÁËÒÏÓÏ×. ïÎ ×ÙÚÙ×ÁÅÔ ÍÁËÒÏÓ AC_MSG_CHECKING ÄÌÑ ×ÙÄÁÞÉ ÓÏÏÂÝÅÎÉÑ MESSAGE, ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔ AC_CACHE_VAL Ó ÁÒÇÕÍÅÎÔÁÍÉ CACHE-ID É COMMANDS É, ÎÁËÏÎÅÃ, ×ÙÚÙ×ÁÅÔ AC_MSG_RESULT Ó ÁÒÇÕÍÅÎÔÏÍ CACHE-ID.

 -- Macro: AC_CACHE_LOAD
     úÁÇÒÕÖÁÅÔ ÚÎÁÞÅÎÉÑ ÉÚ ÓÕÝÅÓÔ×ÕÀÝÅÇÏ ËÜÛ-ÆÁÊÌÁ, ÉÌÉ ÓÏÚÄÁÅÔ ÎÏ×ÙÊ, ÅÓÌÉ ËÜÛ-ÆÁÊÌ ÎÅ ÎÁÊÄÅÎ.  á×ÔÏÍÁÔÉÞÅÓËÉ ×ÙÚÙ×ÁÅÔÓÑ ÉÚ ÍÁËÒÏÓÁ AC_INIT.

 -- Macro: AC_CACHE_SAVE
     úÁÐÉÓÙ×ÁÅÔ ×ÓÅ ËÜÛÉÒÏ×ÁÎÎÙÅ ÚÎÁÞÅÎÉÑ × ËÜÛ-ÆÁÊÌ.  üÔÏÔ ÍÁËÒÏÓ Á×ÔÏÍÁÔÉÞÅÓËÉ ÉÚ ÍÁËÒÏÓÁ AC_OUTPUT, ÎÏ ÐÏÌÅÚÎÏ ÂÙ×ÁÅÔ ×ÙÚÙ×ÁÔØ AC_CACHE_SAVE × ËÌÀÞÅ×ÙÈ ÔÏÞËÅ ÆÁÊÌÁ configure.in.  ðÒÉ ÜÔÏ ËÜÛ ÓÏÈÒÁÎÑÅÔÓÑ ÎÁ ÔÏÔ ÓÌÕÞÁÊ, ÅÓÌÉ ÒÁÂÏÔÁ ÓËÒÉÐÔÁ configure ÂÕÄÅÔ ÐÒÅÒ×ÁÎÁ.

éÍÅÎÁ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ
---------------------

éÍÅÎÁ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ ÄÏÌÖÎÙ ÉÍÅÔØ ÓÌÅÄÕÀÝÉÊ ÆÏÒÍÁÔ:

     PACKAGE-PREFIX_cv_VALUE-TYPE_SPECIFIC-VALUE[_ADDITIONAL-OPTIONS]

îÁÐÒÉÍÅÒ, ac_cv_header_stat_broken ÉÌÉ ac_cv_prog_gcc_traditional. éÍÑ ÐÅÒÅÍÅÎÎÏÊ ÓÏÓÔÏÉÔ ÉÚ ÓÌÅÄÕÀÝÉÈ ÞÁÓÔÅÊ:

PACKAGE-PREFIX
     óÏËÒÁÝÅÎÎÏÅ ÎÁÚ×ÁÎÉÅ ×ÁÛÅÇÏ ÐÁËÅÔÁ ÉÌÉ ÏÒÇÁÎÉÚÁÃÉÉ; Ó ÔÁËÏÇÏ ÖÅ ÐÒÅÆÉËÓÁ ×Ù ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØ ÌÏËÁÌØÎÙÅ ÍÁËÒÏÓÙ Autoconf, ÎÏ ÔÏÌØËÏ ÚÄÅÓØ ÜÔÏÔ ÐÒÅÆÉËÓ ÚÁÐÉÓÙ×ÁÅÔÓÑ × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ.  íÁËÒÏÓÙ, ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÙÅ Ó Autoconf, ÉÓÐÏÌØÚÕÀÔ ÐÒÅÆÉËÓ ac.

_cv_
     ðÏËÁÚÙ×ÁÅÔ, ÞÔÏ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ Ñ×ÌÑÅÔÓÑ ËÜÛÉÒÏ×ÁÎÎÙÍ ÚÎÁÞÅÎÉÅÍ.

VALUE-TYPE
     óÏÇÌÁÛÅÎÉÅ ÐÏ ËÌÁÓÓÉÆÉËÁÃÉÉ ÚÎÁÞÅÎÉÊ ËÜÛÁ, ÄÌÑ ÓÏÚÄÁÎÉÑ ÒÁÃÉÏÎÁÌØÎÏÊ ÓÉÓÔÅÍÙ ÎÁÉÍÅÎÏ×ÁÎÉÑ. úÎÁÞÅÎÉÑ, ÉÓÐÏÌØÚÕÅÍÙÅ × Autoconf, ÐÅÒÅÞÉÓÌÅÎÙ × éÍÅÎÁ ÍÁËÒÏÓÏ×.

SPECIFIC-VALUE
     äÌÑ ËÁËÏÇÏ ÞÌÅÎÁ ËÌÁÓÓÁ ËÜÛÉÒÏ×ÁÎÎÙÈ ÚÎÁÞÅÎÉÊ ÐÒÉÍÅÎÑÅÔÓÑ ÄÁÎÎÙÊ ÔÅÓÔ.  îÁÐÒÉÍÅÒ, Ë ËÁËÏÊ ÆÕÎËÃÉÉ (alloca), ÐÒÏÇÒÁÍÍÅ (gcc) ÉÌÉ ×ÙÈÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ (INSTALL).

ADDITIONAL-OPTIONS
     ëÏÎËÒÅÔÎÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÎËÒÅÔÎÏÇÏ ÞÌÅÎÁ ËÌÁÓÓÁ, Ë ËÏÔÏÒÏÍÕ ÐÒÉÍÅÎÑÅÔÓÑ ÜÔÏÔ ÔÅÓÔ. îÁÐÒÉÍÅÒ, broken ("ÓÌÏÍÁÎÏ") ÉÌÉ set ("ÕÓÔÁÎÏ×ÌÅÎÏ").  üÔÁ ÞÁÓÔØ ÉÍÅÎÉ ÍÏÖÅÔ ÂÙÔØ ÏÐÕÝÅÎÁ.

úÎÁÞÅÎÉÑ ËÜÛÉÒÏ×ÁÎÎÙÈ ÐÅÒÅÍÅÎÎÙÈ ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ ÐÅÒÅ×ÏÄÙ ÓÔÒÏË. ïÂÙÞÎÏ ÉÈ ÚÎÁÞÅÎÉÑ Ñ×ÌÑÀÔÓÑ ÌÏÇÉÞÅÓËÉÍÉ ÚÎÁÞÅÎÉÑÍÉ (yes ÉÌÉ no) ÉÌÉ ÉÍÅÎÁÍÉ ÆÁÊÌÏ× ÉÌÉ ÆÕÎËÃÉÊ, ÐÏÜÔÏÍÕ ÜÔÏ ÏÇÒÁÎÉÞÅÎÉÅ ÎÅ ËÒÉÔÉÞÎÏ.

ëÜÛ-ÆÁÊÌÙ
---------

ëÜÛ-ÆÁÊÌ --- ÜÔÏ ÓËÒÉÐÔ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÊ ÈÒÁÎÉÔ ÒÅÚÕÌØÔÁÔÙ ÔÅÓÔÏ× ËÏÎÆÉÇÕÒÁÃÉÉ, ÐÒÏ×ÅÄÅÎÎÙÈ ÎÁ ÏÄÎÏÊ ÓÉÓÔÅÍÅ, ÔÁË ÞÔÏ ÏÎÉ ÍÏÇÕÔ ÓÏ×ÍÅÓÔÎÏ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÒÁÚÎÙÍÉ ÓËÒÉÐÔÁÍÉ ÎÁÓÔÒÏÊËÉ, ÉÌÉ ÐÒÉ ÎÅÓËÏÌØËÉÈ ÚÁÐÕÓËÁÈ ÏÄÎÏÇÏ É ÔÏÇÏ ÖÅ ÓËÒÉÐÔÁ configure.  îÁ ÄÒÕÇÉÈ ÓÉÓÔÅÍÁÈ ÜÔÏÔ ÆÁÊÌ ÉÓÐÏÌØÚÏ×ÁÔØ ÂÅÓÐÏÌÅÚÎÏ.  åÓÌÉ ÓÏÄÅÒÖÉÍÏÅ ÜÔÏÇÏ ÆÁÊÌÁ ÐÏ ÎÅËÏÔÏÒÙÍ ÐÒÉÞÉÎÁÍ Ñ×ÌÑÅÔÓÑ ÎÅ×ÅÒÎÙÍ, ÔÏ ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÕÄÁÌÉÔØ ÉÌÉ ÏÔÒÅÄÁËÔÉÒÏ×ÁÔØ ÅÇÏ.

ðÏ ÕÍÏÌÞÁÎÉÀ × ËÁÞÅÓÔ×Å ËÜÛ-ÆÁÊÌÁ configure ÉÓÐÏÌØÚÕÅÔ ÆÁÊÌ ./config.cache, ÓÏÚÄÁ×ÁÑ ÅÇÏ, ÅÓÌÉ ÏÎ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ. configure ÒÁÓÐÏÚÎÁÅÔ ËÌÀÞ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --cache-file=FILE, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÑÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇÏÊ ËÜÛ-ÆÁÊÌ; ÜÔÏÔ ËÌÀÞ ÉÓÐÏÌØÚÕÅÔÓÑ configure, ËÏÇÄÁ ÏÎ ×ÙÚÙ×ÁÅÔ ÓËÒÉÐÔÙ configure, ÎÁÈÏÄÑÝÉÅÓÑ × ÐÏÄËÁÔÁÌÏÇÁÈ, ÔÁË ÞÔÏ ÏÎÉ ÉÓÐÏÌØÚÕÀÔ ÏÂÝÉÊ ËÜÛ. See ðÏÄËÁÔÁÌÏÇÉ, ÇÄÅ ÏÐÉÓÁÎÏ, ËÁË ÚÁÄÁ×ÁÔØ ÐÏÄËÁÔÁÌÏÇÉ Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÁ AC_CONFIG_SUBDIRS.

éÓÐÏÌØÚÏ×ÁÎÉÅ ËÌÀÞÁ --cache-file=/dev/null ÚÁÐÒÅÝÁÅÔ ËÜÛÉÒÏ×ÁÎÉÅ, ÎÁÐÒÉÍÅÒ, ÄÌÑ ÏÔÌÁÄËÉ configure.  óËÒÉÐÔ config.status ÓÍÏÔÒÉÔ ÎÁ ËÜÛ-ÆÁÊÌ ÔÏÌØËÏ ÅÓÌÉ ÚÁÐÕÓÔÉÔØ ÅÇÏ Ó ËÌÀÞÏÍ --recheck, ÞÔÏÂÙ ÐÏ×ÔÏÒÎÏ ×ÙÐÏÌÎÉÔØ configure.  åÓÌÉ ×Ù ÐÒÅÄÞÕ×ÓÔ×ÕÅÔÅ ÄÏÌÇÉÊ ÐÅÒÉÏÄ ÏÔÌÁÄËÉ, ÔÏ ÍÏÖÅÔÅ ÚÁÐÒÅÔÉÔØ ÚÁÇÒÕÚËÕ É ÓÏÈÒÁÎÅÎÉÅ ËÜÛÁ ÐÕÔÅÍ ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÑ ÍÁËÒÏÓÏ× ÒÁÂÏÔÙ Ó ËÜÛÅÍ × ÎÁÞÁÌÅ configure.in:

     define([AC_CACHE_LOAD], )dnl
     define([AC_CACHE_SAVE], )dnl
     AC_INIT(whatever)
      ... rest of configure.in ...

ðÏÐÙÔËÁ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ËÜÛ-ÆÁÊÌÏ× ÄÌÑ ÏÐÒÅÄÅÌÅÎÎÙÈ ÔÉÐÏ× ÓÉÓÔÅÍ ÎÅ×ÅÒÎÁ × ËÏÒÎÅ.  ðÙÔÁÑÓØ ÓÄÅÌÁÔØ ÜÔÏ, ×Ù ÐÏÌÕÞÁÅÔÅ ÐÏÌÎÕÀ Ó×ÏÂÏÄÕ ÓÏ×ÅÒÛÁÔØ ÏÛÉÂËÉ, Á ÔÁËÖÅ ÓÔÁÌËÉ×ÁÅÔÅÓØ Ó ÍÁÓÓÏÊ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÐÒÏÂÌÅÍ, Ó×ÑÚÁÎÎÙÈ Ó ÐÏÄÄÅÒÖËÏÊ ÜÔÉÈ ÆÁÊÌÏ×.  äÌÑ ×ÏÚÍÏÖÎÏÓÔÅÊ, ËÏÔÏÒÙÅ ÎÅÌØÚÑ ÏÐÒÅÄÅÌÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÉÓÐÏÌØÚÕÊÔÅ ÓÔÁÎÄÁÒÔÎÙÊ ÓÐÏÓÏÂ ËÁÎÏÎÉÞÅÓËÏÇÏ ÔÉÐÁ ÓÉÓÔÅÍÙ É ËÏÍÐÏÎÏ×ËÉ ÆÁÊÌÏ× (see òÕÞÎÁÑ ÎÁÓÔÒÏÊËÁ).

îÁ ÏÔÄÅÌØÎÏÊ ÓÉÓÔÅÍÅ ËÜÛ-ÆÁÊÌ ÐÏÓÔÅÐÅÎÎÏ ÂÕÄÅÔ ÎÁËÁÐÌÉ×ÁÔØ ÒÅÚÕÌØÔÁÔÙ ÚÁÐÕÓËÏ× ÓËÒÉÐÔÁ configure; ÐÅÒ×ÏÎÁÞÁÌØÎÏ ÏÎ ×ÏÏÂÝÅ ÎÅ ÂÕÄÅÔ ÓÕÝÅÓÔ×Ï×ÁÔØ. úÁÐÕÓË configure ÏÂßÅÄÉÎÑÅÔ ÎÏ×ÙÅ ËÜÛÉÒÏ×ÁÎÎÙÅ ÒÅÚÕÌØÔÁÔÙ Ó ÕÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÍ ËÜÛ-ÆÁÊÌÏÍ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÄÅÌÁÔØ ÒÁÂÏÔÕ ÓËÒÉÐÔÁ ÂÏÌÅÅ ÐÒÏÓÔÏÊ, ÓËÒÉÐÔ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÎÁ ÄÁÎÎÏÊ ÍÁÛÉÎÅ, ÍÏÖÅÔ ÕËÁÚÁÔØ ÏÂÝÅÓÉÓÔÅÍÎÙÊ ËÜÛ-ÆÁÊÌ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ×ÍÅÓÔÏ ÉÓÐÏÌØÚÕÅÍÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÐÏÓËÏÌØËÕ ËÁÖÄÙÊ ÒÁÚ ÉÓÐÏÌØÚÕÅÔÓÑ ÏÄÉÎ É ÔÏÔ ÖÅ ËÏÍÐÉÌÑÔÏÒ ó (see ìÏËÁÌØÎÙÅ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ).

åÓÌÉ ×ÁÛ ÓËÒÉÐÔ, ÉÌÉ ÍÁËÒÏÓ, ×ÙÚÙ×ÁÅÍÙÅ ÉÚ configure.in, ÐÒÅÒÙ×ÁÅÔ ÐÒÏÃÅÓÓ ÎÁÓÔÒÏÊËÉ, ÔÏ ÐÏÌÅÚÎÏ ÂÕÄÅÔ ÓÏÈÒÁÎÉÔØ ËÜÛÉÒÏ×ÁÎÎÙÅ ÄÁÎÎÙÅ ÎÅÓËÏÌØËÏ ÒÁÚ × ËÌÀÞÅ×ÙÈ ÔÏÞËÁÈ ÓËÒÉÐÔÁ.  äÅÌÁÑ ÜÔÏ, ×Ù ÕÍÅÎØÛÉÔÅ ×ÒÅÍÑ, ÚÁÔÒÁÞÅÎÎÏÅ ÐÒÉ ÐÅÒÅÚÁÐÕÓËÅ ÓËÒÉÐÔÁ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÏÓÌÅ ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂËÉ, ËÏÔÏÒÁÑ ×ÙÚ×ÁÌÁ ÐÒÅÄÙÄÕÝÉÊ ÏÓÔÁÎÏ× ÒÁÂÏÔÙ.

      ... AC_INIT, etc. ...
     dnl ÐÒÏ×ÅÒËÉ ÐÒÏÇÒÁÍÍ
     AC_PROG_CC
     AC_PROG_GCC_TRADITIONAL
      ... ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÒÏ×ÅÒËÉ ÐÒÏÇÒÁÍÍ...
     AC_CACHE_SAVE

     dnl ÐÒÏ×ÅÒËÁ ÂÉÂÌÉÏÔÅË
     AC_CHECK_LIB(nsl, gethostbyname)
     AC_CHECK_LIB(socket, connect)
      ... ÄÒÕÇÉÅ ÐÒÏ×ÅÒËÉ ÂÉÂÌÉÏÔÅË ...
     AC_CACHE_SAVE

     dnl Might abort...
     AM_PATH_GTK(1.0.2, , exit 1)
     AM_PATH_GTKMM(0.9.5, , exit 1)

÷ÙÄÁÞÁ ÓÏÏÂÝÅÎÉÊ
================

óËÒÉÐÔÙ configure ÄÏÌÖÎÙ ÓÏÏÂÝÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÒÁÚÌÉÞÎÕÀ ÉÎÆÏÒÍÁÃÉÀ.  óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÒÁÚÌÉÞÎÙÍÉ ÓÐÏÓÏÂÁÍÉ ×ÙÄÁÀÔ ÓÏÏÂÝÅÎÉÑ.  áÒÇÕÍÅÎÔÙ ÄÌÑ ËÁÖÄÏÇÏ ÉÚ ÍÁËÒÏÓÏ× ÐÏÍÅÝÁÀÔÓÑ × Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ, ÉÓÐÏÌØÚÕÅÍÙÅ ËÏÍÁÎÄÎÙÍ ÐÒÏÃÅÓÓÏÒÏÍ, ÔÁË ÞÔÏ × ÜÔÉÈ ÁÒÇÕÍÅÎÔÁÈ ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØÓÑ ÐÏÄÓÔÁÎÏ×ËÁ ÐÅÒÅÍÅÎÎÙÈ É ÓÐÅÃÉÁÌØÎÙÈ ÓÉÍ×ÏÌÏ×.  ÷Ù ÍÏÖÅÔÅ ÎÁÐÅÞÁÔÁÔØ ÓÏÏÂÝÅÎÉÅ, ÓÏÄÅÒÖÁÝÅÅ ÚÁÐÑÔÕÀ, ÐÏÍÅÓÔÉ× ÓÏÏÂÝÅÎÉÅ × ËÁ×ÙÞËÉ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÏÇÒÁÍÍÏÊ m4:

     AC_MSG_RESULT([never mind, I found the BASIC compiler])

÷ÓÅ ÜÔÉ ÍÁËÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÎÁÄÓÔÒÏÊËÁÍÉ ÎÁÄ ËÏÍÁÎÄÏÊ echo.  óËÒÉÐÔÙ configure ÄÏÌÖÎÙ ËÒÁÊÎÅ ÒÅÄËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ echo ÄÌÑ ×ÙÄÁÞÉ ÓÏÏÂÝÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÀ. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÉÈ ÍÁËÒÏÓÏ× ÐÏÚ×ÏÌÑÅÔ ÌÅÇËÏ ÉÚÍÅÎÉÔØ ÓÐÏÓÏÂ, ËÁËÉÍ ×ÙÄÁÅÔÓÑ ËÁÖÄÙÊ ÉÚ ÔÉÐÏ× ÓÏÏÂÝÅÎÉÊ; ÔÁËÉÅ ÉÚÍÅÎÅÎÉÑ ÍÏÖÎÏ ÂÕÄÅÔ ×ÎÅÓÔÉ × ÏÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÁ, É ×ÓÅ ×ÙÚÏ×Ù ÜÔÏÇÏ ÍÁËÒÏÓÁ ÉÚÍÅÎÑÔ Ó×ÏÊ ×ÉÄ Á×ÔÏÍÁÔÉÞÅÓËÉ.

 -- Macro: AC_MSG_CHECKING (FEATURE-DESCRIPTION)
     õ×ÅÄÏÍÌÑÅÔ ÐÏÌØÚÏ×ÁÔÅÌÑ Ï ÔÏÍ, ÞÔÏ configure ÐÒÏ×ÅÒÑÅÔ ËÏÎËÒÅÔÎÕÀ ×ÏÚÍÏÖÎÏÓÔØ.  üÔÏÔ ÍÁËÒÏÓ ÐÅÞÁÔÁÅÔ ÓÏÏÂÝÅÎÉÅ, ËÏÔÏÒÏÅ ÎÁÞÉÎÁÅÔÓÑ Ó checking  É ÚÁËÁÎÞÉ×ÁÅÔÓÑ ... ÂÅÚ ÐÅÒÅÈÏÄÁ ÎÁ ÎÏ×ÕÀ ÓÔÒÏËÕ. ÷ÓÌÅÄ ÚÁ ×ÙÚÏ×ÏÍ ÜÔÏÇÏ ÍÁËÒÏÓÁ ÓÌÅÄÕÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ AC_MSG_RESULT, ËÏÔÏÒÙÊ ×ÙÄÁÅÔ ÒÅÚÕÌØÔÁÔ ÐÒÏ×ÅÒËÉ É ÓÉÍ×ÏÌ ÐÅÒÅ×ÏÄÁ ÓÔÒÏËÉ.  áÒÇÕÍÅÎÔ FEATURE-DESCRIPTION ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÞÔÏ-ÎÉÂÕÄØ ÔÉÐÁ ÐÏÎÉÍÁÅÔ ÌÉ ËÏÍÐÉÌÑÔÏÒ Fortran ËÏÍÍÅÎÔÁÒÉÉ × ÓÔÉÌÅ C++ ÉÌÉ for c89.

     üÔÏÔ ÍÁËÒÏÓ ÎÉÞÅÇÏ ÎÅ ×Ù×ÏÄÉÔ, ÅÓÌÉ configure ÚÁÐÕÝÅÎ Ó ËÌÀÞÁÍÉ --quiet ÉÌÉ --silent.

 -- Macro: AC_MSG_RESULT (RESULT-DESCRIPTION)
     õ×ÅÄÏÍÌÑÅÔ ÐÏÌØÚÏ×ÁÔÅÌÑ Ï ÒÅÚÕÌØÔÁÔÁÈ ÐÒÏ×ÅÒËÉ. áÒÇÕÍÅÎÔ RESULT-DESCRIPTION ÐÏÞÔÉ ×ÓÅÇÄÁ ÓÏÄÅÒÖÉÔ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ ËÜÛÁ ÄÌÑ ÄÁÎÎÏÇÏ ÔÅÓÔÁ, ÏÂÙÞÎÏ ÒÁ×ÎÏ yes, no ÉÌÉ ÉÍÅÎÉ ÆÁÊÌÁ. üÔÏÔ ÍÁËÒÏÓ ÄÏÌÖÅÎ ×ÙÚÙ×ÁÔØÓÑ ÐÏÓÌÅ ×ÙÚÏ×Á AC_MSG_CHECKING É ÁÒÇÕÍÅÎÔ RESULT-DESCRIPTION ÐÏ ÓÍÙÓÌÕ ÄÏÌÖÅÎ ÄÏÐÏÌÎÑÔØ ÓÏÏÂÝÅÎÉÅ ×ÙÄÁÎÎÏÅ ×ÙÚÏ×ÏÍ AC_MSG_CHECKING.

     üÔÏÔ ÍÁËÒÏÓ ÎÉÞÅÇÏ ÎÅ ×Ù×ÏÄÉÔ, ÓÅÌÉ configure ÚÁÐÕÝÅÎ Ó ËÌÀÞÁÍÉ --quiet ÉÌÉ --silent.

 -- Macro: AC_MSG_ERROR (ERROR-DESCRIPTION)
     õ×ÅÄÏÍÌÑÅÔ ÐÏÌØÚÏ×ÁÔÅÌÑ ÏÂ ÏÛÉÂËÅ, ËÏÔÏÒÁÑ ÐÒÅÐÑÔÓÔ×ÕÅÔ ÒÁÂÏÔÅ configure. üÔÏÔ ÍÁËÒÏÓ ÐÅÞÁÔÁÅÔ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ × ÓÔÁÎÄÁÒÔÎÙÊ ÐÏÔÏË ×Ù×ÏÄÁ É ÚÁËÁÎÞÉ×ÁÅÔ ÒÁÂÏÔÕ configure Ó ÎÅÎÕÌÅ×ÙÍ ÓÔÁÔÕÓÏÍ. áÒÇÕÍÅÎÔ ERROR-DESCRIPTION ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÞÔÏ-ÔÏ ÐÏÄÏÂÎÏÅ ÎÅÐÒÁ×ÉÌØÎÏÅ ÚÎÁÞÅÎÉÅ $HOME ÄÌÑ \$HOME.

 -- Macro: AC_MSG_WARN (PROBLEM-DESCRIPTION)
     õ×ÅÄÏÍÌÑÅÔ ÐÏÌØÚÏ×ÁÔÅÌÑ configure Ï ×ÏÚÍÏÖÎÏÊ ÐÒÏÂÌÅÍÅ. üÔÏÔ ÍÁËÒÏÓ ×ÙÄÁÅÔ ÓÏÏÂÝÅÎÉÅ × ÓÔÁÎÄÁÒÔÎÙÊ ÐÏÔÏË ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ; ÐÏÓÌÅ ÜÔÏÇÏ configure ÐÒÏÄÏÌÖÁÅÔ Ó×ÏÅ ×ÙÐÏÌÎÅÎÉÅ, ÔÁË ÞÔÏ ÍÁËÒÏÓÙ, ×ÙÚ×Á×ÛÉÊ AC_MSG_WARN ÄÏÌÖÅÎ ÐÒÅÄÏÓÔÁ×ÉÔØ ÄÅÊÓÔ×ÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÓÉÔÕÁÃÉÊ, Ï ËÏÔÏÒÙÈ ÏÎ ×ÙÄÁ×ÁÌ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ. áÒÇÕÍÅÎÔ PROBLEM-DESCRIPTION ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÞÔÏ-ÔÏ ÐÏÄÏÂÎÏÅ ËÁÖÅÔÓÑ ln -s ÓÏÚÄÁÅÔ ÖÅÓÔËÉÅ ÓÓÙÌËÉ.

óÌÅÄÕÀÝÉÅ Ä×Á ÍÁËÒÏÓÁ Ñ×ÌÑÀÔÓÑ ÕÓÔÁÒÅ×ÛÉÍÉ É Ñ×ÌÑÀÔÓÑ ÁÌØÔÅÒÎÁÔÉ×ÏÊ ÄÌÑ ÍÁËÒÏÓÏ× AC_MSG_CHECKING É AC_MSG_RESULT.

 -- Macro: AC_CHECKING (FEATURE-DESCRIPTION)
     üÔÏÔ ÍÁËÒÏÓ ÐÏÄÏÂÅÎ AC_MSG_CHECKING, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÇÏ, ÞÔÏ ÏÎ ×ÙÄÁÅÔ ÓÉÍ×ÏÌ ÐÅÒÅ×ÏÄÁ ÓÔÒÏËÉ ÐÏÓÌÅ ×Ù×ÏÄÁ FEATURE-DESCRIPTION. ïÎ × ÏÓÎÏ×ÎÏÍ ÐÏÌÅÚÅÎ ÄÌÑ ×ÙÄÁÞÉ ÏÂÝÅÇÏ ÏÐÉÓÁÎÉÑ ÇÒÕÐÐÙ ÐÒÏ×ÅÒÏË, ÎÁÐÒÉÍÅÒ:

          AC_CHECKING(if stack overflow is detectable)

 -- Macro: AC_VERBOSE (RESULT-DESCRIPTION)
     üÔÏÔ ÍÁËÒÏÓ ÐÏÄÏÂÅÎ AC_MSG_RESULT, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÇÏ, ÞÔÏ ÅÇÏ ×ÙÚÏ× ÓÌÅÄÕÅÔ ÚÁ ×ÙÚÏ×ÏÍ AC_CHECKING, Á ÎÅ AC_MSG_CHECKING; ×ÙÄÁ×ÁÅÍÏÅ ÉÍ ÓÏÏÂÝÅÎÉÅ ÎÁÞÉÎÁÅÔÓÑ Ó ÓÉÍ×ÏÌÁ ÔÁÂÕÌÑÃÉÉ. üÔÏÔ ÍÁËÒÏÓ ÓÞÉÔÁÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ.

óÏÚÄÁÎÉÅ ÍÁËÒÏÓÏ×
*****************

ëÏÇÄÁ ×Ù ÐÉÛÅÔÅ ÔÅÓÔ Ó×ÏÊÓÔ×Á, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÐÒÉÍÅÎÑÔØÓÑ × ÂÏÌÅÅ ÞÅÍ ÏÄÎÏÍ ÐÁËÅÔÅ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ÔÏ ÌÕÞÛÅ ×ÓÅÇÏ ÏÆÏÒÍÉÔØ ÅÇÏ × ×ÉÄÅ ÎÏ×ÏÇÏ ÍÁËÒÏÓÁ. ÷ ÜÔÏÍ ÒÁÚÄÅÌÅ ÐÒÉ×ÏÄÑÔÓÑ ÎÅËÏÔÏÒÙÅ ÉÎÓÔÒÕËÃÉÉ É ÕËÁÚÁÎÉÑ ÐÏ ÎÁÐÉÓÁÎÉÀ ÍÁËÒÏÓÏ× Autoconf.

ïÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÏ×
====================

íÁËÒÏÓÙ Autoconf ÏÐÒÅÄÅÌÑÀÔÓÑ Ó ÐÏÍÏÝØÀ ÍÁËÒÏÓÁ AC_DEFUN, ËÏÔÏÒÙÊ ÐÏÄÏÂÅÎ ×ÓÔÒÏÅÎÎÏÍÕ ÍÁËÒÏÓÕ define ÐÒÏÇÒÁÍÍÙ m4. ÷ ÄÏÂÁ×ÌÅÎÉÅ Ë ÏÐÒÅÄÅÌÅÎÉÀ ÍÁËÒÏÓÁ, AC_DEFUN ÄÏÂÁ×ÌÑÅÔ Ë ÎÅÍÕ ÎÅËÏÔÏÒÙÊ ËÏÄ, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÇÒÁÎÉÞÅÎÉÑ ÐÏÒÑÄËÁ ×ÙÚÏ×Ù ÍÁËÒÏÓÏ× (see ôÒÅÂÕÅÍÙÅ ÍÁËÒÏÓÙ).

ïÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÁ Autoconf ×ÙÇÌÑÄÉÔ ÐÒÉÍÅÒÎÏ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ:

     AC_DEFUN(MACRO-NAME, [MACRO-BODY])

ë×ÁÄÒÁÔÎÙÅ ÓËÏÂËÉ ÎÅ ÐÏËÁÚÙ×ÁÀÔ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÐÁÒÁÍÅÔÒ: ÏÎÉ ÄÏÌÖÎÙ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ × ÏÐÒÅÄÅÌÅÎÉÉ ÍÁËÒÏÓÁ ÄÌÑ ÉÚÂÅÖÁÎÉÑ ÐÒÏÂÌÅÍ ÒÁÓÛÉÒÅÎÉÑ ÍÁËÒÏÓÁ (see úÁËÌÀÞÅÎÉÅ × ËÁ×ÙÞËÉ). ÷Ù ÍÏÖÅÔÅ ÓÓÙÌÁÔØÓÑ ÎÁ ÐÅÒÅÄÁ×ÁÅÍÙÅ ÍÁËÒÏÓÕ ÐÁÒÁÍÅÔÒÙ Ó ÐÏÍÏÝØÀ ÐÅÒÅÍÅÎÎÙÈ $1, $2 É Ô.Ð.

äÌÑ ××ÏÄÁ ËÏÍÍÅÎÔÁÒÉÅ× × m4, ÉÓÐÏÌØÚÕÊÔÅ ×ÓÔÒÏÅÎÎÙÊ ÍÁËÒÏÓ m4 dnl; ÏÎ ÚÁÓÔÁ×ÌÑÅÔ m4 ÉÇÎÏÒÉÒÏ×ÁÔØ ÔÅËÓÔ ÄÏ ÎÁÞÁÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ. ïÎ ÎÅ ÎÕÖÅÎ ÍÅÖÄÕ ÏÐÒÅÄÅÌÅÎÉÑÍÉ ÍÁËÒÏÓÏ× × ÆÁÊÌÁÈ acsite.m4 É aclocal.m4, ÐÏÓËÏÌØËÕ ×ÅÓØ ×Ù×ÏÄ ÕÄÁÌÑÅÔÓÑ ÄÏ ×ÙÚÏ×Á AC_INIT.

See How to define new macros (GNU m4), ÄÌÑ ÂÏÌÅÅ ÐÏÌÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ÎÁÐÉÓÁÎÉÉ ÍÁËÒÏÓÏ× m4.

éÍÅÎÁ ÍÁËÒÏÓÏ×
==============

÷ÓÅ ÍÁËÒÏÓÙ Autoconf ÎÁÚ×ÁÎÙ ÉÍÅÎÁÍÉ, ÓÏÓÔÏÑÝÉÍÉ ÉÚ ÂÕË× ÚÁÇÌÁ×ÎÙÈ ÂÕË× É ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÐÒÅÆÉËÓÁ AC_, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ËÏÎÆÌÉËÔÏ× Ó ÄÒÕÇÉÍ ÔÅËÓÔÏÍ. ÷ÓÅ ÐÅÒÅÍÅÎÎÙÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ×ÎÕÔÒÅÎÎÉÈ ÃÅÌÅÊ × ÜÔÉÈ ÍÁËÒÏÓÁÈ, ËÁË ÐÒÁ×ÉÌÏ ÎÁÚÙ×ÁÀÔÓÑ ÉÍÅÎÁÍÉ ÉÚ ÐÒÏÐÉÓÎÙÈ ÂÕË× É ÎÁÞÉÎÁÀÔÓÑ Ó ac_. þÔÏÂÙ ÏÂÅÓÐÅÞÉÔØ, ÞÔÏ ×ÁÛÉ ÍÁËÒÏÓÙ ÎÅ ËÏÎÆÌÉËÔÏ×ÁÌÉ Ó ÓÕÝÅÓÔ×ÕÀÝÉÍÉ ÉÌÉ ÂÕÄÕÝÉÍÉ ÍÁËÒÏÓÁÍÉ Autoconf, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÏÂÓÔ×ÅÎÎÙÊ ÐÒÅÆÉËÓ ÄÌÑ ×ÁÛÉÈ ÍÁËÒÏÓÏ× É ÐÅÒÅÍÅÎÎÙÈ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. ÷ ËÁÞÅÓÔ×Å ×ÏÚÍÏÖÎÙÈ ÚÎÁÞÅÎÉÊ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÁÛÉ ÉÎÉÃÉÁÌÙ, ÉÌÉ ÓÏËÒÁÝÅÎÎÏÅ ÎÁÚ×ÁÎÉÅ ×ÁÛÅÊ ÏÒÇÁÎÉÚÁÃÉÉ ÉÌÉ ÐÁËÅÔÁ ÐÒÏÇÒÁÍÍ.

âÏÌØÛÉÎÓÔ×Ï ÉÍÅÎ ÍÁËÒÏÓÏ× Autoconf ÓÌÅÄÕÀÔ ÓÏÇÌÁÛÅÎÉÀ Ï ÓÔÒÕËÔÕÒÅ ÉÍÅÎÉ, ËÏÔÏÒÏÅ ÐÏËÁÚÙ×ÁÅÔ ËÁËÏÊ ÔÉÐ Ó×ÏÊÓÔ×Á ÐÒÏ×ÅÒÑÅÍÏÇÏ ÄÁÎÎÙÍ ÍÁËÒÏÓÏÍ. éÍÅÎÁ ÍÁËÒÏÓÏ× ÓÏÓÔÏÉÔ ÉÚ ÎÅÓËÏÌØËÉÈ ÓÌÏ×, ËÏÔÏÒÙÊ ÒÁÚÄÅÌÅÎÙ ÓÉÍ×ÏÌÁÍÉ ÐÏÄÞÅÒËÉ×ÁÎÉÑ, ÐÒÏÄ×ÉÇÁÑÓØ ÏÔ ÏÂÝÉÈ ÓÌÏ× Ë ÂÏÌÅÅ ÓÐÅÃÉÆÉÞÅÓËÉÍ. éÍÅÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ ÉÓÐÏÌØÚÕÀÔ ÔÏ ÖÅ ÓÏÇÌÁÛÅÎÉÅ ÐÏ ÉÍÅÎÏ×ÁÎÉÀ (see éÍÅÎÁ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ, ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ÎÉÈ).

ðÅÒ×ÏÅ ÓÌÏ×Ï ÉÍÅÎÉ ÐÏÓÌÅ ÐÒÅÆÉËÓÁ AC_ ÏÂÙÞÎÏ ÓÏÏÂÝÁÅÔ ËÁÔÅÇÏÒÉÀ ÔÅÓÔÉÒÕÅÍÏÇÏ Ó×ÏÊÓÔ×Á. ÷ÏÔ ËÁËÉÅ ËÁÔÅÇÏÒÉÉ ÉÓÐÏÌØÚÕÀÔÓÑ Autoconf ÄÌÑ ÓÐÅÃÉÆÉÞÅÓËÉÈ ÍÁËÒÏÓÏ×, ÏÄÉÎ ÉÚ ÔÉÐÏ× ËÏÔÏÒÙÈ ×Ù ×ÅÒÏÑÔÎÏ ÚÁÈÏÔÉÔÅ ÎÁÐÉÓÁÔØ.  ïÎÉ ÔÁËÖÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÉÍÅÎÏ×ÁÎÉÑ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ, ÔÏÌØËÏ ÉÓÐÏÌØÚÕÑ ÐÒÏÐÉÓÎÙÅ ÂÕË×Ù. éÓÐÏÌØÚÕÊÔÅ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ËÁÔÅÇÏÒÉÉ ÐÒÉ ÎÁÐÉÓÁÎÉÉ ×ÁÛÉÈ ÍÁËÒÏÓÏ×; ÅÓÌÉ ÎÕÖÎÏÊ ËÁÔÅÇÏÒÉÉ ÎÅÔ, ÔÏ ×Ù ÍÏÖÅÔÅ ××ÏÄÉÔ ÓÏÂÓÔ×ÅÎÎÙÅ.

C
     ÷ÓÔÒÏÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÑÚÙËÁ C.

DECL
     ïÂßÑ×ÌÅÎÉÑ ÐÅÒÅÍÅÎÎÙÈ C × ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÁÈ.

FUNC
     æÕÎËÃÉÉ × ÂÉÂÌÉÏÔÅËÁÈ.

GROUP
     çÒÕÐÐÁ UNIX ×ÌÁÄÅÀÝÁÑ ÆÁÊÌÁÍÉ.

HEADER
     úÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ.

LIB
     âÉÂÌÉÏÔÅËÉ C.

PATH
     ðÏÌÎÙÅ ÐÕÔÅ×ÙÅ ÉÍÅÎÁ ÆÁÊÌÏ×, ×ËÌÀÞÁÑ ÐÒÏÇÒÁÍÍÙ.

PROG
     âÁÚÏ×ÙÅ ÉÍÅÎÁ ÐÒÏÇÒÁÍÍ.

STRUCT
     ïÐÒÅÄÅÌÅÎÉÑ ÓÔÒÕËÔÕÒ C × ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÁÈ.

SYS
     ó×ÏÊÓÔ×Á ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÙ.

TYPE
     ÷ÓÔÒÏÅÎÎÙÅ ÉÌÉ ÏÂßÑ×ÌÅÎÎÙÅ ÔÉÐÙ C.

VAR
     ðÅÒÅÍÅÎÎÙÅ C × ÂÉÂÌÉÏÔÅËÁÈ.

ðÏÓÌÅ ËÁÔÅÇÏÒÉÉ ÓÌÅÄÕÅÔ ÉÍÑ ÔÅÓÔÉÒÕÅÍÏÇÏ Ó×ÏÊÓÔ×Á. ìÀÂÙÅ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÌÏ×Á × ÉÍÅÎÉ ÍÁËÒÏÓÁ ÕËÁÚÙ×ÁÀÔ ÎÁ ÓÐÅÃÉÆÉÞÅÓËÉÅ ÁÓÐÅËÔÙ ÔÅÓÔÉÒÕÅÍÏÇÏ Ó×ÏÊÓÔ×Á. îÁÐÒÉÍÅÒ, AC_FUNC_UTIME_NULL ÐÒÏ×ÅÒÑÅÔ ÐÏ×ÅÄÅÎÉÅ ÆÕÎËÃÉÉ utime ÐÒÉ ×ÙÚÏ×Å ÅÅ Ó ÕËÁÚÁÔÅÌÅÍ ÒÁ×ÎÙÍ NULL.

íÁËÒÏÓ, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ×ÎÕÔÒÅÎÎÅÊ ÐÏÄÐÒÏÇÒÁÍÍÏÊ ÄÒÕÇÏÇÏ ÍÁËÒÏÓÁ ÄÏÌÖÅÎ ÉÍÅÔØ ÉÍÑ, ËÏÔÏÒÏÅ ÎÁÞÉÎÁÅÔÓÑ Ó ÉÍÅÎÉ ÜÔÏÇÏ ÍÁËÒÏÓÁ, ÚÁ ËÏÔÏÒÙÍ ÓÌÅÄÕÅÔ ÏÄÎÏ ÉÌÉ ÎÅÓËÏÌØËÏ ÓÌÏ×, ÏÐÉÓÙ×ÁÀÝÉÈ ÞÔÏ ÄÅÌÁÅÔ ÜÔÏÔ ÍÁËÒÏÓ. îÁÐÒÉÍÅÒ, ÍÁËÒÏÓ AC_PATH_X ÉÍÅÅÔ ×ÎÕÔÒÅÎÎÉÅ ÍÁËÒÏÓÙ AC_PATH_X_XMKMF É AC_PATH_X_DIRECT.

úÁËÌÀÞÅÎÉÅ × ËÁ×ÙÞËÉ
====================

íÁËÒÏÓÙ, ËÏÔÏÒÙÅ ×ÙÚÙ×ÁÀÔÓÑ ÄÒÕÇÉÍÉ ÍÁËÒÏÓÁÍÉ ÏÃÅÎÉ×ÁÀÔÓÑ ÐÒÏÇÒÁÍÍÏÊ m4 ÎÅÓËÏÌØËÏ ÒÁÚ; ËÁÖÄÁÑ ÏÃÅÎËÁ ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØ ÄÒÕÇÏÇÏ ÕÒÏ×ÎÑ ËÁ×ÙÞÅË ÄÌÑ ÐÒÅÄÏÔ×ÒÁÝÅÎÉÑ ÎÅÖÅÌÁÔÅÌØÎÙÈ ÒÁÓÛÉÒÅÎÉÊ ÍÁËÒÏÓÏ× ÉÌÉ ×ÓÔÒÏÅÎÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ m4, ÔÁËÉÈ ËÁË define É $1. ëÁ×ÙÞËÉ ÔÁËÖÅ ÔÒÅÂÕÀÔÓÑ ×ÏËÒÕÇ ÁÒÇÕÍÅÎÔÏ× ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÓÏÄÅÒÖÁÔ ÚÁÐÑÔÙÅ, ÐÏÓËÏÌØËÕ ÚÁÐÑÔÙÅ ÒÁÚÄÅÌÑÀÔ ÁÒÇÕÍÅÎÔÙ ÍÁËÒÏÓÁ. ôÁËÖÅ ÈÏÒÏÛÅÊ ÐÒÉ×ÙÞËÏÊ Ñ×ÌÑÅÔÓÑ ÚÁËÌÀÞÅÎÉÅ × ËÁ×ÙÞËÉ ÁÒÇÕÍÅÎÔÏ×, ËÏÔÏÒÙÅ ÓÏÄÅÒÖÁÔ ÓÉÍ×ÏÌÙ ÎÏ×ÏÊ ÓÔÒÏËÉ ÉÌÉ ×ÙÚÏ×Ù ÄÒÕÇÉÈ ÍÁËÒÏÓÏ×.

Autoconf ÉÚÍÅÎÑÅÔ ÓÉÍ×ÏÌ-ËÁ×ÙÞËÕ ÐÒÏÇÒÁÍÍÙ m4 ÓÏ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ` É ' ÎÁ [ É ], ÐÏÓËÏÌØËÕ ÍÎÏÇÉÅ ÉÚ ÍÁËÒÏÓÏ× ÉÓÐÏÌØÚÕÀÔ ÎÅ ÓÏÞÅÔÁÅÍÙÅ ` É '. ïÄÎÁËÏ × ÎÅÓËÏÌØËÉÈ ÍÅÓÔÁÈ ÍÁËÒÏÓÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÎÏ ÓÉÍ×ÏÌÏ×-ÓËÏÂÏË (ÏÂÙÞÎÏ × ÔÅËÓÔÅ ÐÒÏÇÒÁÍÍ ÎÁ ÑÚÙËÅ C ÉÌÉ × ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÑÈ). ÷ ÜÔÉÈ ÍÅÓÔÁÈ ÍÁËÒÏÓÙ ÉÓÐÏÌØÚÕÀÔ ×ÓÔÒÏÅÎÎÕÀ ËÏÍÁÎÄÕ m4 changequote ÄÌÑ ×ÒÅÍÅÎÎÏÇÏ ÉÚÍÅÎÅÎÉÑ ÓÉÍ×ÏÌÁ-ËÁ×ÙÞÅË ÎÁ << É >>. (éÎÏÇÄÁ, ÅÓÌÉ ÉÍ ÎÅÔ ÎÕÖÄÙ ÚÁËÌÀÞÁÔØ × ËÁ×ÙÞËÉ ÞÔÏ-ÌÉÂÏ, ÔÏ ÏÎÉ ÚÁÐÒÅÝÁÀÔ ÚÁËÌÀÞÅÎÉÅ × ËÁ×ÙÞËÉ ÕÓÔÁÎÏ×ËÏÊ ÓÉÍ×ÏÌÏ×-ËÁ×ÙÞÅË ÒÁ×ÎÙÈ ÐÕÓÔÙÍ ÓÉÍ×ÏÌÁÍ). ÷ÏÔ ÐÒÉÍÅÒ ÉÓÐÏÌØÚÏ×ÁÎÉÑ:

     AC_TRY_LINK(
     changequote(<<, >>)dnl
     <<#include <time.h>
     #ifndef tzname /* For SGI.  */
     extern char *tzname[]; /* RS6000 and others reject char **tzname.  */
     #endif>>,
     changequote([, ])dnl
     [atoi(*tzname);], ac_cv_var_tzname=yes, ac_cv_var_tzname=no)

ëÏÇÄÁ ×Ù ÓÏÚÄÁÅÔ ÓËÒÉÐÔ configure, ÉÓÐÏÌØÚÕÑ Ó×ÅÖÅ ÎÁÐÉÓÁÎÎÙÅ ÍÁËÒÏÓÙ, ÔÏ ÔÝÁÔÅÌØÎÏ ÐÒÏ×ÅÒØÔÅ ÉÈ ÎÁ ÔÏ, ÎÕÖÎÏ ÌÉ ÄÏÂÁ×ÉÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÉÍ×ÏÌÙ-ËÁ×ÙÞËÉ × ÜÔÉ ÍÁËÒÏÓÙ. åÓÌÉ ÏÄÎÏ ÉÌÉ ÎÅÓËÏÌØËÏ ÓÌÏ× ÉÓÞÅÚÎÕÔ × ×Ù×ÏÄÅ m4, ÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÄÏÂÁ×ÉÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÉÍ×ÏÌÙ-ËÁ×ÙÞËÉ. åÓÌÉ ×Ù ÓÏÍÎÅ×ÁÅÔÅÓØ, ÔÏ ÐÒÏÓÔÏ ÄÏÂÁ×ØÔÅ ËÁ×ÙÞËÉ.

ïÄÎÁËÏ ÔÁËÖÅ ×ÏÚÍÏÖÎÏ ÐÏÍÅÓÔÉÔØ ÓÌÉÛËÏÍ ÍÎÏÇÏ ÕÒÏ×ÎÅÊ ËÁ×ÙÞÅË.  åÓÌÉ ÜÔÏ ÓÌÕÞÁÅÔÓÑ, ÔÏ ÐÏÌÕÞÅÎÎÙÊ ÓËÒÉÐÔ configure ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÎÅ-ÒÁÓÛÉÒÅÎÎÙÊ ÍÁËÒÏÓ. ðÒÏÇÒÁÍÍÁ autoconf ×ÙÐÏÌÎÑÅÔ ÐÒÏ×ÅÒËÕ ÜÔÏÊ ÐÒÏÂÌÅÍÙ, ×ÙÐÏÌÎÑÑ ËÏÍÁÎÄÕ grep AC_ configure.

úÁ×ÉÓÉÍÏÓÔÉ ÍÅÖÄÕ ÍÁËÒÏÓÁÍÉ
===========================

îÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ Autoconf ÚÁ×ÉÓÑÔ ÏÔ ÄÒÕÇÉÈ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÂÙÔØ ×ÙÚ×ÁÎÙ ÐÅÒ×ÙÍÉ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÒÁÂÏÔÁ ÐÒÏÉÚ×ÏÄÉÌÁÓØ ÐÒÁ×ÉÌØÎÏ. Autoconf ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÓÐÏÓÏÂ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÒÏ×ÅÒÉÔØ, ÞÔÏ ÎÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ ÂÙÌÉ ×ÙÚ×ÁÎÙ, É ÓÐÏÓÏÂ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÍÁËÒÏÓÁÈ, ËÏÔÏÒÙÅ ×ÙÚÙ×ÁÀÔÓÑ × ÐÏÒÑÄËÅ, ËÏÔÏÒÙÅ ÍÏÖÅÔ ÐÒÉ×ÅÓÔÉ Ë ÎÅÐÒÁ×ÉÌØÎÏÍÕ ×ÙÐÏÌÎÅÎÉÀ.

ôÒÅÂÕÅÍÙÅ ÍÁËÒÏÓÙ
-----------------

íÁËÒÏÓ, ËÏÔÏÒÏÅ ×Ù ÍÏÖÅÔÅ ÎÁÐÉÓÁÔØ, ÍÏÖÅÔ ÎÕÖÄÁÔØÓÑ × ÚÎÁÞÅÎÉÑÈ, ËÏÔÏÒÙÅ ÐÅÒÅÄ ÜÔÉÍ ÂÙÌÉ ×ÙÞÉÓÌÅÎÙ ÄÒÕÇÉÍÉ ÍÁËÒÏÓÁÍÉ. îÁÐÒÉÍÅÒ, AC_DECL_YYTEXT ÐÒÏ×ÅÒÑÅÔ ×Ù×ÏÄ flex ÉÌÉ lex, ÔÁË ÞÔÏ ÏÎ ÚÁ×ÉÓÉÔ ÏÔ AC_PROG_LEX, ËÏÔÏÒÙÊ ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚ×ÁÎ ÐÅÒÅÄ ÜÔÉÍ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ LEX.

÷ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ÚÁÓÔÁ×ÌÑÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÍÁËÒÏÓÏ× ÐÏÍÎÉÔØ ×ÓÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÍÅÖÄÕ ÍÁËÒÏÓÁÍÉ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ AC_REQUIRE ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÔÓÌÅÖÉ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ. AC_REQUIRE ÍÏÖÅÔ ÐÏÍÏÞØ × ÏÂÅÓÐÅÞÅÎÉÉ ÔÏÇÏ, ÞÔÏ ÍÁËÒÏÓ ×ÙÚÙ×ÁÅÔÓÑ ÔÏÌØËÏ ËÏÇÄÁ ÜÔÏ ÎÅÏÂÈÏÄÉÍÏ, É ÂÕÄÅÔ ×ÙÚÙ×ÁÔØÓÑ ÔÏÌØËÏ ÒÁÚ.

 -- Macro: AC_REQUIRE (MACRO-NAME)
     åÓÌÉ ÍÁËÒÏÓ m4 Ó ÉÍÅÎÅÍ MACRO-NAME ÅÝÅ ÎÅ ÂÙÌ ×ÙÚ×ÁÎ, ÔÏ ÎÅÏÂÈÏÄÉÍÏ ×ÙÚ×ÁÔØ ÅÇÏ (ÂÅÚ ËÁËÉÈ-ÌÉÂÏ ÁÒÇÕÍÅÎÔÏ×). õÂÅÄÉÔÅÓØ, ÞÔÏ ×Ù ÐÏÍÅÓÔÉÌÉ ÉÍÑ MACRO-NAME × Ë×ÁÄÒÁÔÎÙÅ ËÁ×ÙÞËÉ. MACRO-NAME ÄÏÌÖÅÎ ÂÙÔØ ÏÐÒÅÄÅÌÅÎ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÍÁËÒÏÓÁ AC_DEFUN ÉÌÉ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ×ÙÚÏ× ÍÁËÒÏÓÁ AC_PROVIDE ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕËÁÚÁÔØ, ÞÔÏ ÏÎ ÂÙÌ ×ÙÚ×ÁÎ.

áÌØÔÅÒÎÁÔÉ×ÏÊ ÜÔÏÍÕ ÉÓÐÏÌØÚÏ×ÁÎÉÀ AC_DEFUN Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ define É ×ÙÚÏ× ÍÁËÒÏÓÁ AC_PROVIDE. ðÏÓËÏÌØËÕ ÜÔÏÔ ÐÏÄÈÏÄ ÎÅ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ×ÌÏÖÅÎÎÙÈ ÓÏÏÂÝÅÎÉÊ, ÔÏ ÜÔÁ ÔÅÈÎÉËÁ Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÅÊ.

 -- Macro: AC_PROVIDE (THIS-MACRO-NAME)
     úÁÐÏÍÉÎÁÅÔ ÔÏÔ ÆÁËÔ, ÞÔÏ ÍÁËÒÏÓ THIS-MACRO-NAME ÂÙÌ ×ÙÚ×ÁÎ. THIS-MACRO-NAME ÄÏÌÖÅÎ ÂÙÔØ ÉÍÅÎÅÍ ÍÁËÒÏÓÁ, ËÏÔÏÒÙÊ ×ÙÚÙ×ÁÅÔ AC_PROVIDE. äÌÑ ÐÒÏÓÔÏÇÏ ÐÏÌÕÞÅÎÉÑ ÜÔÏÇÏ ÉÍÅÎÉ ÉÓÐÏÌØÚÕÊÔÅ ×ÓÔÒÏÅÎÎÕÀ ÐÅÒÅÍÅÎÎÕÀ m4 Ó ÉÍÅÎÅÍ $0, ÐÒÉÍÅÒÎÏ ÔÁË:

          AC_PROVIDE([$0])

ðÒÅÄÌÁÇÁÅÍÙÊ ÐÏÒÑÄÏË
--------------------

îÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ ÄÏÌÖÎÙ ÂÙÔØ ×ÙÚ×ÁÎÙ ÄÏ ÄÒÕÇÉÈ ÍÁËÒÏÓÏ×, ÅÓÌÉ ÏÂÁ ÍÁËÒÏÓÁ ×ÙÚÙ×ÁÀÔÓÑ, ÎÏ ÎÅ ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÄÒÕÇÉÅ ÍÁËÒÏÓÙ ÂÙÌÉ ×ÙÚ×ÁÎÙ. îÁÐÒÉÍÅÒ, ÍÁËÒÏÓ, ËÏÔÏÒÙÊ ÉÚÍÅÎÑÅÔ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ C ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚ×ÁÎ ÄÏ ÌÀÂÏÇÏ ÉÚ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÚÁÐÕÓËÁÀÔ ËÏÍÐÉÌÑÔÏÒ C. íÎÏÇÉÅ ÉÚ ÜÔÉÈ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÕÐÏÍÉÎÁÀÔÓÑ × ÄÏËÕÍÅÎÔÁÃÉÉ.

Autoconf ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÍÁËÒÏÓ AC_BEFORE ÄÌÑ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ Ï ÔÅÈ ÓÌÕÞÁÑÈ, ËÏÇÄÁ ÜÔÏÔ ÍÁËÒÏÓÙ ×ÙÚÙ×ÁÀÔÓÑ × ÎÅÐÒÁ×ÉÌØÎÏÍ ÐÏÒÑÄËÅ × ÆÁÊÌÅ configure.in. ðÒÅÄÕÐÒÅÖÄÅÎÉÅ ×ÙÄÁÅÔÓÑ ÐÒÉ ÓÏÚÄÁÎÉÉ ÓËÒÉÐÔÁ configure ÉÚ ÆÁÊÌÁ configure.in, Á ÎÅ ÐÒÉ ÚÁÐÕÓËÅ ÓÏÚÄÁÎÎÏÇÏ configure. îÁÐÒÉÍÅÒ, AC_PROG_CPP ÐÒÏ×ÅÒÑÅÔ ÍÏÖÅÔ ÌÉ ËÏÍÐÉÌÑÔÏÒ C ÚÁÐÕÓÔÉÔØ ÐÒÅÐÒÏÃÅÓÓÏÒ C Ó ËÌÀÞÏÍ -E. ïÎ ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚ×ÁÎ ÐÏÓÌÅ ÌÀÂÏÇÏ ÉÚ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÊ ÉÚÍÅÎÑÅÔ ÐÏ×ÅÄÅÎÉÅ ÉÓÐÏÌØÚÕÅÍÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ C, ÔÁËÏÇÏ ËÁË AC_PROG_CC. ôÁË ÞÔÏ ÍÁËÒÏÓ AC_PROG_CC ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ:

     AC_BEFORE([$0], [AC_PROG_CPP])dnl

üÔÏ ×ÙÚÙ×ÁÅÔ ×ÙÄÁÞÕ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÅÓÌÉ ×ÙÚÏ× AC_PROG_CPP ÕÖÅ ÐÒÏÉÚÏÛÅÌ ÄÏ ×ÙÚÏ×Á ÍÁËÒÏÓÁ AC_PROG_CC.

 -- Macro: AC_BEFORE (THIS-MACRO-NAME, CALLED-MACRO-NAME)
     úÁÓÔÁ×ÌÑÅÔ m4 ×ÙÄÁÔØ ÐÒÅÄÕÐÒÅÖÄÁÀÝÅÅ ÓÏÏÂÝÅÎÉÅ × ÓÔÁÎÄÁÒÔÎÙÊ ÐÏÔÏË ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÍÁËÒÏÓÁ CALLED-MACRO-NAME ÕÖÅ ÂÙÌ ×ÙÚ×ÁÎ. THIS-MACRO-NAME ÄÏÌÖÅÎ ÂÙÔØ ÉÍÅÎÅÍ ÍÁËÒÏÓÁ, ËÏÔÏÒÙÊ ×ÙÚÙ×ÁÅÔ AC_BEFORE. íÁËÒÏÓ CALLED-MACRO-NAME ÄÏÌÖÅÎ ÂÙÔØ ÏÐÒÅÄÅÌÅÎ ÉÓÐÏÌØÚÕÑ ÍÁËÒÏÓ AC_DEFUN ÉÌÉ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ×ÙÚÏ× AC_PROVIDE ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏËÁÚÁÔØ, ÞÔÏ ÏÎ ÂÙÌ ×ÙÚ×ÁÎ.

õÓÔÁÒÅ×ÛÉÅ ÍÁËÒÏÓÙ
------------------

ôÅÈÎÏÌÏÇÉÑ ÎÁÓÔÒÏÊËÉ É ÐÅÒÅÎÏÓÉÍÏÓÔÉ ÒÁÚ×É×ÁÌÁÓØ ÍÎÏÇÉÅ ÇÏÄÙ. þÁÓÔÏ ÒÁÚÒÁÂÁÔÙ×ÁÌÉÓØ ÌÕÞÛÉÅ ÒÅÛÅÎÉÑ ÏÔÄÅÌØÎÙÈ ÐÒÏÂÌÅÍ, ÉÌÉ ÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÌÉÓØ ÓÐÅÃÉÁÌØÎÙÅ ÐÏÄÈÏÄÙ. üÔÏÔ ÐÒÏÃÅÓÓ ÐÒÏÉÓÈÏÄÉÌ ×Ï ÍÎÏÇÉÈ ÞÁÓÔÑÈ Autoconf. òÅÚÕÌØÔÁÔÏÍ ÜÔÏÇÏ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÎÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ × ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ ÓÞÉÔÁÀÔÓÑ ÕÓÔÁÒÅ×ÛÉÍÉ; ÏÎÉ ÄÏ ÓÉÈ ÐÏÒ ÒÁÂÏÔÁÀÔ, ÎÏ ÎÅ ÓÞÉÔÁÀÔÓÑ ÌÕÞÛÉÍ ÓÐÏÓÏÂÏÍ ÒÅÛÅÎÉÑ. Autoconf ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÍÁËÒÏÓ AC_OBSOLETE, ËÏÔÏÒÙÊ ÐÒÅÄÕÐÒÅÖÄÁÅÔ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÓÏÚÄÁÀÝÉÈ ÓËÒÉÐÔÙ configure Ï ÔÏÍ, ÞÔÏ ÏÎÉ ÉÓÐÏÌØÚÕÀÔ ÕÓÔÁÒÅ×ÛÉÅ ÍÁËÒÏÓÙ, ÞÔÏÂÙ ÐÏÏÝÒÉÔØ ÉÈ Ë ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÓÏ×ÒÅÍÅÎÎÙÈ ÍÁËÒÏÓÏ×. ðÒÏÓÔÏÊ ×ÙÚÏ× ÜÔÏÇÏ ÍÁËÒÏÓÁ ×ÙÇÌÑÄÉÔ ÔÁË:

     AC_OBSOLETE([$0], [; use AC_CHECK_HEADERS(unistd.h) instead])dnl

 -- Macro: AC_OBSOLETE (THIS-MACRO-NAME [, SUGGESTION])
     úÁÓÔÁ×ÌÑÅÔ m4 ×ÙÄÁÔØ ÓÏÏÂÝÅÎÉÅ × ÓÔÁÎÄÁÒÔÎÙÊ ÐÏÔÏË ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ, ËÏÔÏÒÏÅ ÇÏ×ÏÒÉÔ Ï ÔÏÍ, ÞÔÏ ÍÁËÒÏÓ THIS-MACRO-NAME Ñ×ÌÑÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ, É ×ÙÄÁÅÔ ÉÍÑ ÆÁÊÌÁ É ÎÏÍÅÒ ÓÔÒÏËÉ ÇÄÅ ÂÙÌ ×ÙÚ×ÁÎ ÜÔÏÔ ÍÁËÒÏÓ THIS-MACRO-NAME ÄÏÌÖÅÎ ÉÍÅÎÅÍ ÍÁËÒÏÓÁ, ËÏÔÏÒÙÊ ÐÒÏÉÚ×ÏÄÉÔ ×ÙÚÏ× AC_OBSOLETE. åÓÌÉ ÚÁÄÁÎ ÁÒÇÕÍÅÎÔ SUGGESTION, ÔÏ ÏÎ ×ÙÄÁÅÔÓÑ × ËÏÎÃÅ ÐÒÅÄÕÐÒÅÖÄÁÀÝÅÇÏ ÓÏÏÂÝÅÎÉÑ; ÎÁÐÒÉÍÅÒ, ÏÎ ÍÏÖÅÔ ÂÙÔØ ÓÏ×ÅÔÏÍ Ï ÔÏÍ, ÞÔÏ ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÍÅÓÔÏ THIS-MACRO-NAME.

òÕÞÎÁÑ ÎÁÓÔÒÏÊËÁ
****************

îÅËÏÔÏÒÙÅ ÔÉÐÙ Ó×ÏÊÓÔ× ÎÅ ÍÏÇÕÔ ÂÙÔØ ÏÐÒÅÄÅÌÅÎÙ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÕÔÅÍ ÚÁÐÕÓËÁ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ. îÁÐÒÉÍÅÒ, ÄÅÔÁÌÉ ÒÅÁÌÉÚÁÃÉÉ ÆÏÒÍÁÔÁ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ× ÉÌÉ ÓÐÅÃÉÁÌØÎÙÅ ËÌÀÞÉ, ËÏÔÏÒÙÅ ÎÅÏÂÈÏÄÉÍÏ ÐÅÒÅÄÁÔØ ËÏÍÐÉÌÑÔÏÒÕ ÉÌÉ ËÏÍÐÏÎÏ×ÝÉËÕ. ÷Ù ÍÏÖÅÔÅ ÐÒÏ×ÅÒÉÔØ ÔÁËÉÅ Ó×ÏÊÓÔ×Á ÉÓÐÏÌØÚÕÑ ÓÐÅÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÔÁËÉÅ ËÁË ÚÁÓÔÁ×É× configure ÐÒÏ×ÅÒÉÔØ ×Ù×ÏÄ ÐÒÏÇÒÁÍÍÙ uname ÉÌÉ ÐÒÏÉÚ×ÏÄÑ ÐÏÉÓË ÂÉÂÌÉÏÔÅË, ÓÐÅÃÉÆÉÞÅÓËÉÈ ÄÌÑ ÏÔÄÅÌØÎÙÈ ÓÉÓÔÅÍ. ïÄÎÁËÏ Autoconf ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÏÄÎÏÏÂÒÁÚÎÙÊ ÍÅÔÏÄ ÄÌÑ ÏÂÒÁÂÏÔËÉ ÎÅÏÐÒÅÄÅÌÑÅÍÙÈ Ó×ÏÊÓÔ×.

õËÁÚÁÎÉÅ ÔÉÐÁ ÓÉÓÔÅÍÙ
=====================

ðÏÄÏÂÎÏ ÄÒÕÇÉÍ ÓËÒÉÐÔÁÍ GNU configure, ÓÏÚÄÁÎÎÙÅ Autoconf ÓËÒÉÐÔÙ configure ÍÏÇÕÔ ÄÅÌÁÔØ ÚÁËÌÀÞÅÎÉÅ ÏÓÎÏ×Ù×ÁÑÓØ ÎÁ ËÁÎÏÎÉÞÅÓËÏÍ ÉÍÅÎÉ ÔÉÐÁ ÓÉÓÔÅÍÙ, ËÏÔÏÒÏÅ ÉÍÅÅÔ ÆÏÒÍÕ:

     CPU-COMPANY-SYSTEM

configure ÏÂÙÞÎÏ ÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ ËÁÎÏÎÉÞÅÓËÏÅ ÉÍÑ ÔÉÐÁ ÓÉÓÔÅÍÙ ÎÁ ËÏÔÏÒÏÊ ÏÎ ÚÁÐÕÝÅÎ. äÌÑ ÜÔÏÇÏ ÏÎ ÚÁÐÕÓËÁÅÔ ÓËÒÉÐÔ Ó ÉÍÅÎÅÍ config.guess, ËÏÔÏÒÙÊ ÏÐÒÅÄÅÌÑÅÔ ÉÍÑ, ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ uname ÉÌÉ ÓÉÍ×ÏÌÙ ÏÐÒÅÄÅÌÅÎÎÙÅ ÐÒÅÐÒÏÃÅÓÓÏÒÏÍ C.

÷ ËÁÞÅÓÔ×Å ÁÌØÔÅÒÎÁÔÉ×Ù, ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÕËÁÚÁÔØ ÔÉÐ ÓÉÓÔÅÍÙ ËÁË ÁÒÇÕÍÅÎÔ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÓËÒÉÐÔÁ configure. üÔÏ ÎÅÏÂÈÏÄÉÍÏ ÓÄÅÌÁÔØ, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÀ. ÷ ÂÏÌØÛÉÎÓÔ×Å ÓÌÏÖÎÙÈ ÓÌÕÞÁÅ× ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ ÂÕÄÕÔ ×Ï×ÌÅÞÅÎÙ ÔÒÉ ÔÉÐÁ ÓÉÓÔÅÍ. äÌÑ ÉÈ ÕËÁÚÁÎÉÑ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ:

--build=BUILD-TYPE
     ÔÉÐ ÓÉÓÔÅÍÙ ÎÁ ËÏÔÏÒÏÊ ÎÁÓÔÒÁÉ×ÁÅÔÓÑ É ËÏÍÐÉÌÉÒÕÅÔÓÑ ÐÁËÅÔ (ÉÓÐÏÌØÚÕÅÔÓÑ ÒÅÄËÏ);

--host=HOST-TYPE
     ÔÉÐ ÓÉÓÔÅÍÙ ÎÁ ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØÓÑ ÐÁËÅÔ;

--target=TARGET-TYPE
     ÔÉÐ ÓÉÓÔÅÍÙ ÄÌÑ ËÏÔÏÒÏÊ ÕÔÉÌÉÔÙ ËÏÍÐÉÌÑÔÏÒÁ ÂÕÄÕÔ ÓÏÚÄÁ×ÁÔØ ËÏÄ.

åÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÄÁÅÔ configure ÎÅËÌÀÞÅ×ÏÊ ÁÒÇÕÍÅÎÔ, ÔÏ ÏÎ ÉÓÐÏÌØÚÕÅÔÓÑ ËÁË ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ×ÓÅÈ ÔÉÐÏ× ÓÉÓÔÅÍ, ÅÓÌÉ ÔÏÌØËÏ ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÕËÁÚÁÌ ÔÉÐÙ Ñ×ÎÏ ÄÌÑ ÓÉÓÔÅÍ Ó ÐÏÍÏÝØÀ ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ. åÓÌÉ ÔÉÐÙ ÃÅÌÅ×ÏÊ É ÓÏÂÉÒÁÀÝÅÊ ÓÉÓÔÅÍ ÎÅ ÚÁÄÁÎÙ, Á ÚÁÄÁÎ ÔÉÐ ÓÉÓÔÅÍÙ ÎÁ ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØÓÑ ÐÁËÅÔ, ÔÏ ÏÎÉ ÒÁ×ÎÙ ÚÁÄÁÎÎÏÍÕ ÚÎÁÞÅÎÉÀ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÀ, ÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÓËÒÉÐÔÁ configure ÉÍÅÎÁ ÉÓÐÏÌØÚÕÅÍÙÈ ×ÁÍÉ ËÒÏÓÓ-ÕÔÉÌÉÔ, × ÞÁÓÔÎÏÓÔÉ ËÏÍÐÉÌÑÔÏÒÁ ó, ÎÁÐÒÉÍÅÒ,

     CC=m68k-coff-gcc configure --target=m68k-coff

configure ÒÁÓÐÏÚÎÁÅÔ ËÏÒÏÔËÉÅ ÁÌÉÁÓÙ ÄÌÑ ÍÎÏÇÉÈ ÔÉÐÏ× ÓÉÓÔÅÍ; ÎÁÐÒÉÍÅÒ, × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÍÏÖÅÔ ÂÙÔØ ÚÁÄÁÎÏ ÉÍÑ decstation ×ÍÅÓÔÏ mips-dec-ultrix4.2. configure ÚÁÐÕÓËÁÅÔ ÓËÒÉÐÔ Ó ÉÍÅÎÅÍ config.sub ÄÌÑ ËÁÎÏÎÉÚÁÃÉÉ ÁÌÉÁÓÏ× ÔÉÐÏ× ÓÉÓÔÅÍ.

ðÏÌÕÞÅÎÉÅ ËÁÎÏÎÉÞÅÓËÏÇÏ ÔÉÐÁ ÓÉÓÔÅÍÙ
====================================

óÌÅÄÕÀÝÉÅ ÍÁËÒÏÓÙ ÄÅÌÁÀÔ ÔÉÐ ÓÉÓÔÅÍÙ ÄÏÓÔÕÐÎÙÍ ÄÌÑ ÓËÒÉÐÔÏ× configure. ïÎÉ ÚÁÐÕÓËÁÀÔ ÓËÒÉÐÔ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ config.guess ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÚÎÁÞÅÎÉÊ ÄÌÑ ËÁÖÄÏÇÏ ÉÚ ÔÉÐÏ× ÓÉÓÔÅÍ, × ËÏÔÏÒÙÈ ÏÎÉ ÎÕÖÄÁÀÔÓÑ, É ËÏÔÏÒÙÅ ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÕËÁÚÁÌ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ. ïÎÉ ÚÁÐÕÓËÁÀÔ config.sub ÄÌÑ ËÁÎÏÎÉÚÁÃÉÉ ÚÁÄÁÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÐÓÅ×ÄÏÎÉÍÏ×. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÜÔÉ ÍÁËÒÏÓÙ, ÔÏ ×Ù ÄÏÌÖÎÙ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÜÔÉ Ä×Á ÆÁÊÌÁ ×ÍÅÓÔÅ Ó ×ÁÛÉÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. See ÷Ù×ÏÄ, ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÍÁËÒÏÓÅ AC_CONFIG_AUX_DIR, ËÏÔÏÒÙÊ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ËÏÎÔÒÏÌÑ ÔÏÇÏ, × ËÁËÏÍ ÉÍÅÎÎÏ ËÁÔÁÌÏÇÅ configure ÂÕÄÅÔ ÉÓËÁÔØ ÜÔÉ ÆÁÊÌÙ.  åÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ ÎÉ ÏÄÉÎ ÉÚ ÜÔÉÈ ÍÁËÒÏÓÏ×, ÔÏ configure ÉÇÎÏÒÉÒÕÅÔ ÚÁÄÁÎÎÙÅ ËÌÀÞÉ --host, --target É --build.

 -- Macro: AC_CANONICAL_SYSTEM
     ïÐÒÅÄÅÌÑÅÔ ÔÉÐ ÓÉÓÔÅÍÙ É ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÙÈÏÄÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÒÁ×ÎÙÍÉ ÉÍÅÎÁÍ ËÁÎÏÎÉÞÅÓËÉÈ ÔÉÐÏ× ÓÉÓÔÅÍ.  See ðÅÒÅÍÅÎÎÙÅ ÔÉÐÏ× ÓÉÓÔÅÍ, ÇÄÅ ÏÐÉÓÁÎÏ, ËÁËÉÅ ÉÍÅÎÎÏ ÐÅÒÅÍÅÎÎÙÅ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÜÔÉÍ ÍÁËÒÏÓÏÍ.

 -- Macro: AC_CANONICAL_HOST
     ÷ÙÐÏÌÎÑÅÔ ÞÁÓÔØ ÏÐÅÒÁÃÉÊ AC_CANONICAL_SYSTEM, ÏÔÎÏÓÑÝÕÀÓÑ Ë ÏÐÒÅÄÅÌÅÎÉÀ ÔÉÐÁ ÓÉÓÔÅÍÙ, ÎÁ ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØÓÑ ÐÁËÅÔ. üÔÏ ×ÓÅ, ÞÔÏ ÎÅÏÂÈÏÄÉÍÏ ÄÌÑ ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÅ ÎÅ ×ÈÏÄÑÔ × ÎÁÂÏÒ ÕÔÉÌÉÔ ËÏÍÐÉÌÑÔÏÒÁ.

 -- Macro: AC_VALIDATE_CACHED_SYSTEM_TUPLE (CMD)
     åÓÌÉ × ËÜÛ-ÆÁÊÌÅ ÚÁÐÉÓÁÎ ÔÉÐ ÓÉÓÔÅÍÙ, ÎÅ ÓÏ×ÐÁÄÁÀÝÉÊ Ó ÔÅËÕÝÉÍ, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÍÁÎÄÁ CMD ÉÌÉ ÐÅÞÁÔÁÅÔÓÑ ÓÔÁÎÄÁÒÔÎÏÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ.

ðÅÒÅÍÅÎÎÙÅ ÔÉÐÏ× ÓÉÓÔÅÍ
=======================

ðÏÓÌÅ ×ÙÚÏ×Á AC_CANONICAL_SYSTEM ÉÎÆÏÒÍÁÃÉÑ Ï ÔÉÐÅ ÓÉÓÔÅÍÙ ÓÏÄÅÒÖÉÔÓÑ × ÎÉÖÅÐÅÒÅÞÉÓÌÅÎÎÙÈ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.  ðÏÓÌÅ AC_CANONICAL_HOST ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÔÏÌØËÏ ÔÅ ÉÚ ÐÅÒÅÞÉÓÌÅÎÎÙÈ ÐÅÒÅÍÅÎÎÙÈ, ÞØÉ ÉÍÅÎÁ ÎÁÞÉÎÁÀÔÓÑ ÎÁ host.

build, host, target
     ËÁÎÏÎÉÞÅÓËÉÅ ÉÍÅÎÁ ÓÉÓÔÅÍ;

build_alias, host_alias, target_alias
     ÉÍÅÎÁ, ÕËÁÚÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÉÌÉ ËÁÎÏÎÉÞÅÓËÉÅ ÉÍÅÎÁ, ÅÓÌÉ ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ ÆÁÊÌ config.guess;

build_cpu, build_vendor, build_os
host_cpu, host_vendor, host_os
target_cpu, target_vendor, target_os
     ÏÔÄÅÌØÎÙÅ ÞÁÓÔÉ ËÁÎÏÎÉÞÅÓËÏÇÏ ÉÍÅÎÉ (ÄÌÑ ÕÄÏÂÓÔ×Á).

éÓÐÏÌØÚÏ×ÁÎÉÅ ÔÉÐÏ× ÓÉÓÔÅÍ
==========================

ëÁË ÉÓÐÏÌØÚÏ×ÁÔØ ËÁÎÏÎÉÞÅÓËÉÊ ÔÉÐ ÓÉÓÔÅÍÙ? ïÂÙÞÎÏ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÅÇÏ × ÏÄÎÏÍ ÉÌÉ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÁÈ case × configure.in ÄÌÑ ×ÙÂÏÒÁ ÓÐÅÃÉÆÉÞÅÓËÉÈ ÄÌÑ ÓÉÓÔÅÍÙ ÆÁÊÌÏ× C.  úÁÔÅÍ ÄÅÌÁÅÔ ÓÓÙÌËÉ ÎÁ ÆÁÊÌÙ, ÞØÉ ÉÍÅÎÁ ÓÏÄÅÒÖÁÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÉÓÔÅÍÅ, ÞÔÏÂÙ ÏÎÉ ÎÁÚÙ×ÁÌÉÓØ ÔÁËÖÅ Ó×ÏÉÍ ÏÂÏÂÝÅÎÎÙÍ ÉÍÅÎÅÍ, ÎÁÐÒÉÍÅÒ,  host.h ÉÌÉ target.c.  ûÁÂÌÏÎÙ × ÏÐÅÒÁÔÏÒÅ case ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÙÅ ÓÉÍ×ÏÌÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ÄÌÑ ÇÒÕÐÐÉÒÏ×ËÉ ÎÅÓËÏÌØËÉÈ ×ÁÒÉÁÎÔÏ× ×ÍÅÓÔÅ, ÎÁÐÒÉÍÅÒ ËÁË × ÔÁËÏÍ ÆÒÁÇÍÅÎÔÅ:

     case "$target" in
     i386-*-mach* | i386-*-gnu*) obj_format=aout emulation=mach bfd_gas=yes ;;
     i960-*-bout) obj_format=bout ;;
     esac

 -- Macro: AC_LINK_FILES (SOURCE..., DEST...)
     úÁÓÔÁ×ÌÑÅÔ AC_OUTPUT ÓÄÅÌÁÔØ ÓÓÙÌËÕ Ó ËÁÖÄÏÇÏ ÆÁÊÌÁ ÉÚ ÓÐÉÓËÁ SOURCE ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÆÁÊÌ Ó ÉÍÅÎÅÍ DEST. åÓÌÉ ÜÔÏ ×ÏÚÍÏÖÎÏ, ÔÏ ÓÏÚÄÁÅÔÓÑ ÓÉÍ×ÏÌØÎÁÑ ÓÓÙÌËÁ, ÉÎÁÞÅ ÓÏÚÄÁÅÔÓÑ ÖÅÓÔËÁÑ ÓÓÙÌËÁ. éÍÅÎÁ DEST É SOURCE ÄÏÌÖÎÙ ÂÙÔØ ÚÁÄÁÎÙ ÏÔÎÏÓÉÔÅÌØÎÏ ËÁÔÁÌÏÇÁ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ ÉÌÉ ËÁÔÁÌÏÇÁ, × ËÏÔÏÒÏÍ ÐÒÏÉÓÈÏÄÉÔ ÓÂÏÒËÁ. üÔÏÔ ÍÁËÒÏÓ ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎ ÎÅÏÄÎÏËÒÁÔÎÏ.

     îÁÐÒÉÍÅÒ, ÔÁËÏÊ ×ÙÚÏ×:

          AC_LINK_FILES(config/${machine}.h config/${obj_format}.h, host.h object.h)

     ÓÏÚÄÁÅÔ × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ ÆÁÊÌ host.h, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÓÓÙÌËÏÊ ÎÁ SRCDIR/config/${machine}.h, É object.h, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÓÓÙÌËÏÊ ÎÁ SRCDIR/config/${obj_format}.h.

÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÉÐ ÓÉÓÔÅÍÙ, ÎÁ ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØÓÑ ÐÒÏÇÒÁÍÍÁ, ÄÌÑ ÐÏÉÓËÁ ÕÔÉÌÉÔ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ.  See ïÂÝÉÅ ÐÒÏÇÒÁÍÍÙ, ÄÌÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÍÁËÒÏÓÅ AC_CHECK_TOOL, ËÏÔÏÒÙÊ ×ÙÐÏÌÎÑÅÔ ÜÔÏ.

ìÏËÁÌØÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ
**********************

óËÒÉÐÔÙ configure ÐÏÄÄÅÒÖÉ×ÁÀÔ ÎÅÓËÏÌØËÏ ×ÉÄÏ× ÒÅÛÅÎÉÊ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ.  ðÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÕËÁÚÁÔØ, ÇÄÅ ÎÁÈÏÄÑÔÓÑ ×ÎÅÛÎÉÅ ÐÁËÅÔÙ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ×ËÌÀÞÉÔØ ÉÌÉ ÏÔËÌÀÞÉÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÕÓÔÁÎÏ×ÉÔØ ÐÒÏÇÒÁÍÍÙ, ÉÚÍÅÎÑÑ ÉÈ ÉÍÅÎÁ, É ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ËÌÀÞÅÊ configure.

òÁÂÏÔÁ Ó ×ÎÅÛÎÉÍ ÐÒÏÇÒÁÍÍÎÙÍ ÏÂÅÓÐÅÞÅÎÉÅÍ
=========================================

îÅËÏÔÏÒÙÅ ÐÁËÅÔÙ ÔÒÅÂÕÀÔ, ÉÌÉ ÍÏÇÕÔ ÐÒÉ ÓÌÕÞÁÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇÉÅ ÐÁËÅÔÙ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ÕÖÅ ÕÓÔÁÎÏ×ÌÅÎÎÙÅ × ÓÉÓÔÅÍÅ.  ðÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÕËÁÚÁÔØ ÓËÒÉÐÔÕ configure Ó ÐÏÍÏÝØÀ ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ËÁËÉÅ ×ÎÅÛÎÉÅ ÐÁËÅÔÙ ÎÁÄÏ ÉÓÐÏÌØÚÏ×ÁÔØ. ëÌÀÞÉ ÉÍÅÀÔ ÏÄÎÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÆÏÒÍ:

     --with-PACKAGE[=ARG]
     --without-PACKAGE

îÁÐÒÉÍÅÒ, --with-gnu-ld ÏÚÎÁÞÁÅÔ, ÞÔÏ ÎÁÄÏ ÒÁÂÏÔÁÔØ Ó ËÏÍÐÏÎÏ×ÝÉËÏÍ GNU linker ×ÍÅÓÔÏ ÄÒÕÇÉÈ ËÏÍÐÏÎÏ×ÝÉËÏ×. --with-x ÏÚÎÁÞÁÅÔ ÒÁÂÏÔÕ Ó X Window System.

ðÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÚÁÄÁÔØ ÁÒÇÕÍÅÎÔ, ÐÏÓÔÁ×É× ÐÏÓÌÅ ÉÍÅÎÉ ÐÁËÅÔÁ ÓÉÍ×ÏÌ = É ÎÕÖÎÙÊ ÁÒÇÕÍÅÎÔ.  ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÁÒÇÕÍÅÎÔ, ÒÁ×ÎÙÊ no ÄÌÑ ÐÁËÅÔÏ×, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÐÏ ÕÍÏÌÞÁÎÉÀ; ÏÎ ÓÏÏÂÝÁÅÔ Ï ÔÏÍ, ÞÔÏ ÜÔÏÔ ÐÁËÅÔ ÎÅ ÎÁÄÏ ÉÓÐÏÌØÚÏ×ÁÔØ. áÒÇÕÍÅÎÔ, ËÏÔÏÒÙÊ ÎÅ ÒÁ×ÅÎ ÎÉ yes, ÎÉ no, ÍÏÖÅÔ ×ËÌÀÞÁÔØ ÉÍÑ ÉÌÉ ÎÏÍÅÒ ×ÅÒÓÉÉ ÄÒÕÇÏÇÏ ÐÁËÅÔÁ, ÄÌÑ ÂÏÌÅÅ ÔÏÞÎÏÇÏ ÕËÁÚÁÎÉÑ, Ó ËÁËÉÍ ÐÁËÅÔÏÍ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ÐÒÅÄÐÏÌÁÇÁÅÔ ÒÁÂÏÔÁÔØ. åÓÌÉ ÁÒÇÕÍÅÎÔ ÎÅ ÚÁÄÁÎ, ÔÏ ÅÇÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÒÁ×ÎÏ yes. --without-PACKAGE ÜË×É×ÁÌÅÎÔÎÏ ×ÙÚÏ×Õ --with-PACKAGE=no.

óËÒÉÐÔÙ configure ÎÅ ×ÙÄÁÀÔ ÏÛÉÂÏË Ï ËÌÀÞÁÈ --with-PACKAGE, ËÏÔÏÒÙÅ ÏÎÉ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ. ôÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ÐÏÚ×ÏÌÑÅÔ ËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÄÅÒÅ×Ï ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ÓÏÄÅÒÖÁÝÅÅ ÍÎÏÖÅÓÔ×Ï ÐÁËÅÔÏ×, Ó ÐÏÍÏÝØÀ ÓËÒÉÐÔÁ configure ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ, ËÏÇÄÁ ÐÁËÅÔÙ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÒÁÚÎÙÅ ËÌÀÞÉ, ÂÅÚ ×ÙÄÁÞÉ ÆÁÌØÛÉ×ÙÈ ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ × ËÌÀÞÁÈ, ËÏÔÏÒÙÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÌÉÛØ ÎÅËÏÔÏÒÙÅ ÐÁËÅÔÙ.  ë ÓÏÖÁÌÅÎÉÀ, ÐÏÂÏÞÎÙÍ ÜÆÆÅËÔÏÍ ÜÔÏÇÏ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÏÛÉÂËÁ × ÚÁÄÁÎÉÉ ËÌÀÞÅÊ ÎÅ ÄÉÁÇÎÏÓÔÉÒÕÅÔÓÑ.  äÏ ÓÉÈ ÐÏÒ ÎÅ ÂÙÌÏ ÐÒÅÄÌÏÖÅÎÏ ÌÕÞÛÅÇÏ ÐÏÄÈÏÄÁ Ë ÒÅÛÅÎÉÀ ÜÔÏÊ ÐÒÏÂÌÅÍÙ.

äÌÑ ËÁÖÄÏÇÏ ÉÚ ×ÎÅÛÎÉÈ ÐÁËÅÔÏ×, ËÏÔÏÒÙÊ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎ × ÆÁÊÌÅ configure.in, ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚ×ÁÎ ÍÁËÒÏÓ AC_ARG_WITH ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÏÇÏ, ÚÁÓÔÁ×ÉÌ ÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ configure ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏÔ ÐÁËÅÔ. âÕÄÅÔ ÌÉ ÐÁËÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÌÉ ÎÅÔ, Á ÔÁËÖÅ ÔÏ, ËÁËÉÅ ÁÒÇÕÍÅÎÔÙ ÂÕÄÕÔ ÐÒÁ×ÉÌØÎÙ, ÚÁ×ÉÓÉÔ ÏÔ ×ÁÓ.

 -- Macro: AC_ARG_WITH (PACKAGE, HELP-STRING [, ACTION-IF-GIVEN [, ACTION-IF-NOT-GIVEN]])
     åÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÄÁÌ configure ËÌÀÞ --with-PACKAGE ÉÌÉ ËÌÀÞ --without-PACKAGE, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-GIVEN. åÓÌÉ ÎÉ ÏÄÉÎ ÉÚ ËÌÀÞÅÊ ÎÅ ÚÁÄÁÎ, ÔÏ ×ÙÐÏÌÎÑÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-NOT-GIVEN. éÍÑ PACKAGE ÚÁÄÁÅÔ ÄÒÕÇÏÊ ÐÁËÅÔ, Ó ËÏÔÏÒÙÍ ÄÏÌÖÎÁ ÒÁÂÏÔÁÔØ ÜÔÁ ÐÒÏÇÒÁÍÍÁ.  üÔÏ ÉÍÑ ÄÏÌÖÎÏ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÚÎÁËÉ ÍÉÎÕÓ.

     áÒÇÕÍÅÎÔ ËÌÀÞÁ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÉÚ ËÏÄÁ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-GIVEN × ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ withval, ËÏÔÏÒÙÊ × ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ Ñ×ÌÑÅÔÓÑ ÚÎÁÞÅÎÉÅÍ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ with_PACKAGE, Ó ÓÉÍ×ÏÌÁÍÉ -, ÚÁÍÅÎÅÎÎÙÍÉ ÎÁ ÓÉÍ×ÏÌ _.  íÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ, ÅÓÌÉ ÈÏÔÉÔÅ.

     áÒÇÕÍÅÎÔ HELP-STRING Ñ×ÌÑÅÔÓÑ ÏÐÉÓÁÎÉÅÍ ËÌÀÞÁ, ËÏÔÏÒÙÊ ×ÙÇÌÑÄÉÔ ÐÒÉÍÅÒÎÏ ÔÁË:

            --with-readline         support fancy command line editing

     HELP-STRING ÍÏÖÅÔ ÚÁÎÉÍÁÔØ ÂÏÌØÛÅ ÏÄÎÏÊ ÓÔÒÏËÉ, ÅÓÌÉ ÎÅÏÂÈÏÄÉÍÁ ÐÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ. ðÒÏÓÔÏ ÕÂÅÄÉÔÅÓØ, ÞÔÏ ÓÔÒÏËÁ ÒÁÚÄÅÌÅÎÁ ÎÁ ËÏÌÏÎËÉ × ×Ù×ÏÄÅ configure --help. éÚÂÅÇÁÊÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÉÍ×ÏÌÙ ÔÁÂÕÌÑÃÉÉ × ÓÔÒÏËÅ ÐÏÍÏÝÉ.  äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÏÈÒÁÎÉÔØ ÎÁÞÁÌØÎÙÅ ÐÒÏÂÅÌÙ, ÎÕÖÎÏ ÐÏÍÅÓÔÉÔØ ÓÔÒÏËÕ ÍÅÖÄÕ ÓÉÍ×ÏÌÁÍÉ [ É ].

 -- Macro: AC_WITH (PACKAGE, ACTION-IF-GIVEN [, ACTION-IF-NOT-GIVEN])
     üÔÏ ÕÓÔÁÒÅ×ÛÁÑ ×ÅÒÓÉÑ ÍÁËÒÏÓÁ AC_ARG_WITH, ËÏÔÏÒÁÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÓÔÒÏËÉ ÐÏÍÏÝÉ.

÷ÙÂÏÒ ËÌÀÞÅÊ ÐÁËÅÔÏ×
====================

åÓÌÉ ÐÁËÅÔ ÉÍÅÅÔ ÎÅÏÂÑÚÁÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÅ ÚÁÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ  ËÏÍÐÉÌÑÃÉÉ, ÔÏ ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÚÁÄÁÔØ configure ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÄÌÑ ÕËÁÚÁÎÉÑ--- ÎÕÖÎÏ ÌÉ ÉÈ ËÏÍÐÉÌÉÒÏ×ÁÔØ. ëÌÀÞÉ ÉÍÅÀÔ ÏÄÎÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÆÏÒÍ:

     --enable-FEATURE[=ARG]
     --disable-FEATURE

üÔÉ ËÌÀÞÉ ÐÏÚ×ÏÌÑÀÔ ÐÏÌØÚÏ×ÁÔÅÌÀ ×ÙÂÒÁÔØ, ËÁËÉÅ ÎÅÏÂÑÚÁÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÎÕÖÎÏ ÓÏÂÒÁÔØ É ÕÓÔÁÎÏ×ÉÔØ.  ëÌÀÞÉ --enable-FEATURE ÎÉËÏÇÄÁ ÎÅ ÄÏÌÖÎÙ ÐÒÉ×ÏÄÉÔØ Ë ÔÏÍÕ, ÞÔÏ ËÁËÏÅ-ÔÏ Ó×ÏÊÓÔ×Ï ÉÚÍÅÎÉÔ Ó×ÏÅ ÐÏ×ÅÄÅÎÉÅ, ÉÌÉ ÖÅ ÚÁÍÅÎÑÔØ ÏÄÎÕ ×ÏÚÍÏÖÎÏÓÔØ ÄÒÕÇÏÊ.   üÔÉ ËÌÀÞÉ ÄÏÌÖÎÙ ÔÏÌØËÏ ×ËÌÀÞÁÔØ ÉÌÉ ÎÅ ×ËÌÀÞÁÔØ ÞÁÓÔÉ ÐÒÏÇÒÁÍÍÙ × ÐÒÏÃÅÓÓ ËÏÍÐÉÌÑÃÉÉ.

ðÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÚÁÄÁÔØ ÁÒÇÕÍÅÎÔ, ËÏÔÏÒÙÊ ÓÌÅÄÕÅÔ ÚÁ ÉÍÅÎÅÍ Ó×ÏÊÓÔ×Á É ÚÎÁËÏÍ =.  åÓÌÉ ÚÁÄÁÔØ ÁÒÇÕÍÅÎÔ no, ÔÏ Ó×ÏÊÓÔ×Ï ÂÕÄÅÔ ÎÅÄÏÓÔÕÐÎÙÍ.  ó×ÏÊÓÔ×Ï Ó ÁÒÇÕÍÅÎÔÏÍ ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ ÐÒÉÍÅÒÎÏ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ: --enable-debug=stabs.  åÓÌÉ ÁÒÇÕÍÅÎÔÁ ÎÅ ÚÁÄÁÎÏ, ÔÏ ÚÎÁÞÅÎÉÅÍ ÐÏ ÕÍÏÌÞÁÎÉÀ Ñ×ÌÑÅÔÓÑ yes. --disable-FEATURE Ñ×ÌÑÅÔÓÑ ÜË×É×ÁÌÅÎÔÏÍ --enable-FEATURE=no.

óËÒÉÐÔÙ configure ÎÅ ×ÙÒÁÖÁÀÔ ÎÅÄÏ×ÏÌØÓÔ×Á ÐÏ ÐÏ×ÏÄÕ ËÌÀÞÅÊ --enable-FEATURE, ËÏÔÏÒÙÅ ÏÎÉ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ. ôÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ÐÏÚ×ÏÌÑÅÔ ËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÄÅÒÅ×Ï ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ÓÏÄÅÒÖÁÝÅÅ ÍÎÏÖÅÓÔ×Ï ÐÁËÅÔÏ×, Ó ÐÏÍÏÝØÀ ÓËÒÉÐÔÁ configure ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ, ËÏÇÄÁ ÐÁËÅÔÙ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÒÁÚÎÙÅ ËÌÀÞÉ, ÂÅÚ ×ÙÄÁÞÉ ÆÁÌØÛÉ×ÙÈ ÓÏÏÂÝÅÎÉÊ ÏÂ ÏÛÉÂËÁÈ Ï ËÌÀÞÁÈ, ËÏÔÏÒÙÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÔÏÌØËÏ ÎÅËÏÔÏÒÙÅ ÐÁËÅÔÙ.  ðÏÂÏÞÎÙÍ ÜÆÆÅËÔÏÍ ÜÔÏÇÏ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÏÛÉÂËÁ × ÚÁÄÁÎÉÉ ËÌÀÞÅÊ ÎÅ ÄÉÁÇÎÏÓÔÉÒÕÅÔÓÑ.  äÏ ÓÉÈ ÐÏÒ ÎÅ ÂÙÌÏ ÐÒÅÄÌÏÖÅÎÏ ÌÕÞÛÅÇÏ ÐÏÄÈÏÄÁ Ë ÒÅÛÅÎÉÀ ÜÔÏÊ ÐÒÏÂÌÅÍÙ.

äÌÑ ËÁÖÄÏÊ ÉÚ ÎÅÏÂÑÚÁÔÅÌØÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ configure.in ÄÏÌÖÅÎ ×ÙÚÙ×ÁÔØ AC_ARG_ENABLE ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ, ÚÁÐÒÏÓÉÌ ÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ configure ×ËÌÀÞÉÔØ ÜÔÕ ×ÏÚÍÏÖÎÏÓÔØ.  âÕÄÅÔ ÌÉ ÜÔÁ ×ÏÚÍÏÖÎÏÓÔØ ×ËÌÀÞÅÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÌÉ ÎÅÔ, É ËÁËÉÅ ÁÒÇÕÍÅÎÔÙ ÂÕÄÕÔ ÐÒÁ×ÉÌØÎÙÍÉ, ÚÁ×ÉÓÉÔ ÏÔ ×ÁÓ.

 -- Macro: AC_ARG_ENABLE (FEATURE, HELP-STRING [, ACTION-IF-GIVEN [, ACTION-IF-NOT-GIVEN]])
     åÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÄÁÌ configure ËÌÀÞ --enable-FEATURE ÉÌÉ --disable-FEATURE, ÔÏ ÚÁÐÕÓËÁÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-GIVEN. åÓÌÉ ÎÅ ÂÙÌ ÚÁÄÁÎ ÎÉ ÏÄÉÎ ËÌÀÞ, ÔÏ ÚÁÐÕÓËÁÀÔÓÑ ËÏÍÁÎÄÙ ACTION-IF-NOT-GIVEN.  éÍÑ FEATURE ÕËÁÚÙ×ÁÅÔ ÎÅÏÂÑÚÁÔÅÌØÎÕÀ ×ÏÚÍÏÖÎÏÓÔØ, ËÏÔÏÒÕÀ ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ×ËÌÀÞÉÔØ ÉÌÉ ×ÙËÌÀÞÉÔØ.  éÍÑ ÄÏÌÖÎÏ ÓÏÓÔÏÑÔØ ÔÏÌØËÏ ÉÚ ÂÕË×, ÃÉÆÒ É ÚÎÁËÏ× "ÍÉÎÕÓ".

     áÒÇÕÍÅÎÔ ËÌÀÞÁ ÄÏÓÔÕÐÅÎ ÉÚ ËÏÄÁ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ACTION-IF-GIVEN × ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ enableval, ËÏÔÏÒÁÑ × ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ Ñ×ÌÑÅÔÓÑ ÚÎÁÞÅÎÉÅÍ ÐÅÒÅÍÅÎÎÏÊ enable_FEATURE, ÐÒÉÞÅÍ ÓÉÍ×ÏÌÙ  - ÚÁÍÅÎÅÎÙ ÎÁ ÓÉÍ×ÏÌ _.  åÓÌÉ ÈÏÔÉÔÅ, ÔÏ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ. áÒÇÕÍÅÎÔ HELP-STRING ÄÅÌÁÅÔ ÔÏ ÖÅ ÓÁÍÏÅ, ÞÔÏ É ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÁÒÇÕÍÅÎÔ ÍÁËÒÏÓÁ AC_ARG_WITH (see ÷ÎÅÛÎÅÅ ðï).

 -- Macro: AC_ENABLE (FEATURE, ACTION-IF-GIVEN [, ACTION-IF-NOT-GIVEN])
     üÔÏ ÕÓÔÁÒÅ×ÛÁÑ ×ÅÒÓÉÑ AC_ARG_ENABLE, ËÏÔÏÒÁÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÓÔÒÏËÉ ÐÏÍÏÝÉ.

äÅÔÁÌÉ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ
=============================

îÅËÏÔÏÒÙÅ ÐÁËÅÔÙ ÐÒÏÇÒÁÍÍ ÔÒÅÂÕÀÔ ÓÌÏÖÎÏÊ ÓÐÅÃÉÆÉÞÅÓËÏÊ ÄÌÑ ÍÁÛÉÎÙ ÉÎÆÏÒÍÁÃÉÉ.  îÁÐÒÉÍÅÒ, ÜÔÏ ÉÍÅÎÁ ÍÁÛÉÎ, ÐÒÅÄÏÓÔÁ×ÌÑÀÝÉÈ ËÁËÉÅ-ÌÉÂÏ ÓÅÒ×ÉÓÙ, ÉÍÅÎÁ ËÏÍÐÁÎÉÊ, Á ÔÁËÖÅ ÜÌÅËÔÒÏÎÎÙÅ ÐÏÞÔÏ×ÙÅ ÁÄÒÅÓÁ, ÐÏ ËÏÔÏÒÙÍ ÍÏÖÎÏ Ó×ÑÚÁÔØÓÑ Ó ËÁËÉÍÉ-ÔÏ ÌÀÄØÍÉ. ðÏÓËÏÌØËÕ ÎÅËÏÔÏÒÙÅ ÓËÒÉÐÔÙ, ÓÏÚÄÁÎÎÙÅ Metaconfig, ÚÁÐÒÁÛÉ×ÁÀÔ ÜÔÕ ÉÎÆÏÒÍÁÃÉÀ ÉÎÔÅÒÁËÔÉ×ÎÏ, ÔÏ ÌÀÄÉ ÞÁÓÔÏ ÓÐÒÁÛÉ×ÁÀÔ, ËÁË ÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÜÔÕ ÉÎÆÏÒÍÁÃÉÀ × Autoconf-ÓËÒÉÐÔÁÈ, ËÏÔÏÒÙÅ ÎÅ Ñ×ÌÑÀÔÓÑ ÉÎÔÅÒÁËÔÉ×ÎÙÍÉ.

ôÁËÁÑ ÉÎÆÏÒÍÁÃÉÑ ÐÏ ËÏÎÆÉÇÕÒÁÃÉÉ ÍÁÛÉÎÙ ÄÏÌÖÎÁ ÂÙÔØ ÐÏÍÅÝÅÎÁ × ÆÁÊÌ, ÒÅÄÁËÔÉÒÕÅÍÙÊ ÔÏÌØËÏ ÌÀÄØÍÉ, Á ÎÅ ÐÒÏÇÒÁÍÍÁÍÉ. æÁÊÌ ÍÏÖÅÔ ÒÁÓÐÏÌÁÇÁÔØÓÑ ÌÉÂÏ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÚÎÁÞÅÎÉÑ ÉÓÐÏÌØÚÕÅÍÏÊ ÐÅÒÅÍÅÎÎÏÊ prefix, ÌÉÂÏ ÎÁÈÏÄÉÔØÓÑ × ÓÔÁÎÄÁÒÔÎÏÍ ÍÅÓÔÅ, ÎÁÐÒÉÍÅÒ, × ÄÏÍÁÛÎÅÍ ËÁÔÁÌÏÇÅ ÐÏÌØÚÏ×ÁÔÅÌÑ.  ïÎ ÄÁÖÅ ÍÏÖÅÔ ÂÙÔØ ÕËÁÚÁÎ × ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ. ðÒÏÇÒÁÍÍÁ ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏÔ ÆÁÊÌ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ, Á ÎÅ ×Ï ×ÒÅÍÑ ËÏÍÐÉÌÑÃÉÉ. îÁÓÔÒÏÊËÁ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ Ñ×ÌÑÅÔÓÑ ÂÏÌÅÅ ÕÄÏÂÎÏÊ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ É ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ÎÁÓÔÒÏÊËÉ ÂÏÌÅÅ ÐÒÏÓÔÙÍ, ÞÅÍ ÐÏÌÕÞÅÎÉÅ ÉÎÆÏÒÍÁÃÉÉ ×Ï ×ÒÅÍÑ ÐÒÏÃÅÓÓÁ ËÏÎÆÉÇÕÒÁÃÉÉ.  See Variables for Installation Directories (GNU Coding Standards), ÇÄÅ ÏÐÉÓÁÎÏ, ÇÄÅ ÉÍÅÎÎÏ ÎÅÏÂÈÏÄÉÍÏ ÒÁÚÍÅÝÁÔØ ÆÁÊÌÙ ÄÁÎÎÙÈ.

ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÍÅÎ ÐÒÏÇÒÁÍÍ ÐÒÉ ÕÓÔÁÎÏ×ËÅ
==========================================

Autoconf ÐÏÄÄÅÒÖÉ×ÁÅÔ ÉÚÍÅÎÅÎÉÅ ÉÍÅÎ ÐÒÏÇÒÁÍÍ ÐÒÉ ÉÈ ÕÓÔÁÎÏ×ËÅ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ, × ÆÁÊÌÅ configure.in ÄÏÌÖÅÎ ÂÙÔØ ×ÙÚÏ× ÍÁËÒÏÓÁ AC_ARG_PROGRAM.

 -- Macro: AC_ARG_PROGRAM
     ðÏÍÅÝÁÅÔ × ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ program_transform_name ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÏÍÁÎÄ sed, ÉÓÐÏÌØÚÕÅÍÙÈ ÄÌÑ ÉÚÍÅÎÅÎÉÑ ÉÍÅÎ ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÙÈ ÐÒÏÇÒÁÍÍ.

     åÓÌÉ ÐÒÉ ÚÁÐÕÓËÅ configure ÚÁÄÁÎ ÌÀÂÏÊ ÉÚ ÎÉÖÅÏÐÉÓÁÎÎÙÈ ËÌÀÞÅÊ, ÔÏ ÉÍÅÎÁ ÐÒÏÇÒÁÍÍ ÉÚÍÅÎÑÀÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÏÂÒÁÚÏÍ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÂÙÌ ×ÙÚ×ÁÎ ÍÁËÒÏÓ AC_CANONICAL_SYSTEM É ÚÎÁÞÅÎÉÅ, ÚÁÄÁÎÎÏÅ Ó ÐÏÍÏÝØÀ ËÌÀÞÁ --target ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÔÉÐÁ ÍÁÛÉÎÙ, (ÕËÁÚÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÌÀÞÁ --host ÉÌÉ ÔÉÐÁ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÏÐÒÅÄÅÌÅÎÎÏÇÏ Ó ÐÏÍÏÝØÀ config.sub), ÔÏ × ËÁÞÅÓÔ×Å ÐÒÅÆÉËÓÁ ÉÍÅÎÉ ÉÓÐÏÌØÚÕÅÔÓÑ ÔÉÐ ÃÅÌÅ×ÏÊ ÍÁÛÉÎÙ É ÄÅÆÉÓ.  åÓÌÉ ÎÅ ÚÁÄÁÎÏ ÎÉ ÔÏÇÏ, ÎÉ ÄÒÕÇÏÇÏ, ÔÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÍÅÎ ÎÅ ×ÙÐÏÌÎÑÅÔÓÑ.

ëÌÀÞÉ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ
--------------------

÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÍÅÎ, ÚÁÐÕÓÔÉ× configure ÓÏ ÓÌÅÄÕÀÝÉÍÉ ËÌÀÞÁÍÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--program-prefix=PREFIX
     ÄÏÂÁ×ÌÑÅÔ ÐÒÅÆÉËÓ PREFIX Ë ÉÍÅÎÁÍ;

--program-suffix=SUFFIX
     ÄÏÂÁ×ÌÑÅÔ Ë ÉÍÅÎÁÍ ÓÕÆÆÉËÓ SUFFIX;

--program-transform-name=EXPRESSION
     ×ÙÐÏÌÎÑÅÔ ÐÏÄÓÔÁÎÏ×ËÉ sed EXPRESSION ÄÌÑ ÉÍÅÎ ÐÒÏÇÒÁÍÍ.

ðÒÉÍÅÒÙ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ
----------------------

üÔÉ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÐÏÌÅÚÎÙ ÐÒÉ ÒÁÂÏÔÅ Ó ÐÒÏÇÒÁÍÍÁÍÉ, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÞÁÓÔØÀ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÏÎÎÏÊ ÓÒÅÄÙ ÒÁÚÒÁÂÏÔËÉ. îÁÐÒÉÍÅÒ, ËÒÏÓÓ-ÁÓÓÅÍÂÌÅÒ, ÚÁÐÕÓËÁÅÍÙÊ ÎÁ Sun 4 É ÎÁÓÔÒÏÅÎÎÙÊ Ó ËÌÀÞÏÍ --target=i960-vxworks ÏÂÙÞÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ËÁË i960-vxworks-as, Á ÎÅ ËÁË as, ÉÎÁÞÅ ÅÇÏ ÍÏÖÎÏ ÐÅÒÅÐÕÔÁÔØ Ó ÒÏÄÎÙÍ ÁÓÓÅÍÂÌÅÒÏÍ Sun 4.

íÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË, ÞÔÏÂÙ ÉÍÅÎÁ ÐÒÏÇÒÁÍÍ ÎÁÞÉÎÁÌÉÓØ Ó ÓÉÍ×ÏÌÁ g, ÅÓÌÉ ÎÅ ÈÏÔÉÔÅ, ÞÔÏÂÙ ÐÒÏÇÒÁÍÍÙ GNU, ÕÓÔÁÎÏ×ÌÅÎÎÙÅ × ÓÉÓÔÅÍÅ, ÚÁÓÌÏÎÑÌÉ ÓÏÂÏÊ ÄÒÕÇÉÅ ÕÔÉÌÉÔÙ Ó ÔÅÍ ÖÅ ÉÍÅÎÅÍ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ×Ù ÎÁÓÔÒÁÉ×ÁÅÔÅ ÐÒÏÇÒÁÍÍÕ GNU diff Ó ËÌÀÞÏÍ --program-prefix=g, ÔÏ ÚÁÔÅÍ ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ make install É ÐÒÏÇÒÁÍÍÁ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎÁ ËÁË /usr/local/bin/gdiff.

÷ ËÁÞÅÓÔ×Å ÂÏÌÅÅ ÉÚÏÝÒÅÎÎÏÇÏ ÐÒÉÍÅÒÁ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ

     --program-transform-name='s/^/g/; s/^gg/g/; s/^gless/less/'

ÄÌÑ ÄÏÂÁ×ÌÅÎÉÑ ÓÉÍ×ÏÌÁ g Ë ÂÏÌØÛÉÎÓÔ×Õ ÉÍÅÎ ÐÒÏÇÒÁÍÍ × ÄÅÒÅ×Å ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÐÒÏÇÒÁÍÍ ÔÉÐÁ gdb, ÞØÉ ÉÍÅÎÁ ÕÖÅ ÎÁÞÉÎÁÀÔÓÑ Ó ÜÔÏÇÏ ÓÉÍ×ÏÌÁ, É ÚÁ ÉÓËÌÀÞÅÎÉÅÍ less É lesskey, ËÏÔÏÒÙÅ ÎÅ Ñ×ÌÑÀÔÓÑ ÐÒÏÇÒÁÍÍÁÍÉ GNU. (ðÒÅÄÐÏÌÁÇÁÅÔÓÑ, ÞÔÏ ÄÅÒÅ×Ï ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ÓÏÄÅÒÖÁÝÅÅ ÜÔÉ ÐÒÏÇÒÁÍÍÙ, ÕÖÅ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÎÏ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÔÏÊ ×ÏÚÍÏÖÎÏÓÔÉ).

ïÄÎÉÍ ÉÚ ÓÐÏÓÏÂÏ× ÏÄÎÏ×ÒÅÍÅÎÎÏÊ ÕÓÔÁÎÏ×ËÉ ÎÅÓËÏÌØËÉÈ ×ÅÒÓÉÊ ÎÅËÏÔÏÒÙÈ ÐÒÏÇÒÁÍÍ Ñ×ÌÑÅÔÓÑ ÄÏÂÁ×ÌÅÎÉÅ ÎÏÍÅÒÁ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ Ë ÉÍÅÎÉ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÓÏÈÒÁÎÉÔØ ÄÌÑ ÄÁÌØÎÅÊÛÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Autoconf ×ÅÒÓÉÉ 1, ÔÏ ×Ù ÍÏÖÅÔÅ ÎÁÓÔÒÏÉÔØ Autoconf ×ÅÒÓÉÉ 2 Ó ÐÏÍÏÝØÀ ËÌÀÞÁ --program-suffix=2 ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÒÏÇÒÁÍÍÙ ÂÙÌÉ ÕÓÔÁÎÏ×ÌÅÎÙ ÐÏÄ ÉÍÅÎÁÍÉ /usr/local/bin/autoconf2, /usr/local/bin/autoheader2 É Ô. Ð.

ðÒÁ×ÉÌÁ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ
----------------------

÷ÏÔ ËÁË ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÅÒÅÍÅÎÎÕÀ  program_transform_name × Makefile.in:

     transform=@program_transform_name@
     install: all
             $(INSTALL_PROGRAM) myprog $(bindir)/`echo myprog|sed '$(transform)'`

     uninstall:
             rm -f $(bindir)/`echo myprog|sed '$(transform)'`

åÓÌÉ Õ ×ÁÓ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÂÏÌØÛÅ ÏÄÎÏÊ ÐÒÏÇÒÁÍÍÙ, ÔÏ ×Ù ÍÏÖÅÔÅ ×ÙÐÏÌÎÑÔØ ÔÕ ÖÅ ÏÐÅÒÁÃÉÀ × ÃÉËÌÅ:

     PROGRAMS=cp ls rm
     install:
             for p in $(PROGRAMS); do \
               $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
             done

     uninstall:
             for p in $(PROGRAMS); do \
               rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
             done

ðÒÅÏÂÒÁÚÏ×Ù×ÁÔØ ÌÉ ÉÍÅÎÁ ÆÁÊÌÏ× ÄÏËÕÍÅÎÔÁÃÉÉ (Texinfo ÉÌÉ man) -- ÓÌÏÖÎÙÊ ×ÏÐÒÏÓ.  ëÁÖÅÔÓÑ, ÎÁ ÎÅÇÏ ÎÅÔ ÅÄÉÎÓÔ×ÅÎÎÏÇÏ ÏÔ×ÅÔÁ, ÐÏÔÏÍÕ ÞÔÏ ÄÌÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÉÍÅÎ ÅÓÔØ ÎÅÓËÏÌØËÏ ÐÒÉÞÉÎ.  þÁÓÔÏ ÄÏËÕÍÅÎÔÁÃÉÑ ÎÅ Ñ×ÌÑÅÔÓÑ ÓÐÅÃÉÆÉÞÅÓËÏÊ ÄÌÑ ËÏÎËÒÅÔÎÏÊ ÁÒÈÉÔÅËÔÕÒÙ, Á ÆÁÊÌÙ Texinfo ÎÅ ËÏÎÆÌÉËÔÕÀÔ Ó ÓÉÓÔÅÍÎÏÊ ÄÏËÕÍÅÎÔÁÃÉÅÊ. îÏ ÜÔÉ ÆÁÊÌÙ ÉÎÏÇÄÁ ÍÏÇÕÔ ËÏÎÆÌÉËÔÏ×ÁÔØ Ó ÒÁÎÎÉÍÉ ×ÅÒÓÉÑÍÉ ÔÅÈ ÖÅ ÆÁÊÌÏ×, Á ÓÔÒÁÎÉÃÙ man ÉÎÏÇÄÁ ÍÏÇÕÔ ËÏÎÆÌÉËÔÏ×ÁÔØ Ó ÓÉÓÔÅÍÎÏÊ ÄÏËÕÍÅÎÔÁÃÉÅÊ. ÷ ËÁÞÅÓÔ×Å ËÏÍÐÒÏÍÉÓÓÁ, ÍÏÖÎÏ ×ÙÐÏÌÎÑÔØ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÉÍÅÎ ÓÔÒÁÎÉÃ man, ÎÏ ÎÅ ÒÕËÏ×ÏÄÓÔ× × ÆÏÒÍÁÔÅ Texinfo.

õÓÔÁÎÏ×ËÁ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÍÁÛÉÎÙ
==========================================

óÏÚÄÁÎÎÙÅ Autoconf ÓËÒÉÐÔÙ configure ÐÏÚ×ÏÌÑÀÔ ×ÁÍ ÚÁÄÁÔØ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÎÅËÏÔÏÒÙÈ ÐÁÒÁÍÅÔÒÏ× ÎÁÓÔÒÏÊËÉ. ÷Ù ÍÏÖÅÔÅ ÓÄÅÌÁÔØ ÜÔÏ, ÓÏÚÄÁ×ÁÑ ÆÁÊÌÙ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÄÌÑ ÍÁÛÉÎÙ É ÄÌÑ ÃÅÌÏÊ ÓÉÓÔÅÍÙ.

åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÁ ÐÅÒÅÍÅÎÎÁÑ ÓÒÅÄÙ CONFIG_SITE, ÔÏ configure ÉÓÐÏÌØÚÕÅÔ ÅÅ ÚÎÁÞÅÎÉÅ ËÁË ÉÍÑ ÓËÒÉÐÔÁ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÊ ÎÅÏÂÈÏÄÉÍÏ ×ÙÐÏÌÎÉÔØ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎ ÓÞÉÔÙ×ÁÅÔ ÓËÒÉÐÔ PREFIX/share/config.site, ÅÓÌÉ ÔÏÔ ÓÕÝÅÓÔ×ÕÅÔ, Á ÚÁÔÅÍ ÓËÒÉÐÔ PREFIX/etc/config.site, ÔÁËÖÅ ÅÓÌÉ ÏÎ ÓÕÝÅÓÔ×ÕÅÔ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÓÐÅÃÉÆÉÞÅÓËÉÅ ÄÌÑ ÍÁÛÉÎÙ ÆÁÊÌÙ ÐÅÒÅËÒÙ×ÁÀÔ ÎÁÓÔÒÏÊËÉ × ÍÁÛÉÎÎÏ-ÎÅÚÁ×ÉÓÉÍÙÈ ÆÁÊÌÁÈ × ÓÌÕÞÁÅ ËÏÎÆÌÉËÔÁ.

æÁÊÌÙ ÎÁÓÔÒÏÅË ÍÁÛÉÎÙ ÍÏÇÕÔ ÂÙÔØ ÐÒÏÉÚ×ÏÌØÎÙÍÉ ÓËÒÉÐÔÁÍÉ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÎÏ ÒÅÁÌØÎÏ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ × ÎÉÈ ÍÏÇÕÔ ÔÏÌØËÏ ÏÐÒÅÄÅÌÅÎÎÙÅ ÓÔÒÏËÉ ËÏÄÁ.  ðÏÓËÏÌØËÕ configure ÓÞÉÔÙ×ÁÅÔ ËÜÛ-ÆÁÊÌÙ ÐÏÓÌÅ ÔÏÇÏ, ËÁË ÏÎ ÓÞÉÔÙ×ÁÅÔ ÆÁÊÌÙ ÎÁÓÔÒÏÊËÉ ÍÁÛÉÎÙ, ÔÏ ÆÁÊÌ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ ÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ ËÜÛ-ÆÁÊÌ ÐÏ ÕÍÏÌÞÁÎÉÀ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÏÂÝÉÍ ÄÌÑ ×ÓÅÈ ÚÁÐÕÓËÁÅÍÙÈ × ÓÉÓÔÅÍÅ ÓËÒÉÐÔÏ× configure, ËÏÔÏÒÙÅ ÓÏÚÄÁÎÙ Ó ÐÏÍÏÝØÀ Autoconf. åÓÌÉ ×Ù ÕÓÔÁÎÏ×ÉÔÅ ËÜÛ-ÆÁÊÌ ÐÏ ÕÍÏÌÞÁÎÉÀ × ÆÁÊÌÅ ÌÏËÁÌØÎÏÊ ÎÁÓÔÒÏÊËÉ, ÔÏ ÈÏÒÏÛÏ ÂÙÌÏ ÂÙ ÕÓÔÁÎÏ×ÉÔØ ÔÁËÖÅ ×ÙÈÏÄÎÕÀ ÐÅÒÅÍÅÎÎÕÀ CC, ÐÏÓËÏÌØËÕ ËÜÛ-ÆÁÊÌ Ñ×ÌÑÅÔÓÑ ÐÒÁ×ÉÌØÎÙÍ ÔÏÌØËÏ ÄÌÑ ÏÐÒÅÄÅÌÅÎÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ, Á ÍÎÏÇÉÅ ÓÉÓÔÅÍÙ ÉÍÅÀÔ ÎÅÓËÏÌØËÏ ËÏÍÐÉÌÑÔÏÒÏ×.

÷ ÆÁÊÌÅ ÌÏËÁÌØÎÙÈ ÎÁÓÔÒÏÅË ×Ù ÍÏÖÅÔÅ ÐÒÏ×ÅÒÑÔØ ÉÌÉ ÉÚÍÅÎÑÔØ ÚÎÁÞÅÎÉÑ ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÚÁÄÁÎÎÙÈ ÓËÒÉÐÔÕ configure; ËÌÀÞÉ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÐÅÒÅÍÅÎÎÙÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÅ ÎÁÚÙ×ÁÀÔÓÑ ÔÁË ÖÅ, ËÁË É ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÎÏ Ó ÓÉÍ×ÏÌÁÍÉ ÄÅÆÉÓÁ, ÚÁÍÅÎÅÎÎÙÍÉ ÎÁ ÓÉÍ×ÏÌÙ ÐÏÄÞÅÒËÉ×ÁÎÉÑ. éÓËÌÀÞÅÎÉÅÍ ÉÚ ÜÔÏÇÏ ÐÒÁ×ÉÌÁ Ñ×ÌÑÀÔÓÑ ËÌÀÞÉ --without- É --disable-, ËÏÔÏÒÙÅ ÐÏÄÏÂÎÙ ÚÁÄÁÎÉÀ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ËÌÀÞÅÊ --with- ÉÌÉ --enable- ÓÏ ÚÎÁÞÅÎÉÅÍ no.  ôÁËÉÍ ÏÂÒÁÚÏÍ, --cache-file=localcache ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ cache_file × ÚÎÁÞÅÎÉÅ localcache; --enable-warnings=no ÉÌÉ --disable-warnings ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÐÅÒÅÍÅÎÎÕÀ enable_warnings ÒÁ×ÎÏÊ ÚÎÁÞÅÎÉÀ no; --prefix=/usr ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ prefix ÒÁ×ÎÏÊ /usr; É Ô. Ð.

÷ ÆÁÊÌÁÈ ÌÏËÁÌØÎÙÈ ÎÁÓÔÒÏÅË ÔÁËÖÅ ÍÏÖÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ÎÅÓÔÁÎÄÁÒÔÎÙÅ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÄÒÕÇÉÈ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ, ÔÁËÉÈ ËÁË CFLAGS: ÉÎÁÞÅ ×ÁÍ ÐÒÉÛÌÏÓØ ÂÙ ÄÅÌÁÔØ ÜÔÏ ÓÎÏ×Á É ÓÎÏ×Á × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ.  åÓÌÉ ×Ù ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÅ ÎÅÓÔÁÎÄÁÒÔÎÙÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ÐÅÒÅÍÅÎÎÙÈ PREFIX ÉÌÉ EXEC_PREFIX (ËÏÔÏÒÙÅ ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÕËÁÚÁÎÉÑ ÆÁÊÌÁ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ), ÔÏ ×ÓÅ ÒÁ×ÎÏ ÍÏÖÎÏ ÚÁÄÁÔØ ÜÔÉ ÚÎÁÞÅÎÉÑ × ÜÔÏÍ ÆÁÊÌÅ, ÅÓÌÉ ÕËÁÚÁÔØ ÅÇÏ ÉÍÑ × ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ CONFIG_SITE.

÷Ù ÍÏÖÅÔÅ ÓÁÍÉ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÑ ÎÅËÏÔÏÒÙÈ ËÜÛ-ÐÅÒÅÍÅÎÎÙÈ × ÆÁÊÌÅ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ.  üÔÏ ÐÏÌÅÚÎÏ ÄÅÌÁÔØ ÐÒÉ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ, ÐÏÓËÏÌØËÕ ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÐÒÏ×ÅÒÉÔØ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÅ ÔÒÅÂÕÀÔ ÚÁÐÕÓËÁ ÔÅÓÔÏ×ÙÈ ÐÒÏÇÒÁÍÍ. ÷Ù ÍÏÖÅÔÅ ``ÚÁÐÏÌÎÉÔØ ËÜÛ'' ÕÓÔÁÎÏ×ËÏÊ ÜÔÉÈ ÚÎÁÞÅÎÉÊ ÄÌÑ ÜÔÉÈ ÓÉÓÔÅÍ × ÆÁÊÌÅ PREFIX/etc/config.site. äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÉÍÅÎ ËÜÛ-ÐÅÒÅÍÅÎÎÙÈ, ËÏÔÏÒÙÅ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕÓÔÁÎÏ×ÉÔØ, ÐÏÉÝÉÔÅ ÐÅÒÅÍÅÎÎÙÅ Ó ÉÍÅÎÁÍÉ, ÓÏÄÅÒÖÁÝÉÍÉ _cv_ × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÓËÒÉÐÔÁÈ configure ÉÌÉ × ÉÓÈÏÄÎÏÍ ËÏÄÅ m4 ÍÁËÒÏÓÏ× Autoconf.

ëÜÛ-ÆÁÊÌ ÎÅ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ÎÉ ÏÄÎÕ ÐÅÒÅÍÅÎÎÕÀ, ÕÓÔÁÎÏ×ÌÅÎÎÕÀ × ÆÁÊÌÁÈ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ.  óÈÏÄÎÙÍ ÏÂÒÁÚÏÍ ×Ù ÎÅ ÄÏÌÖÎÙ ÐÅÒÅÏÐÒÅÄÅÌÑÔØ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ × ÆÁÊÌÁÈ ÌÏËÁÌØÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ.  ÷ÁÛ ËÏÄ ÄÏÌÖÅÎ ÐÒÏ×ÅÒÑÔØ, ÉÍÅÀÔ ÌÉ ÕÖÅ ÐÅÒÅÍÅÎÎÙÅ ÔÉÐÁ prefix ÉÌÉ cache_file ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ (ÕÓÔÁÎÏ×ÌÅÎÎÙÅ ÒÁÎÅÅ × ÐÒÏÃÅÓÓÅ ×ÙÐÏÌÎÅÎÉÑ configure), É ÅÓÌÉ ÄÁ, ÔÏ ÎÅ ÉÚÍÅÎÑÔØ ÜÔÉÈ ÚÎÁÞÅÎÉÊ.

÷ÏÔ ÐÒÉÍÅÒ ÆÁÊÌÁ /usr/share/local/gnu/share/config.site. ëÏÍÁÎÄÁ configure --prefix=/usr/share/local/gnu ÄÏÌÖÎÁ ÐÒÏÞÉÔÁÔØ ÜÔÏÔ ÆÁÊÌ (ÅÓÌÉ ÐÅÒÅÍÅÎÎÁÑ CONFIG_SITE ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × ÄÒÕÇÏÅ ÚÎÁÞÅÎÉÅ).

     # config.site ÄÌÑ configure
     #
     # ÉÚÍÅÎÅÎÉÅ ÎÅËÏÔÏÒÙÈ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ.
     test "$prefix" = NONE && prefix=/usr/share/local/gnu
     test "$exec_prefix" = NONE && exec_prefix=/usr/local/gnu
     test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
     test "$localstatedir" = '${prefix}/var' && localstatedir=/var
     #
     # ÒÁÚÒÅÛÉÔØ ÓËÒÉÐÔÁÍ, ÓÏÚÄÁÎÎÙÍ Autoconf 2.x, ÐÏÌØÚÏ×ÁÔØÓÑ ÏÂÝÉÍ ËÜÛ-ÆÁÊÌÏÍ
     # ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÒÅÚÕÌØÔÁÔÏ× ÔÅÓÔÏ×, ËÏÔÏÒÙÅ ÄÅÊÓÔ×ÉÔÅÌØÎÙ ÄÌÑ ÄÁÎÎÏÊ
     # ÁÒÈÉÔÅËÔÕÒÙ.
     if test "$cache_file" = ./config.cache; then
       cache_file="$prefix/var/config.cache"
       # ëÜÛ-ÆÁÊÌ ÄÅÊÓÔ×ÉÔÅÌÅÎ ÔÏÌØËÏ ÄÌÑ ÏÄÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ C.
       CC=gcc
     fi

úÁÐÕÓË ÓËÒÉÐÔÏ× configure
*************************

îÉÖÅ ÎÁÈÏÄÑÔÓÑ ÒÅËÏÍÅÎÄÁÃÉÉ ÐÏ ÎÁÓÔÒÏÊËÅ ÐÁËÅÔÁ, ÉÓÐÏÌØÚÕÀÝÅÇÏ ÓËÒÉÐÔ configure.  üÔÉ ÒÅËÏÍÅÎÄÁÃÉÉ ÍÏÖÎÏ ×ËÌÀÞÉÔØ × ÆÁÊÌ INSTALL ×ÁÛÅÇÏ ÐÁËÅÔÁ.  ôÅËÓÔÏ×ÁÑ ×ÅÒÓÉÑ ÆÁÊÌÁ INSTALL, ËÏÔÏÒÕÀ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ, ÐÏÓÔÁ×ÌÑÅÔÓÑ Ó Autoconf.

ðÒÏÓÔÁÑ ÕÓÔÁÎÏ×ËÁ
=================

÷ÏÔ ÏÓÎÏ×ÎÙÅ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ.

óËÒÉÐÔ configure ÐÙÔÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ ÐÒÁ×ÉÌØÎÙÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ÒÁÚÌÉÞÎÙÈ, ÚÁ×ÉÓÑÝÉÈ ÏÔ ÓÉÓÔÅÍÙ ÐÅÒÅÍÅÎÎÙÈ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ × ÐÒÏÃÅÓÓÅ ÕÓÔÁÎÏ×ËÉ. ïÎ ÉÓÐÏÌØÚÕÅÔ ÜÔÉ ÐÅÒÅÍÅÎÎÙÅ ÄÌÑ ÓÏÚÄÁÎÉÑ ÆÁÊÌÏ× Makefile × ËÁÖÄÏÍ ÉÚ ËÁÔÁÌÏÇÏ× ÐÁËÅÔÁ. ÏÎ ÔÁËÖÅ ÍÏÖÅÔ ÓÏÚÄÁ×ÁÔØ ÏÄÉÎ ÉÌÉ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× .h ÓÏÄÅÒÖÁÝÉÈ ÚÁ×ÉÓÑÝÉÅ ÏÔ ÓÉÓÔÅÍÙ ÏÐÒÅÄÅÌÅÎÉÑ. ÷ ÚÁËÌÀÞÅÎÉÅ, ÏÎ ÓÏÚÄÁÅÔ ÓËÒÉÐÔ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ Ó ÉÍÅÎÅÍ config.status, ËÏÔÏÒÙÊ ×Ù ÍÏÖÅÔÅ × ÄÁÌØÎÅÊÛÅÍ ÚÁÐÕÓËÁÔØ ÄÌÑ ×ÏÓÓÏÚÄÁÎÉÑ ÔÅËÕÝÅÊ ÎÁÓÔÒÏÊËÉ, ÔÁËÖÅ ÓÏÚÄÁÅÔÓÑ ÆÁÊÌ config.cache, ËÏÔÏÒÙÊ ÓÏÈÒÁÎÑÅÔ ÒÅÚÕÌØÔÁÔÙ ÔÅÓÔÏ×, ÄÌÑ ÕÓËÏÒÅÎÉÑ ÐÅÒÅÎÁÓÔÒÏÊËÉ, É ÆÁÊÌ config.log, ÓÏÄÅÒÖÁÝÉÊ ×Ù×ÏÄ ËÏÍÐÉÌÑÔÏÒÁ (ÜÔÏÔ ÆÁÊÌ × ÏÓÎÏ×ÎÏÍ ÐÏÌÅÚÅÎ ÄÌÑ ÏÔÌÁÄËÉ configure).

åÓÌÉ ÄÌÑ ËÏÍÐÉÌÑÃÉÉ ÐÁËÅÔÁ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ×ÙÐÏÌÎÉÔØ ÎÅÔÒÉ×ÉÁÌØÎÙÅ ×ÅÝÉ, ÔÏ ÔÏ ÐÏÖÁÌÕÊÓÔÁ ÐÏÐÙÔÁÊÔÅÓØ ÏÐÒÅÄÅÌÉÔØ ËÁË configure ÍÏÇ ÂÙ ÐÒÏ×ÅÒÉÔØ ËÁË ×ÙÐÏÌÎÉÔØ ÉÈ, É ÚÁÔÅÍ ÐÏÛÌÉÔÅ diff-ÆÁÊÌ ÉÌÉ ÉÎÓÔÒÕËÃÉÉ ÎÁ ÁÄÒÅÓ, ÄÁÎÎÙÊ × ÆÁÊÌÅ README, ÔÁË ÞÔÏ ÏÎÉ ÍÏÇÕÔ ÂÙÔØ ÒÁÓÓÍÏÔÒÅÎÙ ÄÌÑ ×ËÌÀÞÅÎÉÑ × ÓÌÅÄÕÀÝÉÊ ×ÙÐÕÓË. åÓÌÉ × ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ config.cache ÓÏÄÅÒÖÉÔ ÒÅÚÕÌØÔÁÔÙ, ËÏÔÏÒÙÅ ×Ù ÎÅ ÈÏÔÉÔÅ ÈÒÁÎÉÔØ, ÔÏ ×Ù ÍÏÖÅÔÅ ÉÓÐÒÁ×ÉÔØ ÉÌÉ ÕÄÁÌÉÔØ ÅÇÏ.

æÁÊÌ configure.in ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÁ configure ÐÒÏÇÒÁÍÍÏÊ autoconf. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÍÅÔØ  configure.in ÔÏÌØËÏ, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ ÅÇÏ ÉÌÉ ÚÁÎÏ×Ï ÓÏÚÄÁÔØ ÓËÒÉÐÔ configure Ó ÐÏÍÏÝØÀ ÂÏÌÅÅ ÎÏ×ÏÊ ×ÅÒÓÉÉ autoconf.

îÁÉÂÏÌÅÅ ÐÒÏÓÔÙÍ ÓÐÏÓÏÂÏÍ ËÏÍÐÉÌÑÃÉÉ ÄÁÎÎÏÇÏ ÐÁËÅÔÁ Ñ×ÌÑÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ÄÅÊÓÔ×ÉÑ:

 1. ÐÅÒÅÊÄÉÔÅ × ËÁÔÁÌÏÇ, ÓÏÄÅÒÖÁÝÉÊ ÉÓÈÏÄÎÙÊ ËÏÄ ÐÁËÅÔÁ É ÎÁÂÅÒÉÔÅ ./configure × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÎÁÓÔÒÏÉÔØ ÐÁËÅÔ ÄÌÑ ×ÁÛÅÊ ÓÉÓÔÅÍÙ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ csh ÎÁ ÓÔÁÒÏÊ ×ÅÒÓÉÉ System V, ÔÏ ×ÁÍ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ ÎÁÂÒÁÔØ sh ./configure ×ÍÅÓÔÏ ÐÒÅÄÙÄÕÝÅÇÏ ÐÒÉÍÅÒÁ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÎÅ ÄÏÐÕÓÔÉÔØ ×ÙÐÏÌÎÅÎÉÑ ÄÁÎÎÏÇÏ ÓËÒÉÐÔÁ Ó ÐÏÍÏÝØÀ csh.

     òÁÂÏÔÁ configure ÚÁÊÍÅÔ ÎÅËÏÔÏÒÏÅ ×ÒÅÍÑ. ÷ ÔÅÞÅÎÉÉ ×ÙÐÏÌÎÅÎÉÑ ÓËÒÉÐÔ ×ÙÄÁÅÔ ÎÅËÏÔÏÒÙÅ ÓÏÏÂÝÅÎÉÑ, Ï ÔÏÍ ËÁËÉÅ Ó×ÏÊÓÔ×Á ÏÎ ÐÒÏ×ÅÒÑÅÔ.

 2. îÁÂÅÒÉÔÅ make ÄÌÑ ËÏÍÐÉÌÑÃÉÉ ÐÁËÅÔÁ.

 3. ÷Ù ÍÏÖÅÔÅ ÎÁÂÒÁÔØ make check ÄÌÑ ÚÁÐÕÓËÁ ÌÀÂÙÈ ÓÏÂÓÔ×ÅÎÎÙÈ ÔÅÓÔÏ×, ËÏÔÏÒÙÅ ÐÏÓÔÁ×ÌÑÀÔÓÑ ×ÍÅÓÔÅ Ó ÐÁËÅÔÏÍ.

 4. îÁÂÅÒÉÔÅ make install ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÐÒÏÇÒÁÍÍ É ÆÁÊÌÏ× ÄÁÎÎÙÈ É ÄÏËÕÍÅÎÔÁÃÉÉ.

 5. ×Ù ÍÏÖÅÔÅ ÕÄÁÌÉÔØ ÉÓÐÏÌÎÉÍÙÅ ÆÁÊÌÙ ÐÒÏÇÒÁÍÍ É ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ ÉÚ ËÁÔÁÌÏÇÁ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ ÐÁËÅÔÁ ÎÁÂÒÁ× make clean. äÌÑ ÕÄÁÌÅÎÉÑ ÆÁÊÌÏ× ÓÏÚÄÁÎÎÙÈ configure (ÔÁË ÞÔÏ ×Ù ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÐÁËÅÔ Ó ÐÏÍÏÝØÀ ÒÁÚÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ×), ÎÁÂÅÒÉÔÅ make distclean. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ÃÅÌØ make maintainer-clean, ÎÏ ÏÎÁ × ÏÓÎÏ×ÎÏÍ ÐÒÅÄÎÁÚÎÁÞÅÎÁ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ× ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÅÅ, ÔÏ ×Ù ÄÏÌÖÎÙ ÐÏÌÕÞÉÔØ ×ÓÅ ÄÒÕÇÉÅ ÐÒÏÇÒÁÍÍÙ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÏÂÎÏ×ÌÑÔØ ÆÁÊÌÙ, ËÏÔÏÒÙÅ ÐÏÓÔÁ×ÌÑÀÔÓÑ Ó ÄÉÓÔÒÉÂÕÔÉ×ÏÍ.

ëÏÍÐÉÌÑÔÏÒÙ É ËÌÀÞÉ
===================

îÅËÏÔÏÒÙÅ ÓÉÓÔÅÍÙ ÔÒÅÂÕÀÔ ÎÅÏÂÙÞÎÙÈ ËÌÀÞÅÊ ÄÌÑ ËÏÍÐÉÌÑÃÉÉ ÉÌÉ ËÏÍÐÏÎÏ×ËÉ, Ï ËÏÔÏÒÙÈ ÓËÒÉÐÔ configure ÐÒÏÓÔÏ ÎÅ ÚÎÁÅÔ. ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÎÁÞÁÌØÎÙÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ÐÅÒÅÍÅÎÎÙÈ configure ÕÓÔÁÎÏ×É× ÉÈ × ÓÒÅÄÅ. éÓÐÏÌØÚÕÑ ËÏÍÁÎÄÎÙÊ ÐÒÏÃÅÓÓÏÒ ÓÏ×ÍÅÓÔÉÍÙÊ Ó ÐÒÏÃÅÓÓÏÒÏÍ Bourne ×Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÜÔÉ ÐÅÒÅÍÅÎÎÙÅ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÐÏÄÏÂÎÏÊ ÜÔÏÊ:

     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure

ÉÌÉ × ÓÉÓÔÅÍÁÈ, × ËÏÔÏÒÙÈ ÉÍÅÅÔÓÑ ÐÒÏÇÒÁÍÍÁ env, ×Ù ÍÏÖÅÔÅ ×ÙÐÏÌÎÉÔØ ÓÌÅÄÕÀÝÉÊ ËÏÄ:

     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure

ëÏÍÐÉÌÑÃÉÑ ÄÌÑ ÎÅÓËÏÌØËÉÈ ÁÒÈÉÔÅËÔÕÒ
====================================

÷Ù ÍÏÖÅÔÅ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÐÁËÅÔ ÄÌÑ ÂÏÌÅÅ ÏÄÎÏÇÏ ÔÉÐÁ ËÏÍÐÉÌÑÔÏÒÁ, ÐÏÍÅÓÔÉ× ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÁÒÈÉÔÅËÔÕÒ × ÏÔÄÅÌØÎÙÊ ËÁÔÁÌÏÇ. äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÓÄÅÌÁÔØ ÜÔÏ, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÁËÕÀ ×ÅÒÓÉÀ ÐÒÏÇÒÁÍÍÙ make, ËÏÔÏÒÁÑ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÐÅÒÅÍÅÎÎÕÀ VPATH, ÎÁÐÒÉÍÅÒ, ÔÁËÕÀ ËÁË GNU make. ðÅÒÅÊÄÉÔÅ × ËÁÔÁÌÏÇ, × ËÏÔÏÒÙÊ ×Ù ÈÏÔÉÔÅ ÐÏÍÅÓÔÉÔØ ÏÂßÅËÔÎÙÅ É ÉÓÐÏÌÎÑÅÍÙÅ ÆÁÊÌÙ É ÚÁÐÕÓÔÉÔÅ ÏÔÔÕÄÁ ÓËÒÉÐÔ configure. configure Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÏ×ÅÒÉÔ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ × ËÁÔÁÌÏÇ, × ËÏÔÏÒÏÍ ÎÁÈÏÄÉÔÓÑ configure × ÔÁËÖÅ × ËÁÔÁÌÏÇÅ ...

åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÐÒÏÇÒÁÍÍÕ make, ËÏÔÏÒÁÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ VPATH, ÔÏ ×Ù ÄÏÌÖÎÙ ÏÄÎÏ×ÒÅÍÅÎÎÏ ËÏÍÐÉÌÉÒÏ×ÁÔØ ÐÒÏÇÒÁÍÍÕ ÔÏÌØËÏ ÄÌÑ ÏÄÎÏÊ ÁÒÈÉÔÅËÔÕÒÙ. ðÏÓÌÅ ÔÏÇÏ, ËÁË ×Ù ÕÓÔÁÎÏ×ÉÌÉ ÐÁËÅÔ ÄÌÑ ËÏÎËÒÅÔÎÏÊ ÁÒÈÉÔÅËÔÕÒÙ, ÉÓÐÏÌØÚÕÊÔÅ ÐÒÁ×ÉÌÏ make distclean ÄÏ ×ÙÐÏÌÎÅÎÉÑ ÎÁÓÔÒÏÊËÉ ÄÌÑ ÄÒÕÇÏÊ ÁÒÈÉÔÅËÔÕÒÙ.

éÍÅÎÁ ÄÌÑ ÕÓÔÁÎÏ×ËÉ
===================

ðÏ ÕÍÏÌÞÁÎÉÀ make install ÕÓÔÁÎÏ×ÉÔ ÆÁÊÌÙ ÐÁËÅÔÁ × /usr/local/bin, /usr/local/man, É Ô.Ä.. ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÐÒÅÆÉËÓ ÕÓÔÁÎÏ×ËÉ, ËÏÔÏÒÙÊ ÏÔÌÉÞÁÅÔÓÑ ÏÔ /usr/local. üÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ÐÅÒÅÄÁÞÅÊ configure ËÌÀÞÁ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ --prefix=PATH.

÷Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÒÁÚÎÙÅ ÐÒÅÆÉËÓÙ ÕÓÔÁÎÏ×ËÉ ÄÌÑ ÓÐÅÃÉÆÉÞÅÓËÉÈ ÁÒÈÉÔÅËÔÕÒÙ ÆÁÊÌÏ×, É ÄÌÑ ÆÁÊÌÏ× ÎÅ ÚÁ×ÉÓÑÝÉÈ ÏÔ ÁÒÈÉÔÅËÔÕÒÙ. åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ  configure ËÌÀÞ --exec-prefix=PATH, ÔÏ ÐÁËÅÔ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ PATH ËÁË ÐÒÅÆÉËÓ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÐÒÏÇÒÁÍÍ É ÂÉÂÌÉÏÔÅË. äÏËÕÍÅÎÔÁÃÉÑ É ÄÒÕÇÉÅ ÆÁÊÌÙ ÄÁÎÎÙÈ ÂÕÄÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÙÞÎÙÊ ÐÒÅÆÉËÓ.

÷ ÄÏÂÁ×ÏË, ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÎÅÏÂÙÞÎÏÅ ÒÁÓÐÏÌÏÖÅÎÉÅ ËÁÔÁÌÏÇÏ×, ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ËÌÀÞÉ, ÐÏÄÏÂÎÙÅ --bindir=PATH, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕËÁÚÁÔØ ÒÁÚÌÉÞÎÙÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ÏÔÄÅÌØÎÙÈ ÔÉÐÏ× ÆÁÊÌÏ×. úÁÐÕÓÔÉÔÅ configure --help ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ËÁÔÁÌÏÇÏ×, ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, É ÓÐÉÓËÁ ÔÉÐÏ× ÆÁÊÌÏ× ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÙÈ × ËÁÖÄÙÊ ÉÚ ËÁÔÁÌÏÇÏ×.

åÓÌÉ ÐÁËÅÔ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÜÔÏ, ÔÏ ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÐÒÏÇÒÁÍÍÕ Ó ÄÏÐÏÌÎÉÔÅÌØÎÙÍÉ ÓÕÆÆÉËÓÁÍÉ ÉÌÉ ÐÒÅÆÉËÓÁÍÉ × ÉÍÅÎÉ ÐÒÏÇÒÁÍÍÙ.üÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ÚÁÄÁÎÉÅÍ configure ËÌÀÞÁ --program-prefix=PREFIX ÉÌÉ --program-suffix=SUFFIX.

äÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ
==========================

îÅËÏÔÏÒÙÅ ÐÁËÅÔÙ ÏÂÒÁÝÁÀÔ ×ÎÉÍÁÎÉÅ ÎÁ ËÌÀÞÉ --enable-FEATURE ÐÅÒÅÄÁÎÎÙÅ configure, ÇÄÅ FEATURE ÐÏËÁÚÙ×ÁÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÞÁÓÔØ ÐÁËÅÔÁ. ïÎÉ ÔÁËÖÅ ÍÏÇÕÔ ÏÂÒÁÝÁÔØ ×ÎÉÍÁÎÉÅ ÎÁ ËÌÀÞÉ --with-PACKAGE, ÇÄÅ PACKAGE Ñ×ÌÑÅÔÓÑ ÞÅÍ-ÔÏ ÐÏÄÏÂÎÙÍ gnu-as ÉÌÉ x (ÄÌÑ X Window System). ÷ ÆÁÊÌÅ README ÄÏÌÖÎÙ ÂÙÔØ ÏÐÉÓÁÎÙ ÒÁÓÐÏÚÎÁ×ÁÅÍÙÅ ÐÁËÅÔÏÍ ËÌÀÞÉ --enable- É --with-.

äÌÑ ÐÁËÅÔÏ×, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀ X Window System, configure ÏÂÙÞÎÏ ÍÏÖÅÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁÊÔÉ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ É ÂÉÂÌÉÏÔÅËÉ X, ÏÄÎÁËÏ ÅÓÌÉ ÓËÒÉÐÔ ÎÅ ÓÍÏÇ ÏÐÒÅÄÅÌÉÔØ ÉÈ ÒÁÓÐÏÌÏÖÅÎÉÅ, ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ configure Ó ËÌÀÞÁÍÉ --x-includes=DIR É --x-libraries=DIR É ÕËÁÚÁ× ÐÒÁ×ÉÌØÎÙÅ ÚÎÁÞÅÎÉÑ.

õËÁÚÁÎÉÅ ÔÉÐÁ ÓÉÓÔÅÍÙ
=====================

íÏÖÅÔ ÂÙÔØ ÍÎÏÇÏ ×ÏÚÍÏÖÎÏÓÔÅÊ, ËÏÔÏÒÙÅ configure ÎÅ ÓÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÎÏ ËÏÔÏÒÙÅ ÎÕÖÎÙ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÉÐÁ ÓÉÓÔÅÍÙ ÎÁ ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØ ÐÁËÅÔ. ïÂÙÞÎÏ configure ÍÏÖÅÔ ×ÙÐÏÌÎÉÔØ ÏÐÒÅÄÅÌÅÎÉÅ ÔÉÐÁ ÓÉÓÔÅÍÙ, ÎÏ ÅÓÌÉ × ÓÌÕÞÁÅ ÎÅÕÄÁÞÉ ÓËÒÉÐÔ ×ÙÄÁÓÔ ÓÏÏÂÝÅÎÉÅ, ÇÏ×ÏÒÑÝÅÅ Ï ÔÏÍ, ÞÔÏ ÏÎ ÎÅ ÓÍÏÇ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÓÉÓÔÅÍÙ, ÔÏ ÚÁÄÁÊÔÅ ÔÉÐ Ó ÐÏÍÏÝØÀ ËÌÀÞÁ --host=TYPE. TYPE ÍÏÖÅÔ Ñ×ÌÑÔØ ÌÉÂÏ ËÏÒÏÔËÉÍ ÉÍÅÎÅÍ, ÏÐÒÅÄÅÌÑÀÝÉÍ ÔÉÐ ÓÉÓÔÅÍÙ, ÔÁËÉÍ ËÁË sun4, ÌÉÂÏ ËÁÎÏÎÉÞÅÓËÉÍ ÉÍÅÎÅÍ, ÓÏÄÅÒÖÁÝÉÍ 3 ÐÏÌÑ:

     CPU-COMPANY-SYSTEM

ÚÁÇÌÑÎÉÔÅ × ÆÁÊÌ config.sub ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÚÎÁÔØ ×ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ËÁÖÄÏÇÏ ÉÚ ÐÏÌÅÊ. åÓÌÉ ÆÁÊÌ config.sub ÎÅ ×ËÌÀÞÅÎ × ÓÏÓÔÁ× ÐÁËÅÔÁ, ÔÏ ÄÁÎÎÏÍÕ ÐÁËÅÔÕ ÎÅ ÎÕÖÎÏ ÚÎÁÔØ ÔÉÐ ÓÉÓÔÅÍÙ.

åÓÌÉ ×Ù ÓÏÂÉÒÁÅÔÅ ÕÔÉÌÉÔÙ ËÏÍÐÉÌÑÔÏÒÁ ÄÌÑ ËÒÏÓÓ-ËÏÍÐÉÌÑÃÉÉ, ÔÏ ×Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÀÞ --target=TYPE ÄÌÑ ×ÙÂÏÒÁ ÔÉÐÁ ÓÉÓÔÅÍÙ, ÄÌÑ ËÏÔÏÒÏÊ ÜÔÉ ÕÔÉÌÉÔÙ ÂÕÄÕÔ ÓÏÚÄÁ×ÁÔØ ËÏÄ, Á ÔÁËÖÅ ËÌÀÞ --build=TYPE ÄÌÑ ×ÙÂÏÒÁ ÔÉÐÁ ÓÉÓÔÅÍÙ ÎÁ ËÏÔÏÒÏÊ ×Ù ËÏÍÐÉÌÉÒÕÅÔÅ ÐÁËÅÔ.

óÏ×ÍÅÓÔÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ
==============================================

åÓÌÉ ×Ù ÈÏÔÉÔÅ ÞÔÏÂÙ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÓËÒÉÐÔÏ× configure ÉÓÐÏÌØÚÏ×ÁÌÉÓØ ÓÏ×ÍÅÓÔÎÏ, ÔÏ ×Ù ÍÏÖÅÔÅ ÓÏÚÄÁÔØ ÌÏËÁÌØÎÙÊ ÓËÒÉÐÔ Ó ÉÍÅÎÅÍ config.site, ËÏÔÏÒÙÊ ÚÁÄÁÓÔ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÔÁËÉÈ ÐÅÒÅÍÅÎÎÙÈ ËÁË CC, cache_file É prefix. configure ÉÝÅÔ PREFIX/share/config.site, ÅÓÌÉ ÏÎ ÓÕÝÅÓÔ×ÕÅÔ, Á ÚÁÔÅÍ PREFIX/etc/config.site ÅÓÌÉ ÏÎ ÓÕÝÅÓÔ×ÕÅÔ. éÌÉ ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ CONFIG_SITE ÒÁ×ÎÕÀ ÐÕÔÉ Ë ÜÔÏÍÕ ÓËÒÉÐÔÕ. ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅ ×ÓÅ ÓËÒÉÐÔÙ configure ÐÒÏÉÚ×ÏÄÑÔ ÐÏÉÓË ÜÔÏÇÏ ÓËÒÉÐÔÁ.

ëÏÎÔÒÏÌØ ×ÙÐÏÌÎÅÎÉÑ
===================

configure ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ËÏÔÏÒÙÅ ËÏÎÔÒÏÌÉÒÕÀÔ ËÁË ÏÎ ×ÙÐÏÌÎÑÅÔÓÑ.

--cache-file=FILE
     éÓÐÏÌØÚÏ×ÁÔØ É ÓÏÈÒÁÎÑÔØ ÒÅÚÕÌØÔÁÔÙ ÔÅÓÔÏ× × ÆÁÊÌÅ FILE ×ÍÅÓÔÏ ÆÁÊÌÁ ./config.cache. äÌÑ ÚÁÐÒÅÝÅÎÉÑ ËÜÛÉÒÏ×ÁÎÉÑ ÕÓÔÁÎÏ×ÉÔÅ FILE ÒÁ×ÎÙÍ /dev/null, ÐÒÉ ÏÔÌÁÄËÅ configure.

--help
     ÷ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ configure É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--quiet
--silent
-q
     îÅ ×ÙÄÁÅÔ ÓÏÏÂÝÅÎÉÊ Ï ÔÏÍ, ËÁËÉÅ ÐÒÏ×ÅÒËÉ ×ÙÐÏÌÎÑÀÔÓÑ. äÌÑ ÚÁÐÒÅÝÅÎÉÑ ×ÓÅÇÏ ×Ù×ÏÄÁ, ÐÅÒÅÎÁÐÒÁ×ØÔÅ ×Ù×ÏÄ × ÆÁÊÌ /dev/null (ÓÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ ×ÓÅ ÒÁ×ÎÏ ÂÕÄÕÔ ÏÔÏÂÒÁÖÁÔØÓÑ).

--srcdir=DIR
     éÝÅÔ ÉÓÈÏÄÎÙÊ ÔÅËÓÔ ÐÁËÅÔÁ × ËÁÔÁÌÏÇÅ DIR. ïÂÙÞÎÏ configure ÍÏÖÅÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÐÒÅÄÅÌÉÔØ ÜÔÏÔ ËÁÔÁÌÏÇ.

--version
     ÷ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf ÉÓÐÏÌØÚÏ×Á×ÛÅÊÓÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÁ configure É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

configure ÔÁËÖÅ ÐÒÉÎÉÍÁÅÔ ÎÅËÏÔÏÒÙÅ ÄÒÕÇÉÅ, ÎÅ ÔÁË ÓÉÌØÎÏ ÐÏÌÅÚÎÙÅ ËÌÀÞÉ.

÷ÏÓÓÏÚÄÁÎÉÅ ËÏÎÆÉÇÕÒÁÃÉÉ
************************

óËÒÉÐÔ configure ÓÏÚÄÁÅÔ ÆÁÊÌ Ó ÉÍÅÎÅÍ config.status, ËÏÔÏÒÙÊ ÏÐÉÓÙ×ÁÅÔ, ËÁËÉÅ ÐÁÒÁÍÅÔÒÙ ËÏÎÆÉÇÕÒÁÃÉÉ ÂÙÌÉ ÕËÁÚÁÎÙ ÐÒÉ ÐÏÓÌÅÄÎÅÊ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÁËÅÔÁ.  üÔÏ ÆÁÊÌ Ñ×ÌÑÅÔÓÑ ÓËÒÉÐÔÏÍ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÊ ÐÒÉ ÚÁÐÕÓËÅ ×ÏÓÓÏÚÄÁÅÔ ÔÕ ÖÅ ÓÁÍÕÀ ÎÁÓÔÒÏÊËÕ.

÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÓËÒÉÐÔÕ config.status ËÌÀÞ --recheck, ÞÔÏÂÙ ÏÎ ÏÂÎÏ×ÉÌ ÓÁÍ ÓÅÂÑ.  üÔÏÔ ËÌÀÞ ÐÏÌÅÚÅÎ, ÅÓÌÉ ×Ù ÉÚÍÅÎÑÅÔÅ configure, ÔÁË ÞÔÏ ÒÅÚÕÌØÔÁÔÙ ÎÅËÏÔÏÒÙÈ ÔÅÓÔÏ× ÍÏÇÕÔ ÉÚÍÅÎÉÔØÓÑ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÐÒÅÄÙÄÕÝÉÍ ÚÁÐÕÓËÏÍ. ëÌÀÞ --recheck ÐÅÒÅÚÁÐÕÓËÁÅÔ configure Ó ÁÒÇÕÍÅÎÔÁÍÉ, ÉÓÐÏÌØÚÏ×ÁÎÎÙÍÉ ÐÒÉ ÐÒÅÄÙÄÕÝÉÈ ÚÁÐÕÓËÁÈ, Ó ÄÏÂÁ×ÌÅÎÉÅÍ ËÌÀÞÁ --no-create, ËÏÔÏÒÙÊ ÎÅ ÄÁÅÔ configure ÚÁÐÕÓÔÉÔØ config.status É ÓÏÚÄÁÔØ Makefile É ÄÒÕÇÉÅ ÆÁÊÌÙ, Á ÔÁËÖÅ Ó ÄÏÂÁ×ÌÅÎÉÅÍ ËÌÀÞÁ --no-recursion, ËÏÔÏÒÙÊ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÚÁÐÕÓË ÓËÒÉÐÔÏ× configure × ÐÏÄËÁÔÁÌÏÇÁÈ.  (üÔÏ ÓÄÅÌÁÎÏ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÄÒÕÇÉÅ ÐÒÁ×ÉÌÁ Makefile ÍÏÇÌÉ ÂÙ ÚÁÐÕÓËÁÔØ config.status ÐÒÉ ÅÇÏ ÉÚÍÅÎÅÎÉÉ; îÁÐÒÉÍÅÒ, see á×ÔÏÍÁÔÉÞÅÓËÁÑ ÐÅÒÅÓÂÏÒËÁ).

config.status ÔÁËÖÅ ÒÁÓÐÏÚÎÁÅÔ ËÌÀÞ --help, ËÏÔÏÒÙÊ ×ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ config.status, É ËÌÀÞ --version, ËÏÔÏÒÙÊ ×ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ Autoconf, ËÏÔÏÒÁÑ ÂÙÌÁ ÉÓÐÏÌØÚÏ×ÁÎÁ ÐÒÉ ÓÏÚÄÁÎÉÉ ÓËÒÉÐÔÁ configure, ÓÏÚÄÁ×ÛÅÇÏ ÆÁÊÌ config.status.

config.status ÐÒÏ×ÅÒÑÅÔ ÎÅÓËÏÌØËÏ ÐÅÒÅÍÅÎÎÙÈ ÓÒÅÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÉÚÍÅÎÉÔØ ÅÇÏ ÐÏ×ÅÄÅÎÉÅ:

 -- Variable: CONFIG_SHELL
     ëÏÍÁÎÄÎÙÊ ÐÒÏÃÅÓÓÏÒ, ËÏÔÏÒÙÊ ÚÁÐÕÓÔÉÔ configure Ó ËÌÀÞÏÍ --recheck. ïÎ ÄÏÌÖÅÎ ÂÙÔØ ÓÏ×ÍÅÓÔÉÍÙÍ Ó ËÏÍÁÎÄÎÙÍ ÐÒÏÃÅÓÓÏÒÏÍ Bourne.  úÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ -- Ñ×ÌÑÅÔÓÑ /bin/sh.

 -- Variable: CONFIG_STATUS
     éÍÑ ÆÁÊÌÁ, ËÏÔÏÒÏÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ÓËÒÉÐÔÁ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÊ ÓÏÈÒÁÎÉÔ ÔÅËÕÝÕÀ ÎÁÓÔÒÏÊËÕ. úÎÁÞÅÎÉÅÍ ÐÏ ÕÍÏÌÞÁÎÉÀ Ñ×ÌÑÅÔÓÑ ./config.status. üÔÁ ÐÅÒÅÍÅÎÎÁÑ ÐÏÌÅÚÎÁ × ÔÏÍ ÓÌÕÞÁÅ, ËÏÇÄÁ ÏÄÉÎ ÐÁËÅÔ ÉÓÐÏÌØÚÕÅÔ ÞÁÓÔÉ ÄÒÕÇÏÇÏ, Á ÓËÒÉÐÔÙ configure ÎÅ ÄÏÌÖÎÙ ÂÙÔØ ÓÌÉÔÙ ×ÍÅÓÔÅ, ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÐÒÏ×ÏÖÄÁÀÔÓÑ ÐÏ ÏÔÄÅÌØÎÏÓÔÉ.

óÌÅÄÕÀÝÉÅ ÐÅÒÅÍÅÎÎÙÅ ÏÂÅÓÐÅÞÉ×ÁÀÔ ×ÏÚÍÏÖÎÏÓÔØ ÏÔÄÅÌØÎÙÍ ÐÁËÅÔÁÍ ÓÏ×ÍÅÓÔÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÎÁÞÅÎÉÑ ÐÅÒÅÍÅÎÎÙÈ, ×ÙÞÉÓÌÅÎÎÙÈ ÓËÒÉÐÔÏÍ configure.  üÔÏ ÍÏÖÅÔ ÂÙÔØ ÐÏÌÅÚÎÏ, ÅÓÌÉ ÏÄÎÏÍÕ ÐÁËÅÔÕ ÎÕÖÎÏ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ, ÞÅÍ ÄÒÕÇÏÍÕ.  üÔÉ ÐÅÒÅÍÅÎÎÙÅ ÐÏÚ×ÏÌÑÀÔ ÆÁÊÌÕ config.status ÓÏÚÄÁ×ÁÔØ É ÄÒÕÇÉÅ ÆÁÊÌÙ, ÎÅ ÔÏÌØËÏ ÔÅ, ÞÔÏ ÕËÁÚÁÎÙ × ÆÁÊÌÅ configure.in, ÞÔÏÂÙ ÉÈ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ × ÄÒÕÇÏÍ ÐÁËÅÔÅ.

 -- Variable: CONFIG_FILES
     æÁÊÌÙ, × ËÏÔÏÒÙÈ ÂÕÄÕÔ ×ÙÐÏÌÎÑÔØÓÑ ÐÏÄÓÔÁÎÏ×ËÉ @VARIABLE@.  ïÂÙÞÎÏ ÜÔÉ ÆÁÊÌÙ ÚÁÄÁÀÔÓÑ ËÁË ÁÒÇÕÍÅÎÔÙ ÍÁËÒÏÓÁ AC_OUTPUT × configure.in.

 -- Variable: CONFIG_HEADERS
     æÁÊÌÙ, × ËÏÔÏÒÙÈ ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØÓÑ ÐÏÄÓÔÁÎÏ×ËÁ ÏÐÅÒÁÔÏÒÏ× #define ÑÚÙËÁ C.  ïÂÙÞÎÏ ÜÔÏ ÆÁÊÌÙ, ÚÁÄÁÎÎÙÅ × ÁÒÇÕÍÅÎÔÁÈ ÍÁËÒÏÓÁ AC_CONFIG_HEADER; ÅÓÌÉ ÜÔÏÔ ÍÁËÒÏÓ ÎÅ ÂÙÌ ×ÙÚ×ÁÎ, ÔÏ config.status ÉÇÎÏÒÉÒÕÅÔ ÜÔÕ ÐÅÒÅÍÅÎÎÕÀ.

üÔÉ ÐÅÒÅÍÅÎÎÙÅ ÔÁËÖÅ ÐÏÚ×ÏÌÑÀÔ ÎÁÐÉÓÁÔØ ÐÒÁ×ÉÌÁ Makefile, ËÏÔÏÒÙÅ ÂÕÄÕÔ ÐÅÒÅÓÏÚÄÁ×ÁÔØ ÔÏÌØËÏ ÎÅËÏÔÏÒÙÅ ÆÁÊÌÙ.  îÁÐÒÉÍÅÒ, × ×ÙÛÅÐÒÉ×ÅÄÅÎÎÏÊ ÚÁ×ÉÓÉÍÏÓÔÉ (see á×ÔÏÍÁÔÉÞÅÓËÁÑ ÐÅÒÅÓÂÏÒËÁ), config.status ÚÁÐÕÓËÁÅÔÓÑ Ä×ÁÖÄÙ ÐÒÉ ÉÚÍÅÎÅÎÉÉ configure.in. åÓÌÉ ÜÔÏ ÂÅÓÐÏËÏÉÔ ×ÁÓ, ÔÏ ×Ù ÍÏÖÅÔÅ ÓÄÅÌÁÔØ ÔÁË, ÞÔÏÂÙ ÐÒÉ ËÁÖÄÏÍ ÚÁÐÕÓËÅ ÏÂÎÏ×ÌÑÌÉÓØ ÆÁÊÌÙ ÔÏÌØËÏ ÄÌÑ ÜÔÏÇÏ ÐÒÁ×ÉÌÁ:

     config.h: stamp-h
     stamp-h: config.h.in config.status
             CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
             echo > stamp-h

     Makefile: Makefile.in config.status
             CONFIG_FILES=Makefile CONFIG_HEADERS= ./config.status

(åÓÌÉ configure.in ÎÅ ×ÙÚÙ×ÁÅÔ ÍÁËÒÏÓ AC_CONFIG_HEADER, ÔÏ ÎÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ CONFIG_HEADERS × ÐÒÁ×ÉÌÁÈ make).

÷ÏÐÒÏÓÙ ÏÂ Autoconf
*******************

òÁÚ ÚÁ ÒÁÚÏÍ ÚÁÄÁÀÔÓÑ ÏÄÎÉ É ÔÅ ÖÅ ×ÏÐÒÏÓÙ ÏÂ Autoconf.  ÷ÏÔ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ.

òÁÓÐÒÏÓÔÒÁÎÅÎÉÅ ÓËÒÉÐÔÏ× configure
==================================

     ëÁËÉÅ ÏÇÒÁÎÉÞÅÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ ÎÁ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÅ ÓËÒÉÐÔÏ× configure,
     ÓÏÚÄÁÎÎÙÈ Autoconf?  ëÁË ÍÏÇÕÔ ÚÁÔÒÏÎÕÔØ ÏÎÉ ÍÏÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ
     ÉÓÐÏÌØÚÕÅÔ ÜÔÉ ÓËÒÉÐÔÙ?

îÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÉÌÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÅ ÓËÒÉÐÔÏ× ÎÁÓÔÒÏÊËÉ, ÓÏÚÄÁÎÎÙÈ Autoconf, ÎÅ ÎÁËÌÁÄÙ×ÁÅÔÓÑ ÎÉËÁËÉÈ ÏÇÒÁÎÉÞÅÎÉÊ. ÷ Autoconf ×ÅÒÓÉÉ 1, ÏÎÉ ÐÏÄÐÁÄÁÌÉ ÐÏÄ ÄÅÊÓÔ×ÉÅ GNU General Public License.  íÙ ×ÓÅ ÅÝÅ ÐÏÏÝÒÑÅÍ Á×ÔÏÒÏ× Ë ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÀ ÉÈ ÒÁÂÏÔ ÐÏÄ ÄÅÊÓÔ×ÉÅÍ ÌÉÃÅÎÚÉÊ, ÓÈÏÄÎÙÈ Ó GPL, ÎÏ ÜÔÏ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Autoconf.

ðÏ ÐÏ×ÏÄÕ ÄÒÕÇÉÈ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ Ó configure: config.h.in ÎÁÈÏÄÑÔÓÑ ÐÏÄ ÔÅÍÉ Á×ÔÏÒÓËÉÍÉ ÐÒÁ×ÁÍÉ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ×ÁÛÅÇÏ configure.in, ÐÏÓËÏÌØËÕ ÜÔÉ ÆÁÊÌÙ Ñ×ÌÑÀÔÓÑ ÐÒÏÉÚ×ÏÄÎÙÍÉ ÜÔÏÇÏ ÆÁÊÌÁ É Ó×ÏÂÏÄÎÏ ÄÏÓÔÕÐÎÏÇÏ ÆÁÊÌÁ acconfig.h.  config.sub É config.guess ÎÅ ÐÏÄÐÁÄÁÀÔ ÐÏÄ GPL × ÔÏÍ ÓÌÕÞÁÅ, ËÏÇÄÁ ÏÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÏ ÓËÒÉÐÔÁÍÉ configure, ÓÏÚÄÁÎÎÙÍÉ Ó ÐÏÍÏÝØÀ Autoconf: × ÜÔÏÍ ÓÌÕÞÁÅ ×Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÉÈ ÐÏÄ ÔÏÊ ÖÅ ÌÉÃÅÎÚÉÅÊ, ÞÔÏ É ÏÓÔÁÌØÎÏÊ ÐÁËÅÔ.  install-sh ÐÏÌÕÞÅÎ ÏÔ X Consortium É ÎÅ ÚÁÝÉÝÅÎ Á×ÔÏÒÓËÉÍÉ ÐÒÁ×ÁÍÉ.

ðÏÞÅÍÕ ÔÒÅÂÕÅÔÓÑ GNU m4?
========================

     ðÏÞÅÍÕ Autoconf ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÑ GNU m4?

íÎÏÇÉÅ ÉÚ ÒÅÁÌÉÚÁÃÉÊ m4 ÉÍÅÀÔ ÚÁÛÉÔÙÅ × ÐÒÏÇÒÁÍÍÕ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ÒÁÚÍÅÒ É ËÏÌÉÞÅÓÔ×Ï ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ Autoconf ÎÅ ÍÏÖÅÔ ÐÒÅÏÄÏÌÅÔØ.  ÷ ÎÉÈ ÔÁËÖÅ ÏÔÓÕÔÓÔ×ÕÀÔ ÎÅËÏÔÏÒÙÅ ×ÓÔÒÏÅÎÎÙÅ ÍÁËÒÏÓÙ, ÂÅÚ ËÏÔÏÒÙÈ ÂÙÌÏ ÂÙ ÔÒÕÄÎÏ ÓÏÚÄÁÔØ ÔÁËÏÅ ÓÌÏÖÎÏÅ ÐÒÉÌÏÖÅÎÉÅ, ËÁË Autoconf, ×ËÌÀÞÁÑ:

     builtin
     indir
     patsubst
     __file__
     __line__

ðÏÓËÏÌØËÕ Autoconf ÎÕÖÅÎ ÔÏÌØËÏ ÌÀÄÑÍ, ÓÏÐÒÏ×ÏÖÄÁÀÝÉÍ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ, É ÐÏÓËÏÌØËÕ GNU m4 ÐÒÏÓÔ × ÎÁÓÔÒÏÊËÅ É ÕÓÔÁÎÏ×ËÅ, ÔÏ ËÁÖÅÔÓÑ ×ÐÏÌÎÅ ÅÓÔÅÓÔ×ÅÎÎÙÍ, ÞÔÏ ÔÁËÖÅ ÔÒÅÂÕÅÔÓÑ ÕÓÔÁÎÏ×ÉÔØ GNU m4. íÎÏÇÉÅ ÌÀÄÉ, ÓÏÐÒÏ×ÏÖÄÁÀÝÉÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ GNU É ÄÒÕÇÏÅ Ó×ÏÂÏÄÎÏÅ ðï, ÕÖÅ ÕÓÔÁÎÏ×ÉÌÉ Õ ÓÅÂÑ ÂÏÌØÛÉÎÓÔ×Ï ÕÔÉÌÉÔ GNU, ÐÏÔÏÍÕ ÞÔÏ ÐÒÅÄÐÏÞÉÔÁÀÔ ÉÍÅÎÎÏ ÉÈ.

ëÁË Ñ ÍÏÇÕ ÎÁÞÁÔØ ÒÁÂÏÔÕ?
=========================

     åÓÌÉ Autoconf ÔÒÅÂÕÅÔ GNU m4, Á GNU m4 ÉÍÅÅÔ ÓËÒÉÐÔ
     Autoconf configure, ÔÏ ËÁË Ñ ÍÏÇÕ ÎÁÞÁÔØ ÒÁÂÏÔÕ? üÔÏ ÐÏÈÏÖÅ ÎÁ
     ÐÒÏÂÌÅÍÕ ÑÊÃÁ É ËÕÒÉÃÙ!

÷Ù ÎÅÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌÉ.  èÏÔÑ GNU m4É ÐÏÓÔÁ×ÌÑÅÔÓÑ ÓÏ ÓËÒÉÐÔÏÍ configure, ÓÏÚÄÁÎÎÙÍ Autoconf, ÓÁÍ Autoconf ÎÅ ÔÒÅÂÕÅÔÓÑ ÄÌÑ ÚÁÐÕÓËÁ ÓËÒÉÐÔÁ É ÕÓÔÁÎÏ×ËÉ GNU m4. Autoconf ÔÒÅÂÕÅÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ ÓËÒÉÐÔ configure ÄÌÑ m4, Á ÜÔÏ ÔÒÅÂÕÅÔÓÑ ÎÅÍÎÏÇÉÍ (× ÏÓÎÏ×ÎÏÍ ÔÅÍ, ËÔÏ ÓÏÐÒÏ×ÏÖÄÁÅÔ ÄÁÎÎÙÊ ÐÁËÅÔ).

ðÏÞÅÍÕ ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ Imake?
=============================

     ðÏÞÅÍÕ ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ Imake ×ÍÅÓÔÏ ÓËÒÉÐÔÏ× configure?

òÁÚÎÙÅ ÌÀÄÉ ÐÉÓÁÌÉ ÏÔ×ÅÔÙ ÎÁ ÜÔÏÔ ×ÏÐÒÏÓ, ÔÁË ÞÔÏ Ñ ÐÒÉ×ÅÄÕ ÚÄÅÓØ ÐÅÒÅÄÅÌÁÎÎÙÊ ×ÁÒÉÁÎÔ ÉÈ ÏÂßÑÓÎÅÎÉÊ.

óÌÅÄÕÀÝÉÊ ÏÔ×ÅÔ ÏÓÎÏ×ÁÎ ÎÁ ÍÁÔÅÒÉÁÌÅ, ÎÁÐÉÓÁÎÎÏÍ Richard Pixley:

óËÒÉÐÔÙ, ÓÏÚÄÁÎÎÙÅ Autoconf, ÞÁÓÔÏ ÒÁÂÏÔÁÀÔ ÎÁ ÍÁÛÉÎÁÈ, ÄÌÑ ËÏÔÏÒÙÈ ÏÎÉ ÎÅ ÂÙÌÉ ÐÒÅÄÎÁÚÎÁÞÅÎÙ.  ôÏ ÅÓÔØ ÏÎÉ ÈÏÒÏÛÏ ÒÁÂÏÔÁÀÔ, ËÏÇÄÁ ÎÕÖÎÏ ÓÏÚÄÁÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ÄÌÑ ÓÏ×ÅÒÛÅÎÎÏ ÎÏ×ÏÊ ÓÉÓÔÅÍÙ.  Imake ÔÁËÏÇÏ ÎÅ ÕÍÅÅÔ.

Imake ÉÓÐÏÌØÚÕÅÔ ÏÂÝÕÀ ÂÁÚÕ ÄÁÎÎÙÈ, ÓÐÅÃÉÆÉÞÅÓËÉÈ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÓÉÓÔÅÍ.  äÌÑ X11 ÜÔÏÇÏ ÄÏÓÔÁÔÏÞÎÏ, ÐÏÔÏÍÕ ÞÔÏ ÜÔÏÔ ÐÁËÅÔ ÄÅÌÁÅÔÓÑ ÏÄÎÏÊ ÏÒÇÁÎÉÚÁÃÉÅÊ, ËÏÔÏÒÁÑ ÉÍÅÅÔ ÃÅÎÔÒÁÌÉÚÏ×ÁÎÎÙÊ ËÏÎÔÒÏÌØ ÎÁÄ ÜÔÏÊ ÂÁÚÏÊ ÄÁÎÎÙÈ.

õÔÉÌÉÔÙ GNU ×ÙÐÕÓËÁÀÔÓÑ ÎÅ ÔÁË.  ëÁÖÄÕÀ ÕÔÉÌÉÔÕ GNU ÓÏÐÒÏ×ÏÖÄÁÅÔ ÏÔÄÅÌØÎÙÊ ÞÅÌÏ×ÅË, É ÜÔÉ ÌÀÄÉ ÒÁÚÂÒÏÓÁÎÙ ÐÏ ×ÓÅÍÕ ÍÉÒÕ.   éÓÐÏÌØÚÏ×ÁÎÉÅ ÏÂÝÅÊ ÂÁÚÙ ÄÁÎÎÙÈ ÂÕÄÅÔ ÐÒÏÓÔÏ ËÏÛÍÁÒÏÍ ÐÒÉ ÓÏÐÒÏ×ÏÖÄÅÎÉÉ ÐÁËÅÔÁ. Autoconf ÍÏÖÅÔ ÐÏËÁÚÁÔØÓÑ ÎÅËÉÍ ÐÏÄÏÂÉÅÍ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÏ ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÜÔÏ ÎÅ ÔÁË.  ÷ÍÅÓÔÏ ÐÅÒÅÞÉÓÌÅÎÉÑ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÏÔ ÍÁÛÉÎÙ, ÏÎ ÐÅÒÅÞÉÓÌÑÅÔ ÔÒÅÂÏ×ÁÎÉÑ ÐÒÏÇÒÁÍÍ.

åÓÌÉ ×Ù ÒÁÓÓÍÁÔÒÉ×ÁÅÔÅ ÎÁÂÏÒ GNU ËÁË ÎÁÂÏÒ ÏÔÄÅÌØÎÙÈ ÕÔÉÌÉÔ, ÔÏ ×ÏÚÎÉËÁÀÔ ÓÈÏÄÎÙÅ ÐÒÏÂÌÅÍÙ. îÏ ÕÔÉÌÉÔÙ ÒÁÚÒÁÂÏÔËÉ GNU ÍÏÇÕÔ ÂÙÔØ ÎÁÓÔÒÏÅÎÙ ËÁË ËÒÏÓÓ-ÕÔÉÌÉÔÙ × ÐÏÞÔÉ ÌÀÂÏÍ ÓÏÞÅÔÁÎÉÉ ÍÁÛÉÎÁ+ÃÅÌØ. ÷ÓÅ ÜÔÉ ËÏÎÆÉÇÕÒÁÃÉÉ ÍÏÇÕÔ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÙ ÏÄÎÏ×ÒÅÍÅÎÎÏ. ïÎÁ ÄÁÖÅ ÍÏÇÕÔ ÄÅÌÉÔØ ÍÅÖÄÕ ÓÏÂÏÊ ÎÅ ÚÁ×ÉÓÑÝÉÅ ÏÔ ÍÁÛÉÎÙ ÆÁÊÌÙ. Imake ÎÅ ÐÏÚ×ÏÌÑÅÔ ÓÄÅÌÁÔØ ÜÔÏÇÏ.

ûÁÂÌÏÎÙ Imake Ñ×ÌÑÀÔÓÑ ÆÏÒÍÏÊ ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ. óÔÁÎÄÁÒÔÙ ËÏÄÉÒÏ×ÁÎÉÑ GNU ÐÏÚ×ÏÌÑÀÔ ÓÄÅÌÁÔØ ÜÔÏ ÂÅÚ ÎÅÎÕÖÎÏÇÏ ÎÁÌÏÖÅÎÉÑ ÔÅÈ ÖÅ ÓÁÍÙÈ ÏÇÒÁÎÉÞÅÎÉÊ.

÷ÏÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÏÂßÑÓÎÅÎÉÑ, ÎÁÐÉÓÁÎÎÙÅ Per Bothner:

ïÄÎÉÍ ÉÚ ÐÒÅÉÍÕÝÅÓÔ× Imake Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÏÎ ÌÅÇËÏ ÓÏÚÄÁÅÔ ÂÏÌØÛÉÅ ÆÁÊÌÙ Makefile, ÉÓÐÏÌØÚÕÑ ÄÉÒÅËÔÉ×Ù ÐÒÅÐÒÏÃÅÓÓÏÒÁ cpp #include É ÍÅÈÁÎÉÚÍ ÍÁËÒÏÓÏ×. ïÄÎÁËÏ ÎÁ cpp ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÔØ: Õ ÎÅÇÏ ÏÇÒÁÎÉÞÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÕÓÌÏ×ÎÙÈ ÏÐÅÒÁÔÏÒÏ× É ÎÅÔ ÏÐÅÒÁÔÏÒÏ× ÃÉËÌÏ×.  ðÏÍÉÍÏ ÔÏÇÏ, cpp ÎÅ ÉÍÅÅÔ ÄÏÓÔÕÐÁ Ë ÐÅÒÅÍÅÎÎÙÍ ÓÒÅÄÙ.

÷ÓÅ ÜÔÉ ÐÒÏÂÌÅÍÙ ÒÅÛÁÀÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ sh ×ÍÅÓÔÏ cpp. ëÏÍÁÎÄÎÙÊ ÐÒÏÃÅÓÓÏÒ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÌÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÉÍÅÅÔ ÐÏÄÓÔÁÎÏ×ËÕ ÍÁËÒÏÓÏ×, ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØ ÉÌÉ ÓÏÚÄÁ×ÁÔØ ÄÒÕÇÉÅ ÓËÒÉÐÔÙ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ É ÍÏÖÅÔ ÐÏÌØÚÏ×ÁÔØÓÑ ÐÅÒÅÍÅÎÎÙÍÉ ÓÒÅÄÙ.

Paul Eggert ÒÁÚ×ÉÌ ÜÔÕ ÔÅÍÕ ÄÁÌØÛÅ:

ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Autoconf ÕÓÔÁÎÏ×ÝÉËÁÍ ÐÁËÅÔÁ ÎÅ ÎÕÖÎÏ ÐÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ Imake ÕÖÅ ÕÓÔÁÎÏ×ÌÅÎ É ÒÁÂÏÔÁÅÔ ÐÒÁ×ÉÌØÎÏ. üÔÏ ÎÅ ËÁÖÅÔÓÑ ÔÁËÉÍ ÕÖ ÂÏÌØÛÉÍ ÄÏÓÔÏÉÎÓÔ×ÏÍ ÄÌÑ ÌÀÄÅÊ ÐÒÉ×ÙËÛÉÈ Ë Imake, ÎÏ ÎÁ ÍÎÏÇÉÈ ÍÁÛÉÎÁÈ Imake ÎÅ ÕÓÔÁÎÏ×ÌÅÎ ÉÌÉ ÕÓÔÁÎÏ×ËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÒÁÂÏÔÁÅÔ ÎÅ ÓÏ×ÓÅÍ ÐÒÁ×ÉÌØÎÏ É, ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÔÒÅÂÏ×ÁÎÉÅ ÎÁÌÉÞÉÑ Imake ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÐÁËÅÔÁ ÂÕÄÅÔ ÐÒÅÐÑÔÓÔ×Ï×ÁÔØ ÅÇÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÀ ÎÁ ÔÁËÉÈ ÍÁÛÉÎÁÈ. îÁÐÒÉÍÅÒ, ÆÁÊÌÙ ÛÁÂÌÏÎÏ× É ÎÁÓÔÒÏÅË Imake ÍÏÇÕÔ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÙ ÎÅÐÒÁ×ÉÌØÎÏ ÎÁ ÍÁÛÉÎÅ, ÉÌÉ ÐÒÏÃÅÄÕÒÁ ÐÏÓÔÒÏÅÎÉÑ, ÉÓÐÏÌØÚÕÅÍÁÑ Imake, ÍÏÖÅÔ ÎÅÐÒÁ×ÉÌØÎÏ ÐÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ ×ÓÅ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÎÁÈÏÄÑÔÓÑ × ÏÄÎÏÍ ÂÏÌØÛÏÍ ÄÅÒÅ×Å ËÁÔÁÌÏÇÏ×, ÉÌÉ ÎÁÓÔÒÏÊËÁ Imake ÍÏÖÅÔ ÐÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ ÉÍÅÅÔÓÑ ÏÄÉÎ ËÏÍÐÉÌÑÔÏÒ, × ÔÏ ×ÒÅÍÑ ËÁË ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇÏÊ ËÏÍÐÉÌÑÔÏÒ, ÉÌÉ ÍÏÇÕÔ ÂÙÔØ ÎÅÓÏÏÔ×ÅÔÓÔ×ÉÑ ÍÅÖÄÕ ×ÅÒÓÉÑÍÉ Imake, ÉÓÐÏÌØÚÕÅÍÏÊ ÐÁËÅÔÏÍ É ×ÅÒÓÉÅÊ Imake, ÐÏÄÄÅÒÖÉ×ÁÅÍÏÊ ÄÁÎÎÏÊ ÍÁÛÉÎÏÊ. üÔÉ ÐÒÏÂÌÅÍÙ ×ÓÔÒÅÞÁÀÔÓÑ ÎÁÍÎÏÇÏ ÒÅÖÅ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Autoconf, ÐÏÓËÏÌØËÕ ËÁÖÄÙÊ ÐÁËÅÔ ÐÏÓÔÁ×ÌÑÅÔÓÑ ÓÏ Ó×ÏÉÍ, ÎÅÚÁ×ÉÓÉÍÙÍ ÐÒÅÐÒÏÃÅÓÓÏÒÏÍ ËÏÎÆÉÇÕÒÁÃÉÉ.

ôÁËÖÅ Imake ÞÁÓÔÏ ÓÔÒÁÄÁÅÔ ÏÔ ÎÅÏÖÉÄÁÎÎÏÇÏ ×ÚÁÉÍÏÄÅÊÓÔ×ÉÑ ÍÅÖÄÕ make É ÐÒÅÐÒÏÃÅÓÓÏÒÏÍ C. æÕÎÄÁÍÅÎÔÁÌØÎÏÊ ÐÒÏÂÌÅÍÏÊ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÐÒÅÐÒÏÃÅÓÓÏÒ C ÂÙÌ ÓÏÚÄÁÎ ÄÌÑ ÏÂÒÁÂÏÔËÉ ÐÒÏÇÒÁÍÍ ÎÁ ÑÚÙËÅ C, Á ÎÅ ÆÁÊÌÏ× Makefile.  üÔÏ Ñ×ÌÑÅÔÓÑ ÍÅÎÅÅ ÚÎÁÞÉÍÏÊ ÐÒÏÂÌÅÍÏÊ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Autoconf, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔ ÐÒÅÐÒÏÃÅÓÓÏÒ ÏÂÝÅÇÏ ÎÁÚÎÁÞÅÎÉÑ m4, Á Á×ÔÏÒ ÐÁËÅÔÁ (Á ÎÅ ÕÓÔÁÎÏ×ÝÉË ÐÁËÅÔÁ) ×ÙÐÏÌÎÑÅÔ ÏÂÒÁÂÏÔËÕ ÓÔÁÎÄÁÒÔÎÙÍ ÓÐÏÓÏÂÏÍ.

÷ ÚÁËÌÀÞÅÎÉÅ, Mark Eichin ÚÁÍÅÞÁÅÔ:

Imake, × ËÏÎÃÅ ËÏÎÃÏ×, ÎÅ ÔÁËÏÊ ÕÖ É ÒÁÓÛÉÒÑÅÍÙÊ.  äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÄÏÂÁ×ÉÔØ Ë Imake ÎÏ×ÕÀ ×ÏÚÍÏÖÎÏÓÔØ, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÓÏÚÄÁÔØ ÓÏÂÓÔ×ÅÎÎÙÊ ÛÁÂÌÏÎ ÄÌÑ ÐÒÏÅËÔÁ É ÓÄÕÂÌÉÒÏ×ÁÔØ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ ÓÕÝÅÓÔ×ÕÀÝÅÇÏ ÛÁÂÌÏÎÁ. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÄÌÑ ÓÌÏÖÎÏÇÏ ÐÒÏÅËÔÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÏÓÔÁ×ÌÑÅÍÙÈ ÐÒÏÉÚ×ÏÄÉÔÅÌÅÍ ÛÁÂÌÏÎÏ× Imake ÐÒÉ×ÅÄÅÔ Ë ÓÂÏÀ --- ÐÏÓËÏÌØËÕ ÏÎÉ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ ×ÏÚÍÏÖÎÏÓÔÅÊ, × ËÏÔÏÒÙÈ ÎÕÖÄÁÅÔÓÑ ×ÁÛ ÐÒÏÅËÔ (ÅÓÌÉ ÔÏÌØËÏ ÏÎ ÎÅ Ñ×ÌÑÅÔÓÑ ÐÒÏÇÒÁÍÍÏÊ ÄÌÑ X11).

ïÄÎÁËÏ Ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ:

ïÄÎÏ ÉÚ ÐÒÅÉÍÕÝÅÓÔ× Imake ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó configure: ÆÁÊÌÙ Imakefile ÏËÁÚÙ×ÁÀÔÓÑ ÚÎÁÞÉÔÅÌØÎÏ ÍÅÎØÛÅ (ÂÏÌÅÅ ÔÏÇÏ, ÏÎÉ ÍÅÎÅÅ ÍÎÏÇÏÓÌÏ×ÎÙ), ÞÅÍ ÆÁÊÌÙ Makefile.in. ïÄÎÁËÏ ÓÕÝÅÓÔ×ÕÀÔ ÒÅÛÅÎÉÑ ÜÔÏÊ ÐÒÏÂÌÅÍÙ--- ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÄÌÑ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× Kerberos V5, ÍÙ ÉÚÍÅÎÉÌÉ ÆÁÊÌÙ ÄÌÑ ×ÙÚÏ×Á ÏÂÝÉÈ ÞÁÓÔÅÊ: ÆÒÁÇÍÅÎÔÏ× Makefile ÄÌÑ ×ÓÅÇÏ ÄÅÒÅ×Á ËÁÔÁÌÏÇÏ×, ËÏÔÏÒÙÅ ÎÁÈÏÄÑÔÓÑ × ÆÁÊÌÁÈ post.in É pre.in.  üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÞÁÓÔØ ÏÂÝÅÊ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔÉ ÎÅ ÄÕÂÌÉÒÕÅÔÓÑ, ÄÁÖÅ ÈÏÔÑ ÏÎÉ ÂÕÄÕÔ ÎÁÈÏÄÉÔØÓÑ × ÓËÒÉÐÔÁÈ configure.

ïÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 1
*********************

ðÏ ÂÏÌØÛÅÊ ÞÁÓÔÉ Autoconf ×ÅÒÓÉÉ 2 ÏÂÒÁÔÎÏ ÓÏ×ÍÅÓÔÉÍ Ó ×ÅÒÓÉÅÊ 1. ïÄÎÁËÏ ÖÅ, × ÎÅÍ ÐÏÑ×ÉÌÉÓØ ÂÏÌÅÅ ÕÄÏÂÎÙÅ ÓÐÏÓÏÂÙ ÒÅÛÅÎÉÑ ÎÅËÏÔÏÒÙÈ ×ÅÝÅÊ, Á ÎÅËÏÔÏÒÙÅ ÏÓÏÂÅÎÎÏ ÕÒÏÄÌÉ×ÙÅ ÓÐÏÓÏÂÙ ÉÚ ×ÅÒÓÉÉ 1 ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ.  ôÁË ÞÔÏ, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÓÌÏÖÎÏÓÔÉ ×ÁÛÉÈ ÆÁÊÌÏ× configure.in, ×ÁÍ, ÍÏÖÅÔ ÂÙÔØ, ÐÒÉÄÅÔÓÑ ×ÒÕÞÎÕÀ ÓËÏÒÒÅËÔÉÒÏ×ÁÔØ ×ÁÛÉ ÆÁÊÌÙ, ÞÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ Ó Autoconf ×ÅÒÓÉÉ 2. üÔÏÔ ÒÁÚÄÅÌ ÏÐÉÓÙ×ÁÅÔ ÎÅËÏÔÏÒÙÅ ÐÒÏÂÌÅÍÙ, ËÏÔÏÒÙÈ ÍÏÖÎÏ ÏÖÉÄÁÔØ ÐÒÉ ÐÅÒÅÈÏÄÅ Ë ÎÏ×ÏÊ ×ÅÒÓÉÉ.  ôÁËÖÅ, ×ÏÚÍÏÖÎÏ, ×ÁÛÉ ÓËÒÉÐÔÙ configure ÐÏÌÕÞÁÔ ×ÙÇÏÄÕ ÏÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÎÏ×ÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ×ÅÒÓÉÉ 2; ÓÐÉÓÏË ÉÚÍÅÎÅÎÉÊ ÐÒÉ×ÅÄÅÎ × ÆÁÊÌÅ NEWS ÄÉÓÔÒÉÂÕÔÉ×Á Autoconf.

÷ ÐÅÒ×ÕÀ ÏÞÅÒÅÄØ ÕÂÅÄÉÔÅÓØ, ÞÔÏ Õ ×ÁÓ ÕÓÔÁÎÏ×ÌÅÎ GNU m4 ×ÅÒÓÉÉ 1.1 ÉÌÉ ÂÏÌÅÅ Ó×ÅÖÅÊ, ÐÒÅÄÐÏÞÔÉÔÅÌØÎÅÊ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÅÒÓÉÀ 1.3 ÉÌÉ ÓÌÅÄÕÀÝÉÅ. ÷ÅÒÓÉÉ ÄÏ 1.1 ÉÍÅÌÉ ÏÛÉÂËÕ, ËÏÔÏÒÁÑ ÐÒÅÐÑÔÓÔ×Ï×ÁÌÁ ÉÈ ÒÁÂÏÔÅ Ó Autoconf ×ÅÒÓÉÉ 2. ÷ÅÒÓÉÉ 1.3 É ÂÏÌÅÅ ÐÏÚÄÎÉÅ ÒÁÂÏÔÁÀÔ ÂÙÓÔÒÅÅ, ÞÅÍ ÂÏÌÅÅ ÒÁÎÎÉÅ ×ÅÒÓÉÉ, ÐÏÓËÏÌØËÕ Ó ×ÅÒÓÉÉ 1.3 GNU m4 ÉÍÅÅÔ ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÕÀ ÒÅÁÌÉÚÁÃÉÀ diversions É ÍÏÖÅÔ ÓÏÈÒÁÎÉÔØ Ó×ÏÅ ÓÏÓÔÏÑÎÉÅ × ÆÁÊÌÅ, ËÏÔÏÒÙÊ ÐÏÔÏÍ ÍÏÖÅÔ ÂÙÓÔÒÏ ÓÞÉÔÁÎ ÏÂÒÁÔÎÏ.

éÚÍÅÎÅÎÎÙÅ ÉÍÅÎÁ ÆÁÊÌÏ×
=======================

åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÆÁÊÌ aclocal.m4, ÕÓÔÁÎÏ×ÌÅÎÎÙÊ ×ÍÅÓÔÅ Ó Autoconf (Á ÎÅ × ËÁÔÁÌÏÇÅ Ó ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ), ÔÏ ×Ù ÄÏÌÖÎÙ ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÅÇÏ × acsite.m4.  See úÁÐÕÓË autoconf.

åÓÌÉ ×Ù ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÅ Ó ×ÁÛÉÍ ÐÁËÅÔÏÍ ÆÁÊÌ install.sh, ÔÏ ÐÅÒÅÉÍÅÎÕÊÔÅ ÅÇÏ × install-sh, ÔÁË ÞÔÏ ×ÓÔÒÏÅÎÎÙÅ ÐÒÁ×ÉÌÁ make ÎÅ ÂÕÄÕÔ ÓÏÚÄÁ×ÁÔØ ÎÁ ÅÇÏ ÏÓÎÏ×Å ÆÁÊÌ install. AC_PROG_INSTALL ÉÝÅÔ ÆÁÊÌ, ÐÏÌØÚÕÑÓØ ÏÂÏÉÍÉ ÉÍÅÎÁÍÉ, ÎÏ ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÏ×ÏÅ ÉÍÑ.

åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ config.h.top ÉÌÉ config.h.bot, ÔÏ ×Ù ×ÓÅ ÒÁ×ÎÏ ÓÍÏÖÅÔÅ ÉÈ ÉÓÐÏÌØÚÏ×ÁÔØ, ÎÏ ÂÕÄÅÔ ÌÕÞÛÅ, ÅÓÌÉ ×Ù ÏÂßÅÄÉÎÉÔÅ ÉÈ × ÆÁÊÌ acconfig.h. See úÁÐÕÓË autoheader.

éÚÍÅÎÅÎÎÙÅ ÆÁÊÌÙ Makefile
=========================

äÏÂÁ×ØÔÅ @CFLAGS@, @CPPFLAGS@ É @LDFLAGS@ × ×ÁÛÉ ÆÁÊÌÙ Makefile.in, ÞÔÏÂÙ ÔÕÄÁ ÐÏÐÁÄÁÌÉ ÚÎÁÞÅÎÉÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÐÅÒÅÍÅÎÎÙÈ ÓÒÅÄÙ, ÕÓÔÁÎÏ×ÌÅÎÎÙÅ ÐÒÉ ÚÁÐÕÓËÅ configure.  üÔÏ ÎÅÏÂÑÚÁÔÅÌØÎÏ, ÎÏ ÕÄÏÂÎÏ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ.

ôÁËÖÅ ÄÏÂÁ×ØÔÅ @configure_input@ × ËÏÍÍÅÎÔÁÒÉÊ ËÁÖÄÏÇÏ ÉÚ ×ÈÏÄÎÙÈ ÆÁÊÌÏ× ÍÁËÒÏÓÁ AC_OUTPUT, ËÒÏÍÅ ÆÁÊÌÏ× Makefile, ÞÔÏÂÙ ×ÙÈÏÄÎÙÅ ÆÁÊÌÙ ÓÏÄÅÒÖÁÌÉ ÓÏÏÂÝÅÎÉÅ Ï ÔÏÍ, ÞÔÏ ÏÎÉ ÓÏÚÄÁÎÙ ÓËÒÉÐÔÏÍ configure. á×ÔÏÍÁÔÉÞÅÓËÉÊ ×ÙÂÏÒ ÓÉÎÔÁËÓÉÓÁ ÄÌÑ ËÏÍÍÅÎÔÁÒÉÅ× × ÆÁÊÌÁÈ, ÄÌÑ ËÏÔÏÒÙÈ ×ÙÚÙ×ÁÅÔÓÑ AC_OUTPUT, ÂÙÌÏ ÂÙ ÓÌÉÛËÏÍ ÓÌÏÖÎÏ.

äÏÂÁ×ØÔÅ config.log É config.cache × ÓÐÉÓÏË ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ×Ù ÕÄÁÌÑÅÔÅ Ó ÐÏÍÏÝØÀ ÃÅÌÉ distclean.

åÓÌÉ Õ ×ÁÓ × Makefile.in ÉÍÅÅÔÓÑ ÓÌÅÄÕÀÝÅÅ:

     prefix = /usr/local
     exec_prefix = ${prefix}

ÔÏ ×Ù ÄÏÌÖÎÙ ÉÚÍÅÎÉÔØ ÜÔÕ ÚÁÐÉÓØ ÎÁ ÓÌÅÄÕÀÝÕÀ:

     prefix = @prefix@
     exec_prefix = @exec_prefix@

óÔÁÒÏÅ ÐÏ×ÅÄÅÎÉÅ ÚÁÍÅÎÙ ÐÅÒÅÍÅÎÎÙÈ ÂÅÚ ÚÎÁËÏ× @ ×ÏËÒÕÇ ÎÉÈ ÂÙÌÏ ÕÄÁÌÅÎÏ.

éÚÍÅÎÅÎÎÙÅ ÍÁËÒÏÓÙ
==================

÷ Autoconf ×ÅÒÓÉÉ 2 ÍÎÏÇÉÅ ÍÁËÒÏÓÙ ÂÙÌÉ ÐÅÒÅÉÍÅÎÏ×ÁÎÙ.  ÷Ù ×ÓÅ ÒÁ×ÎÏ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÒÙÅ ÉÍÅÎÁ, ÎÏ ÎÏ×ÙÅ ÉÍÅÎÁ ÍÁËÒÏÓÏ× ÂÏÌÅÅ ÐÏÎÑÔÎÙ É ÄÌÑ ÎÉÈ ÌÅÇÞÅ ÎÁÊÔÉ ÄÏËÕÍÅÎÔÁÃÉÀ. See óÔÁÒÙÅ ÉÍÅÎÁ ÍÁËÒÏÓÏ×, ÇÄÅ ÐÒÉ×ÅÄÅÎÁ ÔÁÂÌÉÃÁ ÓÏÏÔ×ÅÔÓÔ×ÉÑ ÎÏ×ÙÈ ÉÍÅÎ ÓÔÁÒÙÍ ÉÍÅÎÁÍ. éÓÐÏÌØÚÕÊÔÅ ÐÒÏÇÒÁÍÍÕ autoupdate ÄÌÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ×ÁÛÉÈ ÆÁÊÌÏ× configure.in ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÎÏ×ÙÈ ÉÍÅÎ ÍÁËÒÏÓÏ×. See úÁÐÕÓË autoupdate.

îÅËÏÔÏÒÙÅ ÍÁËÒÏÓÙ ÂÙÌÉ ÚÁÍÅÎÅÎÙ ÁÎÁÌÏÇÉÞÎÙÍÉ, ËÏÔÏÒÙÅ ÌÕÞÛÅ ×ÙÐÏÌÎÑÀÔ ÎÕÖÎÕÀ ÚÁÄÁÞÕ, ÎÏ ÎÅÓÏ×ÍÅÓÔÉÍÙ ÐÏ ÐÁÒÁÍÅÔÒÁÍ ×ÙÚÏ×Á.  åÓÌÉ ×Ù ÐÏÌÕÞÁÅÔÅ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ Ï ×ÙÚÏ×Å ÕÓÔÁÒÅ×ÛÉÈ ÍÁËÒÏÓÏ× ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ autoconf, ÔÏ ÍÏÖÅÔÅ ÓÐÏËÏÊÎÏ ÉÇÎÏÒÉÒÏ×ÁÔØ ÜÔÉ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ, ÎÏ ×ÁÛ ÓËÒÉÐÔ configure, ×ÏÏÂÝÅ, ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ÌÕÞÛÅ, ÅÓÌÉ ×Ù ÐÏÓÌÅÄÕÅÔÅ ÓÏ×ÅÔÁÍ ÚÁÍÅÎÉÔØ ÕÓÔÁÒÅ×ÛÉÊ ÍÁËÒÏÓ ÎÁ ÎÏ×ÙÊ.  áÎÁÌÏÇÉÞÎÙÍ ÏÂÒÁÚÏÍ ÂÙÌ ÉÚÍÅÎÅÎ ÍÅÈÁÎÉÚÍ ×ÙÄÁÞÉ ÒÅÚÕÌØÔÁÔÏ× ÔÅÓÔÏ×.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÏ×ÁÌÉ ËÏÍÁÎÄÙ echo ÉÌÉ AC_VERBOSE (ÍÏÖÅÔ ÂÙÔØ, ÐÏÓÒÅÄÓÔ×ÏÍ AC_COMPILE_CHECK), ÔÏ ×Ù×ÏÄ ×ÁÛÅÇÏ ÓËÒÉÐÔÁ configure ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ ÌÕÞÛÅ, ÅÓÌÉ ×Ù ÓÔÁÎÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓÙ AC_MSG_CHECKING É AC_MSG_RESULT. See ÷ÙÄÁÞÁ ÓÏÏÂÝÅÎÉÊ.  üÔÉ ÍÁËÒÏÓÙ ÌÕÞÛÅ ×ÓÅÇÏ ÒÁÂÏÔÁÀÔ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ËÜÛÉÒÏ×ÁÎÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.  See ëÜÛÉÒÏ×ÁÎÉÅ ÒÅÚÕÌØÔÁÔÏ×.

éÓÐÏÌØÚÏ×ÁÎÉÅ autoupdate ÄÌÑ ÏÂÎÏ×ÌÅÎÉÑ configure
=================================================

ðÒÏÇÒÁÍÍÁ autoupdate ÏÂÎÏ×ÌÑÅÔ ÆÁÊÌ configure.in ÚÁÍÅÎÑÑ ×ÙÚÏ×Ù ÓÔÁÒÙÈ ÍÁËÒÏÓÏ× Autoconf ÎÁ ×ÙÚÏ×Ù ÍÁËÒÏÓÏ× Ó ÎÏ×ÙÍÉ ÉÍÅÎÁÍÉ. ÷ Autoconf ×ÅÒÓÉÉ 2 ÂÏÌØÛÉÎÓÔ×Ï ÍÁËÒÏÓÏ× ÂÙÌÉ ÐÅÒÅÉÍÅÎÏ×ÁÎÙ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÂÏÌÅÅ ÏÂÝÅÊ É ÐÏÎÑÔÎÏÊ ÓÈÅÍÙ ÎÁÉÍÅÎÏ×ÁÎÉÑ.  äÌÑ ÏÐÉÓÁÎÉÑ ÎÏ×ÏÊ ÓÈÅÍÙ ÉÍÅÎÏ×ÁÎÉÑ see éÍÅÎÁ ÍÁËÒÏÓÏ×. èÏÔÑ ÍÁËÒÏÓÙ ÓÏ ÓÔÁÒÙÍÉ ÉÍÅÎÁÍÉ ×ÓÅ ÒÁ×ÎÏ ÒÁÂÏÔÁÀÔ (see óÔÁÒÙÅ ÉÍÅÎÁ ÍÁËÒÏÓÏ×, ÇÄÅ ÐÒÉ×ÅÄÅÎ ÓÐÉÓÏË ÓÔÁÒÙÈ ÉÍÅÎ ÍÁËÒÏÓÏ× É ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÉÍ ÎÏ×ÙÈ ÉÍÅÎ), ÎÏ ÅÓÌÉ ×Ù ÏÂÎÏ×ÉÔÅ Ó×ÏÉ ÆÁÊÌÙ ÄÌÑ ÓÏÏÔ×ÅÔÓÔ×ÉÑ ÎÏ×ÙÍ ÉÍÅÎÁÍ ÍÁËÒÏÓÏ×, ÔÏ ÆÁÊÌÙ configure.in ÓÔÁÎÕÔ ÞÉÔÁÂÅÌØÎÅÅ, Á ÉÓÐÏÌØÚÏ×ÁÔØ Ó×ÅÖÕÀ ÄÏËÕÍÅÎÔÁÃÉÀ ÐÏ Autoconf ÓÔÁÎÅÔ ÐÒÏÝÅ.

åÓÌÉ autoupdate ÚÁÐÕÝÅÎÁ ÂÅÚ ÁÒÇÕÍÅÎÔÏ×, ÔÏ ÏÎÁ ÏÂÎÏ×ÌÑÅÔ configure.in, ÄÅÌÁÑ ÒÅÚÅÒ×ÎÕÀ ËÏÐÉÀ ÏÒÉÇÉÎÁÌØÎÏÊ ×ÅÒÓÉÉ ÆÁÊÌÁ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÓÕÆÆÉËÓÁ ~ (ÉÌÉ ÚÎÁÞÅÎÉÑ ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ SIMPLE_BACKUP_SUFFIX, ÅÓÌÉ ÏÎÁ ÕÓÔÁÎÏ×ÌÅÎÁ). åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ ÁÒÇÕÍÅÎÔ ÐÒÏÇÒÁÍÍÅ autoupdate, ÔÏ ÏÎÁ ÂÕÄÅÔ ÓÞÉÔÙ×ÁÔØ ÄÁÎÎÙÅ ÉÚ ÜÔÏÇÏ ÆÁÊÌÁ ×ÍÅÓÔÏ configure.in É ×Ù×ÏÄÉÔØ ÄÁÎÎÙÅ × ÐÏÔÏË ÓÔÁÎÄÁÒÔÎÏÇÏ ×Ù×ÏÄÁ.

autoupdate ÒÁÓÐÏÚÎÁÅÔ ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:

--help
-h
     ÷ÙÄÁÅÔ ÓÐÉÓÏË ËÌÀÞÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

--macrodir=DIR
-m DIR
     éÝÅÔ ÆÁÊÌÙ Ó ÍÁËÒÏÓÁÍÉ Autoconf × ËÁÔÁÌÏÇÅ DIR, Á ÎÅ × ËÁÔÁÌÏÇÅ, × ËÏÔÏÒÙÊ ÐÒÏÉÚ×ÏÄÉÌÁÓØ ÕÓÔÁÎÏ×ËÁ.  ÷Ù ÔÁËÖÅ ÚÁÄÁÔØ ÐÕÔØ Ë ÜÔÏÍÕ ËÁÔÁÌÏÇÕ × ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ AC_MACRODIR; ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ËÌÀÞÁ ÐÅÒÅËÒÙ×ÁÅÔ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ.

--version
     ÷ÙÄÁÅÔ ÎÏÍÅÒ ×ÅÒÓÉÉ autoupdate É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ.

éÚÍÅÎÅÎÎÙÅ ÒÅÚÕÌØÔÁÔÙ
=====================

åÓÌÉ ×Ù ÐÒÏ×ÅÒÑÌÉ ÒÅÚÕÌØÔÁÔÙ ÐÒÅÄÙÄÕÝÉÈ ÔÅÓÔÏ× ÐÕÔÅÍ ÐÒÏ×ÅÒËÉ ÐÅÒÅÍÅÎÎÏÊ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ DEFS, ÔÏ ÔÅÐÅÒØ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÐÅÒÅËÌÀÞÉÔØÓÑ ÎÁ ÐÒÏ×ÅÒËÕ ÚÎÁÞÅÎÉÊ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ ÄÌÑ ÄÁÎÎÙÈ ÔÅÓÔÏ×. ðÅÒÅÍÅÎÎÁÑ DEFS ÂÏÌØÛÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ configure; ÏÎÁ ÓÏÚÄÁÅÔÓÑ ÔÏÌØËÏ ÐÒÉ ÇÅÎÅÒÁÃÉÉ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×. üÔÏ ÉÚÍÅÎÅÎÉÅ ÐÏ×ÅÄÅÎÉÑ ÂÙÌÏ ÓÄÅÌÁÎÏ ÐÏÔÏÍÕ, ÞÔÏ ÐÒÁ×ÉÌØÎÏÅ ÜËÒÁÎÉÒÏ×ÁÎÉÅ ÓÏÄÅÒÖÉÍÏÇÏ ÜÔÏÊ ÐÅÒÅÍÅÎÎÏÊ ÏËÁÚÁÌÏÓØ ÓÌÉÛËÏÍ ÇÒÏÍÏÚÄËÉÍ É ÎÅÜÆÆÅËÔÉ×ÎÙÍ ÐÒÉ ËÁÖÄÏÍ ×ÙÚÏ×Å ÍÁËÒÏÓÁ AC_DEFINE. See éÍÅÎÁ ÐÅÒÅÍÅÎÎÙÈ ËÜÛÁ.

îÁÐÒÉÍÅÒ, ×ÏÔ ÆÒÁÇÍÅÎÔ configure.in, ÎÁÐÉÓÁÎÎÏÇÏ ÄÌÑ Autoconf ×ÅÒÓÉÉ 1:

     AC_HAVE_FUNCS(syslog)
     case "$DEFS" in
     *-DHAVE_SYSLOG*) ;;
     *) # syslog ÎÅ ÎÁÈÏÄÉÔÓÑ × ÂÉÂÌÉÏÔÅËÁÈ ÐÏ ÕÍÏÌÞÁÎÉÀ. óÍÏÔÒÉÍ, ÅÓÔØ ÌÉ ÏÎ ×
        # ÄÒÕÇÉÈ ÂÉÂÌÉÏÔÅËÁÈ.
       saved_LIBS="$LIBS"
       for lib in bsd socket inet; do
         AC_CHECKING(for syslog in -l$lib)
         LIBS="$saved_LIBS -l$lib"
         AC_HAVE_FUNCS(syslog)
         case "$DEFS" in
         *-DHAVE_SYSLOG*) break ;;
         *) ;;
         esac
         LIBS="$saved_LIBS"
       done ;;
     esac

÷ÏÔ ËÁË ÜÔÏ ÚÁÐÉÓÙ×ÁÅÔÓÑ ÄÌÑ ×ÅÒÓÉÉ 2:

     AC_CHECK_FUNCS(syslog)
     if test $ac_cv_func_syslog = no; then
       # syslog ÎÅ ÎÁÈÏÄÉÔÓÑ × ÂÉÂÌÉÏÔÅËÁÈ ÐÏ ÕÍÏÌÞÁÎÉÀ. óÍÏÔÒÉÍ, ÅÓÔØ ÌÉ ÏÎ ×
       # ÄÒÕÇÉÈ ÂÉÂÌÉÏÔÅËÁÈ.
       for lib in bsd socket inet; do
         AC_CHECK_LIB($lib, syslog, [AC_DEFINE(HAVE_SYSLOG)
           LIBS="$LIBS $lib"; break])
       done
     fi

åÓÌÉ ×Ù ÏÂÈÏÄÉÌÉ ÏÛÉÂËÕ × ÍÁËÒÏÓÅ AC_DEFINE_UNQUOTED, ÄÏÂÁ×ÌÑÑ ÓÉÍ×ÏÌÙ ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ ÐÅÒÅÄ ËÁ×ÙÞËÁÍÉ, ÔÏ ÔÅÐÅÒØ ×ÁÍ ÐÒÉÄÅÔÓÑ ÕÄÁÌÉÔØ ÉÈ.  üÔÏÔ ÍÁËÒÏÓ ÓÅÊÞÁÓ ÒÁÂÏÔÁÅÔ ÐÒÅÄÓËÁÚÕÅÍÏ É ÎÅ ÒÁÓÓÍÁÔÒÉ×ÁÅÔ ÏÓÏÂÙÍ ÏÂÒÁÚÏÍ ËÁ×ÙÞËÉ (ËÒÏÍÅ ÏÂÒÁÔÎÙÈ).  See õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.

÷ÓÅ ÌÏÇÉÞÅÓËÉÅ ÐÅÒÅÍÅÎÎÙÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÙÅ ÍÁËÒÏÓÁÍÉ Autoconf, ÉÓÐÏÌØÚÕÀÔ yes ÄÌÑ ÉÓÔÉÎÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. âÏÌØÛÉÎÓÔ×Ï ÉÚ ÎÉÈ ÉÓÐÏÌØÚÕÅÔ no ÄÌÑ ÌÏÖÎÙÈ ÚÎÁÞÅÎÉÊ, ÈÏÔÑ ÄÌÑ ÏÂÒÁÔÎÏÊ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ÉÓÐÏÌØÚÕÀÔ ÐÕÓÔÕÀ ÓÔÒÏËÕ. åÓÌÉ ×Ù ÐÏÌÁÇÁÌÉÓØ, ÞÔÏ ÐÅÒÅÍÅÎÎÁÑ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎÁ × ÞÔÏ-ÎÉÂÕÄØ ÔÉÐÁ 1 ÉÌÉ t ÄÌÑ ÉÓÔÉÎÎÏÇÏ ÚÎÁÞÅÎÉÑ, ÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÚÍÅÎÉÔØ ×ÁÛÉ ÔÅÓÔÙ.

éÚÍÅÎÅÎÎÏÅ ÎÁÐÉÓÁÎÉÅ ÍÁËÒÏÓÏ×
=============================

ðÒÉ ÏÐÒÅÄÅÌÅÎÉÉ ×ÁÛÉÈ ÓÏÂÓÔ×ÅÎÎÙÈ ÍÁËÒÏÓÏ× ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ AC_DEFUN ×ÍÅÓÔÏ define. AC_DEFUN Á×ÔÏÍÁÔÉÞÅÓËÉ ×ÙÚÙ×ÁÅÔ ÍÁËÒÏÓ AC_PROVIDE É ÐÒÏ×ÅÒÑÅÔ, ÞÔÏ ÍÁËÒÏÓÙ, ×ÙÚÙ×ÁÅÍÙÅ ÞÅÒÅÚ AC_REQUIRE, ÎÅ ÐÒÅÒÙ×ÁÀÔ ÄÒÕÇÉÅ ÍÁËÒÏÓÙ, ÄÌÑ ÐÒÅÄÏÔ×ÒÁÝÅÎÉÑ ×ÌÏÖÅÎÎÙÈ ÓÏÏÂÝÅÎÉÊ checking... ÎÁ ÜËÒÁÎÅ.  îÁ ÓÁÍÏÍ ÄÅÌÅ, ÓÔÁÒÙÊ ÓÐÏÓÏÂ ÎÅ ÐÒÉÞÉÎÉÔ ×ÒÅÄÁ, ÎÏ ÏÎ ÍÅÎÅÅ ÕÄÏÂÅÎ É ÍÅÎÅÅ ÐÒÉ×ÌÅËÁÔÅÌÅÎ.  See ïÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÏ×.

÷Ù, ×ÅÒÏÑÔÎÏ, ÒÁÓÓÍÁÔÒÉ×ÁÌÉ ÍÁËÒÏÓÙ, ÐÏÓÔÁ×ÌÑÅÍÙÅ Ó Autoconf, ËÁË ÒÕËÏ×ÏÄÓÔ×Ï ÐÏ ÎÁÐÉÓÁÎÉÀ ÍÁËÒÏÓÏ×.  ðÏÓÍÏÔÒÉÔÅ ÎÁ ÎÏ×ÕÀ ÉÈ ×ÅÒÓÉÀ, ÐÏÔÏÍÕ ÞÔÏ ÓÔÉÌØ ÎÅËÏÔÏÒÙÈ ÍÁËÒÏÓÏ× ÓÉÌØÎÏ ÕÌÕÞÛÅÎ, Á ÎÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÁËÔÉ×ÎÏ ÉÓÐÏÌØÚÕÀÔÓÑ.

åÓÌÉ ×Ù ÄÅÌÁÌÉ ÈÉÔÒÙÅ ×ÅÝÉ, ÉÓÐÏÌØÚÕÑ ÎÅÄÏËÕÍÅÎÔÉÒÏ×ÁÎÎÙÅ Ó×ÏÊÓÔ×Á Autoconf (ÍÁËÒÏÓÙ, ÐÅÒÅÍÅÎÎÙÅ, diversions), ÔÏ ÐÒÏ×ÅÒØÔÅ, ÎÅ ÎÕÖÎÏ ÌÉ ÉÚÍÅÎÉÔØ ÞÔÏ-ÎÉÂÕÄØ, ÞÔÏÂÙ ÕÞÅÓÔØ ÓÄÅÌÁÎÎÙÅ × Autoconf ÉÚÍÅÎÅÎÉÑ.  íÏÖÅÔ ÂÙÔØ, ÔÅÐÅÒØ ×Ù ÍÏÖÅÔÅ ÐÏÌØÚÏ×ÁÔØÓÑ ÓÔÁÎÄÁÒÔÎÏÊ ×ÏÚÍÏÖÎÏÓÔØÀ ×ÅÒÓÉÉ 2, ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ÕÐÒÁÖÎÑÔØÓÑ × ÉÚÏÂÒÅÔÁÔÅÌØÎÏÓÔÉ.  éÌÉ ÎÅÔ.

äÌÑ ÕÓËÏÒÅÎÉÑ ÒÁÂÏÔÙ ÎÁÐÉÓÁÎÎÙÈ ×ÁÍÉ ÍÁËÒÏÓÏ× ÄÏÂÁ×ØÔÅ × ÎÉÈ ÐÏÄÄÅÒÖËÕ ËÜÛÉÒÏ×ÁÎÉÑ. ðÒÏÓÍÏÔÒÉÔÅ ×ÓÅ ×ÁÛÉ ÔÅÓÔÙ, ÍÏÖÅÔ ÂÙÔØ ÉÈ ÎÕÖÎÏ ÏÆÏÒÍÉÔØ × ×ÉÄÅ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ×Ù ÓÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × ÒÁÚÎÙÈ ÐÁËÅÔÁÈ.

éÓÔÏÒÉÑ Autoconf
****************

÷Ù ÓÐÒÏÓÉÔÅ, ÚÁÞÅÍ ×ÏÏÂÝÅ Autoconf ÂÙÌ ÎÁÐÉÓÁÎ?  ëÁË ÏÎ ÏËÁÚÁÌÓÑ ÔÁÍ, ÇÄÅ ÏÎ ÓÅÊÞÁÓ ÅÓÔØ?  ðÏÞÅÍÕ ÏÎ ×ÙÇÌÑÄÉÔ ÐÏÄÏÂÎÏ ÐÌÅ×ËÕ ÇÏÒÉÌÌÙ? åÓÌÉ ×Ù ÎÅ ÉÎÔÅÒÅÓÕÅÔÅÓØ ÔÁËÉÍÉ ×ÏÐÒÏÓÁÍÉ, ÔÏ × ÜÔÏÊ ÇÌÁ×Å ÎÉÞÅÇÏ ÐÏÌÅÚÎÏÇÏ ÄÌÑ ×ÁÓ ÎÅÔ, É ×Ù ÍÏÖÅÔÅ ÓÐÏËÏÊÎÏ ÐÒÏÐÕÓÔÉÔØ ÅÅ.  îÏ ÅÓÌÉ ×ÁÍ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÉÎÔÅÒÅÓÎÏ, ÔÏ Ñ ÐÒÏÌØÀ ÎÅÍÎÏÇÏ Ó×ÅÔÁ....

âÙÔÉÅ
=====

÷ ÉÀÎÅ 1991 ÇÏÄÁ Ñ ÓÏÐÒÏ×ÏÖÄÁÌ ÍÎÏÇÏ ÕÔÉÌÉÔ GNU ÄÌÑ Free Software Foundation. ðÏ ÍÅÒÅ ÔÏÇÏ, ËÁË ÏÎÉ ÐÅÒÅÎÏÓÉÌÉÓØ ÎÁ ×ÓÅ ÂÏÌØÛÅÅ ËÏÌÉÞÅÓÔ×Ï ÐÌÁÔÆÏÒÍ, ËÏÌÉÞÅÓÔ×Ï ËÌÀÞÅÊ -D, ËÏÔÏÒÏÅ ÐÏÌØÚÏ×ÁÔÅÌÀ ÎÁÄÏ ÂÙÌÏ ×ÙÂÒÁÔØ × Makefile (ÏËÏÌÏ 20), ÓÔÁÎÏ×ÉÌÏÓØ ÏÂÒÅÍÅÎÉÔÅÌØÎÙÍ. ïÓÏÂÅÎÎÏ ÄÌÑ ÍÅÎÑ--- Ñ ÔÅÓÔÉÒÏ×ÁÌ ËÁÖÄÕÀ ÎÏ×ÕÀ ×ÅÒÓÉÀ ÎÁ ÒÁÚÌÉÞÎÙÈ ÐÌÁÔÆÏÒÍÁÈ. ôÁË ÞÔÏ Ñ ÎÁÐÉÓÁÌ ÄÌÑ ÐÁËÅÔÁ fileutils ÎÅÂÏÌØÛÏÊ ÓËÒÉÐÔ ÎÁ ÑÚÙËÅ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÎÅËÏÔÏÒÙÈ ÐÒÁ×ÉÌØÎÙÈ ÎÁÓÔÒÏÅË, É Ñ ×ÙÐÕÓÔÉÌ ÅÇÏ ËÁË ÞÁÓÔØ ÐÁËÅÔÁ fileutils 2.0. üÔÏÔ ÓËÒÉÐÔ configure ÒÁÂÏÔÁÌ ÄÏÓÔÁÔÏÞÎÏ ÈÏÒÏÛÏ, ÔÁË ÞÔÏ × ÓÌÅÄÕÀÝÅÍ ÍÅÓÑÃÅ Ñ ×ÒÕÞÎÕÀ ÁÄÁÐÔÉÒÏ×ÁÌ ÅÇÏ ÄÌÑ ÓÏÚÄÁÎÉÑ ÐÏÄÏÂÎÙÈ ÓËÒÉÐÔÏ× configure ÄÌÑ ÎÅÓËÏÌØËÉÈ ÄÒÕÇÉÈ ÐÁËÅÔÏ× ÕÔÉÌÉÔ GNU. Brian Berliner ÔÁËÖÅ ÁÄÁÐÔÉÒÏ×ÁÌ ÏÄÉÎ ÉÚ ÍÏÉÈ ÓËÒÉÐÔÏ× Ë Ó×ÏÅÊ ÓÉÓÔÅÍÅ ËÏÎÔÒÏÌÑ ×ÅÒÓÉÊ CVS.

ðÏÚÖÅ, ÔÅÍ ÖÅ ÌÅÔÏÍ, Ñ ÕÚÎÁÌ, ÞÔÏ Richard Stallman É Richard Pixley ÒÁÚÒÁÂÏÔÁÌÉ ÁÎÁÌÏÇÉÞÎÙÅ ÓËÒÉÐÔÙ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ÎÁÂÏÒÅ ÕÔÉÌÉÔ ËÏÍÐÉÌÑÃÉÉ GNU; ÔÁË ÞÔÏ Ñ ÁÄÁÐÔÉÒÏ×ÁÌ ÍÏÉ ÓËÒÉÐÔÙ configure ÄÌÑ ÐÏÄÄÅÒÖËÉ ÒÁÚ×É×ÁÀÝÅÇÏÓÑ ÉÎÔÅÒÆÅÊÓÁ ÉÈ ÓËÒÉÐÔÏ×: ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÆÁÊÌÏ× Makefile.in ËÁË ÛÁÂÌÏÎÏ×; ÄÏÂÁ×ÌÅÎÉÅ +srcdir, ÐÅÒ×ÏÇÏ ËÌÀÞÁ (ÉÚ ÍÎÏÇÉÈ); É ÓÏÚÄÁÎÉÅ ÆÁÊÌÏ× config.status.

éÓÈÏÄ
=====

ðÏ ÍÅÒÅ ÐÏÌÕÞÅÎÉÑ ÏÔ×ÅÔÏ× ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Ñ ÄÏÂÁ×ÉÌ ÍÎÏÇÏ ÕÌÕÞÛÅÎÉÊ, ÉÓÐÏÌØÚÕÑ Emacs ÄÌÑ ÐÏÉÓËÁ É ÚÁÍÅÎÙ, ×ÙÒÅÚÁÎÉÑ É ×ÓÔÁ×ËÉ, ÏÄÎÉÈ É ÔÅÈ ÖÅ ÉÚÍÅÎÅÎÉÊ × ËÁÖÄÏÍ ÉÚ ÓËÒÉÐÔÏ×. ðÏ ÍÅÒÅ ÔÏÇÏ, ËÁË ×ÓÅ ÂÏÌØÛÅÅ ËÏÌÉÞÅÓÔ×Ï ÕÔÉÌÉÔ GNU ÂÙÌÉ ÁÄÁÐÔÉÒÏ×ÁÎÙ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÓËÒÉÐÔÏ× configure, ÒÕÞÎÏÅ ÏÂÎÏ×ÌÅÎÉÅ ÓÔÁÎÏ×ÉÌÏÓØ ×ÓÅ ÂÏÌÅÅ ÎÅÕÄÏÂÎÏ. Rich Murphey, ÓÏÐÒÏ×ÏÖÄÁ×ÛÉÊ ÇÒÁÆÉÞÅÓËÉÅ ÕÔÉÌÉÔÙ GNU, ÐÏÓÌÁÌ ÍÎÅ ÐÉÓØÍÏ, × ËÏÔÏÒÏÍ ÐÉÓÁÌ, ÞÔÏ ÓËÒÉÐÔÙ configure ÒÁÂÏÔÁÀÔ ÏÞÅÎØ ÈÏÒÏÛÏ, É ÓÐÒÁÛÉ×ÁÌ, ÎÅÔÕ ÌÉ Õ ÍÅÎÑ ÕÔÉÌÉÔÙ ÄÌÑ ÉÈ ÇÅÎÅÒÁÃÉÉ, É ÍÏÇÕ ÌÉ Ñ ÐÏÓÌÁÔØ ÅÅ ÅÍÕ. îÅÔ, Ñ ÄÕÍÁÌ, ÎÏ Ñ ÄÏÌÖÅÎ ÂÙÌ! ôÁË, ÞÔÏ Ñ ÎÁÞÁÌ ÒÁÂÏÔÁÔØ ÎÁÄ ÔÅÍ, ËÁË ÓÏÚÄÁ×ÁÔØ ÜÔÉ ÆÁÊÌÙ. ôÁË ÎÁÞÁÌÏÓØ ÐÕÔÅÛÅÓÔ×ÉÅ ÏÔ ÒÁÂÓÔ×Á ÎÁÐÉÓÁÎÎÙÈ ×ÒÕÞÎÕÀ ÓËÒÉÐÔÏ× configure Ë ÉÚÏÂÉÌÉÀ É ÌÅÇËÏÓÔÉ Autoconf.

ðÁËÅÔ Cygnus configure, ËÏÔÏÒÙÊ ÂÙÌ ÒÁÚÒÁÂÏÔÁÎ ÐÒÉÍÅÒÎÏ × ÔÏ ÖÅ ×ÒÅÍÑ, ÕÐÒÁ×ÌÑÌÓÑ ÔÁÂÌÉÃÅÊ; ÏÎ ÐÒÅÄÎÁÚÎÁÞÁÌÓÑ × ÏÓÎÏ×ÎÏÍ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÅÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ÔÉÐÏ× ÓÉÓÔÅÍ É ÎÅÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ×ÏÚÍÏÖÎÏÓÔÅÊ, ËÏÔÏÒÙÅ ÐÏ ÂÏÌØÛÅÊ ÞÁÓÔÉ ÎÅÌØÚÑ ÂÙÌÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÐÒÅÄÅÌÉÔØ (ÎÁÐÒÉÍÅÒ, ÄÅÔÁÌÉ ÆÏÒÍÁÔÁ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×). á×ÔÏÍÁÔÉÞÅÓËÁÑ ÓÉÓÔÅÍÁ ÎÁÓÔÒÏÊËÉ, ËÏÔÏÒÕÀ Brian Fox ÒÁÚÒÁÂÏÔÁÌ ÄÌÑ Bash, ÉÓÐÏÌØÚÏ×ÁÌÁ ÁÎÁÌÏÇÉÞÎÙÊ ÐÏÄÈÏÄ.  äÌÑ ÏÂÝÅÇÏ ÐÏÌØÚÏ×ÁÎÉÑ, ÍÎÅ ËÁÖÅÔÓÑ ÂÅÚÎÁÄÅÖÎÏÊ ÐÏÐÙÔËÁ ÓÏÐÒÏ×ÏÖÄÁÔØ ÐÏÓÔÏÑÎÎÏ ÏÂÎÏ×ÌÑÅÍÕÀ ÂÁÚÕ ÄÁÎÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ËÁÖÄÏÇÏ ÉÚ ×ÁÒÉÁÎÔÏ× ËÁÖÄÏÊ ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÙ. ìÅÇÞÅ É ÎÁÄÅÖÎÅÅ ÂÕÄÅÔ ÐÒÏ×ÅÒÑÔØ ÂÏÌØÛÉÎÓÔ×Ï Ó×ÏÊÓÔ× ÎÁ ÌÅÔÕ--- ÏÓÏÂÅÎÎÏ ÎÁ ÇÉÂÒÉÄÎÙÈ ÓÉÓÔÅÍÁÈ, ËÏÔÏÒÙÅ ÌÀÄÉ ÉÚÍÅÎÑÌÉ ÌÏËÁÌØÎÏ, ÉÌÉ ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÕÓÔÁÎÏ×ÌÅÎÙ ÚÁÐÌÁÔËÉ ÏÔ ÐÒÏÉÚ×ÏÄÉÔÅÌÑ.

ñ ÒÁÓÓÍÁÔÒÉ×ÁÌ ÁÒÈÉÔÅËÔÕÒÕ, ÓÈÏÄÎÕÀ Ó ÉÓÐÏÌØÚÕÅÍÏÊ × Cygnus configure, ÇÄÅ ÉÍÅÅÔÓÑ ÏÄÉÎ ÓËÒÉÐÔ configure, ËÏÔÏÒÙÊ ÐÒÉ ÚÁÐÕÓËÅ ÓÞÉÔÙ×ÁÅÔ ÞÁÓÔÉ configure.in. îÏ Ñ ÎÅ ÈÏÔÅÌ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ Ó ËÁÖÄÙÍ ÐÁËÅÔÏÍ ÔÅÓÔÙ ÄÌÑ ×ÓÅÈ ×ÏÚÍÏÖÎÏÓÔÅÊ, ÔÁË ÞÔÏ Ñ ÐÒÉÛÅÌ Ë ÒÅÛÅÎÉÀ ÉÍÅÔØ ÒÁÚÎÙÅ ÓËÒÉÐÔÙ configure, ÓÏÚÄÁÎÎÙÅ ÉÚ configure.in Ó ÐÏÍÏÝØÀ ÐÒÅÐÒÏÃÅÓÓÏÒÁ.  üÔÏÔ ÐÏÄÈÏÄ ÔÁËÖÅ ÐÒÅÄÓÔÁ×ÌÑÌ ÂÏÌØÛÉÊ ËÏÎÔÒÏÌØ É ÂÏÌØÛÕÀ ÇÉÂËÏÓÔØ.

ñ ÔÁËÖÅ ÏÚÎÁËÏÍÉÌÓÑ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÁËÅÔÁ Metaconfig, ÓÏÚÄÁÎÎÏÇÏ Larry Wall, Harlan Stenn É Raphael Manfredi, ÎÏ Ñ ÒÅÛÉÌ ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÅÇÏ ÐÏ ÎÅÓËÏÌØËÉÍ ÐÒÉÞÉÎÁÍ. óÏÚÄÁ×ÁÅÍÙÅ Ó ÅÇÏ ÐÏÍÏÝØÀ ÓËÒÉÐÔÙ Configure Ñ×ÌÑÀÔÓÑ ÉÎÔÅÒÁËÔÉ×ÎÙÍÉ, ÞÔÏ Ñ ÎÁÛÅÌ ÄÏÓÔÁÔÏÞÎÏ ÎÅÕÄÏÂÎÙÍ; ÍÎÅ ÎÅ ÐÏÎÒÁ×ÉÌÓÑ ÓÐÏÓÏÂ, ËÁËÉÍ ÏÎ ÐÒÏ×ÅÒÑÌ ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ (ÔÁËÉÅ ËÁË ÎÁÌÉÞÉÅ ÂÉÂÌÉÏÔÅÞÎÙÈ ÆÕÎËÃÉÊ); Ñ ÎÅ ÚÎÁÌ, ÓÏÐÒÏ×ÏÖÄÁÌÓÑ ÌÉ ÏÎ ÔÏÇÄÁ ×ÓÅ ÅÝÅ, Á ÓËÒÉÐÔÙ Configure, ËÏÔÏÒÙÅ Ñ ÒÁÓÓÍÁÔÒÉ×ÁÌ, ÎÅ ÒÁÂÏÔÁÌÉ ÎÁ ÍÎÏÇÉÈ ÓÏ×ÒÅÍÅÎÎÙÈ ÓÉÓÔÅÍÁÈ (ÔÁËÉÈ ËÁË System V R4 É NeXT); Õ ÎÅÇÏ ÎÅ ÂÙÌÏ ÄÏÓÔÁÔÏÞÎÏÊ ÇÉÂËÏÓÔÉ × ÒÅÁËÃÉÉ ÎÁ ÎÁÌÉÞÉÅ ÉÌÉ ÏÔÓÕÔÓÔ×ÉÅ ËÁËÏÊ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÉ; Ñ ÎÁÛÅÌ ÅÇÏ ÔÒÕÄÎÙÍ × ÏÓ×ÏÅÎÉÉ; ÏÎ ÂÙÌ ÓÌÉÛËÏÍ ÂÏÌØÛÉÍ É ÓÌÏÖÎÙÍ ÄÌÑ ÍÏÉÈ ÎÕÖÄ (Ñ ÎÅ ÏÓÏÚÎÁ×ÁÌ ÔÏÇÄÁ, ËÁË ÓÉÌØÎÏ ÐÒÉÄÅÔÓÑ ÒÁÚ×ÉÔØ Autoconf).

ñ ÒÁÓÓÍÁÔÒÉ×ÁÌ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÑÚÙËÁ Perl ÄÌÑ ÓÏÚÄÁÎÉÑ ÍÏÉÈ ÓËÒÉÐÔÏ× configure, ÎÏ ÒÅÛÉÌ, ÞÔÏ m4 ÌÕÞÛÅ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÐÒÏÓÔÙÈ ÔÅËÓÔÏ×ÙÈ ÐÏÄÓÔÁÎÏ×ÏË: ÜÔÏ ÐÏÌÕÞÁÅÔÓÑ ÐÒÏÝÅ, ÐÏÓËÏÌØËÕ ÏÐÅÒÁÃÉÑ ×Ù×ÏÄÁ ÐÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ ÐÏ ÕÍÏÌÞÁÎÉÀ.  ðÌÀÓ Ë ÔÏÍÕ, ËÁÖÄÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ ÕÖÅ ÉÍÅÅÔ ÅÇÏ × Ó×ÏÅÊ ÓÉÓÔÅÍÅ. (÷ ÎÁÞÁÌÅ Ñ ÎÅ ÐÏÌÁÇÁÌÓÑ ÎÁ ÒÁÓÛÉÒÅÎÉÑ GNU ÄÌÑ m4). îÅÓËÏÌØËÏ ÍÏÉÈ ÄÒÕÚÅÊ × ÕÎÉ×ÅÒÓÉÔÅÔÅ ÛÔÁÔÁ Maryland ÓÏÚÄÁ×ÁÌÉ ÎÁÄÓÔÒÏÊËÉ ÎÁ m4 ÄÌÑ ÒÁÚÎÙÈ ÐÒÏÇÒÁÍÍ, ×ËÌÀÞÁÑ tvtwm, É Ñ ÂÙÌ ÚÁÉÎÔÅÒÅÓÏ×ÁÎ × ÉÚÕÞÅÎÉÉ ÎÏ×ÏÇÏ ÑÚÙËÁ.

ìÅ×ÉÔ
=====

ðÏÓËÏÌØËÕ ÍÏÉ ÓËÒÉÐÔÙ configure ÏÐÒÅÄÅÌÑÌÉ ×ÏÚÍÏÖÎÏÓÔÉ ÓÉÓÔÅÍÙ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÂÅÚ ÉÎÔÅÒÁËÔÉ×ÎÏÇÏ ×ÚÁÉÍÏÄÅÊÓÔ×ÉÑ Ó ÐÏÌØÚÏ×ÁÔÅÌÅÍ, Ñ ÒÅÛÉÌ ÎÁÚ×ÁÔØ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ ÓÏÚÄÁ×ÁÌÁ ÜÔÉ ÓËÒÉÐÔÙ ÉÍÅÎÅÍ Autoconfig. îÏ Ó ÄÏÂÁ×ÌÅÎÉÅÍ ÎÏÍÅÒÁ ×ÅÒÓÉÉ, ÜÔÏ ÉÍÑ ÂÙÌÏ ÓÌÉÛËÏÍ ÄÌÉÎÎÙÍ ÄÌÑ ÓÔÁÒÙÈ ÓÉÓÔÅÍ UNIX, ÔÁË ÞÔÏ Ñ ÕËÏÒÏÔÉÌ ÉÍÑ ÄÏ Autoconf.

ïÓÅÎØÀ 1991 Ñ ÓÏÂÒÁÌ ÇÒÕÐÐÕ ÔÏ×ÁÒÉÝÅÊ, ÞÔÏÂÙ ÎÁÞÁÔØ ÐÏÉÓËÉ þÁÛÉ çÒÁÁÌÑ ðÅÒÅÎÏÓÉÍÏÓÔÉ (ÜÜÜ, ÎÕ, ÔÏ ÅÓÔØ, ÞÔÏÂÙ ÏÎÉ ÔÅÓÔÉÒÏ×ÁÌÉ ÁÌØÆÁ-×ÅÒÓÉÉ). ïÎÉ ÐÒÅÄÏÓÔÁ×ÌÑÌÉ ÍÎÅ ÏÂÒÁÔÎÕÀ Ó×ÑÚØ, Á Ñ ÚÁÎÉÍÁÌÓÑ ÉÎËÁÐÓÕÌÑÃÉÅÊ ËÕÓÏÞËÏ× ÍÏÉÈ ×ÒÕÞÎÕÀ ÎÁÐÉÓÁÎÎÙÈ ÓËÒÉÐÔÏ× × ÍÁËÒÏÓÙ m4, ÄÏÂÁ×ÌÑÌ ×ÏÚÍÏÖÎÏÓÔÉ É ÕÌÕÞÛÁÌ ÔÅÈÎÏÌÏÇÉÀ ÐÒÏ×ÅÒÏË.  óÒÅÄÉ ÔÅÓÔÅÒÏ× ÏÓÏÂÅÎÎÏ ×ÙÄÅÌÑÌÉÓØ: Franc,ois Pinard, ËÔÏ ×ÙÄ×ÉÎÕÌ ÉÄÅÀ ÓÄÅÌÁÔØ autoconf ÓËÒÉÐÔÏÍ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÊ ÚÁÐÕÓËÁÌ ÂÙ m4 É ÐÒÏ×ÅÒÑÌ ÂÙ, ÞÔÏÂÙ ×ÓÅ ÍÁËÒÏÓÙ ÂÙÌÉ ÏÂÒÁÂÏÔÁÎÙ; Richard Pixley, ËÔÏ ÐÒÅÄÌÏÖÉÌ ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÔÏÞÎÙÈ ÒÅÚÕÌØÔÁÔÏ× ÚÁÐÕÓËÁÔØ ËÏÍÐÉÌÑÔÏÒ ×ÍÅÓÔÏ ÐÏÉÓËÁ ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× É ÓÉÍ×ÏÌÏ× ÐÏ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ; Karl Berry, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÏ×ÁÌ Autoconf ÄÌÑ ÎÁÓÔÒÏÊËÉ TeX É ÄÏÂÁ×ÉÌ ÉÎÄÅËÓ ÍÁËÒÏÓÏ× × ÄÏËÕÍÅÎÔÁÃÉÀ; Á ÔÁËÖÅ Ian Taylor, ËÏÔÏÒÙÊ ÄÏÂÁ×ÉÌ ÐÏÄÄÅÒÖËÕ ÓÏÚÄÁÎÉÑ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ C ËÁË ÁÌØÔÅÒÎÁÔÉ×Õ ÐÏÍÅÝÅÎÉÑ ËÌÀÞÅÊ -D × Makefile, ÔÁË ÞÔÏ ÏÎ ÓÍÏÇ ÉÓÐÏÌØÚÏ×ÁÔØ Autoconf ÄÌÑ ÐÁËÅÔÁ UUCP.  ìÀÄÉ, ÔÅÓÔÉÒÏ×Á×ÛÉÅ ÁÌØÆÁ-×ÅÒÓÉÉ, ÂÏÄÒÏ ÉÚÍÅÎÑÌÉ Ó×ÏÉ ÆÁÊÌÙ ÓÎÏ×Á É ÓÎÏ×Á, ÐÏÓËÏÌØËÕ ÉÍÅÎÁ É ÓÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ ÉÚÍÅÎÑÌÉÓØ ÏÔ ×ÅÒÓÉÉ Ë ×ÅÒÓÉÉ Autoconf. ïÎÉ ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÉÌÉ ÍÎÅ ÍÎÏÖÅÓÔ×Ï ÓÐÅÃÉÆÉÞÅÓËÉÈ ÐÒÏ×ÅÒÏË, ÏÔÌÉÞÎÙÈ ÉÄÅÊ É ÉÓÐÒÁ×ÌÅÎÎÙÈ ÏÛÉÂÏË.

þÉÓÌÁ
=====

÷ ÉÀÌÅ 1992, ÐÏÓÌÅ ÍÅÓÑÃÅ× ÔÅÓÔÉÒÏ×ÁÎÉÊ ÁÌØÆÁ-×ÅÒÓÉÊ, Ñ ×ÙÐÕÓÔÉÌ Autoconf 1.0, É ÐÒÅÏÂÒÁÚÏ×ÁÌ ÍÎÏÇÏ ÕÔÉÌÉÔ GNU ÄÌÑ ÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ. ñ ÂÙÌ ÏÞÅÎØ ÕÄÉ×ÌÅÎ ÐÏÌÏÖÉÔÅÌØÎÏÊ ÒÅÁËÃÉÅÊ ÎÁ ×ÙÐÕÓË ÐÁËÅÔÁ. ôÁË ÍÎÏÇÏ ÌÀÄÅÊ ÓÔÁÌÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÅÇÏ, ÔÁË ÞÔÏ Ñ ÎÅ ÓÍÏÇ ÏÔÓÌÅÖÉ×ÁÔØ ÉÈ, ×ËÌÀÞÁÑ ÌÀÄÅÊ, ÒÁÂÏÔÁÀÝÉÈ ÎÁÄ ÐÒÏÇÒÁÍÍÎÙÍ ÏÂÅÓÐÅÞÅÎÉÅÍ, ËÏÔÏÒÏÅ ÎÅ Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ÐÒÏÅËÔÁ GNU (ÎÁÐÒÉÍÅÒ, TCL, FSP É Kerberos V5).  Autoconf ÐÒÏÄÏÌÖÁÌ ÂÙÓÔÒÏ ÒÁÚ×É×ÁÔØÓÑ, ÐÏÓËÏÌØËÕ ÍÎÏÖÅÓÔ×Ï ÌÀÄÅÊ, ÉÓÐÏÌØÚÕÀÝÉÈ configure, ÐÉÓÁÌÉ ÍÎÅ Ï ÐÒÏÂÌÅÍÁÈ, Ó ËÏÔÏÒÙÍÉ ×ÓÔÒÅÔÉÌÉÓØ.

Autoconf ÐÒÅ×ÒÁÔÉÌÓÑ × ÈÏÒÏÛÉÊ ÔÅÓÔ ÒÅÁÌÉÚÁÃÉÊ m4. UNIX m4 ÎÁÞÁÌÉ ×ÙÄÁ×ÁÔØ ÄÁÍÐÙ ÐÁÍÑÔÉ, ÉÚ-ÚÁ ÄÌÉÎÙ ÍÁËÒÏÓÏ×, ÏÐÒÅÄÅÌÑÅÍÙÈ Autoconf; ÎÅÓËÏÌØËÏ ÏÛÉÂÏË ÂÙÌÏ ÎÁÊÄÅÎÏ × GNU m4.  ÷ ËÏÎÅÞÎÏÍ ÓÞÅÔÅ ÍÙ ÏÓÏÚÎÁÌÉ, ÞÔÏ ÎÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÅ ÉÍÅÀÔÓÑ ÔÏÌØËÏ × GNU m4.  ÷ ÞÁÓÔÎÏÓÔÉ, ×ÅÒÓÉÑ 4.3BSD m4 ÉÍÅÌÁ ÓÌÉÛËÏÍ ÍÁÌÅÎØËÉÊ ÎÁÂÏÒ ×ÓÔÒÏÅÎÎÙÈ ÍÁËÒÏÓÏ×; ×ÅÒÓÉÑ ÄÌÑ System V ÎÅÍÎÏÇÏ ÌÕÞÛÅ, ÎÏ ×ÓÅ ÒÁ×ÎÏ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÌÁ ×ÓÅÈ ÎÕÖÎÙÈ ÎÁÍ ×ÏÚÍÏÖÎÏÓÔÅÊ.

ðÒÏÉÓÈÏÄÉÌÁ ÄÁÌØÎÅÊÛÁÑ ÒÁÚÒÁÂÏÔËÁ ÐÏ ÍÅÒÅ ÔÏÇÏ, ËÁË ÌÀÄÉ Autoconf × ÂÏÌÅÅ ÖÅÓÔËÉÅ ÕÓÌÏ×ÉÑ (É ÉÓÐÏÌØÚÏ×ÁÌÉ ÔÁË, ËÁË Ñ ÎÅ ÏÖÉÄÁÌ). Karl Berry ÄÏÂÁ×ÉÌ ÐÒÏ×ÅÒËÉ ÄÌÑ X11. David Zuhn ÓÄÅÌÁÌ ÐÏÄÄÅÒÖËÕ C++. Franc,ois Pinard ÓÄÅÌÁÌ ÄÉÁÇÎÏÓÔÉËÕ ÎÅÐÒÁ×ÉÌØÎÙÈ ÁÒÇÕÍÅÎÔÏ×. Jim Blandy ÉÓÐÏÌØÚÏ×ÁÌ ÐÁËÅÔ ÄÌÑ ÎÁÓÔÒÏÊËÉ GNU Emacs, ÚÁËÌÁÄÙ×ÁÑ ÆÕÎÄÁÍÅÎÔ ÄÌÑ ÎÅËÏÔÏÒÙÈ ÐÏÓÌÅÄÕÀÝÉÈ ÕÌÕÞÛÅÎÉÊ.  Roland McGrath, ÉÓÐÏÌØÚÏ×Á×ÛÉÊ ÐÁËÅÔ ÄÌÑ ÂÉÂÌÉÏÔÅËÉ GNU C, ÎÁÐÉÓÁÌ ÓËÒÉÐÔ autoheader ÄÌÑ Á×ÔÏÍÁÔÉÚÁÃÉÉ ÓÏÚÄÁÎÉÑ ÛÁÂÌÏÎÏ× ÚÁÇÏÌÏ×ÏÞÎÙÈ ÆÁÊÌÏ× C, Á ÔÁËÖÅ ÄÏÂÁ×ÉÌ ËÌÀÞ --verbose Ë configure. Noah Friedman ÄÏÂÁ×ÉÌ ÐÏÄÄÅÒÖËÕ ËÌÀÞÁ --macrodir É ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ AC_MACRODIR. (ïÎ ÔÁËÖÅ ××ÅÌ × ÕÐÏÔÒÅÂÌÅÎÉÅ ÔÅÒÍÉÎ autoconfiscate, ËÏÔÏÒÙÊ ÏÚÎÁÞÁÅÔ ``ÁÄÁÐÔÉÒÏ×ÁÔØ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Autoconf''.)  Roland É Noah ÕÌÕÞÛÉÌÉ ÜËÒÁÎÉÒÏ×ÁÎÉÅ ÓÐÅÃÉÁÌØÎÙÈ ÓÉÍ×ÏÌÏ× × ÍÁËÒÏÓÅ AC_DEFINE É ÉÓÐÒÁ×ÉÌÉ ÍÎÏÖÅÓÔ×Ï ÏÛÉÂÏË, ÏÓÏÂÅÎÎÏ ËÏÇÄÁ Ñ ÐÒÅÓÙÔÉÌÓÑ ÐÒÏÂÌÅÍÁÍÉ Ó ÐÅÒÅÎÏÓÉÍÏÓÔØÀ Ó ÆÅ×ÒÁÌÑ ÐÏ ÉÀÎØ 1993.

÷ÔÏÒÏÚÁËÏÎÉÅ
============

ðÏÓÔÅÐÅÎÎÏ ÎÁËÁÐÌÉ×ÁÌÓÑ ÄÌÉÎÎÙÊ ÓÐÉÓÏË ×ÁÖÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ, ËÏÔÏÒÙÍÉ ÈÏÔÅÌÏÓØ ÂÙ ÐÏÌØÚÏ×ÁÔØÓÑ, Á ÎÅÓËÏÌØËÏ ÌÅÔ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ ÍÎÏÖÅÓÔ×Ï ÌÀÄÅÊ ÎÁËÌÁÄÙ×ÁÌÉ ÎÁ Autoconf ÚÁÐÌÁÔËÉ, ÐÒÉ×ÅÌÉ Ë ÎÁËÏÐÌÅÎÉÀ ×ÓÑËÏÇÏ ÈÌÁÍÁ, ËÏÔÏÒÙÊ ÎÅ×ÏÚÍÏÖÎÏ ÂÙÌÏ ×ÙÞÉÓÔÉÔØ.  ÷ ÁÐÒÅÌÅ 1994, × ÐÒÏÃÅÓÓÅ ÒÁÂÏÔÙ ÎÁ Cygnus Support, Ñ ÎÁÞÁÌ ÐÏÌÎÙÊ ÐÅÒÅÓÍÏÔÒ Autoconf.  ñ ÄÏÂÁ×ÉÌ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ, ËÏÔÏÒÙÅ ÏÔÓÕÔÓÔ×Ï×ÁÌÉ × Autoconf, ÎÏ ÐÒÉÓÕÔÓÔ×Ï×ÁÌÉ × Cygnus configure --- × ÏÓÎÏ×ÎÏÍ ÁÄÁÐÔÉÒÕÑ ÎÅËÏÔÏÒÙÅ ÞÁÓÔÉ Cygnus configure Ó ÐÏÍÏÝØÀ David Zuhn É Ken Raeburn.  üÔÉ ×ÏÚÍÏÖÎÏÓÔÉ ×ËÌÀÞÁÀÔ ÐÏÄÄÅÒÖËÕ ÉÓÐÏÌØÚÏ×ÁÎÉÑ config.sub, config.guess, --host É --target; ÓÏÚÄÁÎÉÅ ÓÓÙÌÏË ÎÁ ÆÁÊÌÙ; É ÚÁÐÕÓË ÓËÒÉÐÔÏ× configure × ÐÏÄËÁÔÁÌÏÇÁÈ. äÏÂÁ×ÌÅÎÉÅ ÜÔÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ÐÏÚ×ÏÌÉÌÏ Ken'Õ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Autoconf GNU as, Á Rob'Õ Savoye -- DejaGNU.

ñ ÄÏÂÁ×ÉÌ ÍÎÏÖÅÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ, Ï ËÏÔÏÒÙÈ ÐÒÏÓÉÌÉ ÒÁÚÎÙÅ ÌÀÄÉ.  íÎÏÇÉÅ ÐÒÏÓÉÌÉ, ÞÔÏÂÙ ÓËÒÉÐÔÙ configure ÍÏÇÌÉ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÅÚÕÌØÔÁÔÙ ÐÒÏ×ÅÒÏË ÐÒÉ ÐÏÓÌÅÄÕÀÝÉÈ ÚÁÐÕÓËÁÈ, ÐÏÔÏÍÕ ÞÔÏ (ÏÓÏÂÅÎÎÏ ÐÒÉ ÎÁÓÔÒÏÊËÅ ÂÏÌØÛÏÇÏ ÄÅÒÅ×Á ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×, ËÁË, ÎÁÐÒÉÍÅÒ, ÄÅÌÁÅÔ Cygnus) ÏÎÉ ÂÙÌÉ ÕÖÁÓÁÀÝÅ ÍÅÄÌÅÎÎÙ.  Mike Haertel ÐÒÅÄÌÏÖÉÌ ÄÏÂÁ×ÉÔØ ÓÐÅÃÉÆÉÞÅÓËÉÅ ÄÌÑ ÍÁÛÉÎ ÓËÒÉÐÔÙ ÉÎÉÃÉÁÌÉÚÁÃÉÉ. ìÀÄÉ, ÒÁÓÐÒÏÓÔÒÁÎÑÀÝÉÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ, ËÏÔÏÒÏÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ÎÁ MS-DOS, ÐÒÏÓÉÌÉ ÐÒÅÄÏÓÔÁ×ÉÔØ ×ÏÚÍÏÖÎÏÓÔØ ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÑ ÒÁÓÛÉÒÅÎÉÊ .in × ÉÍÅÎÁÈ ÆÁÊÌÏ×, ÉÚ-ÚÁ ÞÅÇÏ ÐÏÑ×ÌÑÌÉÓØ ÉÍÅÎÁ ÔÉÐÁ config.h.in, ÓÏÄÅÒÖÁÝÉÅ Ä×Å ÔÏÞËÉ. Jim Avera ÓÄÅÌÁÌ ÏÂÛÉÒÎÏÅ ÉÓÓÌÅÄÏ×ÁÎÉÅ ÐÒÏÂÌÅÍ Ó ÜËÒÁÎÉÒÏ×ÁÎÉÅÍ ËÁ×ÙÞÅË × ÍÁËÒÏÓÁÈ AC_DEFINE É AC_SUBST; ÅÇÏ ÐÒÏÎÉÃÁÔÅÌØÎÏÓÔØ ÐÒÉ×ÅÌÁ Ë ÚÎÁÞÉÔÅÌØÎÙÍ ÕÌÕÞÛÅÎÉÑÍ.  Richard Stallman ÐÒÏÓÉÌ, ÞÔÏÂÙ ×Ù×ÏÄ ËÏÍÐÉÌÑÔÏÒÁ ÐÏÓÙÌÁÌÓÑ × ÆÁÊÌ config.log ×ÍÅÓÔÏ /dev/null, ÞÔÏÂÙ ÐÏÍÏÞØ ÌÀÄÑÍ ÏÔÌÁÖÉ×ÁÔØ ÓËÒÉÐÔÙ configure ÄÌÑ Emacs.

ñ ÓÄÅÌÁÌ ÎÅËÏÔÏÒÙÅ ÉÚÍÅÎÅÎÉÑ, ÐÏÔÏÍÕ ÞÔÏ ÂÙÌ ÎÅÄÏ×ÏÌÅÎ ËÁÞÅÓÔ×ÏÍ ÐÒÏÇÒÁÍÍÙ.  ñ ÓÄÅÌÁÌ ÓÏÏÂÝÅÎÉÑ Ï ÒÅÚÕÌØÔÁÔÁÈ ÐÒÏ×ÅÒÏË ÍÅÎÅÅ Ä×ÕÓÍÙÓÌÅÎÎÙÍÉ, É ÓÄÅÌÁÌ ÔÁË, ÞÔÏÂÙ ÜÔÉ ÓÏÏÂÝÅÎÉÑ ×ÓÅÇÄÁ ×ÙÄÁ×ÁÌÉÓØ. ñ ÐÏÄÐÒÁ×ÉÌ ÉÍÅÎÁ ÍÁËÒÏÓÏ× É ÐÏÄÐÒÁ×ÉÌ ÎÅÓÏ×ÍÅÓÔÉÍÏÓÔÉ ÓÏ ÓÔÁÎÄÁÒÔÁÍÉ ËÏÄÉÒÏ×ÁÎÉÑ. ñ ÄÏÂÁ×ÉÌ ÎÅËÏÔÏÒÙÅ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÕÔÉÌÉÔÙ, ËÏÔÏÒÙÅ ÂÙÌÉ ÒÁÚÒÁÂÏÔÁÎÙ, ÞÔÏÂÙ ÐÏÍÏÞØ × ÁÄÁÐÔÁÃÉÉ ÐÁËÅÔÏ× ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Autoconf. ó ÐÏÍÏÝØÀ Franc,ois Pinard, Ñ ÓÄÅÌÁÌ ÔÁË, ÞÔÏÂÙ ÍÁËÒÏÓÙ ÎÅ ÐÒÅÒÙ×ÁÌÉ ÄÒÕÇÉÅ ÓÏÏÂÝÅÎÉÑ ÄÒÕÇÉÈ ÍÁËÒÏÓÏ×. (üÔÁ ×ÏÚÍÏÖÎÏÓÔØ ×Ù×ÅÌÁ ÎÁ ÞÉÓÔÕÀ ×ÏÄÕ ÎÅËÏÔÏÒÙÅ ÕÚËÉÅ ÍÅÓÔÁ × ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ GNU m4, ËÏÔÏÒÙÅ ÂÙÌÉ ÐÏÓÐÅÛÎÏ ÉÓÐÒÁ×ÌÅÎÙ!) ñ ÒÅÏÒÇÁÎÉÚÏ×ÁÌ ÄÏËÕÍÅÎÔÁÃÉÀ, ÞÔÏÂÙ ÏÎÁ ×ÒÁÝÁÌÁÓØ ×ÏËÒÕÇ ÔÅÈ ÓÁÍÙÈ ÐÒÏÂÌÅÍ, ËÏÔÏÒÙÅ ÌÀÄÉ É ÈÏÔÅÌÉ ÒÅÛÉÔØ.  é Ñ ÎÁÞÁÌ ÓÏÚÄÁ×ÁÔØ ÎÁÂÏÒ ÔÅÓÔÏ×, ÐÏÓËÏÌØËÕ ÏÐÙÔ ÐÏËÁÚÁÌ, ÞÔÏ Autoconf ÉÍÅÅÔ ÑÒËÏ ×ÙÒÁÖÅÎÎÕÀ ÔÅÎÄÅÎÃÉÀ Ë ÒÅÇÒÅÓÓÕ ÐÒÉ ÉÚÍÅÎÅÎÉÑÈ.

ïÐÑÔØ ÖÅ, ÎÅÓËÏÌØËÏ ÁÌØÆÁ-ÔÅÓÔÅÒÏ× ÄÁÌÉ ÂÅÓÃÅÎÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÏÓÏÂÅÎÎÏ Franc,ois Pinard, Jim Meyering, Karl Berry, Rob Savoye, Ken Raeburn É Mark Eichin.

÷ ËÏÎÃÅ ËÏÎÃÏ×, ×ÅÒÓÉÑ 2.0 ÂÙÌÁ ÇÏÔÏ×Á. é ÂÙÌÏ ÍÎÏÇÏ ÒÁÄÏÓÔÉ ÐÏ ÜÔÏÍÕ ÐÏ×ÏÄÕ. (é Õ ÍÅÎÑ ÏÐÑÔØ ÐÏÑ×ÉÌÏÓØ Ó×ÏÂÏÄÎÏÅ ×ÒÅÍÑ.  ëÁÖÅÔÓÑ.  îÅÔ, Ñ Õ×ÅÒÅÎ!)

óÔÁÒÙÅ ÉÍÅÎÁ ÍÁËÒÏÓÏ×
*********************

÷ Autoconf ×ÅÒÓÉÉ 2, ÂÏÌØÛÉÎÓÔ×Ï ÍÁËÒÏÓÏ× ÂÙÌÏ ÐÅÒÅÉÍÅÎÏ×ÁÎÏ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÂÏÌÅÅ ÏÂÏÂÝÅÎÎÏÊ É ÉÎÆÏÒÍÁÔÉ×ÎÏÊ ÓÈÅÍÙ ÎÁÉÍÅÎÏ×ÁÎÉÑ.  ÷ÏÔ ÓÔÁÒÙÅ ÉÍÅÎÁ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÂÙÌÉ ÐÅÒÅÉÍÅÎÏ×ÁÎÙ, É ÎÏ×ÙÅ ÉÍÅÎÁ, ËÏÔÏÒÙÍ ÏÎÉ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ.  èÏÔÑ ÓÔÁÒÙÅ ÉÍÅÎÁ ×ÓÅ ÒÁ×ÎÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ Ó ÐÒÏÇÒÁÍÍÏÊ autoconf ÄÌÑ ÏÂÒÁÔÎÏÊ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ, ÓÔÁÒÙÅ ÉÍÅÎÁ ÍÁËÒÏÓÏ× ÓÞÉÔÁÀÔÓÑ ÕÓÔÁÒÅ×ÛÉÍÉ. äÌÑ ÏÐÉÓÁÎÉÑ ÎÏ×ÏÊ ÓÈÅÍÙ ÎÁÉÍÅÎÏ×ÁÎÉÑ see éÍÅÎÁ ÍÁËÒÏÓÏ×.

AC_ALLOCA
     AC_FUNC_ALLOCA

AC_ARG_ARRAY
     ÕÄÁÌÅÎ ÉÚ-ÚÁ ÏÇÒÁÎÉÞÅÎÎÏÊ ÐÏÌÅÚÎÏÓÔÉ

AC_CHAR_UNSIGNED
     AC_C_CHAR_UNSIGNED

AC_CONST
     AC_C_CONST

AC_CROSS_CHECK
     AC_C_CROSS

AC_ERROR
     AC_MSG_ERROR

AC_FIND_X
     AC_PATH_X

AC_FIND_XTRA
     AC_PATH_XTRA

AC_FUNC_CHECK
     AC_CHECK_FUNC

AC_GCC_TRADITIONAL
     AC_PROG_GCC_TRADITIONAL

AC_GETGROUPS_T
     AC_TYPE_GETGROUPS

AC_GETLOADAVG
     AC_FUNC_GETLOADAVG

AC_HAVE_FUNCS
     AC_CHECK_FUNCS

AC_HAVE_HEADERS
     AC_CHECK_HEADERS

AC_HAVE_POUNDBANG
     AC_SYS_INTERPRETER (ÏÔÌÉÞÁÀÝÅÅÓÑ ÓÏÇÌÁÛÅÎÉÅ ÐÏ ×ÙÚÏ×Õ)

AC_HEADER_CHECK
     AC_CHECK_HEADER

AC_HEADER_EGREP
     AC_EGREP_HEADER

AC_INLINE
     AC_C_INLINE

AC_LN_S
     AC_PROG_LN_S

AC_LONG_DOUBLE
     AC_C_LONG_DOUBLE

AC_LONG_FILE_NAMES
     AC_SYS_LONG_FILE_NAMES

AC_MAJOR_HEADER
     AC_HEADER_MAJOR

AC_MINUS_C_MINUS_O
     AC_PROG_CC_C_O

AC_MMAP
     AC_FUNC_MMAP

AC_MODE_T
     AC_TYPE_MODE_T

AC_OFF_T
     AC_TYPE_OFF_T

AC_PID_T
     AC_TYPE_PID_T

AC_PREFIX
     AC_PREFIX_PROGRAM

AC_PROGRAMS_CHECK
     AC_CHECK_PROGS

AC_PROGRAMS_PATH
     AC_PATH_PROGS

AC_PROGRAM_CHECK
     AC_CHECK_PROG

AC_PROGRAM_EGREP
     AC_EGREP_CPP

AC_PROGRAM_PATH
     AC_PATH_PROG

AC_REMOTE_TAPE
     ÕÄÁÌÅÎ ÉÚ-ÚÁ ÏÇÒÁÎÉÞÅÎÎÏÊ ÐÏÌÅÚÎÏÓÔÉ

AC_RESTARTABLE_SYSCALLS
     AC_SYS_RESTARTABLE_SYSCALLS

AC_RETSIGTYPE
     AC_TYPE_SIGNAL

AC_RSH
     ÕÄÁÌÅÎ ÉÚ-ÚÁ ÏÇÒÁÎÉÞÅÎÎÏÊ ÐÏÌÅÚÎÏÓÔÉ

AC_SETVBUF_REVERSED
     AC_FUNC_SETVBUF_REVERSED

AC_SET_MAKE
     AC_PROG_MAKE_SET

AC_SIZEOF_TYPE
     AC_CHECK_SIZEOF

AC_SIZE_T
     AC_TYPE_SIZE_T

AC_STAT_MACROS_BROKEN
     AC_HEADER_STAT

AC_STDC_HEADERS
     AC_HEADER_STDC

AC_STRCOLL
     AC_FUNC_STRCOLL

AC_ST_BLKSIZE
     AC_STRUCT_ST_BLKSIZE

AC_ST_BLOCKS
     AC_STRUCT_ST_BLOCKS

AC_ST_RDEV
     AC_STRUCT_ST_RDEV

AC_SYS_SIGLIST_DECLARED
     AC_DECL_SYS_SIGLIST

AC_TEST_CPP
     AC_TRY_CPP

AC_TEST_PROGRAM
     AC_TRY_RUN

AC_TIMEZONE
     AC_STRUCT_TIMEZONE

AC_TIME_WITH_SYS_TIME
     AC_HEADER_TIME

AC_UID_T
     AC_TYPE_UID_T

AC_UTIME_NULL
     AC_FUNC_UTIME_NULL

AC_VFORK
     AC_FUNC_VFORK

AC_VPRINTF
     AC_FUNC_VPRINTF

AC_WAIT3
     AC_FUNC_WAIT3

AC_WARN
     AC_MSG_WARN

AC_WORDS_BIGENDIAN
     AC_C_BIGENDIAN

AC_YYTEXT_POINTER
     AC_DECL_YYTEXT

éÎÄÅËÓ ÐÅÒÅÍÅÎÎÙÈ ÓÒÅÄÙ
***********************

÷ÏÔ ÁÌÆÁ×ÉÔÎÙÊ ÓÐÉÓÏË ÐÅÒÅÍÅÎÎÙÈ ÓÒÅÄÙ, ËÏÔÏÒÙÅ ÐÒÏ×ÅÒÑÅÔ Autoconf.

éÎÄÅËÓ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ
**************************

üÔÏ ÁÌÆÁ×ÉÔÎÙÊ ÓÐÉÓÏË ÐÅÒÅÍÅÎÎÙÈ, ËÏÔÏÒÙÅ Autoconf ÍÏÖÅÔ ÐÏÄÓÔÁ×ÌÑÔØ × ÆÁÊÌÙ, ËÏÔÏÒÙÅ ÏÎ ÓÏÚÄÁÅÔ, ÏÂÙÞÎÏ ÜÔÏ ÏÄÉÎ ÉÌÉ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× Makefile. äÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ see õÓÔÁÎÏ×ËÁ ×ÙÈÏÄÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.

éÎÄÅËÓ ÓÉÍ×ÏÌÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ
*****************************

÷ÏÔ ÁÌÆÁ×ÉÔÎÙÊ ÓÐÉÓÏË ÓÉÍ×ÏÌÏ× ÐÒÅÐÒÏÃÅÓÓÏÒÁ C, ËÏÔÏÒÙÅ ÏÐÒÅÄÅÌÑÀÔ ÍÁËÒÏÓÙ Autoconf. äÌÑ ÒÁÂÏÔÙ Ó Autoconf, ÉÓÈÏÄÎÏÍÕ ËÏÄÕ ÎÁ ÑÚÙËÅ C ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÉ ÉÍÅÎÁ × ÄÉÒÅËÔÉ×ÁÈ #if.

éÎÄÅËÓ ÍÁËÒÏÓÏ×
***************

÷ÏÔ ÁÌÆÁ×ÉÔÎÙÊ ÓÐÉÓÏË ÍÁËÒÏÓÏ× Autoconf. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÄÅÌÁÔØ ÓÐÉÓÏË ÞÉÔÁÂÅÌØÎÅÅ, ÍÁËÒÏÓÙ ÐÅÒÅÞÉÓÌÅÎÙ ÂÅÚ ÐÒÅÆÉËÓÁ AC_.